基于Matlab模拟M-QAM 传输

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法       神经网络预测       雷达通信       无线传感器        电力系统

信号处理              图像处理               路径规划       元胞自动机        无人机 

⛄ 内容介绍

​MQAM (Multiple Quadrature Amplitude Modulation) 多进制正交幅度调制。4相相位键控信号其实也是一种二电平正交振幅键控。如果将二电平振幅键控进一步发展为多电平(例如4、8、16电平等)正交振幅键控,显然可以获得更高的频谱利用率。

⛄ 代码

% *************** Simulation M-QAM transmission over noise *********%

% with using Monte Carlo simulation

% ********************* Initialization ***********************************%

clc;

clear all;

close all;

q=4; % 

M=2^q; % M-QAM level power of 2 

loop=10; % Monte Carlo 

N=100000;  % Frame length (x_1 x_2 ... x_N)

SNRdB=0:15; % SNR in dB

SNR=10.^(SNRdB/10);

Rate= zeros(1, length(SNRdB)); % 

% ********************* Transmitter **************************************%

for dB= 1: length(SNRdB) % start looping by SNR

    dB

    for lp= 1: loop, % start looping of frame data 

% ********************* q-QAM signal generation **************************%    

x_inp=round(rand(N,1)); % 1 or 0

    x_inp_mod=qammod(x_inp,q);

    

% ********************* Channel ******************************************%

  

    y_channel=awgn(x_inp_mod,SNRdB(dB)); %  AWGN 

    

    

% ********************* Receiver *****************************************% 

    y=y_channel; 

    x_inp_dem=qamdemod(y,q);

    x_out=round(x_inp_dem);

   

% ********************* Bit Error Rate (BER) calulation ******************%    

    

    [err, rate]= symerr(x_inp, x_out);

    Rate(dB)= Rate(dB) + rate;

    

    end % end for loop

   

    Rate(dB)= Rate(dB)/loop; % Average value over Monte Carlo simulation 

                              % loop

   

end % end Monte Carlo

% ********************* Plot the simulation result ***********************%

    f1 = figure(1);

    set(f1,'color',[1 1 1]);

    semilogy(SNRdB,Rate, 'b-*')

    hold on;

    BER_th= (2*(sqrt(M)-1)/sqrt(M))*qfunc(sqrt((6*q/(M-1)))*sqrt(SNR)); % theoritical calculation for BER

    semilogy(SNRdB,BER_th,'r-o');

    hold on;

    axis([0 12 0.00000001  1.2]);  

    xlabel( 'Signal-to-Noise Ratio (SNR)')

    ylabel( 'Bit Error Rate (BER)')

    title('Simulation QAM transmission over noise');

    legend('BER simulation','BER calculation')

    grid on;

⛄ 运行结果

⛄ 参考文献

[1] XUE Wen-ling. 基于MATLAB的模拟线性通信系统可视化设计[J]. 河北软件职业技术学院学报, 2010(001):012.

[2] 黄永东. 基于Matlabm文件的PCM传输系统仿真[J]. 科技风, 2011(5):3.

[3]  Dwivedi P ,  Ranjan A ,  Srivastava A . Simulation of M-ary QAM and M-ary PSK Modulation Techniques Using MATLAB GUI[J]. Social Science Electronic Publishing.

[4]  Raza M S . MATLAB code for M-array QAM modulation[J].

⛳️ 代码获取关注我

❤️部分理论引用网络文献,若有侵权联系博主删除

❤️ 关注我领取海量matlab电子书和数学建模资料

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Matlab科研辅导帮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值