失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 正交幅度调制(QAM)信号的产生与解调介绍及matlab实现

正交幅度调制(QAM)信号的产生与解调介绍及matlab实现

时间:2019-03-20 11:35:06

相关推荐

正交幅度调制(QAM)信号的产生与解调介绍及matlab实现

1.QAM信号的产生

1.1 原理

1.2 仿真代码

clear allM=8;msg = [1 4 3 0 7 5 2 6]; %消息信号ts = 0.01; %抽样时间间隔T = 1; %符号周期t = 0:ts:T; %符号持续时间向量x = 0:ts:length(msg); %所有符号的传输时间fc = 1; %载波频率c = sqrt(2/T)*exp(j*2*pi*fc*t); %载波信号msg_qam = qammod(msg,M).'; %基带8-QAM调制tx_qam = real(msg_qam*c); %载波调制tx_qam= reshape(tx_qam.',1,length(msg)*length(t));plot(x,tx_qam(1:length(x)));title("8QAM信号波形") xlabel("时间t");ylabel("载波振幅");scatterplot(msg_qam)title("8QAM信号星座图")xlabel("同相分量");ylabel("正交分量");

1.3 仿真结果

QAM信号波形振幅不恒定,说明其既调幅又调相。

2.QAM信号的解调

2.1 原理

2.2 仿真代码

%基带等效方式仿真16-QAM载波调制信号在AWGN信道下的误比特率性能clear allnsymbol = 100000; %每种SNR下发送的符号数M=16; %16-QAM graycode = [0 1 3 2 4 5 7 6 12 13 15 14 8 9 11 10];EsN0 = 5:20;snr1 = 10.^(EsN0/10); %信噪比转换为线性值msg = randi([0,1],1,nsymbol); %消息数据msg1 = graycode(msg+1); % Gray映射msgmod = qammod(msg1, M); %16-QAM调制spow = norm(msgmod).^2/nsymbol; %求每个符号的平均gonglvfor indx=1:length(EsN0)sigma = sqrt(spow/(2*snr1(indx))); %根据符号功率求噪声功率rx = msgmod+sigma*(randn(1,length(msgmod))+j*randn(1,length(msgmod))); %加高斯白噪声y = qamdemod(rx,M); %判决demsg = graycode(y+1);[err,ber(indx)] = biterr(msg,demsg,log2(M));[err,ser(indx)] = symerr(msg,demsg);endP4 = 2*(1-1/sqrt(M))*qfunc(sqrt(3*snr1/(M-1)));ser1 = 1-(1-P4).^2;ber1 = 1/log2(M)*ser1;semilogy(EsN0,ber,"-ko", EsN0, ser, "-k*", EsN0, ser1, "-r*", EsN0, ber1, "-ro");title("16-QAM载波调制信号在AWGN信道下的误比特率性能")xlabel("EbN0");ylabel("误比特率P和误符号率");legend("误比特率", "误符号率", "理论误符号率", "理论误比特率")

2.3 仿真结果

如果觉得《正交幅度调制(QAM)信号的产生与解调介绍及matlab实现》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。