基于matlab的M-QAM通信系统的仿真
基于matlab的M-QAM通信系统仿真

课程设计任务书学生班级:通信0802班学生姓名:学号:设计名称:基于matlab的M-QAM通信系统的仿真课程设计学生日志课程设计考勤表课程设计评语表基于matlab的M-QAM通信系统的仿真一、设计目的和意义从信号平面自用率方面看,单独使用幅度或相位携带信息时,不能最充分地利用信号平面。
而M-QAM调制则正是解决这一问题的一种调制方式,采用幅度相位相结合的调制方式,可以使同样大的信息平面内有更多的信息点。
从抗干扰方面看,在星座图上,采用M-QAM调制的信息的各点的距离要大于采用其它调制的,由星座图上点的特性可知,距离越大,抗干扰能力越强,所以在抗干扰能力方面,QAM调制也优于其它几种调制方式。
由上可知,在现代数字通信系统中,幅度与相位相结合的多进制调制有着重要的意义,并且运用也日益广泛。
二、设计原理本设计中所采用的16QAM为16进制的幅度相位相结合调制。
16QAM 是用两路独立的正交4ASK 信号叠加而成,4ASK 是用多电平信号去键控载波而得到的信号。
它是2ASK 体制的推广,和2ASK 相比,这种体制的优点在于信息传输速率高。
其星座图如图1所示。
图1 16QAM矩形星座图进制的正交振幅调制是一种振幅相位联合键控信号。
16QAM 的产生有 2 种方法:(1)正交调幅法,它是有 2 路正交的四电平振幅键控信号叠加而成;(2)复合相移法:它是用 2 路独立的四相位移相键控信号叠加而成。
16QAM 信号采取正交相干解调的方法解调,解调器首先对收到的16QAM 信号进行正交相干解调,一路与cos ω c t 相乘,一路与sin ω c t 相乘。
然后经过低通滤波器,低通滤波器LPF 滤除乘法器产生的高频分量,获得有用信号,低通滤波器LPF 输出经抽样判决可恢复出电平信号。
在本次设计中,16QAM的调制和解调均调用matlab中的QAM专用调制解调函数qammod()和qamdemod()。
其中qammod()用于QAM调制,qamdemod()用于QAM解调。
基于MATLAB的M-QAM数字基带通信系统仿真报告

基于MATLAB的M-QAM数字基带通信系统仿真报告学院:电光学院专业:姓名:学号:题目要求:Please use Matlab programming to implement some digital baseband communication systems , and plot the BEF(bit error probability) versus Eb/N0(from -5dB to 20dB) curves for 4QAM , 16QAM(one person)一、设计目的和意义随着现代通信技术的发展,特别是移动通信技术高速发展,频带利用率问题越来越被人们关注。
在频谱资源非常有限的今天,传统通信系统的容量已经不能满足当前用户的要求。
正交幅度调制QAM(Quadrature Amplitude Modulation)以其高频谱利用率、高功率谱密度等优势,成为宽带无线接入和无线视频通信的重要技术方案。
从信号平面自用率方面看,单独使用幅度或相位携带信息时,不能最充分地利用信号平面。
而M-QAM调制则正是解决这一问题的一种调制方式,采用幅度相位相结合的调制方式,可以使同样大的信息平面内有更多的信息点。
从抗干扰方面看,在星座图上,采用M-QAM调制的信息的各点的距离要大于采用其它调制的。
由星座图上点的特性可知,距离越大,抗干扰能力越强,所以在抗干扰能力方面,QAM调制也优于其它几种调制方式。
由上可知,在现代数字通信系统中,幅度与相位相结合的多进制调制有着重要的意义,并且运用也日益广泛。
MATLAB是一种编程语言和可视化工具,它能对数据以图形的方式显示出来,使数据间的关系明了MATLAB所包含的应用工具箱的功能非常丰富,提供SIMULINK 是一个用来对动态系统进行建模、仿真和分析的软件包,支持线性和非线性系统,能够在连续时间域、离散时间域或者两者的混合时间域里进行建模,其中通信系统工具箱中包含了对通信系统进行分析和仿真所需的信源编码、纠错编码、信道、调制解调以及其他所用的库函数和模块。
利用MATLAB软件仿真PM通信系统

