移动通信综合实验16QAM调制解调及信道分析
16QAM调制与解调的MATLAB实现及调制性能分析

通信原理课程设计报告书课题名称16QAM 调制与解调的MATLAB 实现及调制性能分析姓 名学 号 学 院 通信与电子工程学院专 业 通信工程 指导教师李梦醒2012年 01 月 01日※※※※※※※※※ ※※ ※※ ※※ ※※※※※※※※※2009级通信工程专业通信原理课程设计16QAM调制与解调的MATLAB实现及调制性能分析(1) 掌握16QAM 调制与解调的原理。
(2) 掌握星座图的原理并能熟悉星座图的应用。
(3) 熟悉并掌握MATLAB 的使用方法。
(4) 通过对16QAM 调制性能的分析了解16QAM 调制相对于其它调制方式的优缺点。
2 设计原理正交振幅调制(Quadrature Amplitude Modulation,QAM )是一种振幅和相位联合键控。
虽然MPSK 和MDPSK 等相移键控的带宽和功率方面都具有优势,即带宽占用小和比特噪声比要求低。
但是由图1可见,在MPSK 体制中,随着8/15π图 1 8PSK 信号相位M 的增大,相邻相位的距离逐渐减小,使噪声容限随之减小,误码率难于保证。
为了改善在M 大时的噪声容限,发展出了QAM 体制。
在QAM 体制中,信号的振幅和相位作为两个独立的参量同时受到调制。
这种信号的一个码元可以表示为0()cos() (1)k k k s t A t kT t k T ωθ=+<≤+ (2—1)式中:k=整数;k A 和k θ分别可以取多个离散值。
式(2—1)可以展开为00()cos cos sin sin k k k k k s t A t A t θωθω=- (2—2)令 X k = A k cos θk , Y k = -A k sin θk 则式(2—1)变为00()cos sin k k k s t X t Y t ωω=+ (2—3)8/5π8/3π8/π8/7π8/9π8/11π8/13πk X 和k Y 也是可以取多个离散的变量。
16QAM调制与解调的MATLAB实现及调制性能分析

通信原理课程设计报告书课题名称16QAM 调制与解调 的MATLAB 实现及调制性能分析姓名 学号学院通信与电子工程学院 专 通信工程※※※※※※※※※※※※※ ※※※※※※※※※※※2009级通信工程专业 通信原理课程设计业指导李梦醒教师2012年 01 月 01日16QAM 调制与解调的MATLAB 实现及调制性能分析 1 设计目的(1) 掌握16QAM 调制与解调的原理。
(2) 掌握星座图的原理并能熟悉星座图的应用。
(3) 熟悉并掌握MATLAB 的使用方法。
(4) 通过对16QAM 调制性能的分析了解16QAM 调制相对于其它调制方式的优缺点。
2 设计原理正交振幅调制(Quadrature Amplitude Modulation,QAM )是一种振幅和相位联合键控。
虽然MPSK 和MDPSK 等相移键控的带宽和功率方面都具有优势,即带宽占用小和比特噪声比要求低。
但是由图1可见,在MPSK 体制中,随着8/15π图 1 8PSK 信号相位8/5π8/3π8/π8/7π8/9π8/11π8/13πM 的增大,相邻相位的距离逐渐减小,使噪声容限随之减小,误码率难于保证。
为了改善在M 大时的噪声容限,发展出了QAM 体制。
在QAM 体制中,信号的振幅和相位作为两个独立的参量同时受到调制。
这种信号的一个码元可以表示为0()cos() (1)k k k s t A t kT t k T ωθ=+<≤+ (2—1)式中:k=整数;k A 和k θ分别可以取多个离散值。
式(2—1)可以展开为00()cos cos sin sin k k k k k s t A t A t θωθω=- (2—2)令 X k = A k cosk , Y k = -A k sin k 则式(2—1)变为00()cos sin k k k s t X t Y t ωω=+ (2—3)k X 和k Y 也是可以取多个离散的变量。
16QAM的调制与解调

