平顶脉冲幅度调制

时间:2015-05-15 19:53:51

标签: pam

我想绘制平顶的PAM正弦曲线。波使用matlab。 正弦信号具有频率= 10 ^ 4 /(2 * pi)HZ并且采样频率= 8kHZ。脉冲持续时间T = 50微秒。 我为自然采样编写了代码,那么如何做平顶?

clear all;
close all;
Fs = 1e9;
t = 0:1/Fs:(0.2e-2);
fc = 8000; %sampling frequency
fm = 10^4/(2*pi); %message frequency
a = 1;
vm = a.*sin(2*pi*fm*t); %message
pulseperiods = [0:10]*1/fc;
pulsewidth = 50e-6;
vc = pulstran(t,pulseperiods,@rectpuls,pulsewidth);
y = vc.*vm;
figure
subplot(3,1,1);
plot(t,vm); % plot message
xlabel('Temps');
ylabel('Amplitude');
title('Message');
subplot(3,1,2);
plot(t,vc); % plot pulse 
xlabel('Temps');
ylabel('Amplitude');
title('Switching waveform');
subplot(3,1,3);
plot(t,y); % plot PAM naturel
xlabel('Temps');
ylabel('Amplitude');
title('PAM naturel');

1 个答案:

答案 0 :(得分:2)

平顶PAM表示瞬时采样,即每个周期仅对消息信号采样一次,因此调制信号在返回零和下一个采样周期之前不会改变其值。采样发生在载波信号的上升沿,因此解决方案非常简单:通过在代码中添加for循环:

for i = 2:length(t)
    if vc(i) == 1 && vc(i-1) == 0 %if the rising edge is detected
        y1(i) = vc(i) * vm(i);    %sampling occurs
    elseif vc(i) == 1 && vc(i-1) == 1 %and while the carrier signal is 1
        y1(i) = y1(i-1);              %the value of y1 remains constant
    else
        y1(i) = 0;                %otherwise, y is zero
    end
end
plot(t,y1); % flat-top PAM plot
xlabel('Temps');
ylabel('Amplitude');
title('PAM flat-top');

你得到了

enter image description here