摘要在通信技术的发展中,通信系统的仿真技术是一个技术重点。
本文将着重讨论模拟通信系统中的调制解调系统的基本原理以及抗噪声性能,并在MA TLAB软件平台上仿真实现几种常见的模拟调制方式。
最常用最重要的模拟调制方式是用正弦波作为载波的幅度调制和角度调制。
常见的调幅(AM)、双边带(DSB)、残留边带(VSB)和单边带(SSB)等调制就是幅度调制的几个典型实例;而频率调制(FM)就是角度调制中被广泛采用的一种。
在线性调制系统中,文中将以调幅(AM)、双边带(DSB)和单边带(SSB)为说明对象,从原理等方面进行分析阐述并进行仿真分析;而在非线性调制中,以常用的调频(FM)和调相(PM)为说明对象,说明其调制原理,并进行举例仿真分析。
利用MATLAB对模拟调制系统进行仿真,将结合MATALB模块和Simulink工具箱的实现,并对仿真结果进行分析,从而更深入地掌握模拟调制系统的相关知识。
关键词MATLAB 模拟通信系统调制解调仿真频谱分析信噪比Title Based on MATLAB analog modulation system simulationAbstractIn the development of communication technology, communication system simulation technology is a technical focus. This paper will focus on simulation of communication systems in the modem system and the basic principles of anti-noise performance and MATLAB simulation software platform to achieve some common analog modulation. The most important of the most commonly used analog modulation is the sine wave as a carrier perspective modulation and amplitude modulation. Common AM (AM), with bilateral (DSB), residual sideband (VSB) and single sideband (SSB) modulation, and so is the amplitude modulation of a few typical examples, and frequency modulation (FM) modulation in the point of view is widely used. Modulation of the online system, the text will be AM (AM), with bilateral (DSB) and single sideband (SSB) for that object, from the basic principles, and other aspects of analysis and simulation analysis on while in nonlinear Modulation, as commonly used FM (FM) and Phase Modulation (PM) for that target on its modulation principle, for example simulation and analysis. MATLAB simulation of the modulation system simulation, will combine MA TALB model block and Simulink toolbox the realization of the analysis and simulation results, thus better grasp of the analog modulation system knowledge.Key Words MATLAB simulation of communication systems modem simulation spectrum analysis SNR一、利用MATLAB软件仿真PM通信系统。
基于Matlab的AM通信系统仿真

基于Matlab的AM通信系统仿真徐幸然;程铃【摘要】The problems existing in the experiment teaching of communication course are analyzed. The Matlab simulation is put forward to make up the lack of experiment equipments in laboratory. The two simulation models based on coherent demodulator and envelope detection were set up for the AM communication system with Matlab's Simulink toolbox. The setting-up criteria of simulation parameters are described in detail. The analysis of simulation results indicate that the simulation results are identical to theoretical ones. The main innovation points of this paper are as follows: AM system comprises two simulation methodsf the simulation models are very simple, the simulation methods of the communication system established with Simulink toolbox are fully presented, and an approach is proposed for simulation research of communication systems.%分析当前通信类课程实验教学存在的问题,提出采用Matlab仿真来弥补实验室实验设备等的不足.利用Matlab的Simulink工具葙建立AM系统的两种仿真模型,包括基于相干解调和包络检波的AM仿真模型,详细叙述模块参数的设置,分析仿真结果,仿真结果与理论结果一致.创新之处在于AM系统的仿真采用两种方法,仿真模型简单,充分展示了Simulink工具葙仿真通信系统的基本方法,为通信系统的仿真研究指出了一个方法.【期刊名称】《现代电子技术》【年(卷),期】2012(035)012【总页数】3页(P114-115,118)【关键词】Simulink;AM;仿真模型;相干解调;包络检波【作者】徐幸然;程铃【作者单位】南京信息工程大学,江苏南京 210044;南京信息工程大学,江苏南京210044【正文语种】中文【中图分类】TN914.3-340 引言Matlab是一套功能强大的工程数值运算和系统仿真软件,其内部的通信、射频、滤波、信号处理和小波分析等工具箱提供了各种函数库、模块库可以直接调用。
M—QAM通信系统及matlab的仿真