通信专业课程设计二太原科技大学课程设计(论文)设计(论文)题目:16 QAM的调制解调姓名学号班级学院指导教师2012年 1月 4 日太原科技大学课程设计(论文)任务书学院(直属系):电子信息工程学院时间: 2012年12月19日16QAM的调制与解调摘要随着无线通信频带日趋紧张,研究和设计自适应信道调制技术体制是建立宽带移动通信网络的关键技术之一。
正交振幅调制技术(QAM)是一种功率和带宽相对高效的信道调制技术,因此在大容量数字微波通信系统、有线电视网络高速数据传输、卫星通信系统等领域得到了广泛应用。
在移动通信中,随着微蜂窝和微微蜂窝的出现,使得信道传输特性发生了很大变化。
过去在传统蜂窝系统中不能应用的正交振幅调制也引起了人们的重视。
本文首先简单简绍了QAM调制解调系统和Simulink的工作原理。
然后利用Simulink 对16QAM调制系统进行仿真,不但得到了信号在加噪前后的星座图、眼图,而且在信噪比变化条件下,得到了16QAM系统的误码率。
最后,在简单做了一个2DPSK系统仿真之后,将它与16QAM系统进行了比较,并得出了16QAM是一种相对优越的调制解调系统这一结论。
关键词:QAM ;SIMULINK ;仿真; 2DPSK ;误码率目录摘要........................................................................ 第1章绪论.. 01.1 QAM简介 01.2 SIMULINK 01.3 SIMULINK与通信仿真 (1)第2章正交振幅调制 (2)2.1 MQAM信号的星座图 (2)2.2 16QAM的调制解调原理 (4)2.3 16QAM的改进方案 (5)第3章 16QAM调制解调系统实现与仿真 (7)3.1 16QAM 调制模块的模型建立与仿真 (9)3.1.1 信号源 (9)3.1.2 串并转换模块 (9)3.1.3 2/4电平转换模块 (10)3.1.4 其余模块 (12)3.1.5 调制系统的实现 (13)3.2 16QAM解调模块的模型建立与仿真 (14)3.2.1 相干解调 (14)3.2.2 4/2电平判决 (15)3.2.3 并串转换 (17)参考文献 (20)第1章绪论1.1 QAM简介在现代通信中,提高频谱利用率一直是人们关注的焦点之一。
16QAM调制与解调

16QAM调制与解调一、实验目的1 掌握16QAM调制与解调原理。
2 掌握systemview仿真软件使用方法3 设计16QAM调制与解调仿真电路,观察同相支路、正交支路波形及16QAM 星座图。
二、仿真环境Windows98/2000/XPSystemView5.0三、16QAM调制解调原理方框图1.16QAM调制原理16QAM是用两路独立的正交4ASK信号叠加而成,4ASK是用多电平信号去键控载波而得到的信号。
它是2ASK体制的推广,和2ASK相比,这种体制的优点在于信息传输速率高。
正交幅度调制是利用多进制振幅键控(MASK)和正交载波调制相结合产生的。
16进制的正交振幅调制是一种振幅相位联合键控信号。
16QAM的产生有2种方法:(1)正交调幅法,它是有2路正交的四电平振幅键控信号叠加而成;(2)复合相移法:它是用2路独立的四相位移相键控信号叠加而成。
这里采用正交调幅法。
16QAM正交调制的原理如下图1所示。
图1 16QAM 调制器图中串/并变换器将速率为R b 的二进制码元序列分为两路,速率为R b /2.2-4电平变换为R b /2的二进制码元序列变成速率为R S =R b /log 216的4个电平信号,4电平信号与正交载波相乘,完成正交调制,两路信号叠加后产生16QAM信号.在两路速率为R b /2的二进制码元序列中,经2-4电平变换器输出为4电平信号,即M=16.经4电平正交幅度调制和叠加后,输出16个信号状态,即16QAM. R S =R b /log 216=R B /4.2.16QAM 解调原理16QAM 信号采取正交相干解调的方法解调,解调器首先对收到的16QAM 信号进行正交相干解调,一路与t c ωcos 相乘,一路与t c ωsin 相乘。
然后经过低通滤波器,低通滤波器LPF 滤除乘法器产生的高频分量,获得有用信号,低通滤波器LPF 输出经抽样判决可恢复出电平信号。
16QAM 正交相干解调如图2所示。
北邮通原软件实验报告16QAM

