以数字信号序列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
输出波形如图8所示,其中载波频率与码元速率相同
图8 2PSK信号波形