五.M-QAM在有线电视网的应用
■ 目前应用的比较广泛的是基于有线电视网络的 Cable Modem系统,其基本架构如图所示。有线 电视网络通过Cable Modem终端系统(CMTS)与 互联网络连接。
■ 对应于各种可能的符号数M,有两种不同的 QAM星座图,当每个符号对应于偶数个比特 时,星座图是正方形的;当每个符号对应于 奇数个比特时,星座图是十字行的。
1.QAM正方形星座图
当每个符号对应于偶数个比特时,有 其中,L为正整数。对于具有正方形星座图QAM, 有序坐标对通常构成一个正方形的矩阵
在实际中,常用的一种QAM信号空间如图, 方形QAM,4QAM,16QAM,64QAM
■ 在接收端,输入信号与本地恢复的两个正 交载波信号相乘以后,经过低通滤波器、多 电平判决、L电平到2电平变换,再经过并/串 变换就得到输出数据。
三.QAM的星座图
■ 对于QAM调制而言,如何设计QAM信号的结 构不仅影响到已调信号的功率谱特性,而且 影响已调信号的解调及其性能。因而研究 QAM的星座图来设计信号的结构显得十分重 要。
QAM中的振幅Am和Bm,可以表示成: Am=dmA,Bm=emA
式中,A是固定的振幅,(dm,em)决定已 调QAM信号在信号空间中的坐标点
二.QAM的调制和相干解调
■ QAM的调制和相干解调如图一。在调制端, 输入数据经过串/并变换后分为两路,分别经 过2电平到L电平的变换,形成Am和Bm,之后 Am和Bm经过调制低通滤波器,与相互正交的各 路载波相乘。最后将两个信号相加就可以得 到已调输出信号y(t).
QAM调制解调的仿真实现报告-

一、设计任务任务:使用 MATLAB 软件,实现对 QAM 系统调制与解调过程的仿真,并分析系统的可靠性。
二、实验内容(1)对原始信号分别进行 4QAM 和 16QAM 调制,画出星座图;(2)采用高斯信道传输信号,画出信噪比为 13dB 时,4QAM 和 16QAM 的接收信号星座图;(3)画出两种调制方式的眼图;(4)解调接收信号,分别绘制 4QAM 和 16QAM 的误码率曲线图,并与理论值进行对比;(5)提交详细的设计报告和实验报告。
三、设计原理QAM 调制原理:QAM 调制是把 2ASK 和 2PSK 两种调制技术结合起来的一种调制技术,使得带宽得到双倍扩展。
QAM 调制技术用两路独立的基带信号对频率相同、相位正交的两个载波进行抑制载波双边带调幅,并将已调信号加在一起进行传输。
nQAM 代表 n 个状态的正交调幅,一般有二进制(4QAM)、四进制(16QAM)、八进制(64QAM)。
我们要得到多进制的 QAM 信号,需将二进制信号转换为 m 电平的多进制信号,然后进行正交调制,最后相加输出。
正交调制及相干解调原理框图如下:QAM 调制说明:MQAM 可以用正交调制的方法产生,本仿真中分别取 M=16 和 4。
M=16 时,进行的是幅度和相位相结合的 16 个信号点的调制。
M=4 时,进行的是幅度和相位相结合的 4 个信号点的调制。
为了观察信道噪声对该调制方式的影响,我们在已调信号中又加入了不同强度的高斯白噪声,并统计其译码误码率。
为了简化程序和得到可靠的误码率,我们在解调时并未从已调信号中恢复载波,而是直接产生与调制时一模一样的载波来进行信号解调。
四、实验步骤:(1)我们整个代码编写为 MQAM 格式,在刚开始时,会询问选择 4QAM 还16QAM,然后开始运行。
(2)首先生成一个随机且长度为 n*k 的二进制比特流。
(3)在 MATLAB 中 16QAM 调制器要求输入的信号为 0~M-1 这 1M 个值,所以需要用函数 reshape 和 bi2de 将二进制的比特流转换为对应的十进制这 M 个值。
正交幅度调制(QAM)及解调Matlab仿真

