👨🎓个人主页:研学社的博客
💥💥💞💞欢迎来到本博客❤️❤️💥💥
🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳️座右铭:行百里者,半于九十。
📋📋📋本文目录如下:🎁🎁🎁
目录
💥1 概述
本文 MPSK2 模拟 BPSK、QPSK、8PSK 和 16 PSK 以生成实验性 BER v Eb/No 和 SER v Es/No 曲线。还绘制了相应的理论曲线。
📚2 运行结果
部分代码:
while TotalNoBitErrors<1,
% generate bit stream
m=floor(rand(1,NoOfBitsPerWord).*2);
% serial to parralel
m1=reshape(m, k, NoofSymbolsPerWord);
% do MPSK modulation
s=zeros(1,length(m1));
x1=zeros(1,length(m1)); % symbols in decimal label format
% look-up for modulator
for counter=1:length(m1),
data=m1(1:k,counter)';
for counter2=1:M,
if data== symbolmapping(counter2,2:end),
x1(counter)=symbolmapping(counter2,1);
s(counter)=exp(j.*2.*pi./M.*symbolmapping(counter2,1));
end
end
end
% Create AWGN complex noise
EbNo=10.^(EbNodBVals(SNR)./10);
EsNo=EbNo.*coderate.*log2(M);
Es=1;
No=Es./EsNo;
if M>2,
sigma=sqrt(No./2);
else
sigma=sqrt(No./2);
end
n=sigma.*(randn(size(s))+j.*randn(size(s)));
r=s+n; %awgn, r= received signal
% Minimum squared Euclidean distance symbol-by-symbol demodulator
x1_est=zeros(1,length(r)); % estimated symbols (decimal index)
m1_est=zeros(k,length(r)); % estimated bit strean
for counter=1:length(r),
distances=abs(r(counter)-si).^2;
I=find(distances==min(distances));
x1_est(counter)=I(1)-1; % holds the symbol number 0 to M-1
I=find(symbolmapping(:,1)==x1_est(counter));
m1_est(:,counter)=(symbolmapping(I(1),2:end))';
end
% parralel to serial
m_est=reshape(m1_est,1,k.*length(r)); % estimated bit stream
TotalNoSymbolErrors=TotalNoSymbolErrors+length(find(x1_est~=x1));
TotalNoBitErrors=TotalNoBitErrors+length(find(m~=m_est));
TotalNoBits=TotalNoBits+NoOfBitsPerWord;
TotalNoSymbols=TotalNoSymbols+NoofSymbolsPerWord;
🎉3 参考文献
部分理论来源于网络,如有侵权请联系删除。
[1]孟庆松,段建红,黄子豪.基于LFM信号的MPSK水声信号盲解调[J].舰船电子工程,2022,42(04):74-78.
[2]胡乘龙. MPSK/MAPSK信号盲解调方法研究[D].电子科技大学,2021.DOI:10.27005/d.cnki.gdzku.2021.001118.