北邮通原软件实验报告16QAM.....实验一:16QAM调制与解调实验目的熟悉16QAM信号的调制与解调,掌握SYSTEMVIEW软件中,观察眼图与星座图的方法。
强化SYSTEMVIEW软件的使用,增强对通信系统的理解。
实验原理16QAM是指包含16种符号的QAM调制方式。
16QAM调制原理方框图:图一16QAM调制框图16QAM解调原理方框图:图二16QAM解调框图16QAM是用两路独立的正交4ASK信号叠加而成,4ASK是用多电平信号去键控载波而得到的信号。
它是2ASK体制的推广,和2ASK相比,这种体制的优点在于信息传输速率高。
正交幅度调制是利用多进制振幅键控(MASK)和正交载波调制相结合产生的。
16进制的正交振幅调制是一种振幅相位联合键控信号。
16QAM的产生有2种方法:(1)正交调幅法,它是有2路正交的四电平振幅键控信号叠加而成;(2)复合相移法:它是用2路独立的四相位移相键控信号叠加而成。
在这里我们使用第一种方法。
16QAM信号的星座图:图三16QAM星座图上图是16QAM的星座图,图中f1(t)和f2(t)是归一化的正交基函数。
各星座点等概出现。
星座图中最近的距离与解调误码率有很密切的关系。
上图中的最小距离是dmin=2。
16QAM的每个星座点对应4个比特。
哪个星座点代表哪4比特,叫做星座的比特映射。
通常采用格雷映射,其规则是:相邻的星座点只差一个比特。
实验所需模块连接图如下所示:图四模块连接图各个模块参数设置:属性类型参数设置0,2SourcePNseqAmp=1V;Rate=10Hz;Levels=4 4,13SourceSinusiodAmp=1V;Rate=100Hz12SourceGaussNoiseStdDev=0V;Mean=0V5,7,9,10Multipler——————3Adder——————17,18OperatorLinearSysButterworth,3Poles,fc=10Hz19,14,15Sink——————设置系统时间为20Sec(观察眼图),仿真频率1000Hz实验步骤按照实验所需模块连接图,连接各个模块设置各个模块的参数:信号源部分:PN序列发生器产生双极性NRZ序列,频率10HZ 图五信号源设置示意图载频:频率设置为100Hz。
16QAM的调制与解调

目录一、设计思路及设计方案 (2)1)16QAM调制原理 (2)2)设计思路 (2)3)设计方案 (2)二、总体电路组成与分析 (3)1)总体电路图 (3)2)总体电路分析 (3)三、子电路系统分析 (4)1)串并变换子系统 (4)3)四电平判决子系统 (8)4)4-2变换子系统 (10)5)串并转换子系统 (13)四、仿真波形 (15)1)调制部分 (15)2).解调部分 (18)3).星座图: (22)五、设计总结 (22)六、参考文献 (23)一、设计思路及设计方案1)16QAM调制原理在16QAM中,数据信号由相互正交的两个载波合成。
16QAM是一种矢量调制,将输入比特先映射(一般采用格雷码)到一个复平面(星座)上,形成复数调制符号,然后将符号的I、Q分量(对应复平面的实部和虚部,也就是水平和垂直方向)采用幅度调制,分别对应调制在相互正交(时域正交)的两个载波(coswt 和sinwt)上,然后两路正交信号相加得到调制信号。
2)设计思路16-QAM信号,每个样点表示一种矢量状态,16-QAM有16态,每4位二进制数规定了16态中的一态,16-QAM中规定了16种载波和相位的组合,16-QAM的每个符号和周期传送4比特。
16进制的正交振幅调制是一种振幅相位联合键控信号。
16QAM的产生有2种方法:(1)正交调幅法,它是有2路正交的四电平振幅键控信号叠加而成;(2)复合相移法:它是用2路独立的四相位移相键控信号叠加而成。
这里采用正交调幅法。
3)设计方案首先,伪随机码发生器产生速率为Rb的二进制序列,此二进制码流经串一并变换器将分成两个速率为Rb/2的两电平序列,2一4电平变换器将每个速率为Rb/2的两电平序列变成速率为Rb/4,4电平信号,然后分别与两个正交的载波相乘,相加后即产生QAM信号。
QAM信号的解调器同样可以采用正交的相干解调方法。
同相I路和正交Q路的4电平基带信号用判决器判决后,分别恢复出速率等于Rb/2的二进制序列,最后经并一串变换器将两路二进制序列合成一个速率为Rb的二进制序列。
16QAM调制与解调的MATLAB实现及调制性能分析

