基于matlab通信系统仿真.docx
- 文档编号:313053
- 上传时间:2022-10-08
- 格式:DOCX
- 页数:26
- 大小:338.94KB
基于matlab通信系统仿真.docx
《基于matlab通信系统仿真.docx》由会员分享,可在线阅读,更多相关《基于matlab通信系统仿真.docx(26页珍藏版)》请在冰豆网上搜索。
基于matlab通信系统仿真
基于MATLAB的通信系统仿真
――数字通信大作业
图表
基于Matlab的通信系统仿真
――数字通信大作业
系统综述
利用Matlab仿真软件,完成如图1所示的一个基本的数字通信系统。
信号源产生0、1等概分布的随机信号,映射到16QAM的星座图上,同时一路信号已经被分成了实部和虚部,后边的处理建立在这两路信号的基础上。
实部、虚部信号分别经过平方根升余弦滤波器,再加入高斯白噪声,然后通过匹配滤波器<平方根升余弦滤波器)。
最后经过采样,判决,得到0、1信号,同原信号进行比较,给出16QAM数字系统的误码。
结构框图
图1待构建系统的框图
系统实现
随机信号的生成
利用Matlab中自带的函数randsrc来产生0、1等概分布的随机信号。
源代码如下所示:
%====定义待仿真序列的维数N
globalN
N=320。
%====定义产生‘1’的概率为p
globalp
p=0.5。
%==============================
%首先产生随机二进制序列
source=randsrc(1,N,[1,0。
p,1-p]>。
0、1等概分布的随机信号如图2所示。
图20、1等概分布的随机信号波形图
星座图映射
将等概分布的0、1信号映射到16QAM星座图上。
每四个bit构成一个码子,具体实现的方法是,将输入的信号进行串并转换分成两路,分别叫做I路和Q路。
再把每一路的信号分别按照两位格雷码的规则进行映射,这样实际上最终得到了四位格雷码。
为了清楚说明,参看表1:
表1两位格雷码的映射规律
两位0、1码
映射后<按格雷码)
00
-3
01
-1
11
1
10
3
源代码如下所示:
function[y1,y2]=Qam_modulation(x>
%QAM_modulation
%==============================
%对产生的二进制序列进行QAM调制
%=====首先进行串并转换,将原二进制序列转换成两路信号
N=length(x>。
a=1:
2:
N。
y1=x(a>。
y2=x(a+1>。
%=====分别对两路信号进行QPSK调制
%======对两路信号分别进行2-4电平变换
a=1:
2:
N/2。
temp1=y1(a>。
temp2=y1(a+1>。
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>>=3。
得到的星座图如图3所示,图上注明了每一个点对应的01序列。
图316QAM星座图
从上边的星座图上可以清楚的看到,任意相邻的两个点之间它们对应的4个bit中只有一个有差别,也就是格雷码的特点。
而采用格雷码主要目的是当信噪比较大时,也就是系统的误码率比较低的情况下,当出现一个符号错误的情况下,往往只是这个符号中的一个bit位出现了误码,因此这个情况下误码率和误bit率是4:
1,这一特性在后边的误码率计算的过程中会有应用。
插值
为了能够模拟高斯白噪声的宽频谱特性,以及为了能够显示波形生成器<平方根升余弦滤波器)的效果,所以在原始信号中间添加一些0点。
具体实现是分别在信号的I路和Q路中,任意相邻的两个码字之间添加7个0。
源代码如下所示:
functiony=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中的方波是在本地数字信号处理时常见的波形,但在实际传输时这种方波并不合适。
根据奈奎斯特第一准则,在实际通信系统中一般均使接收波形为升余弦滚降信号。
这一过程由发送端的基带成形滤波器和接收端的匹配滤波器两个环节共同实现,因此每个环节均为平方根升余弦滚降滤波,两个环节合成就实现了一个升余弦滚降滤波。
实现平方根升余弦滚降信号的过程称为“波形成形”,通过采用合适的滤波器对多元码流进行滤波实现,因为生成的是基带信号,因此这一过程又称“基带成形滤波”。
平方根升余弦滤波器的冲激响应
基带平方根升余弦滤波器具有以下定义的理论函数
其中:
是奈奎斯特平率,
是滚降系数。
下面给出平方根升余弦滤波器的冲激响应曲线,如图5所示。
图5平方根升余弦滤波器的冲激响应曲线
从上图上不难看出来,平方根升余弦滤波器的冲激响应很显然的引入了符号间干扰 然而造成这一后果的原因在于,当我们引入平方根升余弦滤波器的时候,就是认为整个信道,也就是说,包括信号发送端的滤波器和信号接收端的滤波器,总体的效果是避免了符号间干扰 经过平方根升余弦滤波器后的信号 I路和Q路信号经过平方根升余弦滤波器后,成形后的波形如图6所示。 源代码如下 %x1、x2是两路输入信号,fd是信号信息位的频率,fs是信号的采样频率 function[y1,y2]=rise_cos(x1,x2,fd,fs> %生成平方根升余弦滤波器 [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路符号传输的频率是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*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载波调制信号整体图 加入高斯白噪声 将通过成形滤波器后的信号送到具有高斯白噪声特征的加性信道中,相当于在原信号上加入高斯白噪声。 因为高斯白噪声加在了通过插值和滤波后的点上,因此在计算信噪比的时候存在一个信噪比换算的问题。 当我们把仿真得到的误码率曲线同理论的误码率曲线相比较的时候,两者的信噪比的定义必须是一致的。 一致包括两个方面,一是二者均为每bit符号上的信号功率和噪声功率的比值,另一个是信号的功率是指那些信息点上的平均功率,噪声也是指信息点上所对应的噪声的平均功率,但因为噪声的功率谱密度是一个定值,所以噪声的平均功率实际上就是噪声的功率谱密度。 对于第二点,因为所有信号的平均功率和信息点上的信号的平均功率不同,所以需要在加入高斯噪声的时候进行纠正,具体的公式推导如下。 设 是最后理论计算中的信噪比, 是加入高斯白噪声后的整体信号<包括插值后的点)的信噪比, 是每bit信息点的平均能量, 是每bit信号的平均能量, 是噪声的平均功率,现在需要推导出 与 的关系。 即两个信噪比的比值就是平均能量的比值。 源程序如下 %对输入的两路信号加高斯白噪声,返回处理后的两路信号,信息点等效bit信噪比为snr的值 function[y1,y2]=generate_noise(x1,x2,snr> %snr1代表snr对应的符号信噪比 snr1=snr+10*log10(4>。 %算出所有信号的平均功率 ss=var(x1+i*x2,1>。 %加入高斯白噪声 y=awgn([x1+j*x2],snr1+10*log10(ss/10>,'measured'>。 y1=real(y>。 y2=imag(y>。 给出加入高斯白噪声的两路信号波形。 图9加入高斯白噪声的两路信号波形 匹配滤波器 在数字传输系统中,滤波器是不可缺少的。 滤波器的一个作用是使基带信号频谱成形,例如为了满足奈奎斯特第一准则,基带信号频谱通常采用升余弦滚降形状,这一点在波形成形部分已经有了较详细的介绍。 而滤波器的另一个重要作用是在接收端限制白噪声,将信号频带外的噪声滤掉,减少它对信号正确判决的影响。 为了能够使滤波器输出信噪比在信息抽样时刻的信噪比最大,所以引入了匹配滤波器。 假设匹配滤波器的频率传递函数为 ,时域冲激响应为 。 滤波器输入为发送信号与噪声的叠加,即 这里, 为信号,它的频谱函数为 。 为白色高斯噪声,其双边功率谱密度为 。 滤波器的输出为 其中信号部分为 在 时刻输出的信号抽样值为 滤波器输出噪声的功率谱密度为 平均功率为 因此, 时刻的输出信噪比为 匹配滤波器的传递函数使 达到最大。 在这里利用Schwartz不等式求解,最后得到传递函数的表达式为 即传递函数与信号频谱的复共轭成正比。 传递函数的时域响应为 匹配滤波器的最大输出信噪比为 其中, 为观察间隔内的信号能量。 具体到这个通信系统中,因为信号的时
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 matlab 通信 系统 仿真