您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 138.10 二进制频移键控
8.10二进制频移键控(FSK)调制器与解调器设计数字信号对载波频率调制称为频移键控即FSK(Frequency-ShiftKeying)。频移键控(FSK)是用不同频率的载波来传送数字信号,用数字基带信号控制载波信号的频率。二进制频移键控是用两个不同频率的载波来代表数字信号的两种电平。接收端收到不同的载波信号再进行逆变换成为数字信号,完成信息传输过程。FSK信号的产生有两种方法1.直接调频法2.频率键控法。1.直接调频法直接调频法是用数字基带信号直接控制载频振荡器的振荡频率。直接调频法实现电路有许多,一般采用的控制方法是:当基带信号为正时(相当于“1”码),改变振荡器谐振回路的参数(电容或者电感数值),使振荡器的振荡频率提高(设为f1);当基带信号为负时(相当于“0”码),改变振荡器谐振回路的参数(电容或者电感数值),使振荡器的振荡频率降低(设为f2);从而实现了调频,这种方法产生的调频信号是相位连续的。虽然实现方法简单,但频率稳定度不高,同时频率转换速度不能做得太快。2.频率键控法频率键控法也称频率选择法,下图是它实现的原理框图。它有两个独立的振荡器,数字基带信号控制转换开关,选择不同频率的高频振荡信号实现FSK调制。~1f~2f)(tuFSK基带信号键控法产生的FSK信号频率稳定度可以做得很高并且没有过渡频率,它的转换速度快,波形好。频率键控法在转换开关发生转换的瞬间,两个高频振荡的输出电压通常不可能相等,于是uFSK(t)信号在基带信息变换时电压会发生跳变,这种现象也称为相位不连续,这是频率键控特有的情况。下图是利用两个独立分频器,以频率键控法来实现FSK调制的原理电路图。在下图中,与非门3和4起到了转换开关的作用。当数字基带信号为“1”时,与非门4打开,输出,当数字基带信号为“0”时,与非门3打开,输出,从而实现了FSK调制。1f2f键控法也常常利用数字基带信号去控制可变分频器的分频比来改变输出载波频率,从而实现FSK调制。下图是一个11/13可控分频器原理图。当数字基带信号为“1”时,第四级双稳态电路输出的反馈脉冲被加到第一级和第二级双稳态电路上,此时分频比为13;当基带信号为“0”时,第四级双稳态电路输出的反馈脉冲被加到第一级和第三级双稳态电路上,分频比变为11。由于分频比改变,使输出信号频率变化,从而实现FSK调制。采用可变分频器产生的FSK信号相位通常是连续的,因此在基带信息变化时,FSK信号会出现过渡频率。为减小过渡时间,可变分频器应工作于较高的频率,而在可变分频器后再插入固定分频器,使输出频率满足FSK信号要求的频率。FSK信号的解调数字频率键控(FSK)信号常用的解调方法有很多种如:1.同步(相干)解调法2.过零检测法3.差分检波法1.同步解调法在同步解调器中,有上、下两个支路,输入的FSK信号经过和两个带通滤波器后变成了上、下两路ASK信号,之后其解调原理与ASK类似,但判决需对上、下两支路比较来进行。假设上支路低通滤波器输出为,下支路低通滤波器输出为,则判决准则是:信号判输入为信号判输入为22112100fxxfxx1f2f1x2x接下页当输入的FSK信号振荡频率为f1时,上支路经带通后有正弦信号存在,与ASK系统接收到“1”码时的情况相似,经过低通滤波器,x1=A。而下支路带通滤波器输出为0,与ASK系统接收到“0”码时情况相似,故x2=0,显然x1-x2=A-0>0,按判决准则判输入为;反之,当输入为f1时,x1=0,x2=A,x1-x2=0-A<0,按判决准则应判输入为f2。因此可以判决出FSK信号。1f2.包络解调法FSK信号包络解调相当于两路ASK信号包络解调。用两个窄带的分路滤波器分别滤出频率为f1及f2的高频脉冲,经包络检波后分别取出它们的包络。把两路输出同时送到抽样判决器进行比较,从而判决输出基带数字信号。设频率f1代表数字信号1;f2代表0,则抽样判决器的判决准则:式中x1和x2分别为抽样时刻两个包络检波器的输出值。这里的抽样判决器,要比较x1、x2大小,或者说把差值x1-x2与零电平比较。因此,有时称这种比较判决器的判决门限为零电平。信号判输入为信号判输入为22112100fxxfxx接下页当FSK信号为f1时,上支路相当于ASK系统接收“1”码的情况,其输出x1为正弦波加窄带高斯噪声的包络,它服从莱斯分布。而下支路相当于ASK系统接收“0”码的情况,输出x2为窄带高斯噪声的包络,它服从瑞利分布。如果FSK信号为f2,上、下支路的情况正好相反,此时上支路输出的瞬时值服从瑞利分布,下支路输出的瞬时值服从莱斯分布。由以上分析可知,无论输出的FSK信号是f1或f2,两路输出总是一路为莱斯分布,另一路为瑞利分布,根据判决准则可以判决出FSK信号。3.过零检测法过零检测法方框图在下页,它是利用信号波形在单位时间内与零电平轴交叉的次数来测定信号频率。输入的uFSK信号经限幅放大后成为矩形脉冲波,再经微分电路得到双向尖脉冲,然后整流得单向尖脉冲,每个尖脉冲表示信号的一个过零点,尖脉冲的重复频率就是信号频率的二倍。将尖脉冲去触发一单稳电路,产生一定宽度的矩形脉冲序列,该序列的平均分量与脉冲重复频率成正比,即与输入信号频率成正比。所以经过低通滤波器输出的平均分量的变化反映了输入信号频率的变化,这样就把码元“1”与“0”在幅度上区分开来,恢复出数字基带信号。接下页过零检测法方框图FSK调制VHDL程序及仿真FSK调制方框图FPGA载波f1clkstart基带信号分频器1分频器2载波f2二选一选通开关调制信号注:图中没有包含模拟电路部分,调制信号为数字信号。FSK调制VHDL程序的电路符号FSK调制VHDL程序--文件名:FSK--功能:基于VHDL硬件描述语言,对基带信号进行FSK调制--最后修改日期:2004.3.16libraryieee;useieee.std_logic_arith.all;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityFSKisport(clk:instd_logic;--系统时钟start:instd_logic;--开始调制信号x:instd_logic;--基带信号y:outstd_logic);--调制信号endFSK;architecturebehavofFSKissignalq1:integerrange0to11;--载波信号f1的分频计数器signalq2:integerrange0to3;--载波信号f2的分频计数器signalf1,f2:std_logic;--载波信号f1,f2接下页beginprocess(clk)--此进程通过对系统时钟clk的分频,得到载波f1beginifclk'eventandclk='1'thenifstart='0'thenq1=0;elsifq1=5thenf1='1';q1=q1+1;--改变q1后面的数字可以改变,载波f1的占空比elsifq1=11thenf1='0';q1=0;--改变q1后面的数字可以改变,载波f1的频率elsef1='0';q1=q1+1;endif;endif;endprocess;接下页process(clk)--此进程通过对系统时钟clk的分频,得到载波f2beginifclk'eventandclk='1'thenifstart='0'thenq2=0;elsifq2=1thenf2='0';q2=0;--改变q2后面的数字可以改变,载波f2的频率elsifq2=0thenf2='1';q2=q2+1;--改变q2后面的数字可以改变,载波f2的占空比elsef2='0';q2=q2+1;endif;endif;endprocess;接下页process(clk,x)--此进程完成对基带信号的FSK调制beginifclk'eventandclk='1'thenifx='0'theny=f1;--当输入的基带信号x=‘0’时,输出的调制信号y为f1elsey=f2;--当输入的基带信号x=‘1’时,输出的调制信号y为f2endif;endif;endprocess;endbehav;FSK调制VHDL程序仿真全图接下页FSK调制VHDL程序仿真局部放大图注:a.载波f1、f2分别是通过对clk的12分频和2分频得到的。b.基带码长为载波f1的2个周期,为载波f2的6个周期。c.输出的调制信号y在时间上滞后于载波信号一个clk,滞后于系统时钟2个clk。FSK解调VHDL程序及仿真FSK解调方框图注:没有包含模拟电路部分,调制信号为数字信号形式。FPGAclkstart调制信号分频器q寄存器xx计数器m判决基带信号FSK解调VHDL程序的电路符号FSK解调VHDL程序--文件名:FSK2--功能:基于VHDL硬件描述语言,对FSK调制信号进行解调--最后修改日期:2004.3.16libraryieee;useieee.std_logic_arith.all;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityFSK2isport(clk:instd_logic;--系统时钟start:instd_logic;--同步信号x:instd_logic;--调制信号y:outstd_logic);--基带信号endFSK2;architecturebehavofFSK2issignalq:integerrange0to11;--分频计数器signalxx:std_logic;--寄存器signalm:integerrange0to5;--计数器接下页beginprocess(clk)--对系统时钟进行q分频beginifclk'eventandclk='1'thenxx=x;--在clk信上升沿时,x信号对中间信号xx赋值ifstart='0'thenq=0;--if语句完成Q的循环计数elsifq=11thenq=0;elseq=q+1;endif;endif;endprocess;接下页process(xx,q)--此进程完成FSK解调beginifq=11thenm=0;--m计数器清零elsifq=10thenifm=3theny='0';--if语句通过对m大小,来判决y输出的电平elsey='1';endif;elsifxx'eventandxx='1'thenm=m+1;--计xx信号的脉冲个数endif;endprocess;endbehav;FSK解调VHDL程序仿真图及注释接下页(FSK解调VHDL程序仿真全图)注:a.在q=11时,m清零。b.在q=10时,根据m的大小,进行对输出基带信号y的电平的判。c.在q为其它值时,计数器m计下xx(寄存x信号)的脉冲数。d.输出信号y滞后输入信号x10个clk。(FSK解调VHDL程序仿真局部放大图)
本文标题:138.10 二进制频移键控
链接地址:https://www.777doc.com/doc-3959857 .html