Python 如何解码贝尔202信号?(APRS数据来自国际空间站)

Python 如何解码贝尔202信号?(APRS数据来自国际空间站),python,numpy,signal-processing,radio,Python,Numpy,Signal Processing,Radio,我在理解如何解码Bell 202编码信号时遇到了一些困难。 我该怎么做 我知道Bell202将二进制数据的1和0编码为1200 Hz和2200 Hz。当国际空间站(ISS)发射APRS时,我以2Mhz的采样率记录了145.825MHz的无线电信号 我在这里上传了一个pythonnumpynpy文件,其中有4个数据流。不要混淆,我只是在4个位置记录了相同的信号(更多信息) 每个流都是IQ数据,就像在twitter图中看到的相同峰值的复杂数组一样。我对中心附近的信号进行带通滤波,因为ISS APRS

我在理解如何解码Bell 202编码信号时遇到了一些困难。 我该怎么做

我知道Bell202将二进制数据的1和0编码为1200 Hz和2200 Hz。当国际空间站(ISS)发射APRS时,我以2Mhz的采样率记录了145.825MHz的无线电信号

我在这里上传了一个pythonnumpynpy文件,其中有4个数据流。不要混淆,我只是在4个位置记录了相同的信号(更多信息) 每个流都是IQ数据,就像在twitter图中看到的相同峰值的复杂数组一样。我对中心附近的信号进行带通滤波,因为ISS APRS在145.825上传输,我在上面准确记录。如果带通为+-5KHz,并将其绘制为瀑布,您甚至可以看到dopplershift

考虑到带通滤波器,我使用2m内核进行FFT,将FFT与滤波器相乘,然后进行IFFT并接收复信号,如twitter图所示

有了这个,我现在可以在新滤波的复信号上运行FFT内核,找到1200和2200赫兹上的两个twone。我也这样做了,找到了一些频率在1200赫兹左右的相位和其他频率在2200赫兹左右的相位。但到目前为止,我找不到01111110的起始标志

你现在建议我做什么? 我是一个非常直观的人,但到目前为止,我找不到任何教程与漂亮的图形,我可以很容易地理解

提前感谢您的帮助或提示


安德烈亚斯

问得好!尝试搜索AFSK1200解析,而不是Bell202。您可以使用Goertzel算法代替全FFT,当只涉及两个频率时,Goertzel算法的性能更高。为了获得正确的频率(多普勒效应),你需要开普勒数据。你知道pymultimon吗?73!谢谢!:)我已经查找过AFSK1200,到目前为止还了解了后面的部分,如NRZI、位填充和字节反转。我的简单方法适用于144.8 MHz的APRS,但不适用于ISS:(.所以我还在研究它,我想这是因为FM解调我觉得我做得不对。Goertzel算法我会检查。谢谢你的hin。对于多普勒效应,我知道Multimon当时对我有效,但我只是使用它并输入SDR的音频。但我想直接使用IQ数据。pymultimon我还没有检查过。Sh我所做的一切?:)我开始了解rtl_fm在做什么。这是我第一次尝试使用它的代码…我希望我的思路是正确的:)我正在使用rtl_fm和pymultimon作为一个游戏,用DVBT棒在树莓上运行。它已经可以使用了,只需要一些调整。我知道你也可以用它来解码ISS APRS。我想在以后的项目中(也许明年?!)在atmega上对APRS进行编码/解码。我不熟悉python,所以我甚至没有检查您的代码。我希望你会成功!最美好的祝福!PS:Goertzel不会帮你-但只要涉及几个频率,它会更有效。嗨,我正在解码我的第一条消息:)。到那么远的地方感觉真好:)。我还不知道如何应用CRC。我不太清楚我用的是哪一步。是在NRZI和比特填充之后吗?它也是在颠倒位的顺序之后吗?当我必须应用它时,我找不到清晰的语句:)。你能帮我吗?