以數字信号序列10110010為例,給出産生2ASK信号的MATLAB程式如下,波形圖如圖2所示。
t=0:2*pi/99:2*pi;
m1=[];
c1=[];
for n=1:length(s)
if s(n)==0;
m=zeros(1,100);
else s(n)==1;
m=ones(1,100);
end
c=sin(f*t);
m1=[m1 m];
c1=[c1 c]
end
ask=c1.*m1;
subplot(211);
plot(m1)
title('原始信号');
axis([0 100*length(s) -0.1 1.1]);
subplot(212);
plot(ask)
title('ASK信号');
圖 2 2ASK信号波形
以數字信号序列10110010為例,給出産生2FSK信号的MATLAB程式如下
t=0:2*pi/99:2*pi;
m1=[];
c1=[];
b1=[];
for n=1:length(s)
if s(n)==0;
m=ones(1,100);
c=sin(f2*t);
b=zeros(1,100)
else s(n)==1;
m=ones(1,100);
c=sin(f1*t);
b=ones(1,100)
end
m1=[m1 m];
c1=[c1 c];
b1=[b1 b];
end
fsk=c1.*m1;
subplot(211);
plot(b1,'r')
title('原始信号');
axis([0 100*length(s) -0.1 1.1]);
grid on;
subplot(212);
plot(fsk)
title('2FSK信号');
grid on;
在指令視窗中鍵入s的二進制代碼和載波頻率f1、f2,再輸入函數名,就可以得到所對應的fsk信号輸出,如輸入以下指令:
s=[1 0 1 1 0 0 1 0];
f1=200;
f2=100;
fskdigital
輸出波形如圖5所示,其中0信号所對應的載波頻率與碼元速率相同,1信号所對應的載波頻率為碼元速率的兩倍。
圖5 2FSK信号波形
以數字信号序列10110010為例,給出産生2PSK信号的MATLAB程式如下
t=0:2*pi/99:2*pi;
m1=[];
c1=[];
b1=[];
for n=1:length(s)
if s(n)==0;
m=-ones(1,100);
b=zeros(1,100)
else s(n)==1;
m=ones(1,100);
b=ones(1,100)
end
c=sin(f*t);
m1=[m1 m];
c1=[c1 c]
b1=[b1 b];
end
psk=c1.*m1;
subplot(211);
plot(b1)
title('原始信号');
axis([0 100*length(s) -0.2 1.1]);
subplot(212);
plot(psk);
title('PSK信号');
grid on;
在指令視窗中鍵入s的二進制代碼和載波頻率f,再輸入函數名,就可以得到所對應的psk信号輸出,如輸入以下指令:
s=[1 0 1 1 0 0 1 0];
f=100;
pskdigital