MPSK的模拟和理论BER/SER曲线研究(Matlab代码实现)

 👨‍🎓个人主页:研学社的博客     

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码实现


💥1 概述

MPSK MAPSK 信号都是数字通信中常见的调制信号, MAPSK 拥有比 MPSK更高的频谱效率,拥有比 QAM 更好的峰均比,更适合非线性信道。 APSK QAM调制类似,都是既调幅又调相的调制信号,而 PSK 是幅度恒定的调相信号,可以把 PSK 看作是 APSK QAM 的特例。因此这些信号的调制解调原理相近,解调方法可以通用。下面分别介绍 MPSK MQAM MAPSK 的信号模型,提取共同点形成统一的信号模型。
MPSK 调制信号的表达式如式 (2-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.

🌈4 Matlab代码实现

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

荔枝科研社

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

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

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

打赏作者

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

抵扣说明:

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

余额充值