通信原理课程设计报告书课题名称16QAM 调制与解调的MATLAB 实现及调制性能分析姓 名学 号 学 院 通信与电子工程学院专 业 通信工程 指导教师李梦醒2012年 01 月 01日※※※※※※※※※ ※※ ※※ ※※2009级通信工程专业通信原理课程设计16QAM 调制与解调的MATLAB 实现及调制性能分析1 设计目的(1) 掌握16QAM 调制与解调的原理。
(2) 掌握星座图的原理并能熟悉星座图的应用。
(3) 熟悉并掌握MATLAB 的使用方法。
(4) 通过对16QAM 调制性能的分析了解16QAM 调制相对于其它调制方式的优缺点。
2 设计原理正交振幅调制(Quadrature Amplitude Modulation,QAM )是一种振幅和相位联合键控。
虽然MPSK 和MDPSK 等相移键控的带宽和功率方面都具有优势,即带宽占用小和比特噪声比要求低。
但是由图1可见,在MPSK 体制中,随着8/15π图 1 8PSK 信号相位M 的增大,相邻相位的距离逐渐减小,使噪声容限随之减小,误码率难于保证。
为了改善在M 大时的噪声容限,发展出了QAM 体制。
在QAM 体制中,信号的振幅和相位作为两个独立的参量同时受到调制。
这种信号的一个码元可以表示为0()cos() (1)k k k s t A t kT t k T ωθ=+<≤+ (2—1)式中:k=整数;k A 和k θ分别可以取多个离散值。
式(2—1)可以展开为00()cos cos sin sin k k k k k s t A t A t θωθω=- (2—2)令 X k = A k cosq k , Y k = -A k sinq k8/5π8/3π8/π8/7π8/9π8/11π8/13π则式(2—1)变为00()cos sin k k k s t X t Y t ωω=+ (2—3)k X 和k Y 也是可以取多个离散的变量。
16QAM的调制与解调

