移动通信综合实验16QAM调制解调与信道分析报告_第1页
移动通信综合实验16QAM调制解调与信道分析报告_第2页
移动通信综合实验16QAM调制解调与信道分析报告_第3页
移动通信综合实验16QAM调制解调与信道分析报告_第4页
已阅读5页,还剩6页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、南昌大学实验报告学生姓名:学号:专业班级:实验类型:验证 综合设计 创新实验日期:2018/6/23实验成绩:一、实验名称实验八 16QAM 调制解调与信道分析二、实验目的(1) 掌握 QAM及解调原理与特性(2) 了解星座图的原理及用途(3) 分析高斯、瑞利、莱斯信道三、实验内容(1) 设计 16QAM调制解调算法(2) 比较 GMSK和 16QAM在高斯、莱斯和瑞利信道条件下的误码性能(3) 撰写实验报告。四、实验原理正交振幅调制是用两个独立的基带数字信号对两个相互正交的同频载波进行抑制载波的双边带调制 , 利用这种已调信号在同一带宽内频谱正交的性质来实现两路并行的数字信息传输。正交振幅调

2、制信号的一般表示式为16QAM是指包含16 种符号的 QAM调制方式 . 产生的框图如图1.图 1 16QAM 调制相干解调原理如图2.图 2 16QAM 解调五、实验步骤(1) 16QAM 调制与解调算法先产生所需的二进制基带信号:% 产生的随机二进制数据流M = 16;%信号的星座尺寸k = log2(M);%每个符号的比特数n = 30000;%处理的比特数目numSamplesPerSymbol = 1;%过采样因子% 创建二进制数据流作为列向量rngdefault%使用缺省随机数发生器dataIn = randi(0 1,n,1);%产生的二进制矢量数据% 将二进制信号转为整数值信号

3、dataInMatrix = reshape(dataIn,length(dataIn)/k,k);%数据整形成二进制4元组dataSymbolsIn = bi2de(dataInMatrix);%转换为整数使用 MATLAB函数 qammod()进行 QAM的调制% 使用 16-QAM调制dataMod = qammod(dataSymbolsIn,M,bin);%二进制编码、相位偏移0scatterplot(dataMod)title( 未加噪声的星座图 )axis(-4 4 -4 4)在信号中加入噪声% 添加高斯白噪声EbNo = 10;% 当信道 SNR计算的 EB/N0=10dBsn

4、r = EbNo + 10*log10(k) - 10*log10(numSamplesPerSymbol);% 将信号通过 AWGN信道rxSignal = awgn(dataMod,snr,measured);显示星座图% 使用 scatterplot功能展示星座图sPlotFig = scatterplot(rxSignal ,1,0,g.);holdonscatterplot(dataMod,1,0,k*,sPlotFig).title( 加了噪声的星座图 )使用 MATLAB函数 qamdemod() 进行 QAM的解调% 16-QAM解调dataSymbolsOut = qamde

5、mod(rxSignal ,M,bin);% 将整数值信号转为二进制信号dataOutMatrix = de2bi(dataSymbolsOut,k);dataOut = dataOutMatrix(:);%返回的数据列矢量计算解调后的误码率% 计算系统的误码率(BER)numErrors,ber = biterr(dataIn,dataOut);fprintf(nThe binary coding bit error rate = %5.2e, based on %d errorsn,.ber,numErrors)运行效果如图3图 3运行效果图(2) QAM 在高斯、莱斯和瑞利信道条件下的误

6、码性能思路:先产生16QAM信号 . 然后先通过高斯信道引入噪声. 再送入莱斯和瑞利信道后输出.通过给定不同的信噪比. 画出误码率曲线。效果结果如图4 所示 . 代码见附录1。图 4 16QAM 经过各信道的误码率.其中用到的各信道模型如下. 并可以通过使用Y = FILTER(CHAN, X) 来模拟信道Chanon对信号 X 的影响。A高斯信道:AWGN:在某一信号中加入高斯白噪声y = awgn(x,SNR)在信号 x 中加入高斯白噪声。信噪比SNR以 dB 为单位。 x 的强度假定为 0dBW。如果 x 是复数 . 就加入复噪声。y = awgn(x,SNR,SIGPOWER) 如果

7、SIGPOWER是数值 . 则其代表以 dBW为单位的信号强度;如果 SIGPOWER为measured. 则函数将在加入噪声之前测定信号强度。y = awgn(x,SNR,SIGPOWER,STATE) 重置 RANDN的状态。y = awgn( ,POWERTYPE)指定 SNR和 SIGPOWER的单位。 POWERTYPE可以是 dB 或 linear 。如果 POWERTYPE是 dB. 那么 SNR以 dB 为单位 . 而 SIGPOWER以 dBW为单位。如果 POWERTYPE是linear. 那么 SNR作为比值来度量 . 而 SIGPOWER以瓦特为单位。B瑞利信道:RAY

