【Matlab】2FSK二进制频移键控波形生成

前言

一个通信原理课程中使用Matlab生成2FSK波形的实验笔记。

内容

  1. 设发送二进制信息为10011101,码元速率为1波特,载波 cos(wt),幅值为1,初始相位为0。
  2. 当载波频率分别为3Hz(对应“0”)和4Hz(对应“1”),利用matlab软件画出2FSK的波形。

原理

频移键控利用载波的频率变化传递数字信息。在2FSK中,载波的频率随二进制基带信号在 f1f2 两个频率点间变化。
表达式:
【Matlab】2FSK二进制频移键控波形生成_第1张图片
φnθn 不携带信息,通常令 φnθn 为零。所以2FSK信号为
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信号调制过程波形如下图所示
【Matlab】2FSK二进制频移键控波形生成_第2张图片
【Matlab】2FSK二进制频移键控波形生成_第3张图片

结语

2FSK可视为两个不同载频的2ASK的叠加。

你可能感兴趣的:(学习笔记,Matlab,通信原理,matlab)