首页 > 其他分享 >(73)脉冲幅度调制PAM调制解调通信系统的MATLAB仿真

(73)脉冲幅度调制PAM调制解调通信系统的MATLAB仿真

时间:2024-11-28 11:33:54浏览次数:10  
标签:仿真 ref 脉冲 PAM 73 Constellation 调制

文章目录


前言

PAM(Pulse Amplitude Modulation,脉冲振幅调制)是一种模拟信号到数字信号的转换方式,它通过改变脉冲的振幅来表示信息。在PAM调制中,信息位(bit)被转换成一个具有特定振幅的脉冲。本文首先对PAM进行介绍,然后给出一个PAM调制解调通信系统的MATLAB仿真。最后给出了仿真结果。


一、PAM调制的基本原理

1. 调制过程:在PAM调制中,每一个数据符号被转换成一个脉冲,这些脉冲的幅度不同,以表示不同的数据值。

2. 信号表示:假设有M个不同的幅度水平,那么每个脉冲可以表示log2M比特的数据。

3. 信号形式:调制信号可以表示为

在这里插入图片描述

其中, an是第n个符号的幅度, g(t)是脉冲形状, Ts是符号周期。

二、PAM调制的步骤

1. 采样:首先,模拟信号在时间上被离散化,即通过采样过程将其转换成一系列离散的样本。

2. 量化:然后,每个样本的振幅被量化到有限数量的离散水平上。

3. 编码:最后,量化后的样本被编码成一系列脉冲,每个脉冲的振幅与量化水平相对应。

三、PAM调制示例

假设我们有一个二进制信号,我们使用4-PAM进行调制:
• 二进制信号:11 01 10 00
• PAM电平级别:-3, -1, 1, 3(分别对应二进制的00, 01, 10, 11)

调制过程如下:

1. 将二进制信号转换为相应的PAM电平级别
o 11 -> 3
o 01 -> -1
o 10 -> 1
o 00 -> -3

2. 生成PAM信号
o 第一个脉冲的振幅为3
o 第二个脉冲的振幅为-1
o 第三个脉冲的振幅为1
o 第四个脉冲的振幅为-3

这样,我们得到了一个PAM信号,它的脉冲振幅代表原始的二进制信息。

四、PAM调制的应用

PAM调制广泛应用于数字通信系统中,特别是在以下几个方面:
• 数字传输:PAM是数字通信系统的基础,如T1线路就是使用PAM来传输数据。
• 无线通信:在无线通信中,PAM可以作为调制技术的一部分,例如在GSM中,PAM用于生成QAM(Quadrature Amplitude Modulation)信号。
• 光纤通信:在光纤通信中,PAM用于将电信号转换为光信号。

PAM调制的关键优点是它简单且易于实现,但它也有局限性,如对噪声和干扰较为敏感,因此在实际应用中需要配合适当的信号处理技术来提高传输的可靠性和效率。

五、MATLAB仿真

1. 仿真代码

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

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

    % 解调
    d_hat = mpam_demodulator(M,s);

    % 画图
    figure();
    subplot(3,2,1)
    plot(d,'linewidth',1)
    grid on;
    title('发射端生成的符号');
    xlabel('n');ylabel('d(n)');
    subplot(3,2,3)
    plot(real(s),'r','linewidth',1)
    grid on;
    title([num2str(M),'-',MODU_TYPE,'调制基带信号']);
    xlabel('n');ylabel('s(n)');
    subplot(3,2,5)
    plot(d_hat,'linewidth',1)
    grid on;
    title('接收端恢复的符号');
    xlabel('n');ylabel('d_hat(n)');
    
    % 画图
    subplot(3,2,[2 4 6])
    % scatterplot(s);
    plot(s,'r*','LineWidth',1.5)
    grid on;
    axis([-M M -M M]);
    axis('square');
    title([num2str(M),'-',MODU_TYPE,'调制基带信号星座图']);
    xlabel('Re\{s(n)\}');ylabel('Im\{s(n)\}');
    figSize = get(0, 'DefaultFigurePaperPositionMode') ;
end

调制函数:

function [s,ref_Constellation] = mpam_modulator(M,d)
    % 【函数功能】
    % 对输入数据符号向量d进行M-PAM调制
    % 【输入参数】
    % M - 调制阶数。例如,M=8表示8-PAM调制
    % d - 输入数据符号向量。取值范围1:M
    % 【返回值】
    % s - 调制符号
    % ref_Constellation - 参考星座
    m = 1:M; 
    Amp = 2*m-1-M;              % 所有可能的双极性幅度电平
    ref_Constellation = complex(Amp);    % 参考星座
    s = complex(ref_Constellation(d));   % M-PAM调制,即把输入多进制符号映射为电平值
end

