




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 PAGE21 / NUMPAGES23 基于MATLAB的通信系统仿真数字通信大作业目 录 TOC o 1-3 u 基于Matlab的通信系统仿真 PAGEREF _Toc57211585 h 3数字通信大作业 PAGEREF _Toc57211586 h 3系统综述 PAGEREF _Toc57211587 h 3结构框图 PAGEREF _Toc57211588 h 3系统实现 PAGEREF _Toc57211589 h 4随机信号的生成 PAGEREF _Toc57211590 h 4星座图映射 PAGEREF _Toc57211591 h 4插值 PAGEREF _Toc57211
2、592 h 6波形成形(平方根升余弦滤波器) PAGEREF _Toc57211593 h 710倍载波调制 PAGEREF _Toc57211594 h 8加入高斯白噪声 PAGEREF _Toc57211595 h 11匹配滤波器 PAGEREF _Toc57211596 h 12采样 PAGEREF _Toc57211597 h 15判决解调 PAGEREF _Toc57211598 h 16误码率曲线 PAGEREF _Toc57211599 h 17整体程序构架 PAGEREF _Toc57211600 h 19讨论 PAGEREF _Toc57211601 h 21信噪比修正 PA
3、GEREF _Toc57211602 h 21仿真曲线 PAGEREF _Toc57211603 h 21仿真终止条件 PAGEREF _Toc57211604 h 22升余弦滤波器 PAGEREF _Toc57211605 h 22图 表 TOC f D t 图注 c图1待构建系统的框图 PAGEREF _Toc57211760 h 3图20、1等概分布的随机信号波形图 PAGEREF _Toc57211761 h 4图316QAM星座图 PAGEREF _Toc57211762 h 5图4经过插值后的两路信号波形图 PAGEREF _Toc57211763 h 6图5平方根升余弦滤波器的冲
4、激响应曲线 PAGEREF _Toc57211764 h 7图6通过平方根升余弦滤波器后的两路信号 PAGEREF _Toc57211765 h 8图7 载波调制信号展开图 PAGEREF _Toc57211766 h 9图8 载波调制信号整体图 PAGEREF _Toc57211767 h 10图9加入高斯白噪声的两路信号波形 PAGEREF _Toc57211768 h 11图10经过匹配滤波器后的波形 PAGEREF _Toc57211769 h 13图11 高斯白噪声经过匹配滤波器后的波形 PAGEREF _Toc57211770 h 14图12 信噪比为10db时的星座图 PAGER
5、EF _Toc57211771 h 15图13 误码率曲线图 PAGEREF _Toc57211772 h 18图14 3条曲线比较 PAGEREF _Toc57211773 h 20基于Matlab的通信系统仿真数字通信大作业系统综述利用Matlab仿真软件,完成如图1所示的一个基本的数字通信系统。信号源产生0、1等概分布的随机信号,映射到16QAM的星座图上,同时一路信号已经被分成了实部和虚部,后边的处理建立在这两路信号的基础上。实部、虚部信号分别经过平方根升余弦滤波器,再加入高斯白噪声,然后通过匹配滤波器(平方根升余弦滤波器)。最后经过采样,判决,得到0、1信号,同原信号进行比较,给出1
6、6QAM数字系统的误码。结构框图图1待构建系统的框图系统实现随机信号的生成利用Matlab中自带的函数randsrc来产生0、1等概分布的随机信号。源代码如下所示:%=定义待仿真序列的维数 Nglobal NN=320;%=定义产生1的概率为 pglobal pp=0.5;%=%首先产生随机二进制序列source=randsrc(1,N,1,0;p,1-p);0、1等概分布的随机信号如图2所示。图20、1等概分布的随机信号波形图星座图映射将等概分布的0、1信号映射到16QAM星座图上。每四个bit构成一个码子,具体实现的方法是,将输入的信号进行串并转换分成两路,分别叫做I路和Q路。再把每一路的
7、信号分别按照两位格雷码的规则进行映射,这样实际上最终得到了四位格雷码。为了清楚说明,参看表1:表1两位格雷码的映射规律两位0、1码映射后(按格雷码)0 0-30 1-11 111 03源代码如下所示:function y1,y2=Qam_modulation(x)%QAM_modulation%=%对产生的二进制序列进行QAM调制 %=首先进行串并转换,将原二进制序列转换成两路信号N=length(x);a=1:2:N;y1=x(a);y2=x(a+1); %=分别对两路信号进行QPSK调制 %=对两路信号分别进行24电平变换a=1:2:N/2;temp1=y1(a);temp2=y1(a+1
8、);y11=temp1*2+temp2;temp1=y2(a);temp2=y2(a+1);y22=temp1*2+temp2; %=对两路信号分别进行相位调制a=1:N/4;y1=(y11*2-1-4)*1.*cos(2*pi*a);y2=(y22*2-1-4)*1.*cos(2*pi*a);%=按照格雷码的规则进行映射y1(find(y11=0)=-3;y1(find(y11=1)=-1;y1(find(y11=3)=1;y1(find(y11=2)=3;y2(find(y22=0)=-3;y2(find(y22=1)=-1;y2(find(y22=3)=1;y2(find(y22=2)=
9、3;得到的星座图如图3所示,图上注明了每一个点对应的01序列。图316QAM星座图从上边的星座图上可以清楚的看到,任意相邻的两个点之间它们对应的4个bit中只有一个有差别,也就是格雷码的特点。而采用格雷码主要目的是当信噪比较大时,也就是系统的误码率比较低的情况下,当出现一个符号错误的情况下,往往只是这个符号中的一个bit位出现了误码,因此这个情况下误码率和误bit率是4:1,这一特性在后边的误码率计算的过程中会有应用。插值为了能够模拟高斯白噪声的宽频谱特性,以与为了能够显示波形生成器(平方根升余弦滤波器)的效果,所以在原始信号中间添加一些0点。具体实现是分别在信号的I路和Q路中,任意相邻的两个
10、码字之间添加7个0。源代码如下所示:function y=insert_value(x,ratio)%=x是待插值的序列,ratio是插值的比例。%两路信号进行插值首先产生一个长度等于ratio倍原信号长度的零向量y=zeros(1,ratio*length(x);再把原信号放在对应的位置a=1:ratio:length(y);y(a)=x;对I路和Q路信号进行插值后的波形图如图4所示。图4经过插值后的两路信号波形图波形成形(平方根升余弦滤波器)为了避免相邻传输信号之间的串扰,多元符号需要有合适的信号波形。图1中的方波是在本地数字信号处理时常见的波形,但在实际传输时这种方波并不合适。根据奈奎斯
11、特第一准则,在实际通信系统中一般均使接收波形为升余弦滚降信号。这一过程由发送端的基带成形滤波器和接收端的匹配滤波器两个环节共同实现,因此每个环节均为平方根升余弦滚降滤波,两个环节合成就实现了一个升余弦滚降滤波。实现平方根升余弦滚降信号的过程称为“波形成形”,通过采用合适的滤波器对多元码流进行滤波实现,由于生成的是基带信号,因此这一过程又称“基带成形滤波”。平方根升余弦滤波器的冲激响应基带平方根升余弦滤波器具有以下定义的理论函数其中:是奈奎斯特平率,是滚降系数。下面给出平方根升余弦滤波器的冲激响应曲线,如图5所示。图5平方根升余弦滤波器的冲激响应曲线从上图上不难看出来,平方根升余弦滤波器的冲激响
12、应很显然的引入了符号间干扰(ISI)即它的冲激响应在相邻的抽样点上的值并不象升余弦滤波器那样恒为0。然而造成这一后果的原因在于,当我们引入平方根升余弦滤波器的时候,就是认为整个信道,也就是说,包括信号发送端的滤波器和信号接收端的滤波器,总体的效果是避免了符号间干扰(ISI),所以,单独看这每一个滤波器,勿庸置疑,它们都是存在着符号间干扰(ISI)的。经过平方根升余弦滤波器后的信号I路和Q路信号经过平方根升余弦滤波器后,成形后的波形如图6所示。源代码如下%x1、x2是两路输入信号,fd是信号信息位的频率,fs是信号的采样频率function y1,y2=rise_cos(x1,x2,fd,fs)
13、%生成平方根升余弦滤波器yf, tf=rcosine(fd,fs, fir/sqrt);%对两路信号进行滤波y1, to1=rcosflt(x1, fd,fs,filter/Fs, yf);y2, to2=rcosflt(x2, fd,fs,filter/Fs, yf);10倍载波调制将通过成形滤波器后的信号调制到10倍于原频率的载波上。由于在仿真的过程中,只图6通过平方根升余弦滤波器后的两路信号能用离散的点来模拟连续信号,因而为了能够显示出一个正弦曲线,至少需要在一个正弦周期采样到4个以上的点,这里,我们在一个周期采10个点。假设最初的0、1信号的频率是1Hz,那么I路和Q路符号传输的频率是
14、1/4Hz,而10倍频是建立在I路或Q路符号频率的基础上,也就是说,载频的频率是2.5Hz。按照前面的假设,那么相邻两个采样点之间的时间间隔是0.04s。而一个完整周期的正弦波形的幅值是一样的,都是对应的这个周期的I路和Q路线性叠加,调制后的信号为, 其中,为载波频率。源代码如下%载波调制%x1,x2代表两路输入信号,f是输入信号的频率,hf是载波的频率function t,y=modulate_to_high(x1,x2,f,hf)%产生两个中间变量,用来存储插值后的输入信号yo1=zeros(1,length(x1)*hf/f*10);yo2=zeros(1,length(x2)*hf/f
15、*10);n=1:length(yo1);%对输入信号分别进行插值,相邻的两个点之间加入9个点,且这9个点的值同第0个点的值一样yo1(n)=x1(floor(n-1)/(hf/f*10)+1);yo2(n)=x1(floor(n-1)/(hf/f*10)+1);%生成输出输出信号的时间向量t=(1:length(yo1)/hf*f/10;%生成载波调制信号y=yo1.*cos(2*pi*hf*t)-yo2.*sin(2*pi*hf*t);得到的调制到载频的信号波形如图7和图8所示,其中图7主要为了显示一个脉宽周期的调制信号波形,图8则是显示载波信号的整体情况。图7 载波调制信号展开图图8 载
16、波调制信号整体图加入高斯白噪声将通过成形滤波器后的信号送到具有高斯白噪声特征的加性信道中,相当于在原信号上加入高斯白噪声。由于高斯白噪声加在了通过插值和滤波后的点上,因此在计算信噪比的时候存在一个信噪比换算的问题。当我们把仿真得到的误码率曲线同理论的误码率曲线相比较的时候,两者的信噪比的定义必须是一致的。一致包括两个方面,一是二者均为每bit符号上的信号功率和噪声功率的比值,另一个是信号的功率是指那些信息点上的平均功率,噪声也是指信息点上所对应的噪声的平均功率,但由于噪声的功率谱密度是一个定值,所以噪声的平均功率实际上就是噪声的功率谱密度。对于第二点,由于所有信号的平均功率和信息点上的信号的平
17、均功率不同,所以需要在加入高斯噪声的时候进行纠正,具体的公式推导如下。设是最后理论计算中的信噪比,是加入高斯白噪声后的整体信号(包括插值后的点)的信噪比,是每bit信息点的平均能量,是每bit信号的平均能量,是噪声的平均功率,现在需要推导出与的关系。即两个信噪比的比值就是平均能量的比值。源程序如下%对输入的两路信号加高斯白噪声,返回处理后的两路信号,信息点等效bit信噪比为snr的值function y1,y2=generate_noise(x1,x2,snr)%snr1代表snr对应的符号信噪比snr1=snr+10*log10(4); %算出所有信号的平均功率ss=var(x1+i*x2,
18、1);%加入高斯白噪声y=awgn(x1+j*x2,snr1+10*log10(ss/10),measured);y1=real(y);y2=imag(y);给出加入高斯白噪声的两路信号波形。图9加入高斯白噪声的两路信号波形匹配滤波器在数字传输系统中,滤波器是不可缺少的。滤波器的一个作用是使基带信号频谱成形,例如为了满足奈奎斯特第一准则,基带信号频谱通常采用升余弦滚降形状,这一点在波形成形部分已经有了较详细的介绍。而滤波器的另一个重要作用是在接收端限制白噪声,将信号频带外的噪声滤掉,减少它对信号正确判决的影响。为了能够使滤波器输出信噪比在信息抽样时刻的信噪比最大,所以引入了匹配滤波器。假设匹配
19、滤波器的频率传递函数为,时域冲激响应为。滤波器输入为发送信号与噪声的叠加,即这里,为信号,它的频谱函数为。为白色高斯噪声,其双边功率谱密度为。滤波器的输出为其号部分为在时刻输出的信号抽样值为滤波器输出噪声的功率谱密度为平均功率为因此,时刻的输出信噪比为匹配滤波器的传递函数使达到最大。在这里利用Schwartz不等式求解,最后得到传递函数的表达式为即传递函数与信号频谱的复共轭成正比。传递函数的时域响应为匹配滤波器的最大输出信噪比为其中,为观察间隔的信号能量。具体到这个通信系统中,由于信号的时域响应为其中是平方根升余弦滤波器的冲激响应。结合上式可以得到匹配滤波器实质上是一个具有与发射端的基带成形滤
20、波器一样的滚降系数的平方根升余弦滤波器。接收端的“匹配滤波”是针对发射端的成形滤波而言,与成形滤波相匹配实现了数字通信系统的最佳接收。它与基带成形滤波器共同构成了一个奈奎斯特滤波器。源代码同平方根升余弦滤波器的源代码一样。信号通过匹配滤波器后的波形如图10所示图10经过匹配滤波器后的波形从上边的波形可以看出来,经过匹配滤波器后的信号明显很平滑,这正好反映了低通滤波器的特性,滤掉了高频分量,为了明显的反映这一特点,将一段高斯白噪声经过匹配滤波器。波形对比如图11所示。图11高斯白噪声经过匹配滤波器后的波形经过仿真,发现高斯白噪声经过一个平方根滤波器后方差保持不变。因此在加入高斯噪声时给定的信噪比
21、需要有一定的修正,即要保证在信息点上的信噪比为给定的值。我们知道,当给定snr时,需要加入的高斯噪声的功率谱密度,其中,在具体使用AWGN函数时,snr值是建立在当前输入信号的平均功率的基础上的,所以。采样由于从匹配滤波器出来的信号的点数8倍于原来信息的点数,为了恢复出原信号,所以需要对该信号进行采样。从匹配滤波器出来时,首先要剔除卷积过程中冗余的点,接着抽取现在信号中的第1个,第9个,第8k1个点,源代码如下:function y1,y2=pick_sig(x1,x2,ratio)y1=x1(ratio*3*2+1:ratio:length(x1);y2=x2(ratio*3*2+1:rat
22、io:length(x1);将这时的数据画到星座图上。图12信噪比为10db时的星座图判决解调经过前边的匹配滤波器解调或者称为相关解调产生了一组向量,在这里就是一个一维的向量,根据最大后验概率(MAP)准则(由于各个信号的先验概率相等,所以页可以认为是最大似然准则),得到了最小距离检测。具体在本仿真系统中,判断为各个信号的门限如表2所示。判决后得到的数据再按照格雷码的规则还原成0、1信号,最终将两路0、1信号合成一路0、1信号,用来同最初的信号一起决定误码率。表2判决电平对应表判决前的信号的幅度对应的判决后的幅度3113源代码如下function y=demodulate_sig(x1,x2)
23、%对x1路信号进行判决xx1(find(x1=2)=3;xx1(find(x1=0)=1;xx1(find(x1=-2)&(x10)=-1;xx1(find(x1=2)=3;xx2(find(x2=0)=1;xx2(find(x2=-2)&(x20)=-1;xx2(find(x2-2)=-3;%将x1路信号按格雷码规则还原成0、1信号temp1=zeros(1,length(xx1)*2);temp1(find(xx1=-1)*2)=1;temp1(find(xx1=1)*2-1)=1;temp1(find(xx1=1)*2)=1;temp1(find(xx1=3)*2-1)=1;%将x2路信
24、号按格雷码规则还原成0、1信号temp2=zeros(1,length(xx2)*2);temp2(find(xx2=-1)*2)=1;temp2(find(xx2=1)*2-1)=1;temp2(find(xx2=1)*2)=1;temp2(find(xx2=3)*2-1)=1;%将两路0、1信号合成一路y=zeros(1,length(temp1)*2);y(1:2:length(y)=temp1;y(2:2:length(y)=temp2;误码率曲线将解调后的数据同原始数据相比较,得到该信噪比下所对应的误码率。为了得到误码率曲线,需要得到在不同的信噪比下的误码率。在仿真的过程中,假设要得
25、到一个值得信赖的误码率数据点,至少需要在最后的数据比较的过程中得到100个错误,那么参与仿真的数据点就应该是误码率的倒数乘以100,为了提高程序的效率,首先计算出某个信噪比对应的理论的误码率,然后估计出待仿真的点数。对于16QAM信号星座图等效为在两个正交载波上的两个PAM信号,其中每一个具有4个信号点。因为在解调器中可以将相位正交的两个信号分量完全分开,所以QAM的错误概率可以由PAM的错误概率求得。16QAM系统的正确判决概率是式中,是4元PAM的错误概率,在等效QAM系统的每一个正交信号中,4元PAM具有一半的平均功率,通过适当的修改4元PAM的错误概率,可以得到其中是平均符号SNR。因
26、此,16QAM的错误概率是具体的源代码如下:clear;%用来仿真QAM的误bit率snr=1:1:11;%先来计算理论误bit率error_theory=(1-(1-(2*(1-1/sqrt(16)*1/2*erfc(1/sqrt(2)*sqrt(3*4*10.(snr/10)/(16-1).2)/4;%用理论的误bit率来决定需要仿真的点数N=floor(1./error_theory)*1000+100;N(find(N5000)=5000;%开始仿真global p;for i=1:length(N); %首先产生随机二进制序列 source=randsrc(1,N(i),1,0;p,
27、1-p); %对产生的二进制序列进行QAM调制 source1,source2=Qam_modulation(source); %插值 sig_insert1=insert_value(source1,8); sig_insert2=insert_value(source2,8); source1,source2=rise_cos(sig_insert1,sig_insert2,0.25,2); %=将滤波后的信号加入高斯白噪声 x1,x2=generate_noise(source1,source2,snr(i); %x1,x2=generate_noise(source1,source2,
28、snr(i); sig_noise1=x1; sig_noise2=x2; sig_noise1,sig_noise2=rise_cos(sig_noise1,sig_noise2,0.25,2); x1,x2=pick_sig(sig_noise1,sig_noise2,8); sig_noise1=x1; sig_noise2=x2; %解调 signal=demodulate_sig(sig_noise1,sig_noise2); %计算误bit率 error_bit(i)=length(find(signal-source)=0)/N(i);end;%画出图形semilogy(snr,
29、error_bit,-b);hold onsemilogy(snr,error_theory,-r)误码率曲线图如图 所示。从图上可以看到当信噪比小的情况下,仿真曲线和理论曲线差距略大,而随着信噪比的增大,仿真曲线越来越逼进理论曲线。简单分析不难看出,由于理论误码率曲线是建立在误符号率除以4的基础上的,而这一条件的前提是出现误符号的时候,一个符号中只有一个bit位发生了错误,这表明误码率比较低,也就是说明信噪比比较大。所以,当信噪比比较小的时候,理论计算的误码率的值要小于仿真得到的值。图13 误码率曲线图整体程序构架前面给出的分别是每一个模块对应的函数,下面的程序表示如何将上边的各个模块连接起
30、来。clear;%=定义待仿真序列的维数 Nglobal NN=320;%=定义产生1的概率为 pglobal pp=0.5;%=%首先产生随机二进制序列source=randsrc(1,N,1,0;p,1-p);%=%对产生的二进制序列进行QAM调制source1,source2=Qam_modulation(source);%=%画出星座图figure(1);plot_astrology(source1,source2);%=%两路信号进行插值sig_insert1=insert_value(source1,8);sig_insert2=insert_value(source2,8);%=
31、%画出两路信号的波形图figure(2);plot_2way(sig_insert1,sig_insert2,length(sig_insert1),0.5);title(两路信号的波形图);%=%通过低通滤波器sig_rcos1,sig_rcos2=rise_cos(sig_insert1,sig_insert2,0.25,2);%=%画出两路信号的波形图figure(3);plot_2way(sig_rcos1,sig_rcos2,length(sig_rcos1)/4,0.5);title(通过低通滤波器后两路信号波形图);%stem_2way(sig_insert1,sig_inser
32、t2,length(sig_insert1)/4,0.5);%=%=将基带信号调制到高频上t,sig_modulate=modulate_to_high(sig_rcos1,sig_rcos2,0.25,2.5);figure(4);plot(t(1:500),sig_modulate(1:500);%=%=将滤波后的信号加入高斯白噪声snr=10;x1,x2=generate_noise(sig_rcos1,sig_rcos2,snr);sig_noise1=x1;sig_noise2=x2;end;figure(5)plot_2way(sig_noise1,sig_noise2,lengt
33、h(sig_noise1)/4,0.5);%=%=经过匹配滤波器% x1,x2=match_flt(sig_noise1,sig_noise2,0.25,2);% sig_match1=x1;% sig_match2=x2;sig_match1,sig_match2=rise_cos(sig_noise1,sig_noise2,0.25,2);figure(6);plot_2way(sig_match1,sig_match2,length(sig_match1)/4,0.5);%=%采样x1,x2=pick_sig(sig_match1,sig_match2,8);sig_pick1=x1;s
34、ig_pick2=x2;%画出星座图figure(7)plot_astrology(sig_pick1,sig_pick2);%解调signal=demodulate_sig(sig_pick1,sig_pick2);%画出误码率曲线图figure(8)plot_snr;讨论信噪比修正前边提到了在加入高斯白噪声时,需要对信噪比(SNR)进行修正。由于接收滤波器是线性的,根据随即过程理论的知识,高斯随机过程的线性变换仍然是高斯随机过程,因此滤波器的输出噪声也是高斯的。下面来计算通过平方根升余弦滤波器后的高斯噪声的方差: 其中是升余弦滤波器的频域响应。有升余弦滤波器的定义可以知道,所以。也就是通过平方根升余弦滤波器后的高斯白噪声的平均功率保持不变。仿真曲线在
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年版企业融资合同范本
- 化学专业培训课件
- 企业财税知识
- 功能性肠病的健康宣教
- 公寓天花吊顶合同标准文本
- 个人雇佣合同标准文本标准文本
- 企业贸易合同标准文本
- 储值卡服务合同标准文本
- 临时超过租房合同范例
- 2025环保能源项目BOT合同
- 《比较不同的土壤》-完整版课件
- 2021年温二高、瓯海中学、龙湾中学提前招生英语试卷
- (WORD版可修改)JGJ59-2023建筑施工安全检查标准
- DB63-T 1110-2020 青海省绿色建筑评价标准-(高清现行)
- 2022年新高考全国Ⅰ卷英语试题及参考答案
- 高血压护理查房ppt
- 锦屏二级水电站厂区枢纽工程测量方案
- 山西安全资料地标表格
- 心理学专业英语总结(完整)
- 新人教版七年级初一数学下册第一二单元测试卷
- 《电子商务法律法规》课程标准
评论
0/150
提交评论