首页 > 其他分享 >(75)MPSK基带调制解调的MATLAB仿真

(75)MPSK基带调制解调的MATLAB仿真

时间:2024-11-28 10:29:00浏览次数:12  
标签:仿真 PSK 比特 相位 MPSK 75 MATLAB 符号 调制

文章目录


前言

M-PSK(M-Phase Shift Keying,M相移键控)是一种相位调制技术,其中M表示不同的相位状态数量。在M-PSK中,每个符号携带log2(M)比特的信息,通过改变载波信号的相位来表示不同的数据。本文首先对M-PSK进行介绍,然后给出M-PSK调制解调的MATLAB仿真代码与仿真结果。


一、M-PSK调制的基本步骤

1. 比特到符号的映射

在M-PSK调制中,首先需要将二进制比特序列转换为符号。这通常涉及到将比特分组,每组包含log2(M)个比特。例如,在8-PSK(M=8)调制中,每个符号由3个比特组成。

2. 确定相位状态

M-PSK调制将整个360度的相位圆等分为M个部分,每个部分对应一个相位状态。因此,每个相位状态之间的角度差是360度/M。

3. 映射比特到相位

将每组比特映射到对应的相位状态。例如,在8-PSK中,可能有以下映射:
• 000 -> 0度
• 001 -> 45度
• 010 -> 90度
• 011 -> 135度
• 100 -> 180度
• 101 -> 225度
• 110 -> 270度
• 111 -> 315度

4. 发送调制信号

每个符号对应的相位状态会调制到载波上,然后发送出去。调制信号可以表示为: s(t)=Acos(2πfct+ϕ)其中,A 是信号的幅度,fc 是载波频率,ϕ 是由比特到符号映射确定的相位。

二、M-PSK调制示例:4-PSK(QPSK)

以4-PSK(也称为QPSK)为例,M=4,每个符号携带2个比特。以下是4-PSK调制的步骤:

1.比特到符号的映射

• 00 -> 0度
• 01 -> 90度
• 10 -> 180度
• 11 -> 270度

2.发送调制信号

假设我们有一个比特序列:1 0 1 1 0 0 0 1
分组后:10 11 00 01
映射到相位:180度, 270度, 0度, 90度
调制信号将会在相应的相位上发送。

三、MATLAB仿真

1. 仿真代码

% 仿真参数设置
nSym = 1e2;                      % 符号数
MODU_TYPE = 'PSK';               % 调制类型
arrayM = [2,4,8];                % 要仿真的M值数组

for n = 1:length(arrayM)
    % 调制阶数
    M = arrayM(n);
    
    % 生成随机符号
    d = randi([1 M],1,nSym);

    % M-PSK基带调制
    [s,ref_Constellation] = mpsk_modulator(M,d);
    
    % 解调
    d_hat= mpsk_demodulator(M,s);

    
    % 画图
    figure();
    subplot(1,2,1)
    stem(d,'bo')
    hold on;
    stem(d_hat,'r*')
    grid on;
    xlim([0 60]);
    ylim([0 M+1]);
    legend('Tx发射的符号','Rx恢复的符号');
    if M==2
        title('BPSK收发符号对比');
    elseif M==4
        title('QPSK收发符号对比');
    else
        title([num2str(M),'-',MODU_TYPE,'收发符号对比']);
    end
    xlabel('n');ylabel('d_hat(n)');
    
    % 画图
    subplot(1,2,2)
    plot(s,'o','LineWidth',1.5)
    grid on;
    axis([-1 1 -1 1]);
    axis('square');
    if M==2
        title('BPSK调制基带信号星座图');
    elseif M==4
        title('QPSK调制基带信号星座图');
    else
        title([num2str(M),'-',MODU_TYPE,'调制基带信号星座图']);
    end
    xlabel('Re\{s(n)\}');ylabel('Im\{s(n)\}');
end

2. 仿真结果

BPSK:
在这里插入图片描述

QPSK:
在这里插入图片描述

8PSK:
在这里插入图片描述

四、子函数与完整代码

代码中调用了2个子函数:
(1)mpsk基带调制函数
[s,ref_Constellation] = mpsk_modulator(M,d);

(2)mpsk解调函数
d_hat = mpsk_demodulator(M,s);

这两个函数的实现与仿真的完整代码已上传至资源(所需积分:0,欢迎下载):
https://download.csdn.net/download/weixin_45333185/90039052
在这里插入图片描述

总结