解调函数:

function [d_hat]= mpam_demodulator(M,r)
    m = 1:M; 
    Amp = 2*m-1-M;              % 所有可能的双极性幅度电平
    ref_Constellation = complex(Amp);    % 参考星座

    x = [real(r); imag(r)]';      % received vec. in cartesian form
    y = [real(ref_Constellation); imag(ref_Constellation)]';                % reference vec. in cartesian form

    X = sum(x.*x,2);
    Y = sum(y.*y,2)';
    distEuclid = X(:,ones(1,length(ref_Constellation))) + ...
                 Y(ones(1,length(r)),:) - 2*x*y';     % Squared Euclidean Dist.
    [~,indices] = min(distEuclid,[],2);               % Find the minimum value along DIM=2
    indices = indices.';
    d_hat = indices;
end

2. 仿真结果

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

总结

暂无。



标签:仿真,ref,脉冲,PAM,73,Constellation,调制
From: https://blog.csdn.net/weixin_45333185/article/details/144016843

相关文章

  • (75)MPSK基带调制解调的MATLAB仿真
    文章目录前言一、M-PSK调制的基本步骤1.比特到符号的映射2.确定相位状态3.映射比特到相位4.发送调制信号二、M-PSK调制示例:4-PSK(QPSK)1.比特到符号的映射2.发送调制信号三、MATLAB仿真1.仿真代码2.仿真结果四、子函数与完整代码总结前言M-PSK(M-PhaseShift......
  • LeetCode 773. Sliding Puzzle
    ......
  • SpringBoot枣阳市第二人民医院信息管理系统73263 程序+源码+数据库+调试部署+开发环境
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表系统内容;医院管理员,医生,线上挂号,用户,门诊病历,药品信息,就医记录开题报告内容项目名称:SpringBoot枣阳市第二人民医院信息管理系统项目编号:73263一、项......
  • 调制与解调(AM和DSB)
    调制调制调制大信号小信号小信号>100mV,<100mV<100mVAM数学原理开关函数平方律弧度区器件形式二极管(非环)↓三极管(基极集电极调幅)↓场效应管差分放大器二极管三极管场效应管(平方律器件)DSB数学原理开关函数双曲正切->线性区器......
  • SpringBoot游戏玩家服务平台94g73 程序+源码+数据库+调试部署+开发环境
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表系统内容:用户,商家,游戏陪玩,陪玩预约,游戏装备,订单信息,账号买卖,账号订单,退订单,评价信息开题报告内容项目名称:SpringBoot游戏玩家服务平台(94g73)一、项目......
  • 基于lvgl+ST7735制作一款esp8285的控制面板程序
    要在ESP8285上使用LVGL和ST7735创建一个控制面板程序,你需要遵循以下步骤。这个过程包括设置开发环境,连接硬件,编写代码,以及调校和优化。所需硬件ESP8285开发板:像NodeMCU之类的开发板。ST7735显示屏:通常是1.8英寸或2.0英寸的SPI接口显示屏。电源和连接线:用于连接ESP8285和......
  • RX23E-B系列微控制器是工业传感器设备的理想选择!R5F523E5B介绍,EFR32BG13P732F512GM48-
    RX23E-B系列微控制器具有内置模拟前端(AFE),是工业传感器设备的理想选择。与上一代的RX23E-A相比,RX23E-B的24位DeltaSigma模/数转换器在高速性能和噪声性能上均得到了改善。最大数据速率为125kSPS,这对于DeltaSigma模/数转换器来说速度很快,比RX23E-A快8倍。RMS......
  • CF1973
    更好地观看体验A有n个人要下棋,每次下棋选择两个不同的人进行,结果任意。若平局,两人各加1分,否则胜者加2分。现在给出每个人的最终得分,判断是否有解,若有解最大化平局次数。$n\le10^5,p_i\le10^9$首先,注意到一次下棋会给总得分恰好贡献两分,故总和为奇数时无解。总和为......
  • P5738 【深基7.例4】歌唱比赛
    先说思路:根据题目易知,要对m个评委的评分进行排序,那么就要用到排序函数,这里我用快速排序,当然也可以用其他排序方式,怎样简单怎样来,之后在对排序好的元素,去掉最高值和最低值,算出平均数,再将平均数输到一个新的数组中,输出最大值。(记得输出的是double类型)以下是代码实现:#include......
  • 22207320-王攀-Blog2
    题目集4~6的总结性Blog一、前言经过题目集4至6的练习,我对Java编程的理解和实践能力都有了显著的提升。题目集4主要考察了继承与正则表达式的知识点,题目集5引入了家庭电路的模拟,题目集6则在前者的基础上增加了并联电路的处理。三次题目集的题量逐步增加,难度也有所提升,特别是题目......