我在这里用C实现了一个简单的类似于V.23的FSK调制解调器。

所选择的调制方式的特殊性在于,0和1作为两个不同频率(2100 Hz和1300 Hz的音调)发送),每个符号的持续时间为1/1200秒,介于符号音调频率的一到两个完整周期之间。

我在接收机中使用的带通滤波器是从大约875 Hz到大约2350 Hz。这个范围是凭经验确定的。

问题是,如何从音调频率和符号持续时间中计算出类似信号的频率范围?建议使用幅度调制,其中调制信号落入从Fcarrier-消息带宽到Fcarrier +消息带宽Hz的频带中。期望我的FSK信号的带宽是以下各项的并集:

F1-比特率达到F1 +比特率F0-比特率达到F0 +比特率

或者,如果我插入数字,则为:

1300-1200 = 100至1300 + 1200 = 2500
2100-1200 = 900至2100 + 1200 = 3300

>或者简单地说,从100到3300 Hz。

但是,如果我查看我的FSK信号的频谱,它似乎大致包含在2100-1200 = 900到1300+的频带中1200 = 2500 Hz,而不是1300-1200 = 100到2100 + 1200 = 3300 Hz。

EDIT2:这是我在Audacity中看到的频谱:



评论

-1已经对频率调制信号的频谱进行了深入研究:在Google上搜索“ FSK频谱”会产生超过700,000次点击,这实际上是许多教程。就像第一页中大多数匹配的开头句子所说的那样,计算需要大量工作。最终答案很大程度上取决于您未在描述中提供的细节,例如FSK信号是连续相位,带通滤波器的传递函数是什么等。是的,有人可以阅读您的C代码和图形列出细节,但为什么要打扰呢?

@DilipSarwate您可以询问是否有兴趣。如果是这样,则该阶段是连续的。滤波器为FIR,通带频率为1,其他频率为0。我问这个问题的原因是因为这是一个特例,并且可能有一个相对简单的逻辑可以得出答案,而不需要先了解一般情况然后对其进行专门化。除了指向Google以外,您能否提供相关链接?我在那里也可以看到很多相关的东西。

您有一个FIR滤波器,它可以为您提供砖墙的频率响应,以单位增益传递875 Hz和2350 Hz之间的所有频率,并阻塞所有其他频率?尽快运行到最近的专利局并提交专利申请!

@DilipSarwate你不是建设性的。没问题,

如果我的问题正确,无论如何,您都想确定带通滤波器之前的信号带宽。否则,答案只是“ 825 Hz至大约2350 Hz”

#1 楼

使用频移键控,调制(数字数据)会占用带宽,因此您不能仅保留标记和空格音的频率。可以使用的最小带宽的确切下限是标记和空间频率之间的距离,加上两侧的波特率的一半。因此,对于频率为1300赫兹和2100赫兹的1200波特,绝对最小带宽为(1300-(1200/2))[700赫兹]至(2100+(1200/2))[2700赫兹],即2 kHz。人们试图对其进行更严格的过滤,但是如果接收仍然提供正确的数据,那仅仅是因为偶然。通常,在调制之前,FSK信号中还会有一些脉冲整形,以使滤波器的工作更容易。

#2 楼

您需要设计并使用带通滤波器来滤除带外的噪声和有害信号。
由于信号具有两个分量:1300 Hz和2100 Hz,因此带通滤波器必须通过这些频率。但是,由于您的实际信号具有一些旁瓣,因此您实际上无法生成仅具有这两个频率分量的信号,因此您需要在这些频率的两侧都具有一定的gaurd频带。它以非对称的方式显示您选择的gaurd频段,例如,您可以选择通带频率为1000 Hz至2400 Hz的滤波器。

评论


$ \ begingroup $
对我来说,真正的问题是哪个滤波器将产生最小带宽,同时仍然允许解调器正确区分两个频率。那将部分取决于解调器。
$ \ endgroup $
–Daniel R Hicks
2012年7月4日在18:57

$ \ begingroup $
我知道我需要包括更多的频率,而不仅仅是1300和2100。问题是我如何基于3个值(1300 Hz,2100 Hz,1200位/秒)来计算频率。您的答案没有答案。
$ \ endgroup $
–阿列克西·弗伦兹(Alexey Frunze)
2012年7月4日在21:31