null7.2 二进制频移键控(FSK)调制器与解调器
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
频移键控即FSK(Frequency-Shift Keying)数字信号对载波频率调制,主要通过数字基带信号控制载波信号的频率来来传递数字信息。
在二进制情况下,“1”对应于载波频率,“0”对应载波频率,但是它们的振幅和初始相位不变化。 7.2 二进制频移键控(FSK)调制器与解调器设计 FSK信号的产生有两种方法FSK信号的产生有两种方法1.直接调频法
2.频率键控法。 1.直接调频法1.直接调频法用二进制基带矩形脉冲信号去调制一个调频器,使其输出两个不同频率的码元。一般采用的控制方法是:当基带信号为正时(相当于“1”码),改变振荡器谐振回路的参数(电容或者电感数值),使振荡器的振荡频率提高(设为f1);当基带信号为负时(相当于“0”码),改变振荡器谐振回路的参数(电容或者电感数值),使振荡器的振荡频率降低(设为f2);从而实现了调频。
这种方法产生的调频信号是相位连续的,虽然实现方法简单,但频率稳定度不高,同时频率转换速度不能做得太快,但是其优点是由调频器所产生的FSK信号在相邻码元之间的相位是连续的 2.频率键控法2.频率键控法频率键控法也称频率选择法,下图是它实现的原理框图。它有两个独立的振荡器,数字基带信号控制转换开关,选择不同频率的高频振荡信号实现FSK调制。
接下页null 键控法产生的 FS K信号频率稳定度可以做得很高并且没有过渡频率,它的转换速度快,波形好。
频率键控法在转换开关发生转换的瞬间,两个高频振荡的输出电压通常不可能相等,于是uFSK(t)信号在基带信息变换时电压会发生跳变,这种现象也称为相位不连续,这是频率键控特有的情况。
FSK信号的解调 FSK信号的解调 数字频率键控(FSK)信号常用的解调方法有很多种如:
1.同步(相干)解调法
2. FSK滤波非相干解调 1.同步解调法在同步解调器中,有上、下两个支路,输入的 FSK信号经过 和 两个带通滤波器后变成了上、下两路ASK信号,之后其解调原理与ASK类似,但判决需对上、下两支路比较来进行。
假设上支路低通滤波器输出为 ,下支路低通滤波器输出为 ,则判决准则是: 接下页1.同步解调法nullnull接收信号经过并联的两路带通滤波器进行滤波与本地相干载波相乘和包络检波后,进行抽样判决,判决的准则是比较两路信号包络的大小。假设上支路低通滤波器输出为,下支路低通滤波器输出为,则判决准则是:
如果上支的信号包络较大,则判决为“1”;反之,判决为收到为“0”。 FSK滤波非相干解调 FSK滤波非相干解调 接下页null输入的FSK中频信号分别经过中心频为、的带通滤波器,然后分别经过包络检波,包络检波的输出在t=kTb时抽样(其中k为整数),并且将这些值进行比较。
根据包络检波器输出的大小,比较器判决数据比特是1还是0。接下页FSK调制VHDL程序注:图中没有包含模拟
电路
模拟电路李宁答案12数字电路仿真实验电路与电子学第1章单片机复位电路图组合逻辑电路课后答案
部分,调制信号为数字信号。FSK调制VHDL程序FSK调制VHDL程序的电路符号FSK调制VHDL程序的电路符号FSK调制VHDL程序FSK调制VHDL程序library ieee;
use ieee.std_logic_arith.all;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity FSK is
port(clk :in std_logic; --系统时钟
start:in std_logic; --开始调制信号
x :in std_logic; --基带信号
y :out std_logic); --调制信号
end FSK;
architecture behav of FSK is
signal q1:integer range 0 to 11; --信号f1的分频计数器接下页nullsignal q2:integer range 0 to 3; --载波信号f2的分频计数器
signal f1,f2:std_logic; --载波信号f1,f2
begin
process(clk) --对系统时钟clk的分频,得到载波f1
if clk'event and clk='1' then
if start='0' then q1<=0;
elsif q1<=5 then f1<='1';q1<=q1+1;
elsif q1=11 then f1<='0';q1<=0;
else f1<='0';q1<=q1+1;
end if;
end if;
end process;接下页nullprocess(clk) --对系统时钟clk的分频,得到载波f2
begin
if clk'event and clk='1' then
if start='0' then q2<=0;
elsif q2=1 then f2<='0';q2<=0;
elsif q2<=0 then f2<='1';q2<=q2+1;
else f2<='0';q2<=q2+1;
end if;
end if;
end process;
接下页nullprocess(clk,x) --完成对基带信号的FSK调制
begin
if clk'event and clk='1' then
if x='0' then y<=f1;
else y<=f2;
end if;
end if;
end process;
end behav;
FSK解调方框图: FSK解调方框图: FSK解调VHDL程序及仿真 FSK解调VHDL程序的电路符号FSK解调VHDL程序的电路符号FSK解调VHDL程序FSK解调VHDL程序library ieee;
use ieee.std_logic_arith.all;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity FSK2 is
port(clk :in std_logic; --系统时钟
start :in std_logic; --同步信号
x :in std_logic; --调制信号
y :out std_logic); --基带信号
end FSK2;
architecture behav of FSK2 is
signal q:integer range 0 to 11; --分频计数器接下页nullsignal xx:std_logic; --寄存器
signal m:integer range 0 to 5; --计数器
begin
process(clk) --对系统时钟进行q分频
begin
if clk'event and clk='1' then xx<=x;
--在clk信上升沿时,x信号对中间信号xx赋值
if start='0' then q<=0; --if语句完成Q的循环计数
elsif q=11 then q<=0;
else q<=q+1;
end if;
end if;
end process;
接下页nullprocess(xx,q) --此进程完成FSK解调
begin
if q=11 then m<=0; --m计数器清零
elsif q=10 then
if m<=3 then y<='0';
else y<='1';
end if;
elsif xx'event and xx='1'then m<=m+1; --计xx信号的脉冲个数
end if;
end process;
end behav;