本文将介绍FSK的一些背景知识,并演示如何在Python中编写模拟器。
频移键控背景
频移键控(FSK)的目的是调制数字信号,以便可以无线传输。流行的无线标准蓝牙使用略微修改的FSK形式,称为高斯FSK。本文将重点介绍二进制FSK,它使用两个频率值来表示二进制值1和0.数据被转换为这些频率,传输,然后解调。有许多方法/电路来调制和解调FSK信号。本文将重点介绍一种比较可行的方法。
本文中建模的发射器将基于数据值创建两个不同的频率,使用合成器或压控振荡器(VCO)在电路中实现。
本文中使用的接收器借用了模拟FM的概念。通过将频率变化转换为幅度变化来解调FM。然后,可以使用解调幅度调制(AM)的技术。接收器将使用微分器将频率转换为幅度,然后使用包络检测器+低通滤波器来移除载波频率并保留数据。再使用数据限幅器将模拟值转换为数字信号。
该过程可以通过以下等式在数学上表示。
数据输入
m(t) 数据信号。如果数据是:
0:m(t)= + f dev
1:m(t)= -f dev
要使用VCO实际实现此功能,您需要阅读VCO的数据表,找出要应用的电压,以获得所需的频率。
f dev 频率偏差。载波频率的变化量。
VCO
VCO将数字信号转换为两个不同的频率,表示为 fC+ fdev和 fC- fdev。
y 传输信号
A 传输信号的幅度
fC 载频
噪声信道
由空中传输信号将引入噪声。通过添加项n(t)来模拟该噪声。如果噪声变得太强,或者信号的幅度变得太弱,则无法解调数据。
微分器
接收信号通过微分器,以便将数据信号与载波频率分开:
将幅度集中到一个项,并降低相移来简化这个等式,由于频率的不断变化,可知dm(t)/ dt为0:
这个例子忽略了相移,因为它是一个常数,我们可以解释它。在现实生活中,某种时钟恢复或位同步方案是需要的。
信封检测器+过滤器
需要包络检测器将高频载波与调制到幅度上的低频数字数据分开。滤波器是低通类型,仅允许数字数据通过。
数据限幅器
数据限幅器消除了DC偏移和一些噪声,这些噪声会导致数字信号被正确读取出现问题。留下噪声项是因为限幅器无法消除所有噪声,如果噪声相对于信号(信噪比)足够大,则信号将变得不可读。在限幅器之后,我们留下了原始信号。
模拟
要求
Python 2.7
numpy
matplotlib
SciPy
数据输入和设置变量
代码的首要部分是导入所需的库,设置FSK参数,并定义绘图功能。实际模拟首先创建一个随机零和一组数组,用作数据流。
来源:国外课栈