课程设计说明书(论文)
题 目 带限数字基带传输系统的仿真
课 程 名 称 Matlab通信仿真设计
专 业 通信工程
班 级 1203
学 生 姓 名 徐国文
学 号 2012115020329
指 导 教 师 文富荣
设计起止时间:20##年 12月18日至 20##年 12月 25日
一、课程设计目的和要求
1.综合运用信号与线性系统,通信原理,以及matlab语言等综合应用知识。
2.基本熟悉软件开发流程、要点以及注意事项。
3.掌握基带数字传输系统的仿真方法。
4.熟悉基带传输系统的基本结构。
5.掌握带限信道的仿真以及性能分析。
6.通过观察眼图判断信号的传输质量。
7.设计和编程,以加深对通信系统基础知识的理解,提高学生利用matlab在通信领域进行实践的应用能力、分析解决问题的能力;增强学生对实践应用流程模式的理解。
二、课程设计所用软件介绍
Simulink是MATLAB最重要的组件之一,它提供一个动态系统建模、仿真和综合分析的集成环境。在该环境中,无需大量书写程序,而只需要通过简单直观的鼠标操作,就可构造出复杂的系统。Simulink具有适应面广、结构和流程清晰及仿真精细、贴近实际、效率高、灵活等优点,并基于以上优点Simulink已被广泛应用于控制理论和数字信号处理的复杂仿真和设计。同时有大量的第三方软件和硬件可应用于或被要求应用于Simulink。
Simulink是MATLAB中的一种可视化仿真工具, 是一种基于MATLAB的框图设计环境,是实现动态系统建模、仿真和分析的一个软件包,被广泛应用于线性系统、非线性系统、数字控制及数字信号处理的建模和仿真中。Simulink可以用连续采样时间、离散采样时间或两种混合的采样时间进行建模,它也支持多速率系统,也就是系统中的不同部分具有不同的采样速率。为了创建动态系统模型,Simulink提供了一个建立模型方块图的图形用户接口(GUI) ,这个创建过程只需单击和拖动鼠标操作就能完成,它提供了一种更快捷、直接明了的方式,而且用户可以立即看到系统的仿真结果。
Simulink是用于动态系统和嵌入式系统的多领域仿真和基于模型的设计工具。对各种时变系统,包括通讯、控制、信号处理、视频处理和图像处理系统,Simulink提供了交互式图形化环境和可定制模块库来对其进行设计、仿真、执行和测试。.
构架在Simulink基础之上的其他产品扩展了Simulink多领域建模功能,也提供了用于设计、执行、验证和确认任务的相应工具。Simulink与MATLAB紧密集成,可以直接访问MATLAB大量的工具来进行算法研发、仿真的分析和可视化、批处理脚本的创建、建模环境的定制以及信号参数和测试数据的定义。
四、课程设计任务及要求
在实际通信中传输信道的带宽是有限的,这样的信道称为带限信道。带限信道的冲激响应在时间上是无限的,因此一个时隙内的代表数据的波形经过带限信道后将在邻近的其他时隙上形成非零值,称为波形的拖尾。拖尾和邻近其他时隙上的传输波形相互叠加后,形成传输数据之间的混叠,造成符号间干扰,也称为码间干扰。接收机中,在每个传输时隙中的某时间点上,通过对时域混叠后的波形进行采样,然后对样值进行判决来恢复接收数据。在采样时间位置上符号间的干扰应最小化(该采样时刻称为最佳采样时刻),并以适当的判决门限来恢复接收数据,使误码率最小(该门限称为最佳判决门限)。
在工程上,为了便于观察接收波形中的码间干扰情况,可在采样判决设备的输入端以恢复的采样时钟作为同步,用示波器观察该端口的接收波形。利用示波管显示的暂时记忆特性,在示波管上将显示多个时隙内接收信号的重叠波形图案,称为眼图。对于传输符号为等概的双极性码,最佳判决门限为0,最佳采样时刻为眼图开口最大处,因为该时刻上的码间干扰最小。当无码间干扰时,在最佳采样时刻上眼图波形将会聚为一点。
四、课程设计任务及工作量的要求
带限数字基带传输系统的仿真
任务一:升余弦波形及其频谱研究
用Matlab通信工具箱提供的rcosine函数作出一组滚升余弦滤波器的冲激响应,滚降系数为0,0.5,0.75和1,并通过FFT求出其幅频特性。码元时隙为1ms,在一个码元时隙内采样10次,滤波器延时为5个码元时隙。
任务二:滚升余弦滤波器设计
设计一个滚升余弦滤波器,滚降系数为0.75。输入为4元双极性数字序列,符号速率为1000波特,设滤波器采样率为10000次/s,即在一个符号间隔中有10个采样点。请建立simulink仿真模型观察滚升余弦滤波器的输出波形、眼图以及功率谱。
任务三:带限基带传输模型
建立一个基带传输模型,发送数据为二进制双极性不归零码,发送滤波器为平方根升余弦滤波器,滚降系数0.5,信道为AWGN信道,接收滤波器与发送滤波器相匹配。发送数据率为1000bps,要求观察接收信号眼图,并设计接收机采样判决部分,对比发送数据与恢复数据波形,统计误码率。
五、课程设计原理
显然,只要带限信号冲击响应的拖尾波在时隙周期整数倍上的值为0,那么在采样时刻就没有码间干扰,例如抽样函数。然而,抽样函数的频谱时门函数,物理不可实现,即使近似实现也十分困难。还存在一类无码间干扰的时域函数,具有升余弦频率特性,幅频响应是缓变的,在工程上易于实现,其冲激响应为:
其中,为码元传输时隙宽度,为滚降系数。α=0时,退化为矩形门函数;α=1时,为全升余弦。其傅里叶变换即为相应的系统函数。
设发送滤波器为,物理信道的传递函数为,接收滤波器为,则带限信号总的传递函数为。
对于物理信道是AWGN信道的情况,可以证明,当发送滤波器与接收滤波器相互匹配时,即,系统误码率最小。对于理想的物理信道
(=1),收发滤波器相互匹配时有
由此求得收发滤波器传递函数的实数解为
无码间干扰情况下,信道总的传递函数是滚升余弦的,匹配的收发滤波器称为平方根升余弦滤波器,有
工程上,滚升余弦滤波器和平方根滚升余弦滤波器通常用FIR滤波器来近似实现。FIR滤波器的分母系数为1,分子系数向量等于冲激响应的采样序列。Matlab通信工具箱中提供了设计升余弦滤波器的函数rcosine。函数rcosine用于计算FIR滤波器时的用法如下。
Num=rcosine(Fd,Fs,’fir/normal’,r,delay)
‘fir/normal’用于FIR滚升余弦滤波器设计
num=rcosine(Fd,Fs,’fir/sqrt’,r,delay)
‘fir/sqrt’用于FIR平方根滚升余弦滤波器设计
r是滚降系数;Fd是输入数字序列的采样率即码元速率;Fs为滤波器的采样率,Fs必须是Fd的整数倍;delay是输入到响应峰值之间的延迟(单位是码元时隙数)。
六、升余弦波形及其频谱研究
升余弦代码
%zsqE7_7.m
Fd=1e3;
Fs=Fd*10;
delay=5;
for r=[0,0.5,0.75,1]
num=rcosine(Fd,Fs,'fir/normal',r,delay)
t=0:1/Fs:1/Fs*(length(num)-1);
figure(1);plot(t,num);axis([0 0.01 -0.3 1.1]);hold on;
Hw=abs(fft(num,1000));
f=(1:Fs/1000:Fs)-1;
figure(2);plot(f,Hw);axis([0 1500 0 12]);hold on;
End
图(1)
七、滚升余弦滤波器设计
仿真模型如图所示
模块分析:
系统仿真步进设为1e-4s,采用Random Integer Generator产生采样间隔为1e-3的4元整数
(0,1,2,3),并用Unipolar to Bipolar Converter模块将其转换为双极性(-3,-1,1,3)。通过升速率模块Upsample将基带数据的采样速率升高为10000次每秒,其输出为冲激脉冲形式的数据序列。滚升余弦FIR滤波器以Discrete Filter模块实现,其分母系数设置为1,分子系数通过rcosine函数计算。这样,就得到了滚降系数为0.75的滚升余弦滤波器,滤波器延时时间为3个数据时隙,即30个滤波器采样间隔。滤波器输出通过Downsample模块降低4倍采样速率,使送入频谱仪的采样率为2500次/s,这样频谱仪显示的频谱范围是0~1250HZ。同时,滤波输出送入通信模块库中的眼图显示模块Discrete-Time Eye Diagram Scope显示眼图。在眼图显示模块中需要设置:
(1) 每个数据的采样点数,设为10;
(2) 每次扫描显示的符号个数设为2,这样眼图将显示2个符号时间宽度;
(3) 显示所保留的扫描波形轨迹图,可使用默认值;
(4) 每次显示的新轨迹数,也可使用默认值;
(5) Discrete-Time Eye Diagram Scope模块可同时显示同相支路和正交支路上的波形眼图,本题只有一个支路,可选择In-phase Only选项。
仿真模块参数截图
仿真结果截图:
八、带限基带传输模型
仿真模型如图所示:
模块分析:
设计系统仿真采样率为1eHz,滤波器采样速率等于系统仿真采样率。数字信号速率为1000bps,故在进入发送滤波器之前需要10倍升速率,接收解码后再以10倍降速率来恢复信号传输比特率。仿真模型如图所示,系统分为二进制信源、发送滤波器、高斯信道、接收匹配滤波器、接收采样、判决恢复以及信号测量等7部分。二进制信源输出双极性不归零码,并想接收端提供原始数据以便对比和统计误码率。发送滤波器和接收滤波器均为平方根升余弦滤波器,高斯信道采用随机数发生器和加法器实现。接收定时假设为理想的,采用脉冲发生器实现1000HZ的矩形脉冲作为恢复定时脉冲,以乘法器实现在最佳采样时刻对接收滤波器输出的采样。然后对抽样结果进行门限判决,最佳判决门限为零,判决输出结果在一个传输码元时隙内不变,最后以10倍降速率采样得出采样率为1000HZ的恢复数据。
各模块的参数截图为:
仿真结果如图所示:
九、总结与体会
通过实验与仿真相结合,解决问题,更好的了解MATALAB的使用以及运用到实际操作中。
十、主要参考文献
【1】《Matlab程序设计教程》,刘卫国编著,中国水利水电出版社,2010 年。
【2】《Matlab教程》,张志涌编著,北京航空航天大学出版社,20##年。
【3】《MATLAB5.X程序设计语言》 楼顺天 于卫 闫华梁 等
【4】《Matlab与通信仿真》,王立宁等编,人民邮电出版社,20##年1月。
【5】《Matlab/Simulink 通信系统建模与仿真实例分析》,邵玉斌编著,清华大学出版社,20##年6月。
【6】《Matlab通信仿真设计指导书》,潘子宇, 南京工程学院 ,2013
【7】《通信原理》.樊昌信, 曹丽娜, 北京:国防工业出版社,2008
第二篇:MATLAB综合实验报告
实验七 综合实验
一.实验目的
能综合利用信号处理的理论和Matlab工具实现对信号进行分析和处理
(1) 熟练对信号进行时域和频域分析;
(2) 熟练进行滤波器设计和实现;
(3) 掌握对信号的滤波处理和分析。
二.实验原理
设计并实现滤波器对信号进行分析和处理是信号处理课程学习的主要内容。通过对信号进行频谱分析,能发现信号的频率特性,以及组成信号的频率分量。对信号进行滤波处理,能改善信号的质量,或者为数据处理(如传输,分类等)提供预处理,等。本次实验是对特定信号进行分析并进行滤波处理,需要综合应用之前的实验内容,主要有以下几个方面。
(1)离散时间信号与系统的时域分析
Matlab为离散时间信号与系统的分析提供了丰富且功能强大的计算函数和绘图分析函数,便于离散时间信号和系统的时域表示和分析。
(2)信号的频域分析
信号处理课程主要学习了离散信号和系统的频域分析方法与实现,以及滤波器的设计与实现。离散信号与系统的频域分析包括DTFT、DFT、Z变换等,FFT则是DFT的快速实现。用Matlab分析信号的频谱可以用freqz函数或者FFT函数。
(3) 滤波器设计
滤波器的设计首先要确定滤波器的类型,即低通、高通、带通还是带阻。滤波器的边缘频率可以通过对信号的频谱分析得到,滤波器的幅度指标主要有阻带最小衰减As和通带最大衰减Ap。一般来说,As越大,对截止通过的频率分量的衰减越大;Ap越小,对需要保留的频率分量的衰减越小。因此,As越大,Ap越小,滤波器的性能越好,但随之而来,滤波器的阶数越大,实现的代价(包括计算时间和空间)越大。由此,滤波器的设计需要对滤波器性能和实现代价进行均衡考虑。
另外根据冲激响应的长度可以分为IIR和FIR两种类型。两种类型的滤波器各有特点。用FIR滤波器可以设计出具有严格线性相位的滤波器,但在满足同样指标的条件下,FIR滤波器的阶数高于IIR滤波器。Matlab为各种类型的滤波器的设计提供了丰富的函数,可以借助这些函数方便地设计出符合要求地滤波器。
(1)对信号进行时域和频域分析,确定信号x的频率分量。
程序设计:
subplot(2,1,1); plot(x);
title('time domain of x ');
[X,w]=freqz(x);
subplot(2,1,2);plot(w/pi,abs(X));
title('freqency domain of x ');
实验结果:
分析:从信号的频谱可以看出 X的频率分量有 0.2pi,0.5 pi和0.9 pi
(2)用Matlab实现滤波器。
1设计低通滤波器,滤出低频分量:
程序设计:
rp=1;rs=60;
wp=0.3*pi; ws=0.4*pi; %通带和阻带的截止频率
Fs=1; % let Fs=1
wap=tan(wp/2);was=tan(ws/2); %预畸变公式
[n,wn]=buttord(wap,was,rp,rs,'s')%设计等效模拟滤波器
[z,p,k]=buttap(n);
[bp,ap]=zp2tf(z,p,k); % 设计模拟低通原型滤波器
[bs,as]=lp2lp(bp,ap,wap) %将模拟低通原型滤波器转换为低通滤波器
[bz,az]=bilinear(bs,as,Fs/2); %实现双线性变换,即由模拟滤波器得到数字滤波器
%bz,az 为分子分母系数。
[h,w]=freqz(bz,az,256,Fs);
subplot(2,2,2);plot(w,abs(h)); %滤波器频域图
title('frequency domain of lowpass filter');
h1=impz(bz,az); %滤波器时域图
subplot(2,2,1); plot(h1);
title('time domain of lowpass filter');
y=filter(bz,az,x); %验证
y1=freqz(y);%时域转频域
subplot(2,2,4);plot(abs(y1)); %过滤图(频域)
title('x frequency domain out of lowpass filter');
subplot(2,2,3);plot(y);
title('x time domain out of lowpass filter');%过滤图时域
实验结果:
分析:通过滤波得到了略有衰减的清晰的低频信号。
2设计高通滤波器,滤出高频分量:
程序设计:
rp=1;rs=80; %参数设置
wp=0.8*pi;ws=0.6*pi;
Fs=1; % let Fs=1
wap=tan(wp/2);was=tan(ws/2); %预畸变公式
[n,wn]=buttord(wap,was,rp,rs,'s')%设计等效模拟滤波器
[z,p,k]=buttap(n);
[bp,ap]=zp2tf(z,p,k); % 设计模拟低通原型滤波器
[bs,as]=lp2hp(bp,ap,wap) %将模拟低通原型滤波器转换为低通滤波器
[bz,az]=bilinear(bs,as,Fs/2); %实现双线性变换,即由模拟滤波器 得到数字滤波器
[h,w]=freqz(bz,az,256,1);
h3=impz(bz,az);
subplot(2,2,1);plot(h3);
title('time domain of filter');%滤波器时域图
subplot(2,2,2); plot(w,abs(h));
title('frequency domain of filter'); %滤波器频域图
y=filter(bz,az,x);
subplot(2,2,3);plot(y);
title('x time domain out of filter'); %过滤图时域
y1=freqz(y);
subplot(2,2,4);plot(abs(y1)); %?w
title('x frequency domain out of filter');%过滤图(频域)
实验结果:
分析:通过滤波得到了清晰的高频信号。
3设计带通滤波器,滤出中频分量。
程序设计:
wn=[0.4,0.6]; %cut-off frequency 范围
b2=fir1(34,wn,'bandpass'); %带阻滤波器 默认是函数自动取hamming。
%f=[0 0.4 0.4 0.65 0.65 1];
%m=[1 1 0 0 1 1]; %设定带阻的范围为0.4pi-0.65pi
%b1=fir2(34,f,m,chebwin(35,60)) %为求取频率响应系数。分子为b,分母为1
h2=impz(b2,1); %滤波器时域图
subplot(2,2,1);plot(h2);
title('time domain of filter');
y2=freqz(b2,1,100);
subplot(2,2,2); plot(abs(y2)); %滤波器频域图
title('frequecy domain of filter');
y=filter(b2,1,x); %验证
subplot(2,2,3);plot(y);
title('x time domain out of filter');%过滤图时域
y1=freqz(y);
subplot(2,2,4); plot(abs(y1)); %过滤图频域
title('x frequency out of filter');
实验结果:
分析:通过滤波,很好的从复合信号X中得到了稳定且基本没有衰减的中频信号。
实验总结:
通过本实验,我充分掌握了滤波器的分析,设计过程,对滤波器在时域和频域的图形有了一定的了解,会使用MATLAB分析信号的频谱情况,并设计相应的滤波器滤出有用信号。
信号处理实验是对信号理论课程的实践和补充,能让同学们更好的理解和掌握课本的枯燥的理论。我通过实验对课本里没认识清楚的部分,有了一个认识,让我去补充学习相关重要的理论知识,更好的掌握了本科程的知识。