现代通信技术实验指导书实验.docx
- 文档编号:26413760
- 上传时间:2023-06-19
- 格式:DOCX
- 页数:33
- 大小:559.98KB
现代通信技术实验指导书实验.docx
《现代通信技术实验指导书实验.docx》由会员分享,可在线阅读,更多相关《现代通信技术实验指导书实验.docx(33页珍藏版)》请在冰豆网上搜索。
现代通信技术实验指导书实验
现代通信技术实验指导书实验
实验一数字通信Matlab程序仿真
一、实验目的
1、掌握Matlab程序设计的基本方法;
2、掌握Matlab通信仿真的基本原理;
3、掌握信源产生、信道编码、调制、信道传输、解调、信道译码、差错比较等通信过程的仿真方法;
4、掌握仿真结果的图形化表示方法;
5、仿真比较几种2FSK、2PSK、QPSK、DQPSK、16PSK、16QAM等调制方法的性能;
6、仿真比较Hamming码不同码型的纠错性能。
二、实验原理
仿真是衡量系统性能的工具,它通过仿真横型的仿真结果来推断原系统的性能,从而为新系统的建立或原系统的改造提供可靠的参考。
通过仿真,可以降低新系统失败的可能性,消除系统中潜在的瓶颈,防止对系统中某些功能部件造成过量的负载,优化系统的整体性能。
实际的通信系统是一个功能结构相当复杂的系统,对这个系统做出的任何改变(如改变某个参数的设置,改变系统的结构等)都可能影响到整个系统的性能和稳定。
因此,在对原有的通信系统做出改进或建立一个新系统之前.通常需要寸这个系统进行建模和仿真,通过仿真结果衡量方案的可行性,从中选择最合理的系统配置和参数设置,然后再应用于实际系统中。
这个过程就是通信仿真。
通信仿真是衡量通信系统性能的工具。
通信仿真可以分成离散事件仿真和连续仿真。
在离散事件仿真中,仿真系统只对离散事件做出响应,而在连续仿真中,仿真系统对输入信号产生连续的输出信号;离散事件仿真是对实际通信系统的—种简化,它的仿真建模比较简单,整个仿真过程需要花费的时间出比连续仿真少。
虽然离散事件仿真舍弃了一些仿真细节,在有些场合显得不够具体,但仍然是通信仿真的主要形式。
与一般的仿真过程类似.在对通信系统实施仿真之前,首先需要研究通信系统的特性,通过归纳和抽象建立通信系统的仿真模型。
下图所示是关于通信系统仿真流捏的一个示意图。
从图中可以看到,通信系统仿真是一个循环往复的过程,它从当前系统出发,通过分析建立起一个能够在一定程度上描述原通信系统的仿真模型,然后通过仿真实验得到相关的数据,通过对仿真数掂的分析可以得且相应的结论,然后把这个结论应用到对当前通信系统的改造中,如果改造后通信系统的性能并不像仿真结果那样令人满意,还需要重新实施通信系统仍真,这时候改造后的通信系统就成了当前系统,并且开始新一轮的通信系统仿真过程。
通信系统仿真的模型
Matlab仿真中,程序在命令窗口(CommandWindow)中按照代码的顺序解释执行,运行的初值、中间结果及输出形成数据流。
程序中的函数按照数据流的顺序依次执行,这意味着处理的数据首先要经过一个运算阶,然后再激活下一个运箅阶。
这种仿真被称为数据流仿真。
Matlab仿真可在命令窗口逐行输入命令(函数),逐步完成仿真。
也可在文本编辑器中先全部编写完成全部代码,形成M文件,再运行该文件执行仿真。
对Matlab来说,两者没有差别。
只是M文件执行时,中间不需要不断的向命令窗口输入,比较方便而已。
Matlab通信工具箱包含了大量应用于通信领域的库函数。
这些库函数是完成通信程序仿真的基础,大大方便了研究人员。
这些库函数包括:
(1)信号源函数;
randerrGeneratebiterrorpatterns
randintGeneratematrixofuniformlydistributedrandomintegers
randsrcGeneraterandommatrixusingprescribedalphabet
wgnGeneratewhiteGaussiannoise
(2)性能估计函数
berawgnBiterrorrate(BER)foruncodedAWGNchannels
bercodingBiterrorrate(BER)forcodedAWGNchannels
berconfintBERandconfidenceintervalofMonteCarlosimulation
berfadingBiterrorrate(BER)forRayleighfadingchannels
berfitFitacurvetononsmoothempiricalBERdata
bersyncBiterrorrate(BER)forimperfectsynchronization
biterrComputenumberofbiterrorsandbiterrorrate
distspecComputethedistancespectrumofaconvolutionalcode
eyediagramGenerateaneyediagram
noisebwEquivalentnoisebandwidthofafilter
scatterplotGenerateascatterplot
semianalyticCalculatebiterrorrateusingthesemianalytictechnique
symerrComputenumberofsymbolerrorsandsymbolerrorrate
(3)信源编/译码函数;
略。
(4)差错控制编码函数;
bchdecBCHdecoderbchencBCHencoder
bchgenpolyGeneratorpolynomialofBCHcode
convencConvolutionallyencodebinarydata
cyclgenProduceparity-checkandgeneratormatricesforcycliccode
cyclpolyProducegeneratorpolynomialsforacycliccode
decodeBlockdecoder
encodeBlockencoder
gen2parConvertbetweenparity-checkandgeneratormatrices
gfweightCalculatetheminimumdistanceofalinearblockcode
hammgenProduceparity-checkandgeneratormatricesforHammingcode
rsdecReed-Solomondecoder
rsdecofDecodeanASCIIfilethatwasencodedusingReed-SolomoncodersencReed-Solomonencoder
rsencofEncodeanASCIIfileusingReed-Solomoncode
rsgenpolyGeneratorpolynomialofReed-Solomoncode
syndtableProducesyndromedecodingtable
vitdecConvolutionallydecodebinarydatausingtheViterbialgorithm
(5)调制/解凋函数;
模拟:
amdemodAmplitudedemodulation
ammodAmplitudemodulation
fmdemodFrequencydemodulation
fmmodFrequencymodulation
pmdemodPhasedemodulation
pmmodPhasemodulation
ssbdemodSinglesidebandamplitudedemodulation
ssbmodSinglesidebandamplitudemodulation
数字:
dpskdemodDifferentialphaseshiftkeyingdemodulation
dpskmodDifferentialphaseshiftkeyingmodulation
fskdemodFrequencyshiftkeyingdemodulation
fskmodFrequencyshiftkeyingmodulation
genqamdemodGeneralquadratureamplitudedemodulation
genqammodGeneralquadratureamplitudemodulation
modnormScalingfactorfornormalizingmodulationoutput
mskdemodMinimumshiftkeyingdemodulation
mskmodMinimumshiftkeyingmodulation
oqpskdemodOffsetquadraturephaseshiftkeyingdemodulation
oqpskmodOffsetquadraturephaseshiftkeyingmodulation
pamdemodPulseamplitudedemodulation
pammodPulseamplitudemodulation
pskdemodPhaseshiftkeyingdemodulation
pskmodPhaseshiftkeyingmodulation
qamdemodQuadratureamplitudedemodulation
qammodQuadratureamplitudemodulation
(6)发送/接收滤波器函数
略。
(7)信道函数;
awgnAddwhiteGaussiannoisetoasignal
bscModelabinarysymmetricchannel
filter(channel)Filtersignalwithchannelobject
rayleighchanConstructaRayleighfadingchannelobject
reset(channel)Resetchannelobject
ricianchanConstructaRicianfadingchannelobject
(8)多址接入函数;
略。
(9)同步函数:
略。
(10)实用函数。
bi2deConvertbinaryvectorstodecimalnumbers
de2biConvertdecimalnumberstobinaryvectors
istrellisTrueforavalidtrellisstructure
marcumqGeneralizedMarcumQfunction
mask2shiftConvertmaskvectortoshiftforashiftregisterconfiguration
oct2decConvertoctalnumberstodecimalnumbers
poly2trellisConvertconvolutionalcodepolynomialstotrellisdescription
qfuncQfunctionqfuncinvInverseQfunction
shift2maskConvertshifttomaskvectorforashiftregisterconfiguration
vec2matConvertavectorintoamatrix
这些通信仿真函数,可在Matlab帮助系统中查询并学习使用。
如我们需要查询正交幅度调制(QAM)函数的使用方法,可在命令行输入:
>>helpqammod
则Matlab会在下面显示如下的该函数的使用方法:
QAMMODQuadratureamplitudemodulation
Y=QAMMOD(X,M)outputsthecomplexenvelopeofthemodulationofthemessagesignalXusingquadratureamplitudemodulation.Misthealphabetsizeandmustbeanintegerpoweroftwo.Themessagesignalmustconsistofintegersbetween0andM-1.Thesignalconstellationisarectangularconstellation.Fortwo-dimensionalsignals,thefunctiontreatseachcolumnas1channel.
Y=QAMMOD(X,M,INI_PHASE)specifiesaphaseoffset(rad).
Seealsoqamdemod,genqammod,genqamdemod,pammod,pamdemod,modnorm.
ReferencepageinHelpbrowser
docqammod
如需进一步查询该函数的相关内容可在Matlab帮助浏览器中的左边查询栏按index查询输入:
qammod。
下面会列出与此相关的内容,其中有qammodfunction,点击后右边窗口会显示与上述内容差不多的内容:
CommunicationsToolbox
qammodQuadratureamplitudemodulation
Syntax
y=qammod(x,M)
y=qammod(x,M,ini_phase)
Description
y=qammod(x,M)outputsthecomplexenvelopeyofthemodulationofthemessagesignalxusingquadratureamplitudemodulation.Misthealphabetsizeandmustbeanintegerpowerof2.Themessagesignalmustconsistofintegersbetween0andM-1.Thesignalconstellationisrectangularorcross-shaped,andthenearestpairofpointsintheconstellationisseparatedby2.Ifxisamatrixwithmultiplerows,thenthefunctionprocessesthecolumnsindependently.
y=qammod(x,M,ini_phase)specifiestheinitialphaseofthemodulatedsignalinradians.
Examples
ExamplesusingthisfunctionareinComputingtheSymbolErrorRateandExamplesofSignalConstellationPlots.
SeeAlso
qamdemod,genqammod,genqamdemod,pammod,pamdemod,modnorm,Modulation
可以看出对qammod函数的解释大同小异。
如果再点击相关的例子,还可以查看符号误比特率的计算和信号星座图的绘制方法。
如果我们需要绘出16QAM的信号星座图,可按如下的办法进行:
>>M=16;%16进制
x=[0:
M-1];%数据源
y=qammod(x,M);%QAM调制
scatterplot(y);%绘制星座图
可得到如下的图形:
可以看出,该图的缺点是其幅度没有进行规一化处理,如果我们对其按峰值功率1瓦进行规一化处理:
>>scale=modnorm(y,'peakpow',1);
y=scale*y;%规一化
再次输出星座图:
>>scatterplot(y);%绘制星座图
但此时还有不尽如人意的地方,就是:
(1)、信号点没有给出序号注释;
(2)、信号点太靠近边缘,幅度相位的坐标范围需要扩大。
为此,给出下面的代码:
>>%给定输出坐标范围,语法axis([xminxmaxyminymax])
axis([-11-11]);
%绘制序号注释使其靠近信号点
holdon;%可以连续绘图而不去掉原来的图形
forj=1:
length(y)%每个点循环
text(real(y(j)),imag(y(j)),[''num2str(j-1)]);
end%循环结束
holdoff;
可以看到图形变成了下面的形状:
至此,星座图绘制完成。
其中text语句的内容可通过查阅帮助知道:
>>helptext
TEXTTextannotation.
TEXT(X,Y,'string')addsthetextinthequotestolocation(X,Y)onthecurrentaxes,where(X,Y)isinunitsfromthecurrentplot.IfXandYarevectors,TEXTwritesthetextatalllocationsgiven.If'string'isanarraythesamenumberofrowsasthelengthofXandY,TEXTmarkseachpointwiththecorrespondingrowofthe'string'array.
意思是:
把'string'中的内容绘制在(X,Y)所代表的坐标上。
本例中,正交幅度调制QAM后的信号坐标点在图中是一个复数,实部是相位,虚部是幅度。
real(y(j)),imag(y(j))就是取第j个信号点的实部和虚部。
''num2str(j-1)是先输出一个空格,以让出点的位置,再在其右边输出j-1所代表的数字字符串。
三、实验内容
1、学习Matlab使用环境、图形输出的一般方法;
2、学习掌握信源产生、信道编码、调制、信道传输、解调、信道译码、差错比较等通信过程常用函数的使用;
3、学习plot、semilogy、title、xlabel、ylabel、axis、axes、hold、legend、subplot、scatter、scatterplot等图形输出函数的使用方法;
4、仿真比较几种2FSK、2PSK、QPSK、16PSK、16QAM等调制方法在不同信道参数下的误码性能;
5、仿真比较Hamming码不同码型的纠错性能,分析提高通信系统抗误码能力的方法。
四、实验步骤
1、打开Matlab程序,点击帮助菜单上的MatlabHelp栏,或按F1打开程序帮助,如图所示:
2、熟悉Matlab程序环境,练习plot、semilogy、title、xlabel、ylabel、axis、axes、hold、legend、subplot、scatter、scatterplot等图形输出函数的使用方法。
3、通过在命令行输入help‘command’和在帮助系统查询的方法学习下列函数的使用:
(1)rand、randint、wgn
(2)biterr
(3)encode、decode、convenc、vitdec、hammgen
(4)dpskdemod、dpskmod、fskdemod、fskmod、genqamdemod、genqammod、modnorm、pskdemod、pskmod、qamdemod、qammod
4、采用下列简化的通信系统模型建立Matlab仿真模型,对比不同调制解调方式在相同信道噪声功率下的误码率。
调制方式有:
2FSK、2PSK、QPSK、16PSK、16QAM等。
例如,我们需要仿真对比2FSK、2PSK调制抗噪声性能,可编写如下程序:
clear;%清除内存变量
M=2;
Fs=16;
nsamp=17;
freq_sep=8;
x=randint(5000,1,M);
y_fsk=fskmod(x,M,freq_sep,nsamp,Fs);
y_psk=pskmod(x,M);
N=10;
forj=1:
N
SNR=j;
y_fsk_noise=awgn(y_fsk,SNR-10*log10(Fs),'measured',[],'dB');
y_psk_noise=awgn(y_psk,SNR,'measured',[],'dB');
z_fsk=fskdemod(y_fsk_noise,M,freq_sep,nsamp,Fs);
z_psk=pskdemod(y_psk_noise,M);
[num_fsk(j),ber_fsk(j)]=biterr(x,z_fsk);
[num_psk(j),ber_psk(j)]=biterr(x,z_psk);
end
semilogy(1:
N,ber_fsk,'*-b');
holdon;
semilogy(1:
N,ber_psk,'d--k');
title('不同信噪比下2FSK和2PSK误码性能仿真');
legend('FSK','PSK');
xlabel('SNRdB');
ylabel('BER')
holdoff
可以看到输出结果为:
根据上述例子,通过阅读Matlab帮助,完成其它调制形式的性能仿真。
5、设通信系统采用QPSK调制,Hamming码纠错,仿真分析(7,4)、(15,11)、(31,26)Hamming码在不同信噪比下的纠错性能。
仿真方法是在数据调制之前,先进行纠错编码。
语法为:
编码:
code=encode(msg,n,k,'hamming')
译码:
msg=decode(code,n,k,'hamming')
五、实验报告要求
1、写出每个仿真程序的原理及其信号框图,给出完整的代码,注释应占整个代码2/3以上,仿真结果要用图形表示出来,图中应有明确的注释。
2、对仿真结果应
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 现代 通信 技术 实验 指导书