正交幅度调制(QAM)及解调Matlab仿真实验目的:1.掌握QAM及解调原理与特性;2.了解星座图的原理及用途。
实验内容:1.编写MATLAB程序仿真QAM及相干解调;2.观察I、Q两路基带信号的特征及与输入NRZ码上网关系;3.观察I、Q调制过程中信号的变化;4.观察星座图在不同噪声环境下的变化;5.分析仿真中观察的数据,撰写实验报告。
仿真代码:function project(N,p)%N为待仿真序列的长度%p为产生1的概率%======================%首先产生随机二进制序列N=input('输入二进制序列的长度:N=');p=input('输入产生1的概率:');source=randsrc(1,N,[1,0;p,1-p]);figure(1);stem(source);axis([1 N -1 2]);%对产生的二进制序列进行QAM调制[source1,source2]=Qam_modulation(source);%===============================%画出星座图figure(2);plot_astrology(source1,source2);%==============================%两路信号进行插值(8倍过采样)sig_insert1=insert_value(source1,8);sig_insert2=insert_value(source2,8);%================================%画出两路信号的波形图figure(3);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(4);plot_2way(sig_rcos2,sig_rcos2,length(sig_rcos1)/4,0.5);title('通过低通滤波器后两路信号波形图')hold onstem_2way(sig_insert1,sig_insert2,3,0.25,2,length(sig_rcos1)/4); %================================%将基带信号调制到高频上[t,sig_modulate]=modulate_to_high(sig_rcos1,sig_rcos2,0.25,2.5); figure(5);plot(t(1:500),sig_modulate(1:500));title('载波调制信号图');%================================%将滤波后的信号加入高斯噪声snr=10;[x1,x2]=generate_noise(sig_rcos1,sig_rcos2,snr);sig_noise1=x1';sig_noise2=x2';figure(6);plot_2way(sig_noise1,sig_noise2,length(sig_noise1)/4,0.5);title('加入高斯白噪声后的两路信号波形');%================================%经过匹配滤波器[sig_match1,sig_match2]=rise_cos(sig_noise1,sig_noise2,0.25,2); figure(7);plot_2way(sig_match1,sig_match2,length(sig_match1)/4,0.5); title('经过匹配滤波器后');%================================%采样[x1,x2]=pick_sig(sig_match1,sig_match2,8);sig_pick1=x1;sig_pick2=x2;%画出星座图figure(8)plot_astrology(sig_pick1,sig_pick2);%================================%解调signal=demodulate_sig(sig_pick1,sig_pick2);r=signal;%画出解调后的信号figure(9);stem(r);axis([1 N -1 2]);demodulate_sigfunction y=demodulate_sig(x1,x2)%解调xx1(find(x1>=2))=3;xx1(find((x1<2)&(x1>=0)))=1;xx1(find((x1>=-2)&(x1<0)))=-1;xx1(find(x1<-2))=-3;xx2(find(x2>=2))=3;xx2(find((x2<2)&(x2>=0)))=1;xx2(find((x2>=-2)&(x2<0)))=-1;xx2(find(x2<-2))=-3;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;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;n=length(temp1);for i=1:2:2*n-1y(i)=temp1((i+1)/2);y(i+1)=temp2((i+1)/2);endgenerate_noisefunction [y1,y2]=generate_noise(x1,x2,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);insert_valuefunction y=insert_value(x,ratio)%对两路信号进行插值y=zeros(1,ratio*length(x));a=1:ratio:length(y);y(a)=x;modulate_to_highfunction [t,y]=modulate_to_high(x1,x2,f,hf)yo1=zeros(1,length(x1)*hf/f*10);yo2=zeros(1,length(x1)*hf/f*10);n=1:length(yo1);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);pick_sigfunction [y1,y2]=pick_sig(x1,x2,ratio)%采样y1=x1(ratio*3*2+1:ratio:(length(x1)-ratio*3*2)); y2=x2(ratio*3*2+1:ratio:(length(x2)-ratio*3*2));plot_2wayfunction plot_2way(x1,x2,len,t)%绘制正交信号图subplot(2,1,2);plot((1:len)*t,x2(1:len));axis([0 len*t -4 4]);hold on;plot((1:len)*t,x2(1:len),'.','Color','red');hold off;xlabel('虚部信号');subplot(2,1,1);plot((1:len)*t,x1(1:len));axis([0 len*t -4 4]);hold onplot((1:len)*t,x1(1:len),'.','Color','red');xlabel('实部信号');hold offplot_astrologyfunction plot_astrology(a,b)%画出星座图subplot(1,1,1);plot(a,b,'+');axis([-5 5 -5 5]);line([-5,5],[0,0],'LineWidth',3,'Color','red'); line([0,0],[-5,5],'LineWidth',3,'Color','red'); title('QAM星座图');Qam_modulationfunction [yy1, yy2]=Qam_modulation(x) N=length(x);a=1:2:N;y1=x(a);y2=x(a+1);a=1:2:N/2;temp11=y1(a);temp12=y1(a+1);y11=temp11*2+temp12;temp21=y2(a);temp22=y2(a+1);y22=temp21*2+temp22;yy1(find(y11==0))=-3;yy1(find(y11==1))=-1;yy1(find(y11==3))=1;yy1(find(y11==2))=3;yy2(find(y22==0))=-3;yy2(find(y22==1))=-1;yy2(find(y22==3))=1;yy2(find(y22==2))=3;endrise_cosfunction [y1,y2]=rise_cos(x1,x2,fd,fs)%升余弦滤波[yf,tf]=rcosine(fd,fs,'fir/sqrt');[yo1,to1]=rcosflt(x1,fd,fs,'filter/Fs',yf); [yo2,to2]=rcosflt(x2,fd,fs,'filter/Fs',yf);y1=yo1;y2=yo2;stem_2wayfunction stem_2way(x1,x2,delay,fd,fs,len)subplot(2,1,1)hold onstem(((1:len)+fs/fd*3)/fs,x1(1:len));subplot(2,1,2)hold onstem(((1:len)+fs/fd*3)/fs,x2(1:len));实验结果:>> project输入二进制序列的长度:N=200输入产生1的概率:0.820406080100120140160180200-1-0.50.511.52-5-4-3-2-1012345-5-4-3-2-112345QAM 星座图020406080100120140160180200-4-224虚部信号020406080100120140160180200-4-224实部信号两路信号波形01020304050-4-224虚部信号01020304050-4-224实部信号通过低通滤波器后两路信号波形图00.51 1.52 2.53 3.54 4.55-0.01-0.008-0.006-0.004-0.0020.0020.0040.0060.0080.01载波调制信号图01020304050-4-224虚部信号01020304050-4-224实部信号加入高斯白噪声后的两路信号波形0102030405060-4-224虚部信号0102030405060-4-224实部信号经过匹配滤波器后-5-4-3-2-1012345-5-4-3-2-112345QAM 星座图20406080100120140160180200-1-0.50.511.52。
QAM仿真代码(matlab)

