【光通信技术】脉冲位置调制(Pulse Position Modulation,PPM)【附MATLAB代码】

微信公众号:EW Frontier
关注可了解更多的雷达、通信、人工智能算法教程。问题或建议,请公众号留言;
如果你觉得对你有帮助,欢迎赞赏[1]
知识星球:https://t.zsxq.com/11PZOV9j

脉冲位置调制PPM

PPM基本概念单脉冲位置调制L-PPM差分脉冲位置调制L-DPPM多脉冲位置调制PPM MATLAB代码:

PPM基本概念

脉冲位置调制(Pulse Position Modulation,PPM)的原理是通过编码产生脉 冲信号,然后对基带信号进行调制,也就是将信号信息附加到PPM脉冲信号上, 调制信号决定载波脉冲的时间。具体来讲就是一个n位2进制信息经过PPM 编码后确定了该时隙的某个具体位置,然后将该2进制信息在这一确定的时 隙发出,同时在接收机检测并同步时钟,根据这些位置信息从而解调出传输信号。 根据脉冲不同的形式,又可以将PPM分成单脉冲位置调制(L-PPM),差分脉冲位置调制(L-DPPM),多脉冲位置调制(Mulit-PPM)。

单脉冲位置调制L-PPM

单脉冲位置调制L-PPM是在一个时间段内传输一个n位二进制数据的调制技术,假如把该 时间段均分2n个时隙,那么每个时隙内的脉冲信号对应n位二进制数里的数值 与时隙脉冲的对应关系为:

其中,m为n位二进制数里的某一位值,L代表该n位二进制数在L-PPM的时 间段中所对应时隙的位置。

差分脉冲位置调制L-DPPM

L-DPPM不同于L-PPM,L-PPM在一个时间段内的长度是固定的,L-DPPM 在一个时间段内的长度是不固定的。将L-PPM中的每个时间段内的高电平后的 时隙去掉就成为了时间段的末尾时隙都是高电平的L-DPPM,接收机解调时则通 过判断每个脉冲前的时间段长度来进行解调。L-PPM和L-DPPM的信号形式如下图所示。

图1 L-PPM和L-DPPM的信号形式图

多脉冲位置调制

多脉冲位置调制的原理是在一个周期内n位二进制数组被映射到由2n个时 隙组成的时间段上的脉冲上面,相较于只能在单时隙内出现一次脉冲的L-PPM, 多脉冲位置调制在一个周期内能够发送几个脉冲。多脉冲位置调制的实现较为复 杂,难度较高,因此在可见光通信系统的调制方法中很少采用多脉冲位置调制这种方法。

MATLAB仿真结果:

PPM MATLAB代码:

pw1=.5e-9;%脉冲宽度
pw=pw1/2.5;%福吉因素
Fs=100e9;%采样频率
Fn=Fs/2;%奈奎斯特频率
t=-1e-9:1/Fs:20e-9;%取样时间
A=1;
y =A*(1 - 4*pi.*((t)/pw).^2).* exp(-2*pi.*((t)/pw).^2);%高斯单
yp=y+ ...
A*(1-4*pi.*((t-2.5e-9-.2e-9)/pw).^2).*exp(-2*pi.*((t-2.5e-9-.2e-9)/pw).^2)+ ...
A*(1-4*pi.*((t-5.0e-9)/pw).^2).*exp(-2*pi.*((t-5.0e-9)/pw).^2)+ ...
A*(1-4*pi.*((t-7.5e-9-.2e-9)/pw).^2).*exp(-2*pi.*((t-7.5e-9-.2e-9)/pw).^2)+ ...
A*(1-4*pi.*((t-10e-9)/pw).^2).*exp(-2*pi.*((t-10e-9)/pw).^2);
%PPM调制上限

B=1;
yum=B*y+ ...
B*(1-4*pi.*((t-2.5e-9)/pw).^2).*exp(-2*pi.*((t-2.5e-9)/pw).^2)+ ...
B*(1-4*pi.*((t-5.0e-9)/pw).^2).*exp(-2*pi.*((t-5.0e-9)/pw).^2)+ ...
B*(1-4*pi.*((t-7.5e-9)/pw).^2).*exp(-2*pi.*((t-7.5e-9)/pw).^2)+ ...
B*(1-4*pi.*((t-10e-9)/pw).^2).*exp(-2*pi.*((t-10e-9)/pw).^2);
yc=yp.*yum;%输出频率=PPM调制上下限的混频输出

y=yp;%y=上限频率
NFFY=2.^(ceil(log(length(y))/log(2)));
FFTY=fft(y,NFFY);
NumUniquePts=ceil((NFFY+1)/2); 
FFTY=FFTY(1:NumUniquePts);
MY=abs(FFTY);
MY=MY*2;
MY(1)=MY(1)/2;
MY(length(MY))=MY(length(MY))/2;
MY=MY/length(y);
f=(0:NumUniquePts-1)*2*Fn/NFFY;

y1=yum;%调制下限
NFFY1=2.^(ceil(log(length(y1))/log(2)));
FFTY1=fft(y1,NFFY1);
NumUniquePts=ceil((NFFY1+1)/2); 
FFTY1=FFTY1(1:NumUniquePts);
MY1=abs(FFTY1);
MY1=MY1*2;
MY1(1)=MY1(1)/2;
MY1(length(MY1))=MY1(length(MY1))/2;
MY1=MY1/length(y1);
f=(0:NumUniquePts-1)*2*Fn/NFFY1;

