通信专业综合课程设计.docx
《通信专业综合课程设计.docx》由会员分享,可在线阅读,更多相关《通信专业综合课程设计.docx(20页珍藏版)》请在冰豆网上搜索。
通信专业综合课程设计
专业综合课程设计
指导书
班级通信D101
指导教师董自健
淮海工学院电子工程学院
通信工程系
2013年10月18日
一、课程设计的目的和任务
本次课程设计是根据“通信工程专业培养计划”要求而制定的。
综合课程设计是通信工程专业的学生在学完所有专业课后进行的综合性课程设计。
其目的在于使学生在课程设计过程中能够理论联系实际,在实践中充分利用所学理论知识分析和研究设计过程中出现的各类技术问题,巩固和扩大所学知识面,为以后走向工作岗位进行设计打下一定的基础。
课程设计的任务是:
(1)掌握一般通信系统设计的过程、步骤、要求、工作内容及设计方法;掌握用计算机仿真通信系统的方法。
(2)训练学生综合运用专业知识的能力,提高学生进行通信工程设计的能力。
二、教学要求
由于是专业综合性课程设计,因此设计的内容应该围绕主干专业课程,如:
通信原理、程控交换技术、传输设备,通信网点等。
课程设计要求的主要步骤有:
1、明确所选课题的设计目的和任务,对设计课题进行具体分析,充分了解系统的性能、指标、内容等。
2、进行方案选择。
根据掌握的知识和资料,针对系统提出的任务、要求和条件,完成系统的功能设计。
从多个方案中选择出设计合理、可靠、满足要求的一个方案。
并且对方案要不断进行可行性和优缺点的分析,最后设计出一个完整框图。
3、原理设计;
4、调试阶段;
5、说明书编制。
本次课程设计在校内完成,主要方式是以理论设计为主,进行实验或计算机仿真,得出结论。
三、设计内容
本次综合课程设计内容为数字通信系统的性能分析与仿真。
应该包括以下设计内容:
1、使用一种分组码或者卷积码进行信道纠错编码。
2、使用格雷码对数据进行映射。
3、使用MQAM举行调制,M可选择8、16、32、64、128、256。
4、选择合适的升余弦参数,使用升余弦对基带信号举行滤波。
5、在解调端,进行滤波、MQAM的解调、格雷码逆映射、纠错解码。
6、改变信噪比,分析系统性能。
四、设计内容介绍:
MQAM是一种基本的相位-幅度联合调制方式。
研究这种基本的数字调制信号的性能可以帮助学生理解数字通信的基本特点。
本次课程设计,学生可以自己选择符合要求的技术,如信道纠错编码可以是分组码或者卷积码,M必须选择数字8、16、32、64、128、256中的至少3个,以分析各种M下的QAM系统性能。
应用Matlab进行仿真,仿真采用蒙特卡罗模型。
仿真基本框图是:
其中:
信号源:
基本的二进制数据流。
信道编码:
可以选择分组码、卷积码等。
调制:
MQAM,M必须选择数字8、16、32、64、128、256中的至少3个。
在调制前使用格雷码进行映射。
信道:
信号经过调制以后,通过信道。
信道可以选择高斯加性白噪声信道、二进制对称信道、多径瑞利(Rayleigh)衰落信道、莱斯(Rician)衰落信道等。
设置不同的信道信噪比,对系统进行仿真,分析不同信噪比情况下的系统性能。
解调:
根据调制方式,选择对应的解调方式。
译码:
根据信道编码方式,选择对应的信道解码方式。
性能分析:
信号经过调制、信道、解调过程。
在接收端,将得到的数据与原始信号源数据比较,得到在特定信噪比下的误码率。
改变系统信噪比,从而得到系统的误码率曲线图。
五、设计过程:
1.仿真模型
(1)根据选择的调制信号形式,确定仿真框图。
(2)设置模型中各模块的具体参数。
2.软件设计
编写M文件。
在程序中,依次改变信噪比,得到在特定信噪比下的误码率。
信噪比范围是可以是-10dB~20dB之间,步长为2dB。
根据得到的误码率数据,绘出误码率-信噪比曲线图。
3.仿真调试
在完成设计草案后可进行仿真,并对所设计的系统进行修改。
并同理论数据进行比较。
要求完成:
1、选择一种具体的数字调制方式。
2、结合具体数字调制方式,分别选择三种MQAM进行系统仿真。
3、绘出没有信道编码情况下的数字调制系统误码率-信噪比曲线图。
4、绘出有信道编码情况下的数字调制系统误码率-信噪比曲线图。
5、对有和无信道编码情况下的系统误码率-信噪比曲线图进行比较,并分析。
六、设计提交的成果材料
提交设计说明书一份,内含任务中涉及的各种仿真框图、参数数据、有关程序,仿真曲线图。
并就设计过程做出总结。
七、教学时间安排
根据课程大纲要求60学时计划,本设计安排如下:
时间安排:
17~19周(2011年1月6日~2014年1月24日)
教学内容
学时
地点
备注
集中学习、布置任务
0.5天
教室
授课
1
教室
资料查阅、分析讨论,确定方案
3.5天
图书馆、实验室、教室
设计系统仿真模型
4天
图书馆、实验室、教室
编程及调试
3天
实验室
写设计报告
2天
图书馆、教室
设计验收、总结
1天
教室
选题要求:
应该包含上述设计要求的全部步骤。
作息时间:
上午8:
30~11:
30下午2:
00~4:
30
设计地点:
图书馆、电子系实验室、教室
答疑地点:
M-409
八、成绩考核
通信专业综合课程设计综合以下几个方面进行考核:
1)、平时表现;2)、答辩及课题完成情况;3)、说明书(设计报告)完成情况;
参考分数比例:
(1)平时表现:
35分
(2)答辩及课题完成情况:
30分
(3)设计报告:
30分
附:
通信专业综合课程设计指导讲稿
ModulatingaRandomSignal
问题:
二进制数据流通过一个包含基带调制、信道、解调的系统,计算误码率(BER)。
下面是仿真过程中所遇到的问题和相应的函数。
系统使用16-QAM(正教幅度)和高斯(AWGN)信道
●产生随机二进制数据流randint
●使用16-QAM调制qammod
●加性高斯白噪声awgn
●产生数据分布图scatterplot
●使用16-QAM解调qamdemod
●计算误码率biterr
1.产生随机二进制数据流.在MATLAB中,一般用向量(vector)或者矩阵(matrix)来表示数据.下面使用randint函数产生一个列向量来表示数据流。
数据流长度选择为30,000。
注意:
在MATLAB中并没有严格的时间概念。
下面的代码还产生数据流中部分数据的柱状图。
由于产生数据的随机性,一般你们每个人运行结果有可能不一样。
注意使用(:
)操作符来选择向量中的部分数据。
%Defineparameters.
M=16;%Sizeofsignalconstellation
k=log2(M);%Numberofbitspersymbol
n=3e4;%Numberofbitstoprocess
nsamp=1;%Oversamplingrate
x=randint(n,1);%Randombinarydatastream
%Plotfirst40bitsinastemplot.
stem(x(1:
40),'filled');
title('RandomBits');
xlabel('BitIndex');ylabel('BinaryValue');
2.准备调制
.准备使用qammod函数来进行16-QAM调制.但是qammod接收的是0~15之间的整数,而不是4bits。
因此在进行调制前必须对二进制数据进行处理。
使用MATLAB中reshape函数,然后使用bi2de函数来转换4bits到一个整数。
%%Bit-to-SymbolMapping
%Convertthebitsinxintok-bitsymbols.
xsym=bi2de(reshape(x,k,length(x)/k).','left-msb');
%%StemPlotofSymbols
%Plotfirst10symbolsinastemplot.
figure;%Createnewfigurewindow.
stem(xsym(1:
10));
title('RandomSymbols');
xlabel('SymbolIndex');ylabel('IntegerValue');
3.进行16-QAM调制.
%%Modulation
%Modulateusing16-QAM.
y=qammod(xsym,M);
结果是有个复向量,是16点QAM星座图中的一个。
下面的出现会绘出星座图。
Tolearnmoreaboutmodulationfunctions,seeModulation.Also,notethattheqammodfunctiondoesnotapplyanypulseshaping.Toextendthisexampletousepulseshaping,seePulseShapingUsingaRaisedCosineFilter.ForanexamplethatusesrectangularpulseshapingwithPSKmodulation,seebasicsimdemo.
4.加入高斯白噪声。
使用awgn函数。
比特能量和噪声的功率谱比值Eb/N0定为10dB.
%%TransmittedSignal
ytx=y;
%SendsignaloveranAWGNchannel.
EbNo=10;%IndB
snr=EbNo+10*log10(k)-10*log10(nsamp);
ynoisy=awgn(ytx,snr,'measured');
%%ReceivedSignal
yrx=ynoisy;
5.产生分布图.使用scatterplot函数来显示接收信号,并显示噪声对信号分布的影响。
图中,行坐标为信号的同相位分量(n-phasecomponent),纵坐标为正交分量
%%ScatterPlot
%Createscatterplotofnoisysignalandtransmitted
%signalonthesameaxes.
h=scatterplot(yrx(1:
nsamp*5e3),nsamp,0,'g.');
holdon;
scatterplot(ytx(1:
5e3),1,0,'k*',h);
title('ReceivedSignal');
legend('ReceivedSignal','SignalConstellation');
axis([-55-55]);%Setaxisranges.
holdoff;
6.16-QAM解调。
%%Demodulation
%Demodulatesignalusing16-QAM.
zsym=qamdemod(yrx,M);
7.把整数信号转换为二进制,使用de2bi函数以及reshape函数
%%Symbol-to-BitMapping
%Undothebit-to-symbolmappingperformedearlier.
z=de2bi(zsym,'left-msb');%Convertintegerstobits.
%Convertzfromamatrixtoavector.
z=reshape(z.',prod(size(z)),1);
8.计算系统BER。
%%BERComputation
%Comparexandztoobtainthenumberoferrorsand
%thebiterrorrate.
[number_of_errors,bit_error_rate]=biterr(x,z)
这些数值可以在MATLAB的命令窗口中显示出来。
number_of_errors=71
bit_error_rate=0.0024
PlottingSignalConstellations
上面的例子虽然表示了信号的坐标,但是并没有直接表示QAM的系统星座图应该是什么形式。
下面的程序完成这项任务。
M=16;%Numberofpointsinconstellation
intg=[0:
M-1].';%Vectorofintegersbetween0andM-1
pt=qammod(intg,M);%Vectorofallpointsinconstellation
scatterplot(pt);
3.对上图中的点进行命名来反映映射。
也就是反映intg和pt之间的关系,命名的显示坐标紧靠星座图点,但稍有点偏移以免重叠。
(dec2bin函数产生数字信号的二进制字符串,而de2bi函数产生一个数字信号的二进制向量)
%Includetextannotationsthatnumberthepoints.
text(real(pt)+0.1,imag(pt),dec2bin(intg));
axis([-44-44]);%Changeaxissoalllabelsfitinplot.
检查这个图,可以发现:
0001和0010是相邻的星座图点,它们之间的汉明距离为2。
可以使用格雷码进行处理,使得相邻星座图点的汉明距离为1。
Gray-Coded16-QAMSignalConstellation
格雷码(又叫循环二进制码或反射二进制码)介绍
在数字系统中只能识别0和1,各种数据要转换为二进制代码才能进行处理,格雷码是一种无权码,采用绝对编码方式,典型格雷码是一种具有反射特性和循环特性的单步自补码,它的循环、单步特性消除了随机取数时出现重大误差的可能,它的反射、自补特性使得求反非常方便。
格雷码属于可靠性编码,是一种错误最小化的编码方式,因为,自然二进制码可以直接由数/模转换器转换成模拟信号,但某些情况,例如从十进制的3转换成4时二进制码的每一位都要变,使数字电路产生很大的尖峰电流脉冲。
而格雷码则没有这一缺点,它是一种数字排序系统,其中的所有相邻整数在它们的数字表示中只有一个数字不同。
它在任意两个相邻的数之间转换时,只有一个数位发生变化。
它大大地减少了由一个状态到下一个状态时逻辑的混淆。
另外由于最大数与最小数之间也仅一个数不同,故通常又叫格雷反射码或循环码。
下表为几种自然二进制码与格雷码的对照表:
十进制数自然二进制数格雷码十进制数自然二进制数格雷码
000000000810001100
100010001910011101
2001000111010101111
3001100101110111110
4010001101211001010
5010101111311011011
6011001011411101001
7011101001511111000
staticunsignedintDecimaltoGray(unsignedintx)
{
returnx^(x>>1);
}
//以上代码实现了unsignedint型数据到格雷码的转换,最高可转换32位自然二进制码,超出32位将溢出。
staticintDecimaltoGray(intx)
{
returnx^(x>>1);
}
以上代码是用C实现了int型数据到格雷码的转换,最高可转换31位自然二进制码,超出31位将溢出。
%%ModifiedPlot,WithGrayCoding
M=16;%Numberofpointsinconstellation
intg=[0:
M-1].';
mapping=[0132457612131514891110].';
intgray=mapping(intg+1);
pt=qammod(intgray,M);%Vectorofallpointsinconstellation
scatterplot(pt);%Plottheconstellation.
%Includetextannotationsthatnumberthepoints.
text(real(pt)+0.1,imag(pt),dec2bin(intg));
axis([-44-44]);%Changeaxissoalllabelsfitinplot.
IncorporatingGrayCoding
1.修改比特到符号的映射,对上面的例子的相关代码使用下面的代码代替:
%%Bit-to-SymbolMapping
%Convertthebitsinxintok-bitsymbols,using
%Graycoding.
%A.Defineavectorformappingbitstosymbolsusing
%Graycoding.Thevectorisspecifictothearrangement
%ofpointsina16-QAMconstellation.
mapping=[0132457612131514891110].';
%B.Doordinarybinary-to-decimalmapping.
xsym=bi2de(reshape(x,k,length(x)/k).','left-msb');
%C.MapfrombinarycodingtoGraycoding.
xsym=mapping(xsym+1);
2.修改符号到比特的映射
使用下列代码代替上面例子中相应的代码。
%%Symbol-to-BitMapping
%Undothebit-to-symbolmappingperformedearlier.
%A.Defineavectorthatinvertsthemappingoperation.
[dummydemapping]=sort(mapping);%sort对mapping排序,排序结果存在dummy%中,并把dummy中的数值在mapping中的索引给出,存在demapping中!
%Initially,demappinghasvaluesbetween1andM.
%Subtract1toobtainvaluesbetween0andM-1.
demapping=demapping-1;
%B.MapbetweenGrayandbinarycoding.
zsym=demapping(zsym+1);
%C.Doordinarydecimal-to-binarymapping.
z=de2bi(zsym,'left-msb');
%Convertzfromamatrixtoavector.
z=reshape(z.',prod(size(z)),1);
PulseShapingUsingaRaisedCosineFilter
问题:
修改格雷码调制例子,使用平方根升余弦滤波器对基带信号滤波。
1.定义滤波器参数
在初始化阶段,使用下列代码替换过采样率-nsamp:
nsamp=4;%Oversamplingrate
同时定义滤波器的阶数,滤波器的传输延迟,滚降系数等
%%FilterDefinition
%Definefilter-relatedparameters.
filtorder=40;%Filterorder
delay=filtorder/(nsamp*2);%Groupdelay(#ofinputsamples)
rolloff=0.25;%Rollofffactoroffilter
2.产生一个平方根升余弦滤波器。
%Createasquarerootraisedcosinefilter.
rrcfilter=rcosine(1,nsamp,'fir/sqrt',rolloff,delay);
%Plotimpulseresponse.
figure;impz(rrcfilter,1);
3.对调制信号进行滤波。
使用下列代码取代上例中相应的代码:
%%TransmittedSignal
%Upsampleandapplysquarerootraisedcosinefilter.
ytx=rcosflt(y,1,nsamp,'filter',rrcfilter);
%Createeyediagramforpartoffilteredsignal.
eyediagram(ytx(1:
2000),nsamp*2);
rcosflt函数对调制信号进行过采样,过采样比例为nsamp
下图是对滤波以后无噪信号的眼图,这张图可以表示脉冲成型滤波对信号的影响。
这张图中可以明显看出存在码间干扰(ISI),因为滤波器是严格平方根升余弦,而不是一个升余弦滤波器
4.接收信号的滤波
%%ReceivedSignal
%Filterreceivedsignalusingsquarerootraisedcosinefilter.
yrx=rcosflt(ynoisy,1,nsamp,'Fs/filter',rrcfilter);
yrx=downsample(yrx,nsamp);%Downsample.
yrx=yrx(2*delay+1:
end-2*delay);%Accountfordelay.
使用相同的平方根升余弦函数对接收信号进行滤波,然后对信号继续欠采样。
最后严格命令去掉开始的2*delay个符号和最后的2*delay个符号
5.重新画分布图。
把滤波前后的接收信号进行比较。
使用下列代码进行代替原来的代码
%%ScatterPlot
%Createscatterplotofreceivedsignalbeforeand
%afterfiltering.
h=scatterplot(sqrt(nsamp)*ynoisy(1:
nsamp*5e3),nsamp,0,'g.');
holdon;
scatterplot