QAM仿真代码(matlab)% 16QAM 系统仿真function [ ber_AWGN,ber_Ray] = M16QAM()EbN0dB=1:3:30。
EbN0dB1=1:10。
N=4*100000。
for ii=1:length(EbN0dB)sigma2(ii)=2.5/(2*4*(10^(EbN0dB(ii)/10)))。
sigma21(ii)=2.5/(2*4*(10^(EbN0dB1(ii)/10)))。
bits=randint(1,N)。
%调制s=M16QAM_modulate(bits,length(bits(:)))。
% Rayleign信道干扰noise=sqrt(sigma2(ii))*( randn(1,N/4)+ 1i*randn(1,N/4) )。
h= sqrt(0.5)*(randn(1,N/4) + 1i*randn(1,N/4) )。
receiver=s.*h+noise。
%Rayleign 衰减信道% 高斯信道干扰noise1=sqrt(sigma21(ii))*( randn(1,N/4)+ 1i*randn(1,N/4) )。
receiver1=s+noise1。
%高斯信道% 信道均衡receiver = receiver./h。
%解调并计算误码率Rayleign信道demodata = M16QAM_demodulate( receiver,length(receiver(:)) )。
errCount=sum(abs(bits-demodata))。
ber_Ray(ii)=errCount/N。
%解调并计算误码率高斯信道demodata = M16QAM_demodulate( receiver1,length(receiver1(:)) )。
errCount=sum(abs(bits-demodata))。
ber_AWGN(ii)=errCount/N。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计学生日志课程设计考勤表课程设计评语表基于matlab的M-QAM通信系统的仿真一、设计目的和意义(1)通过仿真进一步掌握M-QAM调制及解调的原理;(2)学会用matlab编程对通信系统进行仿真;(3)学会用理论知识去分析结果。
二、设计原理利用Matlab仿真软件,完成如图1所示的一个基本的数字通信系统。
信号源产生0、1等概分布的随机信号,映射到16QAM的星座图上,同时一路信号已经被分成了I路和Q路,后边的处理建立在这两路信号的基础上。
I路和Q路信号分别经过平方根升余弦滤波器,再加入高斯白噪声,然后通过匹配滤波器(平方根升余弦滤波器)。
最后经过采样,判决,得到0、1信号,同原信号进行比较,给出16QAM数字系统的误码。
图1三、详细设计步骤随机信号的生成利用Matlab中自带的函数randsrc来产生0、1等概分布的随机信号。
源代码如下所示:global NN=300;global pp=0.5;source=randsrc(1,N,[1,0;p,1-p]);星座图映射将等概分布的0、1信号映射到16QAM星座图上。
每四个bit构成一个码子,具体实现的方法是,将输入的信号进行串并转换分成两路,分别叫做I路和Q路。
再把每一路的信号分别按照两位格雷码的规则进行映射,这样实际上最终得到了四位格雷码。
为了清楚说明,参看表1表1 两位格雷码的映射规律源代码如下所示: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;插值为了能够模拟高斯白噪声的宽频谱特性,以及为了能够显示波形生成器(平方根升余弦滤波器)的效果,所以在原始信号中间添加一些0点。
具体实现是分别在信号的I 路和Q路中,任意相邻的两个码字之间添加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;波形成形(平方根升余弦滤波器)为了避免相邻传输信号之间的串扰,多元符号需要有合适的信号波形。
图1中的方波是在本地数字信号处理时常见的波形,但在实际传输时这种方波并不合适。
根据奈奎斯特第一准则,在实际通信系统中一般均使接收波形为升余弦滚降信号。
这一过程由发送端的基带成形滤波器和接收端的匹配滤波器两个环节共同实现,因此每个环节均为平方根升余弦滚降滤波,两个环节合成就实现了一个升余弦滚降滤波。
实现平方根升余弦滚降信号的过程称为“波形成形”,通过采用合适的滤波器对多元码流进行滤波实现,由于生成的是基带信号,因此这一过程又称“基带成形滤波”。
平方根升余弦滤波器的冲激响应基带平方根升余弦滤波器具有以下定义的理论函数⎪⎪⎩⎪⎪⎨⎧=⎥⎦⎤⎢⎣⎡-+==0)()||(2sin2121)(1)(21f H f f f f H f H N N απ )1(||)1(||)1()1(||αααα+>+≤≤--<f f f f f f f 当当当 其中:221s s N R T f ==是奈奎斯特平率,α是滚降系数。
下面给出平方根升余弦滤波器的冲激响应曲线,如图2所示。
图2 平方根升余弦滤波器的冲激响应曲线从上图上不难看出来,平方根升余弦滤波器的冲激响应很显然的引入了符号间干扰(ISI )即它的冲激响应在相邻的抽样点上的值并不象升余弦滤波器那样恒为0。
然而造成这一后果的原因在于,当我们引入平方根升余弦滤波器的时候,就是认为整个信道,也就是说,包括信号发送端的滤波器和信号接收端的滤波器,总体的效果是避免了符号间干扰(ISI ),所以,单独看这每一个滤波器,勿庸置疑,它们都是存在着符号间干扰(ISI )的。
经过平方根升余弦滤波器后 源代码如下:%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倍于原频率的载波上。
由于在仿真的过程中,只能用离散的点来模拟连续信号,因而为了能够显示出一个正弦曲线,至少需要在一个正弦周期内采样到4个以上的点,这里,我们在一个周期内采10个点。
假设最初的0、1信号的频率是1Hz ,那么I 路和Q 路符号传输的频率是1/4Hz ,而10倍频是建立在I 路或Q 路符号频率的基础上,也就是说,载频的频率是2.5Hz 。
按照前面的假设,那么相邻两个采样点之间的时间间隔是0.04s 。
而一个完整周期内的正弦波形的幅值是相同的,都是对应的这个周期内的I 路和Q 路线性叠加,调制后的信号为,t f t Q t f t I t y c c ππ2sin )(2cos )()(-= 其中,c f 为载波频率。
源代码如下:%载波调制%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); 加入高斯白噪声将通过成形滤波器后的信号送到具有高斯白噪声特征的加性信道中,相当于在原信号上加入高斯白噪声。
由于高斯白噪声加在了通过插值和滤波后的点上,因此在计算信噪比的时候存在一个信噪比换算的问题。
当我们把仿真得到的误码率曲线同理论的误码率曲线相比较的时候,两者的信噪比的定义必须是一致的。
一致包括两个方面,一是二者均为每bit 符号上的信号功率和噪声功率的比值,另一个是信号的功率是指那些信息点上的平均功率,噪声也是指信息点上所对应的噪声的平均功率,但由于噪声的功率谱密度是一个定值,所以噪声的平均功率实际上就是噪声的功率谱密度。
对于第二点,由于所有信号的平均功率和信息点上的信号的平均功率不同,所以需要在加入高斯噪声的时候进行纠正,具体的公式推导如下。
设SNR 是最后理论计算中的信噪比,'SNR 是加入高斯白噪声后的整体信号(包括插值后的点)的信噪比,Eb 是每bit 信息点的平均能量,'Eb 是每bit 信号的平均能量,No 是噪声的平均功率,现在需要推导出SNR 与'SNR 的关系。
⎪⎩⎪⎨⎧==''SNR No Eb SNR No Eb⇒ Eb Eb SNR SNR ''=; 即两个信噪比的比值就是平均能量的比值。
源程序如下:%对输入的两路信号加高斯白噪声,返回处理后的两路信号,信息点等效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);给出加入高斯白噪声的两路信号波形。
匹配滤波器在数字传输系统中,滤波器是不可缺少的。
滤波器的一个作用是使基带信号频谱成形,例如为了满足奈奎斯特第一准则,基带信号频谱通常采用升余弦滚降形状,这一点在波形成形部分已经有了较详细的介绍。
而滤波器的另一个重要作用是在接收端限制白噪声,将信号频带外的噪声滤掉,减少它对信号正确判决的影响。
为了能够使滤波器输出信噪比在信息抽样时刻的信噪比最大,所以引入了匹配滤波器。
假设匹配滤波器的频率传递函数为)(f H ,时域冲激响应为)(t h 。
滤波器输入为发送信号与噪声的叠加,即)()()(t n t S t x +=这里,)(t S 为信号,它的频谱函数为)(f S 。
)(t n 为白色高斯噪声,其双边功率谱密度为2n 。
滤波器的输出为 )()]()([)(t h t n t S t y *+=其中信号部分为⎰∞∞-=*=df e f H f S t h t S t y ft j S π2)()()()()(在T t =时刻输出的信号抽样值为⎰∞∞-=df e f H f S T y fT j S π2)()()(滤波器输出噪声的功率谱密度为2|)(|)()(0f H f F f F n n =平均功率为⎰∞∞-=df f H f F N n 20|)(|)(0因此,T t =时刻的输出信噪比为⎰⎰∞∞-∞∞-=df f H f F df e f H f S SNR n fT j 22|)(|)(|)()(|π匹配滤波器的传递函数使SNR 达到最大。