M-PSK调制是一种高效的调制方式,因为它可以在相同的带宽内传输更多的信息比特。随着M的增加,每个符号携带的比特数也增加,但这也增加了对信道的噪声和干扰的敏感性,因为相邻相位状态之间的间隔变小,更容易受到干扰。



标签:仿真,PSK,比特,相位,MPSK,75,MATLAB,符号,调制
From: https://blog.csdn.net/weixin_45333185/article/details/144043890

相关文章

  • [题解]CF1775E The Human Equation
    来个另类解。思路手玩一下样例,发现减法只会用在正数上,加法只会用在负数上,大概是因为如何在负数上用了减法或在正数上用了加法,都需要额外的次数去消掉。然后注意到在两个正数中间包这的所有负数可以直接缩成一个数,两个负数中间包着的所有正数也可以直接缩成一个数。那么现在的序......
  • 2024年最新多目标优化算法:多目标班翠鸟优化算法(MOPKO)求解ZDT1-ZDT4,ZDT6,提供完整MATLAB
    一、班翠鸟优化算法班翠鸟优化算法(PiedKingfisherOptimizer,PKO)是一种基于群体的新型元启发式算法,由AbdelazimHussien于2024年提出。该算法从自然界中观察到的班翠鸟独特的狩猎行为和共生关系中汲取灵感,能够有效地解决不同搜索空间中的各种优化挑战算法描述PKO算法通......
  • CF755D 数学规律法 解题报告
    更好的阅读体验题目传送门这道题怎么都是数据结构题解?那本蒟蒻就来一篇数学题解(貌似是本题唯一的线性做法)。思路:模拟赛上有一道十分相似的题目,但是一开始想到的是用数据结构维护每次插入一条线段之前查询有多少根线段与其相交,但是太蒻了不会打,所以只好思考数学解法。注意到本......
  • 图像去雾+图像去雨(matlab+python)
    看到许多小伙伴想进行图像去雨,图像去雾的任务,由于以前进行了此类项目,所以在此书写博客进行交流。#去雨前言从静止图像中去除雨水是一项复杂且具有挑战性的任务。雨滴仅影响图像的很小区域,因此导致确定应考虑哪个区域和不应考虑哪个区域的混乱。在本文中,已经实现了一种新......
  • [75] (NOIP集训) NOIP2024 加赛 8
    A.flandre我的做法是,所有数离散化之后扔进桶里,去枚举选择\([i,+\infty)\)内的数的贡献,在所有的\(i\)里取一个最大值作为答案lbtl指出可能存在最优答案是选择\([i+1,+\infty)\)内的所有数与值为\(i\)的部分数的数据和lbtl交涉后尝试构造一组相同元素只选后一半的数据......
  • MATLAB 实现遗传算法优化随机森林(GA-RF)进行多输入单输出回归预测
    目录1.项目概述...11.1背景...11.2模型描述...12.项目设计...12.1数据生成...12.2遗传算法优化随机森林模型...22.3模型训练与预测...32.4结果评估与可视化...33.完整代码...44.项目总结...6未来改进方向...6参考资料...6以下是一个使用M......
  • MATLAB 实现 SSA-GRU和 GRU(门控循环单元)结合麻雀算法优化时间序列预测
    目录1.项目概述...11.1背景...11.2模型描述...12.项目设计...12.1数据生成...12.2TTA分解...22.3GTT模型构建...32.4麻雀算法优化GTT超参数...32.5模型训练与预测...42.6结果评估与优化前后比较...43.完整代码...54.项目总结...7未来......
  • 多智能体系统的约束驱动最优控制:高速公路车队案例研究(Matlab代码实现)
      ......
  • MATLAB 实现基于粒子群优化的支持向量机(PSO-SVM)进行多输入单输出回归预测
    目录1.项目概述...11.1背景...11.2模型描述...12.项目设计...12.1数据生成...12.2PTO-TVM模型构建...22.3模型训练与预测...32.4结果评估与可视化...43.完整代码...44.未来改进方向...75.参考资料...7以下是使用MATLAB实现基于粒子群优......
  • MATLAB使用 BiLSTM(双向长短期记忆神经网络)进行多变量时间序列预测
    目录1.项目概述...11.1背景...11.2模型描述...12.项目设计...12.1数据生成或准备...12.2BrtiLTTM模型构建...22.3模型训练与预测...22.4结果评估与可视化...33.完整代码...44.参考资料...65.未来改进方向...6下面是一个基于MATLAB的项目......