8、LEIGHCHAN(TS, FD, TAU, PDB)TS为输入信号的采样周期FD就是 Doppler 频偏 . 以 Hz 为单位 . 与速率的换算关系为vfc/c.fc是载频TAU输入的信道参数. 一个向量 . 包含了各径的延时. 以 s 为单位PDB输入的信道参数. 一个向量 . 包含了各径的功率(当然是均值啦. 实际产生的能量都是以此为均值的随机量). 以 dB 为单位。C莱斯信道:RICIANCHAN(TS, FD, K)TS是输入信号的采样时间. 以秒为单位。FD是最大的多普勒频移. 赫兹。K是线性尺度上的Rice K- 因子。(3) GMSK 在高斯、莱斯和瑞利信道条件下的误码性能

9、思路:先产生 GMSK信号 . 然后先通过高斯信道引入噪声. 再送入莱斯和瑞利信道后输出. 通过给定不同的信噪比. 画出误码率曲线。效果结果如图5 所示 . 代码见附录2。图 5 GMSK 经过各信道的误码率本次程序设计的各信道模型用到了MATLAB自带的模型类。A GMSK生成器:comm.GMSKModulator(BitInput,PulseLength, SamplesPerSymbol)? BitInput指定是否将输入比特或整数。默认是false 。.当为 false.step方法要求输入带符号的整数或双精度型数据值的-1 或 1 的列向量。当为 true.step方法要求输入带符

10、号的整数或双精度型数据值的0 或 1 的列向量? PulseLength脉冲长度 . 默认的是4。指定的长度的高斯脉冲形状在符号间隔作为实的正整数.GMSK为 4.? SamplesPerSymbol 每个输出符号的样本数目. 默认的是 8。指定上采样系数输出为实数、正数. 标量整数值。上采样系数的数目是的step 方法用于产生每个输入样本的输出采样。B 高斯信道生成器:comm.AWGNChannel(NoiseMethod,SNR)? NoiseMethod 噪声的方法Signalto noiseratio(Eb/No).Signalto noiseratio(Es/No).Signalt

11、onoise ratio (SNR)或者 .Variance? SNR信号功率与噪声功率之比的分贝值C 莱斯信道生成器:comm.RicianChannel(SampleRate,1e6,.KFactor,2.8,.MaximumDopplerShift,50,.DopplerSpectrum,doppler(Bell, 8),.RandomStream,mt19937ar with seed, .Seed,73, .PathGainsOutputPort,true);? SampleRate 输入信号取样速率(Hz) .此属性的默认值是1Hz。? KFactor RicianK因子 ( 标量

12、或矢量线性尺度). 该位的默认值3如果 KFactor是一个标量 . 那么第一离散路径是具有Kras 系数的 Rice k-因子的莱斯衰落过程。剩下的离散路径是独立的瑞利衰落过程。如果KFactor是行向量 . 则对应于 K 因子向量的正元素的离散路径是具有由该元素指定的瑞斯K 因子的莱斯衰落过程。与 K 因子向量的零值元素相对应的离散路径是瑞利衰落过程? MaximumDopplerShift最大多普勒频移( 赫兹 ). 属性的默认值是0.001 赫兹。多普勒频移适用于信道的所有路径。当将最大值DoppReSHIFT设置为0 时 . 通道对整个输入保持静态。可以使用RESET方法生成新的通道

13、实现。? DopplerSpectrum多普勒频谱指定所述多普勒频谱的形状( 路径 ) 的信道。? RandomStream随机数流源. 此属性的默认值是Global stream。将随机数流的源指定为Global stream| mt19937ar的种子。? Seed 初始种子的 mt19937ar 随机数流 . 默认值 73? PathGainsOutputPort 输出信道路径增益 . 此属性默认值是 FALSE将此属性设置为true输出通道路径增益的衰落过程的基础。E 瑞利信道生成器:comm.RayleighChannel(.SampleRate,1e6, .MaximumDoppl

14、erShift,30, .DopplerSpectrum,doppler(Bell, 8),.RandomStream,mt19937ar with seed, .Seed,73, .PathGainsOutputPort,true);? 属性与莱斯信道相同六、思考及体会通过本次实验 . 对各信道的模型有了一定的了解 . 通过误码率曲线图直观的看到了不同信道对信号的影响 . 为之后的学习提供了形象的解释。.附录 1% - QAM - %M = 16;%信号的星座尺寸k = log2(M);%每个符号的比特数n = 30000;%处理的比特数目numSamplesPerSymbol = 1;%过

