1、评语:成绩:签名:日期:一. 课程设计的目的专业课程设计是本科教学中极为重要的实践性教学环节,它不但起着提高本科教学质量、水平和检验学生对课程内容掌握程度的作用,而且还起到从理论过渡到实践的桥梁作用。使学生得到一次工程技术实践方面的锻炼。为在下一阶段的教学环节(毕业设计)中,能够独立地进行工程设计工作,奠定一个良好的基础。二.设计步骤课程设计要求的主要步骤有:1、根据设计课题的技术指标和给定条件,在教师指导下,能够独立而正确地进行方案论证,要求概念清楚、方案合理、方法正确、步骤完整。2、要求了解有关通信电子工程中各种常用软件的使用方法以及常用的EDA手段。3、通过专业课程设计中的方案选择和论证
2、,了解、熟悉、并进一步掌握电子工程及其通信专业工程设计的特点、思路、以及具体的方法和步骤,以提高独立工程设计的能力。4、通过专业课程设计中的设计计算、软件编制,产品图纸和系统线路的绘制与制作,提高计算机软、硬件设计,工程计算和工程制图的能力。5、培养查阅相关参考资料和手册的能力。6、通过专业课程设计,培养严谨的科学思维方法。三.设计内容。 数字通信系统的性能分析与仿真。应该包括以下设计内容: 1.使用一种分组码或者卷积码进行信道纠错编码。 2.使用格雷码对数据进行映射。 3.使用MQAM进行调制,M是64,128,256,512。 4.选择合适的升余弦函数,使用升余弦对基带信号进行滤波。 5.
3、在解调端,进行滤波,MQAM的解调,格雷码的逆映射,纠错解码。 6.改变信噪比,分析系统性能。四.设计内容介绍: MQAM是多进制正交幅度调制是在中、大容量数字微波通信系统中大量使用的一种载波控制方式。研究这种基本的数字调制信号的性能可以帮助学生理解数字通信的基本特点。如信道纠错编码使用分组码,M必须选择数字64,128,256,512,以分析各种M下的QAM系统性能。应用Matlab进行仿真,仿真采用蒙特卡罗模型。仿真的基本框图是:信号源信道编码调制解调信道译码性能分析信号源-信道编码-映射-调制-滤波高斯信道-滤波-解调-逆映射-译码-信宿信号源:函数信号发生器。信道编码:可以选择卷积码,
4、分组码。调制:MQAM。M必须是数字64,128,256,512。在调制前使用格雷码进行映射。信道:信号经过调制后。通过信道。信道可以选择高斯加性白噪声信道。设置不同的信道信噪比,对系统进行仿真,分析不同信噪比之下的系统性能。解调:QAM。译码:根据信道编码方式,选择对应的信道解码方式。性能分析:信号经过调制,信道,解调过程。在接受端,将得到的数据于原来的信号源数据比较,得到在特定信噪比的误码率。改变系统信噪比,从而得到系统的误码率曲线图。五 设计过程:1仿真模型(1)根据选择的调制信号方式,确定仿真流程及框图。(2)确定仿真中所用的函数,模块的具体参数。2软件设计: 编写M文件,在程序中依次
5、改变信噪比,得到在特定信噪比下的误码率。信噪比范围是-10dB-30dB之间,根据得到的误码率数据,给出误码率-信噪比的曲线图。3仿真调试: 在完成设计草案后可以进行仿真,并且对所设计的系统进行修改,并同理论数据进行比较。完成以下内容:1、选择一种在具体的信道编码,信道类型下的MQAM的数字调制方式。2、结合具体数字调制方式,选择四种MQAM进行系统仿真。3、绘出没有信道编码情况下的该数字调制系统下的误码率-信噪比曲线图。4、绘出有信道编码情况下的该数字调制系统下的误码率-信噪比曲线图。5、对有无信道编码情况下的系统误码率-信噪比曲线图进行比较,并分析。51、分组信道编码、高斯白噪声信道下的1
6、6QAM数字调制方式程序:%产生二进制整数流(图1)M=16; %调制系数 k=log2(M); n=3e4; %数据流长度 nsamp=1; data=randint(n,1); %产生随机二进制数据流 figure; %绘出前40个点的柱状图 stem(x(1:40),filled); title(随机二进制数); xlabel(二进制的值);ylabel(比特数); 图1 随机二进制数的柱状图%定义滤波参数(图2)nsamp=4;filtorder=40;delay=filtorder/(nsamp*2);rolloff=0.25; %滚降系数rrcfilter=rcosine(1,ns
7、amp,fir/sqrt,rolloff,delay); %升余弦平方根滤波figure;impz(rrcfilter,1);图2 初始化的升余弦滤波器的单位脉冲曲线图%分组码纠错编码genmat=1 0 1;0 1 1;0 1 0,eye(3);bianma=encode(x,6,3,linear,genmat);%准备调制,格雷码映射mapping=0 1 3 2 4 5 7 6 12 13 15 14 8 9 11 10.;xsym=bi2de(reshape(bianma,k,length(bianma)/k).,left-msb);xsym=mapping(xsym+1);figur
8、e; (图3)stem(xsym(1:10),filled);title(随机符号);xlabel(符号的值);ylabel(整数值);%进行16QAM调制(图4)y=qammod(xsym,M);%进行平方跟升余弦滤波ytx=rcosflt(y,1,nsamp,filter,rrcfilter); %yj表示传送的信号eyediagram(ytx(1:2000),nsamp*2); %产生眼图 图3 随机符号 图4滤波后无噪信号的眼图%加入高斯白噪声EbNo=10; % 比特信噪比snr=EbNo+10*log10(k)-10*log10(nsamp); ynoisy=awgn(ytx,sn
9、r,measured); %yn表示加入高斯白噪声的传送信号%滤波yrx=rcosflt(ynoisy,1,nsamp,Fs/filter,rrcfilter);yrx=downsample(yrx,nsamp); %欠采样函数yrx=yrx(2*delay+1:end-2*delay); %产生分布图(图5)h=scatterplot(sqrt(nsamp)*ynoisy(1:nsamp*5e3),nsamp,0,g.);hold on;scatterplot(yrx(1:5e3),1,0,k*,h);title(接收信号滤波);legend(滤波之前,滤波之后);axis(-5 5 -5
10、5);hold off;图5 滤波前后接收信号比较分布图%16QAM解调zsym=qamdemod(yrx,M);%格雷码逆映射dummy demapping=sort(mapping);demapping=demapping-1;zsym=demapping(zsym+1);z=de2bi(zsym,left-msb);z=reshape(z.,prod(size(z),1);%分组码纠错解码(图6)z=decode(z,6,3,linear,genmat);figure;stem(z(1:40),filled);title(随机二进制数);xlabel(比特数);ylabel(二进制的值)
11、;图6 解调后随机二进制数据流%计算BERnumber_of_errors,bit_error_rate=biterr(x,z)number_of_errors = 20871bit_error_rate = 0.4969 5.2、使用(M=16、32、64、126)MQAM进行数字仿真。代码:Mvec = 16 32 64 128;EbNovec = 0:2:20; %信噪比范围0-20,步长2number_of_errors = zeros(length(Mvec),length(EbNovec);bit_error_rate = zeros(length(Mvec),length(EbN
12、ovec);%产生二进制整数流for idxM = 1:length(Mvec) for idxEbNo = 1:length(EbNovec) M = Mvec(idxM);k=log2(M);n=4.2e4;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);bianma=encode(
13、x,6,3,linear,genmat);%准备调制,格雷码映射Msize = Mvec(idxM); mapping = zeros(Msize); xx=0:Msize-1; yy=bitshift(xx,-1); mapping = bitxor(xx,yy); xsym = bi2de(reshape(bianma,k,length(bianma)/k).,left-msb); xsym = mapping(xsym+1);%进行16QAM调制y=qammod(xsym,M);%进行平方跟升余弦滤波ytx=rcosflt(y,1,nsamp,filter,rrcfilter);%加入高
14、斯白噪声EbNo = EbNovec(idxEbNo);snr=EbNo+10*log10(k)-10*log10(nsamp);ynoisy=awgn(ytx,snr,measured);yrx=ynoisy;%滤波yrx=rcosflt(ynoisy,1,nsamp,Fs/filter,rrcfilter);yrx=downsample(yrx,nsamp);yrx=yrx(2*delay+1:end-2*delay);%16QAM解调zsym=qamdemod(yrx,M);%格雷码逆映射dummy demapping=sort(mapping);demapping=demapping-
15、1;zsym=demapping(zsym+1);z=de2bi(zsym,left-msb);z=reshape(z.,prod(size(z),1);%分组码纠错解码z=decode(z,6,3,linear,genmat);%计算BERnumber_of_errors(idxM,idxEbNo),bit_error_rate(idxM,idxEbNo) = . biterr(x,z); end markerchoice = .*oP;plotsym = markerchoice(idxM) -;semilogy(EbNovec,bit_error_rate(idxM,:),plotsym
16、);drawnow;hold on; endtitle(不同M值的M-QAM);xlabel(EbNo (dB); ylabel(误码率);legend(M = 16,M = 32,M = 64,M = 128,Location,SouthWest);5.3、对有和无信道编码情况下的系统误码率信噪比曲线图进行比较,并分析。代码:clear all;Mvec = 16 ;EbNovec = 0:1.6:15; 图7 不同调制系数的误码率number_of_errors = zeros(length(Mvec),length(EbNovec);bit_error_rate = zeros(leng
17、th(Mvec),length(EbNovec);n=4.2e4;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);code=encode(x,6,3,linear,genmat);%产生二进制整数流for idxM = 1:length(Mvec) for idxEbNo = 1:len
18、gth(EbNovec) M = Mvec(idxM)a=log2(M);%准备调制,格雷码映射Msize = Mvec(idxM); mapping = zeros(Msize); xx=0:Msize-1; yy=bitshift(xx,-1); mapping = bitxor(xx,yy); xs = bi2de(reshape(code,a,length(code)/a).,left-msb); xs = mapping(xs+1);%进行16QAM调制y=qammod(xs,M);%进行平方跟升余弦滤波yj=rcosflt(y,1,nsamp,filter,rrcfilter);%
19、加入高斯白噪声EbNo = EbNovec(idxEbNo);snr=EbNo+10*log10(a)-10*log10(nsamp);yn=awgn(yj,snr,measured);yf=yn%滤波yf=rcosflt(yn,1,nsamp,Fs/filter,rrcfilter);yf=downsample(yf,nsamp);yf=yf(2*delay+1:end-2*delay);%16QAM解调zs=qamdemod(yf,M);%格雷码逆映射dummy demapping=sort(mapping);demapping=demapping-1;zs=demapping(zs+1)
20、;z=de2bi(zs,left-msb);z=reshape(z.,prod(size(z),1);%分组码纠错解码z=decode(z,6,3,linear,genmat);%计算BERnumber_of_errors(idxM,idxEbNo),bit_error_rate(idxM,idxEbNo) = . biterr(x,z); end markerchoice = o.;plotsym = markerchoice(idxM) -;semilogy(EbNovec,bit_error_rate(idxM,:),plotsym);drawnow;hold on; end %产生二进
21、制整数流for idxM = 1:length(Mvec) for idxEbNo = 1:length(EbNovec) M = Mvec(idxM)a=log2(M);%准备调制,格雷码映射Msize = Mvec(idxM); mapping = zeros(Msize); xx=0:Msize-1; yy=bitshift(xx,-1); mapping = bitxor(xx,yy); xs = bi2de(reshape(x,a,length(x)/a).,left-msb);xs = mapping(xs+1);%进行16QAM调制y=qammod(xs,M);%进行平方跟升余弦
22、滤波yj=rcosflt(y,1,nsamp,filter,rrcfilter);%加入高斯白噪声 EbNo = EbNovec(idxEbNo);snr=EbNo+10*log10(a)-10*log10(nsamp);yn=awgn(yj,snr,measured);yrx=yn;%滤波yf=rcosflt(yn,1,nsamp,Fs/filter,rrcfilter);yf=downsample(yf,nsamp);yf=yf(2*delay+1:end-2*delay);%16QAM解调zs=qamdemod(yf,M);%格雷码逆映射dummy demapping=sort(mapp
23、ing);demapping=demapping-1;zs=demapping(zs+1);z=de2bi(zs,left-msb);z=reshape(z.,prod(size(z),1);%计算BERnumber_of_errors(idxM,idxEbNo),bit_error_rate(idxM,idxEbNo) = . biterr(x,z); end markerchoice = *o.;plotsym = markerchoice(idxM) -;semilogy(EbNovec,bit_error_rate(idxM,:),plotsym);drawnow;hold on; e
24、ndtitle(有无编码图线比较);xlabel(信噪比); ylabel(误码率);legend(有编码时候图线,无编码时候图线,Location,SouthWest);图8有编码信道和无编码信道信噪比误码率曲线比较六、总结根据 本次课程设计可以得出以下结论:(1) 随着信噪比的增加,误码率逐渐降低。(2) 随着M值的增大,误码率逐渐变大。(3) 信道编码可以降低误码率。七、心得体会:经过三周的综合课程设计,使我对MATALAB的操作有了更进一步的认识和了解,要想学好它要重在实践,要通过不断的上机操作才能更好地学习它,通过实践,我也发现我的好多不足之处,首先是自己在指法上还不行,经常按错字母,通过学习也有所改进;再有对MATALAB的一些编程不太了解,还有对函数调用的正确使用不够熟悉,通过实践,使我在这几个方面的认识有所提高。 通过实践的学习,我认到学好计算机要重视实践操作,不仅仅是学习MATALAB,还是其它的语言,以及其它的计算机方面的知识都要重在实践,所以后在学习过程中,我会更加注视实践操作,使自己便好地学好计算机。为下学期的毕业设计打下了坚实的基础。14