您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 公司方案 > 移动通信综合实验16QAM调制解调与信道分析
..南昌大学实验报告学生姓名:学号:专业班级:实验类型:□验证□综合设计□创新实验日期:2018/6/23实验成绩:一、实验名称实验八16QAM调制解调与信道分析二、实验目的(1)掌握QAM及解调原理与特性(2)了解星座图的原理及用途(3)分析高斯、瑞利、莱斯信道三、实验内容(1)设计16QAM调制解调算法(2)比较GMSK和16QAM在高斯、莱斯和瑞利信道条件下的误码性能(3)撰写实验报告。四、实验原理正交振幅调制是用两个独立的基带数字信号对两个相互正交的同频载波进行抑制载波的双边带调制,利用这种已调信号在同一带宽内频谱正交的性质来实现两路并行的数字信息传输。正交振幅调制信号的一般表示式为16QAM是指包含16种符号的QAM调制方式,产生的框图如图1.图116QAM调制相干解调原理如图2...图216QAM解调五、实验步骤(1)16QAM调制与解调算法先产生所需的二进制基带信号:%%产生的随机二进制数据流M=16;%信号的星座尺寸k=log2(M);%每个符号的比特数n=30000;%处理的比特数目numSamplesPerSymbol=1;%过采样因子%%创建二进制数据流作为列向量rngdefault%使用缺省随机数发生器dataIn=randi([01],n,1);%产生的二进制矢量数据%%将二进制信号转为整数值信号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([-44-44])在信号中加入噪声%%添加高斯白噪声EbNo=10;%当信道SNR计算的EB/N0=10dBsnr=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=qamdemod(rxSignal,M,'bin');%%将整数值信号转为二进制信号dataOutMatrix=de2bi(dataSymbolsOut,k);dataOut=dataOutMatrix(:);%返回的数据列矢量计算解调后的误码率%%计算系统的误码率(BER)[numErrors,ber]=biterr(dataIn,dataOut);fprintf('\nThebinarycodingbiterrorrate=%5.2e,basedon%derrors\n',...ber,numErrors)运行效果如图3图3运行效果图(2)QAM在高斯、莱斯和瑞利信道条件下的误码性能思路:先产生16QAM信号,然后先通过高斯信道引入噪声,再送入莱斯和瑞利信道后输出,通过给定不同的信噪比,画出误码率曲线。效果结果如图4所示,代码见附录1。图416QAM经过各信道的误码率..其中用到的各信道模型如下,并可以通过使用Y=FILTER(CHAN,X)来模拟信道Chanon对信号X的影响。A.高斯信道:AWGN:在某一信号中加入高斯白噪声y=awgn(x,SNR)在信号x中加入高斯白噪声。信噪比SNR以dB为单位。x的强度假定为0dBW。如果x是复数,就加入复噪声。y=awgn(x,SNR,SIGPOWER)如果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.瑞利信道:RAYLEIGHCHAN(TS,FD,TAU,PDB)TS—为输入信号的采样周期FD—就是Doppler频偏,以Hz为单位,与速率的换算关系为v×fc/c,fc是载频TAU—输入的信道参数,一个向量,包含了各径的延时,以s为单位PDB—输入的信道参数,一个向量,包含了各径的功率(当然是均值啦,实际产生的能量都是以此为均值的随机量),以dB为单位。C.莱斯信道:RICIANCHAN(TS,FD,K)TS—是输入信号的采样时间,以秒为单位。FD—是最大的多普勒频移,赫兹。K—是线性尺度上的RiceK-因子。(3)GMSK在高斯、莱斯和瑞利信道条件下的误码性能思路:先产生GMSK信号,然后先通过高斯信道引入噪声,再送入莱斯和瑞利信道后输出,通过给定不同的信噪比,画出误码率曲线。效果结果如图5所示,代码见附录2。图5GMSK经过各信道的误码率本次程序设计的各信道模型用到了MATLAB自带的模型类。A.GMSK生成器:comm.GMSKModulator(BitInput,PulseLength,SamplesPerSymbol)▷BitInput—指定是否将输入比特或整数。默认是false。..当为false,step方法要求输入带符号的整数或双精度型数据值的-1或1的列向量。当为true,step方法要求输入带符号的整数或双精度型数据值的0或1的列向量▷PulseLength—脉冲长度,默认的是4。指定的长度的高斯脉冲形状在符号间隔作为实的正整数,GMSK为4.▷SamplesPerSymbol—每个输出符号的样本数目,默认的是8。指定上采样系数输出为实数、正数,标量整数值。上采样系数的数目是的step方法用于产生每个输入样本的输出采样。B.高斯信道生成器:comm.AWGNChannel('NoiseMethod','SNR')▷NoiseMethod—噪声的方法'Signaltonoiseratio(Eb/No)','Signaltonoiseratio(Es/No)','Signaltonoiseratio(SNR)'或者,'Variance'▷SNR—信号功率与噪声功率之比的分贝值C.莱斯信道生成器:comm.RicianChannel('SampleRate',1e6,...'KFactor',2.8,...'MaximumDopplerShift',50,...'DopplerSpectrum',doppler('Bell',8),...'RandomStream','mt19937arwithseed',...'Seed',73,...'PathGainsOutputPort',true);▷SampleRate—输入信号取样速率(Hz),此属性的默认值是1Hz。▷KFactor—RicianK因子(标量或矢量线性尺度),该位的默认值3如果KFactor是一个标量,那么第一离散路径是具有Kras系数的Ricek-因子的莱斯衰落过程。剩下的离散路径是独立的瑞利衰落过程。如果KFactor是行向量,则对应于K因子向量的正元素的离散路径是具有由该元素指定的瑞斯K因子的莱斯衰落过程。与K因子向量的零值元素相对应的离散路径是瑞利衰落过程▷MaximumDopplerShift—最大多普勒频移(赫兹),属性的默认值是0.001赫兹。多普勒频移适用于信道的所有路径。当将最大值DoppReSHIFT设置为0时,通道对整个输入保持静态。可以使用RESET方法生成新的通道实现。▷DopplerSpectrum—多普勒频谱指定所述多普勒频谱的形状(路径)的信道。▷RandomStream—随机数流源,此属性的默认值是Globalstream。将随机数流的源指定为Globalstream|mt19937ar的种子。▷Seed—初始种子的mt19937ar随机数流,默认值73▷PathGainsOutputPort—输出信道路径增益,此属性默认值是FALSE将此属性设置为true输出通道路径增益的衰落过程的基础。E.瑞利信道生成器:comm.RayleighChannel(...'SampleRate',1e6,...'MaximumDopplerShift',30,...'DopplerSpectrum',doppler('Bell',8),...'RandomStream','mt19937arwithseed',.....'Seed',73,...'PathGainsOutputPort',true);▷属性与莱斯信道相同六、思考及体会通过本次实验,对各信道的模型有了一定的了解,通过误码率曲线图直观的看到了不同信道对信号的影响,为之后的学习提供了形象的解释。..附录1%%----------------------QAM----------------------%%M=16;%信号的星座尺寸k=log2(M);%每个符号的比特数n=30000;%处理的比特数目numSamplesPerSymbol=1;%过采样因子%%创建二进制数据流作为列向量rngdefault%使用缺省随机数发生器dataIn=randi([01],n,1);%产生的二进制矢量数据dataMod=qam_mod(dataIn);%数据调制forN=-50:20%%高斯%添加高斯白噪声snr=N;%将信号通过AWGN信道rxSignal_Gauss=awgn(dataMod,snr,'measured');%信噪比以dB为单位%16-QAM解调dataOut_Gauss=qam_demod(rxSignal_Gauss);%计算系统的误码率(BER)[numErrors,ber]=biterr(dataIn,dataOut_Gauss);%fprintf('\nThebinarycodingbiterrorrate=%5.2e,basedon%derrors\n',ber,numErrors)plot(snr,ber,'r^')holdon%%瑞利%获得瑞利信道函数Rayleigh_chan=rayleighchan(1/10000,100);%采样频率1/10000,最大多普勒频移100%将信号通过Rayleigh信道rxSignal_Rayleigh=filter(Rayleigh_chan,rxSignal_Gauss);%16-QAM解调dataOut_Rayleigh=qam_demod(rxSignal_Rayleigh);%计算系统的误码率(BER)[numErrors,ber]=biterr(dataIn,dataOut_Rayleigh);%fprintf('\nThebinarycodingbiterrorrate=%5.2e,basedon%derrors\n',ber,numErrors)plot(snr,ber,'g*')holdon%%莱斯%获得莱斯信道函数Rician_chan=ricianchan(1/10000,100,1);%将信号通过Rician信道rxSignal_Rician=filter(Rician_chan,rxSignal_Gauss);..%16-QAM解调dataOut_Rician=qam_demod(rxSigna
本文标题:移动通信综合实验16QAM调制解调与信道分析
链接地址:https://www.777doc.com/doc-5869095 .html