1、 目录1 课程设计的目的02 教学要求03 设计内容04 设计内容介绍05 设计过程11仿真模型12软件设计:13仿真调试:16.1随机信号16-QAM的传输与仿真数字通信系统26.2 M=8、16、32、64时的QAM系统误码率比较71 课程设计的目的 本次课程设计是根据“通信工程专业培养计划”要求而制定的。综合课程设计是通信工程专业的学生在学完所有专业课后进行的综合性课程设计。其目的在于使学生在课程设计过程中能够理论联系实际,在实践中充分利用所学理论知识分析和研究设计过程中出现的各类技术问题,巩固和扩大所学知识面,为以后走向工作岗位进行设计打下一定的基础。课程设计的任务是(1)掌握一般通信
2、系统设计的过程、步骤、要求、工作内容及设计方法;掌握用计算机仿真通信系统的方法。(2)训练学生综合运用专业知识的能力,提高学生进行通信工程设计的能力。2 教学要求课程设计要求的主要步骤有:1、明确所选课题的设计目的和任务,对设计课题进行具体分析,充分了解系统的性能,指标,内容等。2、进行方案选择。根据掌握的知识和资料,针对系统提出的任务,要求和条件,完成系统的功能设计。从多个方案中选择出设计合理,可靠,满足要求的一个方案。并且对方案要不断的进行可行性和优缺点的分析,最后设计一个完整框图。3、原理设计。4、调试阶段。5、说明书编制。3 设计内容本次综合课程设计内容为数字通信系统的性能分析与仿真。
3、应该包括以下设计内容:1、使用一种分组码进行信道纠错编码。2、使用格雷码对数据进行映射。3、使用MQAM进行调制,M可选择8、16、32、64、128。4、选择合适的升余弦函数,使用升余弦对基带信号进行滤波。5、在解调端,进行滤波,MQAM的解调,格雷码的逆映射,纠错解码。6、改变信噪比,分析系统性能。4 设计内容介绍 MQAM是一种基本的相位-幅度联合调制方式。研究这种基本的数字调制信号的性能可以帮助学生理解数字通信的基本特点。 信道纠错编码是分组码,M必须选择数字8、16、32、64、128以分析各种M下的QAM系统性能。应用Matlab进行仿真,仿真采用蒙特卡罗模型。仿真的基本框图是:信
4、号源信道编码调制解调信道译码性能分析信号源-信道编码-映射-调制-滤波高斯信道-滤波-解调-逆映射-译码-信宿信号源:基本的二进制数据流。信道编码:可以选择卷积吗,分组吗。调制:MQAM。M必须是数字8,16,32,64。在调制前使用格雷码进行映射。信道:信号经过调制后。通过信道。信道可以选择高斯加性白噪声信道,二进制对称信道,多径瑞利衰落信道,莱斯衰落信道。设置不同的信道信噪比,对系统进行仿真,分析不同信噪比之下的系统性能。解调:根据调制方式,选择对应的解调方式。译码:根据信道编码方式,选择对应的信道解码方式。性能分析:信号经过调制,信道,解调过程。在接收端,将得到的数据于原来的信号源数据比
5、较,得到在特定信噪比的误码率。改变系统信噪比,从而得到系统的误码率曲线图。5 设计过程1仿真模型(1)根据选择的调制信号方式,确定仿真流程及框图。(2)确定仿真中所用的函数,模块的具体参数。2软件设计: 编写M文件,在程序中依次改变信噪比,得到在特定信噪比下的误码率。信噪比范围是-10dB-30dB之间,步长为2dB。根据得到的误码率数据,给出误码率-信噪比的曲线图。3仿真调试: 在完成设计草案后可以进行仿真,并且对所设计的系统进行修改,并同理论数据进行比较。要求完成:1、选择一种在具体的信道编码,信道类型下的MQAM的数字调制方式。2、结合具体数字调制方式,分别选择四种MQAM进行系统仿真。
6、3、绘出没有信道编码情况下的该数字调制系统下的误码率-信噪比曲线图。4、绘出有信道编码情况下的该数字调制系统下的误码率-信噪比曲线图。5、对有无信道编码情况下的系统误码率-信噪比曲线图进行比较,并分析。6 程序设计说明书6.1随机信号16-QAM的传输与仿真数字通信系统a.源程序%产生二进制整数流M=16;%信号星座图大小为16k=log2(M);n=3e4;%3000nsamp=1;%采样率x=randint(n,1);%产生随机二进制数据流图;%产生一个新窗体stem(x(1:40),filled);%选择向量中1到40的数据title(Random Bits);%标题xlabel(Bit
7、 Index);%横坐标ylabel(Binary Value);%纵坐标图 1:随机产生的前四十个二进制数字信号产生的随机信号作为信号源的信号用于数字通信的仿真与性能分析。%定义滤波参数nsamp=4;%采样率filtorder=40;%滤波次顺序delay=filtorder/(nsamp*2);%时延rolloff=0.25;%滚降系数rrcfilter=rcosine(1,nsamp,fir/sqrt,rolloff,delay);figure;%产生一个新窗体impl(rrcfilter,1);图 2 :信号经过格雷映射之后形成的十进制数值图图 1中显示的四十个二进制数转换为十进制,
8、因此图 2中只显示十个十进制数。%分组码纠错编码genmat=1 0 1;0 1 1;0 1 0,eye(3);%产生一个6*3的矩阵fen=enfen(x,6,3,linear,genmat);%进行分组线性编码%准备调制,格雷码映射mapping=0 1 3 2 4 5 7 6 12 13 15 14 8 9 11 10.;%定义一个格雷码数组yings=bi2de(reshape(fen,k,length(fen)/k).,left-msb);%2进制到10进制转换yings=mapping(yings+1);figure;% 产生一个新窗体stem(yings(1:10),filled
9、);title(Random symols);%标题xlabel(Symbol Index);%横坐标ylabel(Integer Value); %纵坐标图 3: 滤波器的脉冲响应曲线图%进行16QAM调制y=qammod(yings,M);%进行平方跟升余弦滤波send=rcosflt(y,1,nsamp,filter,rrcfilter);eyediagram(send(1:2000),nsamp*2);%产生眼图图 4 :产生的无噪信号的眼图%加入高斯白噪声EbNo=10;snr=EbNo+10*log10(k)-10*log10(nsamp);%信噪比公式ynoisy=awgn(se
10、nd,snr,measured);recive=ynoisy;%滤波recive=rcosflt(ynoisy,1,nsamp,Fs/filter,rrcfilter);recive=downsample(recive,nsamp);recive=recive(2*delay+1:end-2*delay);%产生分布图h=scatterplot(sqrt(nsamp)*ynoisy(1:nsamp*5e3),nsamp,0,g.);hold on; %在一张图上scatterplot(recive(1:5e3),1,0,kx,h);%绘图title(Received Signal,Before
11、 and After Filtering); %标题legend(Before Filtering,After Filtering);%图例axis(-5 5 -5 5);%范围图 5 :信号通过高斯信道后滤波前后的星座图。可以看到信号在经过滤波器之后码间距离增大、性能提高。%16QAM解调niyings=qamdemod(recive,M);%格雷码逆映射dummy demapping=sort(mapping);%sort对mapping排序,排序结果存在dummy中,并把dummy中的数值在mapping中的索引给出,存在demapping中demapping=demapping-1;n
12、iyings=demapping(niyings+1);l=de2bi(niyings,left-msb);%进制转换l=reshape(l.,prod(sile(l),1);%分组码纠错解码l=defen(l,6,3,linear,genmat);figure;% 产生一个新窗体stem(l(1:40),filled);title(Random Bits); %标题xlabel(Bit Index); %横坐标ylabel(Binary Value);%纵坐标图 6 :终端接收端得到的信号与图 1产生的随机输入信号相同,即没有误码。%计算BERerrors,error_rate=biterr
13、(x,l)b.运行结果:errors =25 error_rate =8.3333e-0046.2 M=8、16、32、64时的QAM系统误码率比较Mvec = 8 16 32 64;%定义数组EbNovec = 0:2:10;%0到10步长2errors = leros(length(Mvec),length(EbNovec);%产生一个length(Mvec)*length(EbNovec)的0矩阵error_rate = leros(length(Mvec),length(EbNovec);%产生二进制整数流for idxM = 1:length(Mvec) for idxEbNo =
14、1:length(EbNovec) M = Mvec(idxM)k=log2(M);n=3e4;nsamp=4;x=randint(n,1);%定义滤波参数nsamp=4;filtorder=40;delay=filtorder/(nsamp*2);rolloff=0.25;rrcfilter=rcosine(1,nsamp,fir/sqrt,rolloff,delay);%分组码纠错编码genmat=1 0 1;0 1 1;0 1 0,eye(3);fen=enfen(x,6,3,linear,genmat);%准备调制,格雷码映射Msile = Mvec(idxM); mapping =
15、leros(Msile); xx=0:Msile-1; yy=bitshift(xx,-1); mapping = bitxor(xx,yy); yings = bi2de(reshape(fen,k,length(fen)/k).,left-msb); yings = mapping(yings+1);%进行16-QAM调制y=qammod(yings,M);%进行平方跟升余弦滤波send=rcosflt(y,1,nsamp,filter,rrcfilter);%加入高斯白噪声EbNo = EbNovec(idxEbNo);snr=EbNo+10*log10(k)-10*log10(nsam
16、p);ynoisy=awgn(send,snr,measured);recive=ynoisy;%滤波recive=rcosflt(ynoisy,1,nsamp,Fs/filter,rrcfilter);recive=downsample(recive,nsamp);recive=recive(2*delay+1:end-2*delay);%16QAM解调niyings=qamdemod(recive,M);%格雷码逆映射dummy demapping=sort(mapping);demapping=demapping-1;niyings=demapping(niyings+1);l=de2b
17、i(niyings,left-msb);l=reshape(l.,prod(sile(l),1);%分组码纠错解码l=defen(l,6,3,linear,genmat);%计算BERerrors(idxM,idxEbNo),error_rate(idxM,idxEbNo) = . biterr(x,l); end markerchoice = .xo*;%图中的标记依次为.xo*plotsym = markerchoice(idxM) -;%产生不同标记的曲线semilogy(EbNovec,error_rate(idxM,:),plotsym);drawnow;hold on; endti
18、tle(Performance of M-QAM for Varying M);xlabel(EbNo (dB); ylabel(BER); legend(M = 8,M = 16,M = 32,M = 64,Location,SouthWest);图7 不同调制系数的误码率4.3.1在无信道编码下信号传输仿真的性能分析Mvec = 16;EbNovec = 0:2:10;errors = leros(length(Mvec),length(EbNovec);error_rate = leros(length(Mvec),length(EbNovec);%产生二进制整数流for idxM =
19、1:length(Mvec) for idxEbNo = 1:length(EbNovec) M = Mvec(idxM)k=log2(M);n=3e4;nsamp=4;x=randint(n,1);%定义滤波参数nsamp=4;filtorder=40;delay=filtorder/(nsamp*2);rolloff=0.25;rrcfilter=rcosine(1,nsamp,fir/sqrt,rolloff,delay);%分组码纠错编码genmat=1 0 1;0 1 1;0 1 0,eye(3);fen=enfen(x,6,3,linear,genmat);%准备调制,格雷码映射M
20、sile = Mvec(idxM); mapping = leros(Msile); xx=0:Msile-1; yy=bitshift(xx,-1); mapping = bitxor(xx,yy); yings = bi2de(reshape(fen,k,length(fen)/k).,left-msb); yings = mapping(yings+1);%进行16QAM调制y=qammod(yings,M);%进行平方跟升余弦滤波send=rcosflt(y,1,nsamp,filter,rrcfilter);%加入高斯白噪声EbNo = EbNovec(idxEbNo);snr=Eb
21、No+10*log10(k)-10*log10(nsamp);ynoisy=awgn(send,snr,measured);recive=ynoisy;%滤波recive=rcosflt(ynoisy,1,nsamp,Fs/filter,rrcfilter);recive=downsample(recive,nsamp);recive=recive(2*delay+1:end-2*delay);%16QAM解调niyings=qamdemod(recive,M);%格雷码逆映射dummy demapping=sort(mapping);demapping=demapping-1;niyings
22、=demapping(niyings+1);l=de2bi(niyings,left-msb);l=reshape(l.,prod(sile(l),1);%分组码纠错解码l=defen(l,6,3,linear,genmat);%计算BERerrors(idxM,idxEbNo),error_rate(idxM,idxEbNo) = . biterr(x,l); end markerchoice = .xo*;plotsym = markerchoice(idxM) -;semilogy(EbNovec,error_rate(idxM,:),plotsym);drawnow;hold on;
23、endtitle(Performance of M-QAM for Varying M);xlabel(EbNo (dB); ylabel(BER);legend(M = 16,Location,SouthWest);图8 M=16的误码率4.3.2在无信道编码下信号传输仿真的性能分析Mvec = 16;EbNovec = 0:2:10;errors = leros(length(Mvec),length(EbNovec);error_rate = leros(length(Mvec),length(EbNovec);%产生二进制整数流for idxM = 1:length(Mvec) for
24、 idxEbNo = 1:length(EbNovec) M = Mvec(idxM)k=log2(M);n=3e4;nsamp=4;x=randint(n,1);%定义滤波参数nsamp=4;filtorder=40;delay=filtorder/(nsamp*2);rolloff=0.25;rrcfilter=rcosine(1,nsamp,fir/sqrt,rolloff,delay);%准备调制,格雷码映射Msile = Mvec(idxM); mapping = leros(Msile); xx=0:Msile-1; yy=bitshift(xx,-1); mapping = bi
25、txor(xx,yy); yings = bi2de(reshape(x,k,length(x)/k).,left-msb); yings = mapping(yings+1);%进行16QAM调制y=qammod(yings,M);%进行平方跟升余弦滤波send=rcosflt(y,1,nsamp,filter,rrcfilter);%加入高斯白噪声EbNo = EbNovec(idxEbNo);snr=EbNo+10*log10(k)-10*log10(nsamp);ynoisy=awgn(send,snr,measured);recive=ynoisy;%滤波recive=rcosflt
26、(ynoisy,1,nsamp,Fs/filter,rrcfilter);recive=downsample(recive,nsamp);recive=recive(2*delay+1:end-2*delay);%16QAM解调niyings=qamdemod(recive,M);%格雷码逆映射dummy demapping=sort(mapping);demapping=demapping-1;niyings=demapping(niyings+1);l=de2bi(niyings,left-msb);l=reshape(l.,prod(sile(l),1);%计算BERerrors(idx
27、M,idxEbNo),error_rate(idxM,idxEbNo) = . biterr(x,l); end markerchoice = *;plotsym = markerchoice(idxM) -;semilogy(EbNovec,error_rate(idxM,:),plotsym);drawnow;hold on; endtitle(Performance of M-QAM for Varying M);xlabel(EbNo (dB); ylabel(BER);legend(M = 16,Location,SouthWest);图9 有编码信道和无编码信道信噪比误码率曲线比较
28、c.对比图图 10 使用与不使用分组码的信号对比图由对比图可以看出信号使用分组码的误码率要明显比信号不使用分组码的低,应此在信号传输中可以通过对信号进行分组编码以提高信号的传输效率7 总结:根据 本次课程设计可以得出以下结论:(1) 随着信噪比的增加,误码率逐渐降低。(2) 随着M值的增大,误码率变大。(3) 信道编码可以降低误码率。8 心得体会:为期三周的综合实习即将结束,我的设计也基本完成,Matlab是一个基于矩阵运算的软件,它的运算功能非常强大,编程效率高,强大而智能化的作业图功能,可扩展性强,simulink动态仿真功能,主要用于仿真、验证、算法思想是否正确。锻炼了我的实际动手能力。在这段时间里,遇到了很多困难,在老师及同学们的帮助下顺利完成,通过这段时间的学习我对通信系统的设计过程及方法有了更深刻的认识。利用MATLAB7.0对QAM调制系统进行仿真,在信噪比变化条件下,得到不同进制QAM系统的误码率,数字信号在传输中往往由于各种原因,使得在传送的数据流中产生误码,从而使接收端接收到带有误码的信号。所以通过信道编码这一环节,对数据流进行处理,使系统具有一定的纠错能力和抗干扰能力,可极大地闭免码流传送中误码的发生。15