基于蒙特卡洛 8PSK 和和和 16PSK 调制(Matlab代码实现)
👨🎓个人主页:研学社的博客
💥💥💞💞欢迎来到本博客❤️❤️💥💥
🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳️座右铭:行百里者,半于九十。
📋📋📋本文目录如下:🎁🎁🎁
目录
💥1 概述
📚2 运行结果
部分代码:
% ********************* Initialization ***********************************%
clc;
clear all;
close all;
loop=1; % Monte Carlo
M=16; % MPSK
N=1000; % Frame length (x_1 x_2 ... x_N)
SNRdB=-10:30; % 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
% ********************* MPSK signal generation ***************************%
theta=[0:M-1];
x_phase = (2*pi/M)*randsrc(1,N,theta);
x_inp = exp(i*x_phase);
% ********************* Channel ******************************************%
N0=1./SNR(dB);
sigma(dB)=sqrt(N0/2);
noise=sigma(dB)*randn(1,N)+i*sigma(dB)*randn(1,N);
y_channel=x_inp+noise; % Additive White Guassiann Noise (AWGN)
% ********************* Receiver *****************************************%
y=y_channel;
x_out = zeros(1,length(y));
for ii=1:length(y)
[min_val,min_index]=min(sqrt((real(y(ii))-real(x_inp)).^2+(imag(y(ii))-imag(x_inp)).^2));
x_out(ii)=x_inp(min_index);
end
% ********************* 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
🎉3 参考文献
部分理论来源于网络,如有侵权请联系删除。
[1]季幸平,王建军,邵宇丰,汪志峰.基于8PSK和16PSK调制的全双工RoF系统研究[J].上海第二工业大学学报,2018,35(04):280-284.DOI:10.19570/j.cnki.jsspu.2018.04.005.
[2]陈常嘉.瑞利衰落信道上的6PSK环码[J].电子学报,1996(04):98-100.