y2=yc;
NFFY2=2.^(ceil(log(length(y2))/log(2)));
FFTY2=fft(y2,NFFY2);%pad with zeros
NumUniquePts=ceil((NFFY2+1)/2); 
FFTY2=FFTY2(1:NumUniquePts);
MY2=abs(FFTY2);
MY2=MY2*2;
MY2(1)=MY2(1)/2;
MY2(length(MY2))=MY2(length(MY2))/2;
MY2=MY2/length(y2);
f=(0:NumUniquePts-1)*2*Fn/NFFY2;

figure(1)
subplot(1,3,1); plot(t,y);xlabel('时间');ylabel('振幅');
title('上限频率调制脉冲');
grid on;
axis([-1e-9,10e-9 -1 1])
subplot(1,3,2); plot(f,MY);xlabel('频率');ylabel('振幅');
axis([0 10e9 0 .1]);%zoom in/out
grid on;
subplot(1,3,3); plot(f,20*log10(MY));xlabel('频率');ylabel('20LOG10=DB');
axis([0 20e9 -120 0]);
grid on;

figure(2)
subplot(1,3,1); plot(t,y1);xlabel('时间');ylabel('振幅');
title('下线频率调制脉冲');
grid on;
axis([-1e-9,10e-9 -1 1])
subplot(1,3,2); plot(f,MY1);xlabel('频率');ylabel('振幅');
axis([0 10e9 0 .1]);
grid on;
subplot(1,3,3); plot(f,20*log10(MY1));xlabel('频率');ylabel('20LOG10=DB');
axis([0 20e9 -120 0]);
grid on;

figure(3)
subplot(1,3,1); plot(t,y2);xlabel('时间');ylabel('振幅');
title('混频输出脉冲');
grid on;
axis([-1e-9,10e-9 -1 1])
subplot(1,3,2); plot(f,MY2);xlabel('频率');ylabel('振幅');
axis([0 7e9 0 .025]);%zoom in/out
grid on;
subplot(1,3,3); plot(f,20*log10(MY2));xlabel('频率');ylabel('20LOG10=DB');
axis([0 20e9 -120 0]);
grid on;

pt=.5;%驱动电压
H=1;
L=0;
LEN=length(y2);
for ii=1:LEN;
    if y2(ii)>=pt/2;
        pv(ii)=H;
    else;
        pv(ii)=L;
    end;
end ;
po=pv;

figure(4)
plot(t,po);
axis([-1e-9 11e-9 -0.2 1.2])
title('    PPM调制输出');
xlabel('频率');
ylabel('电压');
grid on;
  • 21
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: PPM调制Pulse Position Modulation)是一种数字调制技术,主要用于数字通信系统中。它将二进制信号转换成脉冲信号,并通过变化脉冲位置实现信息的传输。在PPM调制中,信号将根据要传输的信息被编码为不同的脉冲位置Matlab是一种广泛使用的数学软件,它可以进行数据分析、模拟和可视化等操作。在Matlab中,可以使用各种函数和算法来进行PPM调制的实现。 要实现PPM调制,首先需要生成需要发送的数据,这可以通过随机数生成或从一个文件中读取。然后,可以使用Matlab中的编程语言编写程序,对源数据进行编码并进行脉冲位置调制调制后的信号可以被传输到接收端,并使用解调器进行解调。 在Matlab中,可以使用DMSK调制函数实现PPM调制。这个函数可以通过设定符号率和脉冲宽度等参数,生成PPM调制信号。另外,使用Matlab还可以进行BER性能分析、图形化展示结果和优化调制参数等操作,以提高PPM调制的性能。 总的来说,PPM调制Matlab的结合可以实现高效、可靠的数字通信,为实现各种数据传输应用提供了一种有效的方法。 ### 回答2: ppm脉冲位置调制Pulse Position Modulation)的简称,是一种数字调制方式,它可以将数字信号调制到载波波形的位置上,用于数字通信系统中。Matlab是一种数学计算软件,也是一种编程语言,应用广泛,其中包含着丰富的数字信号处理工具。 通过Matlab中的PPM调制,可以实现数字信号的传输和接收。首先是生成PPM调制信号,采用Matlab中的pammod函数进行调制,将数字信号(二进制序列)转换为调制信号波形。接着,通过Matlab中的plot函数将调制信号波形进行显示,以方便观察波形特点和验证调制效果。 接收端的PPM解调需要进行时序恢复、信号复位等处理,最终得到数字信号波形。Matlab提供的ppmdemod函数可以用于PPM解调,将接收到的PPM信号转换为数字信号。通过Matlab中的plot函数,可以将解调后的数字信号波形进行显示,并与原始数字信号进行比较,验证解调效果。 此外,在Matlab中还可以进行PPM调制后的信道传输仿真、调制参数优化等工作,以进一步提高数字通信系统的性能。 总之,通过Matlab中的PPM调制,可以快速实现数字信号的调制、传输和解调,并进行信号处理、仿真等工作,有助于数字通信领域的研究和应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值