2015-05-15 7 views
0

Я хочу построить плоскопанельный PAM синусоиды. волна с использованием matlab. Синусоидальный сигнал имеет частоту = 10^4/(2 * pi) HZ и частоту дискретизации = 8 кГц. длительность импульса 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

Пожалуйста, покажите нам, что у вас есть до сих пор. –

ответ

2

Плоских верхний-РАМ означает мгновенную выборку, т.е. сигнал сообщения сэмпл только один раз за период, так модулированный сигнал не изменяет свое значение до возвращения к нулю и в следующий период выборки. Выборка происходит на нарастающий фронт сигнала несущей, поэтому решение довольно просто: путем добавления цикла 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

+1

Спасибо за ваши усилия. – Inc