前言
一个通信原理课程中使用Matlab生成2FSK波形的实验笔记。
内容
- 设发送二进制信息为10011101,码元速率为1波特,载波 cos(wt),幅值为1,初始相位为0。
- 当载波频率分别为3Hz(对应“0”)和4Hz(对应“1”),利用matlab软件画出2FSK的波形。
原理
频移键控利用载波的频率变化传递数字信息。在2FSK中,载波的频率随二进制基带信号在 f1 和 f2 两个频率点间变化。
表达式:
φn 和 θn 不携带信息,通常令 φn 和 θn 为零。所以2FSK信号为
式中 s1(t) 和 s2(t) 均为单极性脉冲序列,且当 s1(t) 为正电平脉冲时,s2(t) 为零电平,反之亦然。
程序源码
i=8; % 基带信号码元数
j=8000;
t=linspace(0,8,j); % 将[0,8]分成8000份
f1=4; % 载波1频率
f2=3; % 载波2频率
fm=i/10; % 基带信号频率
a=[1 0 0 1 1 1 0 1 0 0]; % 随机序列
%基带信号st1
st1=t;
for n=1:8
if a(n)<1
for m=j/i*(n-1)+1:j/i*n
st1(m)=0;
end
else
for m=j/i*(n-1)+1:j/i*n
st1(m)=1;
end
end
end
figure(1);
subplot(411);
plot(t,st1);
title('基波信号st1');
axis([0,8,-2,2]);
%基波信号求反st2
st2=t;
for n=1:j
if st1(n)==1
st2(n)=0;
else
st2(n)=1;
end
end
subplot(412);
plot(t,st2);
title('基波信号求反st2');
axis([0,8,-2,2]);
%载波信号
s1=cos(2*pi*f1*t);
s2=cos(2*pi*f2*t);
subplot(413),plot(s1);
title('载波信号s1');
subplot(414),plot(s2);
title('载波信号s2');
%调制信号
F1=st1.*s1;
F2=st2.*s2;
figure(2);
subplot(311);plot(t,F1);
title('F1=s1*st1');
subplot(312);plot(t,F2);
title('F2=s2*st2');
e_fsk=F1+F2;
subplot(313);plot(t,e_fsk);
title('调制信号2FSK');
结果分析
相应的2FSK信号调制过程波形如下图所示
结语
2FSK可视为两个不同载频的2ASK的叠加。