数字信号的频带传输
实验内容
1.幅度键控的建模及 MATLAB 实现
根据以上图 7 模型,设 A=2,fC=100Hz,对二元数字序列 10110010 进行建模,绘出 2ASK 的波形。
用 MATLAB 实现 2ASK 的参考程序如下:
1.t=0:0.01:8;
2.y=sin(2*pi*t); %载波
3.x=[ones(1,100),zeros(1,100),ones(1,100),ones(1,100),zeros(1,100),zeros(1,100),ones(1,100),zeros(1,100),0]; %定义一个与二元序列对应的时间序列
4.z=x.*y;
5.plot(t,z)
2.频移键控的建模及 MATLAB 实现
根据以上图 8 模型,设 A=1,f1=50Hz,f2=200Hz,对二元数字序列 10110010 进行建模,绘出 2FSK 的波形。
用 MATLAB 实现 2FSK 的参考程序如下:
1.t=0:0.01:8;
2.x1=[ones(1,100),zeros(1,100),ones(1,100),ones(1,100),zeros(1,100),zeros(1,100),ones(1,100),
3.zeros(1,101)];
4.y1=sin(t.*(2*pi+2*x1));
5.x2=[zeros(1,100),ones(1,100),zeros(1,100),zeros(1,100),ones(1,100),ones(1,100),zeros(1,100),
6.ones(1,101)];
7.x2=x2*2;
8.y2=sin(t.*(2*pi+2*x2));
9.y=y1+y2;
10.plot(t,y)
3.相移键控的建模
根据以上图 9 模型,设载波 A=1,fc=200Hz,对二元数字序列 10110010 进行建模,使S2pSK(t)= ±COSωCt ,绘出 2PSK 的波形。
实验原理
为了使数字信号在带通信道中传播,必须用数字信号对载波进行调制。在前面我们已经了解了模拟信号的各种调制方式,并完成了把低频信号“搬移”到高频处或指定频段的任务,同样的概念依然适用于对数字信号的处理。数字信号有三种基本调制方式:幅度键控(ASK)、 频移键控(FSK)和相移键控(PSK)。
1.幅度键控的原理
幅度键控是用数字基带信号控制连续载波的幅度作离散变化。最简单的形式是在载波在二进制调制信号 1 和 0 的控制下通或断,此种调制方式称为通——断键控(OOK)。OOK 信号的时域表达式为:
SOOK(t)=anACOSωCt
其中:A 为载波幅度,ωC为载波频率,an为二进制数字信信息。
二进制幅度键控的调制器可以用一个相乘器来实现,模型如下所示:
2.频移键控的原理
频移键控是用基带数字信号控制连续载波的频率变化。在二进制情况下,1 对应载波频率为 f1,0 对载波频率 f2。2FSK 信号在形式上如同两个不同频率交替发送的 ASK 信号相叠加,因此已调信号的时域表达式为:
S2FSK(t)=[Σang(t-nTS)]COSω1 t +[Σ n a g(t-nTS)]COSω2t
其中:ω1=2πf1,ω2=2πf2, n a 是 an的反码。
二进制频移键控的调制器可以用如下所示的模型来实现:
3.相移键控的原理
相移键控是用数字基带信号控制连续载波的相位作振荡变化。通常,相位相差π弧度,例如用相位 0 和π分别表示 1 和 0,所以这种调制又称为二相相移键控。其二进制相移键控信号的时域表达式:
S2pSK(t)=[Σang(t-nTS)]COSωCt
其中:an为双极性数字信号。
如果 g(t)是幅度为 1,宽度为 TS的矩形脉冲,则 2PSK 信号可表示为:
S2pSK(t)= ±COSωCt
当数字信号的传输速率 RS=1/TS与载波频率间有整数关系时,2PSK 信号是非常典型的波形。
二进制相移键控的调制可以用乘法器,也可以用相位选择器来实现,乘法器模型如下所示:
实验代码
1.幅度键控
t表示在0到8之间没0.01取一个点,加上0这个点,即共有801个点。
y函数为信号(载波)的表达式;
x为基带信号,其中的最后一个零食为了使x和y的维度相同,如ones(1,100)表示100个1,zeros(1,100)表示100个0;前面所有加起来是800个数,再加上0就是801个;
根据模型使x,y点乘。
1.t=0:0.01:8;
2.y=sin(2*pi*t);
3.x=[ones(1,100),zeros(1,100),ones(1,100),ones(1,100),zeros(1,100),zeros(1,100),ones(1,100),zeros(1,100),0];
4.z=x.*y;
5.plot(t,z);
对比老师代码:
对信号的载波表达式进行了小修饰,设置了载波幅度值为2,以及载波频率为10.
1.t=0:0.01:8;
2.fc=10;
3.y=2*sin(2*pi*fc*t);
4.x=[ones(1,100),zeros(1,100),ones(1,100),ones(1,100),zeros(1,100),zeros(1,100),ones(1,100),zeros(1,101)];
5.z=x.*y;
6.plot(t,z);
2.频移键控
x2是x1的反码,上述代码是依据时域表达式(S2FSK(t)=[Σang(t-nTS)]COSω1 t +[Σ n a g(t-nTS)]COSω2t)得的y1+y2;
1.t=0:0.01:8;
2.x1=[ones(1,100),zeros(1,100),ones(1,100),ones(1,100),zeros(1,100),zeros(1,100),ones(1,100),zeros(1,101)];
3.y1=sin(t.*(2*pi+2*x1));
4.x2=[zeros(1,100),ones(1,100),zeros(1,100),zeros(1,100),ones(1,100),ones(1,100),zeros(1,100),ones(1,101)];
5.x2=x2*2;
6.y2=sin(t.*(2*pi+2*x2));
7.y=y1+y1;
8.plot(t,y);
对比老师代码:
y1频率为1,y2频率为y1的4倍;
先进行信号表达式(载波)运算,再与基带信号点乘。
1.t=0:0.01:8;
2.fc1=1;
3.fc2=4*fc1;
4.x1=[ones(1,100),zeros(1,100),ones(1,100),ones(1,100),zeros(1,100),zeros(1,100),ones(1,100),zeros(1,101)];
5.y1=sin(2*pi*fc1*t);
6.z1=x1.*y1;
7.x2=[zeros(1,100),ones(1,100),zeros(1,100),zeros(1,100),ones(1,100),ones(1,100),zeros(1,100),ones(1,101)];
8.y2=sin(2*pi*fc2*t);
9.z2=x2.*y2;
10.z=z1+z2;
11.plot(t,z);
3.相移键控
二进制基带信号经过电平转换变成双极性,即二进制二进制基带信号的0变成-1;
1.t=0:0.01:8;
2.x=[ones(1,100),-ones(1,100),ones(1,100),ones(1,100),-ones(1,100),-ones(1,100),ones(1,100),-ones(1,101)];
3.y=cos(2*pi*t);
4.z=x.*y;
5.plot(t,z);
对比老师代码:
对信号的频率进行更改,改为2。
1.t=0:0.01:8;
2.fc=2;
3.x=[ones(1,100),-ones(1,100),ones(1,100),ones(1,100),-ones(1,100),-ones(1,100),ones(1,100),-ones(1,101)];
4.y=cos(2*pi*fc*t);
5.z=x.*y;
6.plot(t,z);
实验结果
1.幅度键控
2.频移键控
3.相移键控