目录一、设计思路及设计方案 (2)1)16QAM调制原理 (2)2)设计思路 (2)3)设计方案 (3)二、总体电路组成与分析 (3)1)总体电路图 (3)2)总体电路分析 (4)三、子电路系统分析 (5)1)串并变换子系统 (5)3)四电平判决子系统 (9)4)4-2变换子系统 (11)5)串并转换子系统 (14)四、仿真波形 (16)1)调制部分 (16)2).解调部分 (19)3).星座图: (23)五、设计总结 (23)六、参考文献 (24)一、设计思路及设计方案1)16QAM调制原理在16QAM中,数据信号由相互正交的两个载波合成。
16QAM是一种矢量调制,将输入比特先映射(一般采用格雷码)到一个复平面(星座)上,形成复数调制符号,然后将符号的I、Q分量(对应复平面的实部和虚部,也就是水平和垂直方向)采用幅度调制,分别对应调制在相互正交(时域正交)的两个载波(coswt和sinwt)上,然后两路正交信号相加得到调制信号。
2)设计思路16-QAM信号,每个样点表示一种矢量状态,16-QAM有16态,每4位二进制数规定了16态中的一态,16-QAM中规定了16种载波和相位的组合,16-QAM 的每个符号和周期传送4比特。
16进制的正交振幅调制是一种振幅相位联合键控信号。
16QAM的产生有2种方法:(1)正交调幅法,它是有2路正交的四电平振幅键控信号叠加而成;(2)复合相移法:它是用2路独立的四相位移相键控信号叠加而成。
这里采用正交调幅法。
3)设计方案首先,伪随机码发生器产生速率为Rb的二进制序列,此二进制码流经串一并变换器将分成两个速率为Rb/2的两电平序列,2一4电平变换器将每个速率为Rb/2的两电平序列变成速率为Rb/4,4电平信号,然后分别与两个正交的载波相乘,相加后即产生QAM信号。
QAM信号的解调器同样可以采用正交的相干解调方法。
同相I路和正交Q路的4电平基带信号用判决器判决后,分别恢复出速率等于Rb/2的二进制序列,最后经并一串变换器将两路二进制序列合成一个速率为Rb的二进制序列。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
南昌大学实验报告学生姓名:学号:专业班级:实验类型:□验证□综合 设计□创新实验日期:2018/6/23 实验成绩:一、实验名称实验八16QAM调制解调与信道分析二、实验目的(1) 掌握QAM及解调原理与特性(2) 了解星座图的原理及用途(3) 分析高斯、瑞利、莱斯信道三、实验内容(1) 设计16QAM调制解调算法(2) 比较GMSK和16QAM在高斯、莱斯和瑞利信道条件下的误码性能(3) 撰写实验报告。
四、实验原理正交振幅调制是用两个独立的基带数字信号对两个相互正交的同频载波进行抑制载波的双边带调制,利用这种已调信号在同一带宽内频谱正交的性质来实现两路并行的数字信息传输。
正交振幅调制信号的一般表示式为16QAM是指包含16种符号的QAM调制方式,产生的框图如图1.图1 16QAM调制相干解调原理如图2.图2 16QAM解调五、实验步骤(1) 16QAM调制与解调算法先产生所需的二进制基带信号:%% 产生的随机二进制数据流M = 16; %信号的星座尺寸k = log2(M); %每个符号的比特数n = 30000; %处理的比特数目numSamplesPerSymbol = 1; %过采样因子%% 创建二进制数据流作为列向量rng default%使用缺省随机数发生器dataIn = randi([0 1],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([-4 4 -4 4])在信号中加入噪声%% 添加高斯白噪声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.');hold onscatterplot(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('\nThe binary coding bit error rate = %5.2e, based on %d errors\n', ...ber,numErrors)运行效果如图3图3 运行效果图(2) QAM在高斯、莱斯和瑞利信道条件下的误码性能思路:先产生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) 如果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—是线性尺度上的Rice K-因子。
(3) GMSK在高斯、莱斯和瑞利信道条件下的误码性能思路:先产生GMSK信号,然后先通过高斯信道引入噪声,再送入莱斯和瑞利信道后输出,通过给定不同的信噪比,画出误码率曲线。
效果结果如图5所示,代码见附录2。
图5 GMSK经过各信道的误码率本次程序设计的各信道模型用到了MATLAB自带的模型类。
A.G MSK生成器: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—噪声的方法'Signal to noise ratio (Eb/No)','Signal to noise ratio (Es/No)','Signal to noise 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因子(标量或矢量线性尺度),该位的默认值3如果KFactor是一个标量,那么第一离散路径是具有Kras系数的Rice k-因子的莱斯衰落过程。
剩下的离散路径是独立的瑞利衰落过程。
如果KFactor是行向量,则对应于K因子向量的正元素的离散路径是具有由该元素指定的瑞斯K因子的莱斯衰落过程。
与K因子向量的零值元素相对应的离散路径是瑞利衰落过程▷ MaximumDopplerShift—最大多普勒频移(赫兹),属性的默认值是0.001赫兹。
多普勒频移适用于信道的所有路径。
当将最大值DoppReSHIFT设置为0时,通道对整个输入保持静态。
可以使用RESET方法生成新的通道实现。
▷ DopplerSpectrum—多普勒频谱指定所述多普勒频谱的形状(路径)的信道。
▷ RandomStream—随机数流源,此属性的默认值是Global stream。
将随机数流的源指定为Global stream| mt19937ar的种子。
▷ Seed—初始种子的mt19937ar随机数流,默认值73▷ PathGainsOutputPort—输出信道路径增益,此属性默认值是FALSE 将此属性设置为true输出通道路径增益的衰落过程的基础。
E.瑞利信道生成器:comm.RayleighChannel(...'SampleRate',1e6, ...'MaximumDopplerShift',30, ...'DopplerSpectrum',doppler('Bell', 8),...'RandomStream','mt19937ar with seed', ...'Seed',73, ...'PathGainsOutputPort',true);▷属性与莱斯信道相同六、思考及体会通过本次实验,对各信道的模型有了一定的了解,通过误码率曲线图直观的看到了不同信道对信号的影响,为之后的学习提供了形象的解释。
附录1%% ---------------------- QAM ---------------------- %%M = 16; %信号的星座尺寸k = log2(M); %每个符号的比特数n = 30000; %处理的比特数目numSamplesPerSymbol = 1; %过采样因子%% 创建二进制数据流作为列向量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] = biterr(dataIn,dataOut_Gauss);% fprintf('\nThe binary coding bit error rate = %5.2e, based on %d errors\n',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_Rayleigh = qam_demod(rxSignal_Rayleigh);% 计算系统的误码率(BER)[numErrors, ber] = biterr(dataIn,dataOut_Rayleigh);% fprintf('\nThe binary coding bit error rate = %5.2e, based on %d errors\n',ber,numErrors) plot(snr,ber,'g*')hold on%% 莱斯% 获得莱斯信道函数Rician_chan = ricianchan(1/10000,100,1);% 将信号通过Rician信道rxSignal_Rician = filter(Rician_chan, rxSignal_Gauss);% 16-QAM解调dataOut_Rician = qam_demod(rxSignal_Rician);% 计算系统的误码率(BER)[numErrors, ber] = biterr(dataIn,dataOut_Rician);% fprintf('\nThe binary coding bit error rate = %5.2e, based on %d errors\n',ber,numErrors) plot(snr,ber,'b.')hold onendxlabel('信噪比SNR'),ylabel('误码率BER');legend('高斯','瑞利','莱斯, 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',true,'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.AWGNChannel('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 = %f\nNumber of errors = %d\n',errorStats(1), errorStats(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,rxSignal_Gauss); %将通过AWGN信道的信号再通过瑞利信道modSigGMSK% GMSK解调dataOut_Rayleigh = step(gmskDeMod, rxSignal_Rayleigh);% 计算系统的误码率(BER)errorStats = step(hError, dataIn, dataOut_Rayleigh);fprintf('Error rate = %f\nNumber of errors = %d\n', 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 seed', ...'Seed',73, ...'PathGainsOutputPort',true);% 将信号通过莱斯信道[rxSignal_Rician, RicianPathGains1] = step(ricianChan,rxSignal_Gauss); %将通过AWGN信道的信号再通过莱斯信道modSigGMSK% GMSK解调dataOut_Gauss = step(gmskDeMod, rxSignal_Rician);% 计算系统的误码率(BER)errorStats = step(hError, dataIn, dataOut_Gauss);fprintf('Error rate = %f\nNumber of errors = %d\n', errorStats(1), errorStats(2))plot(snr,errorStats(1),'g*')hold onendxlabel('信噪比SNR'),ylabel('误码率BER');legend('高斯','瑞利','莱斯, K=5dB','Location','NorthEastOutside')title('GMSK 下的误码率-- SXF')。