15、采样因子%创建二进制数据流作为列向量rng default%使用缺省随机数发生器dataIn = randi(0 1,n,1);%产生的二进制矢量数据dataMod = qam_mod(dataIn);% 数据调制for N = -50:20%高斯% 添加高斯白噪声 snr = N;% 将信号通过 AWGN信道rxSignal_Gauss = awgn(dataMod,snr,measured);%信噪比以 dB为单位% 16-QAM解调dataOut_Gauss = qam_demod(rxSignal_Gauss);% 计算系统的误码率( BER)numErrors, ber = bite

16、rr(dataIn,dataOut_Gauss);%fprintf(nThebinarycodingbiterrorrate= %5.2e, based on %derrorsn,ber,numErrors)plot(snr,ber,r)hold on%瑞利% 获得瑞利信道函数Rayleigh_chan = rayleighchan(1/10000,100);%采样频率 1/10000. 最大多普勒频移100% 将信号通过 Rayleigh 信道rxSignal_Rayleigh = filter(Rayleigh_chan, rxSignal_Gauss);% 16-QAM解调dataOut

17、_Rayleigh = qam_demod(rxSignal_Rayleigh);% 计算系统的误码率( BER)numErrors, ber = biterr(dataIn,dataOut_Rayleigh);%fprintf(nThebinarycodingbiterrorrate= %5.2e, based on %derrorsn,ber,numErrors)plot(snr,ber,g*)hold on%莱斯% 获得莱斯信道函数Rician_chan = ricianchan(1/10000,100,1);% 将信号通过 Rician 信道rxSignal_Rician = filt

18、er(Rician_chan, rxSignal_Gauss);.% 16-QAM解调dataOut_Rician = qam_demod(rxSignal_Rician);% 计算系统的误码率( BER)numErrors, ber = biterr(dataIn,dataOut_Rician);%fprintf(nThebinarycodingbiterrorrate= %5.2e, based on %derrorsn,ber,numErrors)plot(snr,ber,b.)hold onendxlabel(信噪比 SNR),ylabel(误码率 BER);legend(高斯 ,瑞利

19、 ,莱斯 , K=5dB,Location,NorthEastOutside)title(16QAM下的误码率- SXF)hold offscatterplot(dataMod)title(16QAM -调制信号星座图- SXF)axis(-4 4 -4 4).附录 2% -GMSK -%n = 300;%处理的比特数目sps = 8;%每个符号的采样%创建二进制数据流作为列向量rng default%使用缺省随机数发生器dataIn = randi(0 1,n,1);%产生的二进制矢量数据% 创建 GMSK调制器gmskMod = comm.GMSKModulator(BitInput,tr

20、ue,PulseLength,4, SamplesPerSymbol,sps);% 创建 GMSK解调器gmskDeMod = comm.GMSKDemodulator(BitOutput,true,PulseLength,4,SamplesPerSymbol,sps);% 数据调制modSigGMSK = step(gmskMod, dataIn);% 误码率器hError = comm.ErrorRate(ReceiveDelay, gmskDeMod.TracebackDepth);for N=-50:20%高斯snr = N;% 创建高斯信道器hAWGN = comm.AWGNChan

21、nel(NoiseMethod,Signal to noise ratio (SNR),SNR,snr);% 将信号通过 AWGN信道rxSignal_Gauss = step(hAWGN, modSigGMSK);% GMSK解调dataOut_Gauss = step(gmskDeMod, rxSignal_Gauss);% 计算系统的误码率( BER)errorStats = step(hError, dataIn, dataOut_Gauss);fprintf(Error rate = %fnNumber of errors = %dn,errorStats(1), errorStat

22、s(2) figure(3)plot(snr,errorStats(1),r) hold on%瑞利RayleighChan = comm.RayleighChannel(.SampleRate,1e6, .MaximumDopplerShift,30, .DopplerSpectrum,doppler(Bell, 8),.RandomStream,mt19937ar with seed, .Seed,73, .PathGainsOutputPort,true);.% 将信号通过瑞利信道rxSignal_Rayleigh, PathGains1 = step(RayleighChan,rxSi

23、gnal_Gauss);%将通过 AWGN信道的信号再通过瑞利信道modSigGMSK% GMSK解调dataOut_Rayleigh = step(gmskDeMod, rxSignal_Rayleigh);% 计算系统的误码率( BER)errorStats = step(hError, dataIn, dataOut_Rayleigh);fprintf(Error rate = %fnNumber of errors = %dn, errorStats(1), errorStats(2) plot(snr,errorStats(1),b.)hold on%莱斯ricianChan = comm.RicianChannel(.SampleRate,1e6,.KFactor,2.8,.MaximumDopplerShift,50,.DopplerSpectrum,doppler(Bell, 8),.RandomStream,mt19937ar with s

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论