电子说
为什么要进行调制?
在进行无线通信时,基带产生的信号需要通过天线发送出去,需要满足一个条件,即欲发射信号的波长与天线的尺寸可比拟(通常认为天线尺寸应大于波长的十分之一),这个信号才能通过天线发射出去。
有一个音频信号的频率范围为20Hz~20KHz,则其最小波长为
显然,这么长的天线是不现实的,所以需要采取的方法是将基带信号的频率提升到一个较高的频率,这个过程就叫调制,又叫“频谱搬移”。
模拟调制
调制分为幅度调制、频率调制、相位调制,其中后面这两者为统称角调制。
对应的英文也就是AM(Amplitude Modulation)、FM(Frequency)、PM(Phase)。AM、FM看起来很熟悉,收音机上都见过。
调制还需要一个载波,载波通常是正弦信号,让载波的某个参量(或几个)随调制信号(原始信号)的变化而变化的过程成为调制。本篇先只介绍AM,即幅度调制。
调制也叫频谱搬移,载波一般是频率较高的正弦信号,类似于A地是装载货物,把货物通过一个运输工具从A地到B地,B地是卸载货物。装载可以理解为调制,运输工具理解为载波,卸载理解为解调。这样的例子不够严谨但是可以帮助理解。
调制
f(t)为原始信号,coswt为载波,Sm(t)为已调信号
上述方法为调幅
解调
通常用相干解调法
数字调制
利用模拟调制来理解调制的原理,目前主要应用都是数字调制。
使得载波的某个分量随数字基带信号的变化而变化的过程或方式称为数字调制。
幅度调制对应幅移键控(ASK), Amplitude Shift Keying
频率调制对应频移键控(FSK), Frequency Shift Keying
相位调制对应相移键控(PSK), Phase Shift Keying
本文要设计的是基于FPGA的2ASK,即二进制幅移键控,BASK。
利用二进制信号0和1来控制载波的幅度,载波在调制信号0或1的控制下或通或断。OOK即通断键控(On Off Keying)
MATLAB实现
clear allclose all N=2^20; dt=0.001; %ms df=1/(N*dt); %KHz T=N*dt; %截短时间 Bs=N*df/2; %系统带宽 t=linspace(-T/2,T/2,N); %时域横坐标 f=linspace(-Bs,Bs,N)+eps; %频域横坐标 fm=1; %模拟基带信号频率为1kHz fc=6; %余弦载波信号频率为6kHz mt=cos(2*pi*fm*t); %模拟基带信号 m(mt>0)=1; %发送比特m(mt<0)=0;c=cos(2*pi*fc*t); %余弦载波信号 s=m.*c; %ASK已调信号 点乘表示两个矩阵对应位置元素相乘subplot(2,1,1) plot(t,m,'LineWidth',1.2)title('输入信号');axis([-1,+1,-0.2,1.2*max(m)]) xlabel('t (ms)')ylabel('s(t) (V)') subplot(2,1,2) plot(t,s,'LineWidth',1.2) title('2ASK调制后波形');axis([-1,+1,1.2*min(c),1.2*max(c)]) xlabel('t (ms)')ylabel('s(t) (V)')
上述MATLAB涉及到的部分陌生函数,下面链接有MathWorks官网详解
MATLAB 运算符和特殊字符
MATLAB axis函数
MATLAB linspace函数
Verilog实现
本设计调用了Vivado自带的DDS Compile IP Core,生成了一个0.625MHz的余弦信号,正弦和余弦其实在工程上貌似都叫正弦,二者只是相位不同而已。将基带信号与载波相乘即可得到调制信号,对于数字调制而言就是用键控代替相乘,所以用一个选择器来进行通断键控操作。
由拨码开关输入8bit的数据,转为串行信号模拟基带信号输入,发送bit由低到高。最后通过一个二选一选择器数据ASK调制波形。
全部0条评论
快来发表一下你的评论吧 !