近段时间以来一直跟两位同事在研究如何接收并解码气象卫星云图,本来预估进度要到年后了,可是最近加快了进度,昨天试验OK,今天整理成文章分享给大家。
Use PlutoSDR and GNURadio to receive LRIT signal from GK-2A.
1. 概述
目前有不少爱好者都成功地接收了GK-2A气象卫星的云图,然而基本都是复刻了一些国外爱好者的使用的RTL电视棒的教程。对于天线系统也没有太多的研究,有较少关于这方面的资料。所以萌生了使用PlutoSDR接收GK-2A气象卫星的云图,并且对整个链路系统进行搭建的想法。为了完成这次接收,自制了线极化抛物面天线、LNA,搭建了基于开源的GNURadio的解调器、解码器和图片解析器的开发环境。同时也感谢我的朋友们对此业余无线电小项目的鼎力支持,没有他们的帮助这是不可能成功的。
在网上包括国外的一些爱好者,目前还没有发现使用PlutoSDR来完成接收GK-2A的案例。目前国内相关的文章也只有寥寥几篇使用RTL电视棒的,既然做了就本着记录和分享的想法,把这个可行的方案分享给大家。然而,想要完全复现本文中的结果,是需要相当程度的编程、硬件和射频的能力的。对于比较入门的人来说,我还是更推荐使用更成熟的RTL,教程更多、设备更便宜、工具也更成熟。
本次接收的是卫星的LRIT的下行链路,本文比较系统地涵盖了整个搭建的过程,但是难免会有疏漏和错误的地方,欢迎大家进行指正和讨论。
2. 天线系统
天线系统是整个接收系统中非常重要的一部分。由于这个卫星的本身是在这个频段进行线极化的,所以这次选用的是一个线极化抛物面天线。这类2.4GHz所使用的线极化栅格天线非常好搞到(便宜),并且能比较简单地进行安装和改装。但是,对于这个天线改装只有外网一些不详细的说明和含糊的讨论,没有相关的测试数据。虽然他们仍旧使用改过的天线接收到了信号,但是每个天线的特性都不一样,更加正向和详细的方法我觉得更重要。
就是这个淘宝最常见的2.4GHz的栅格抛物面天线,一百多人民币应该就能买到了。
但是我找了好久没有找到详细的关于这个馈源的拆解和改装教程,所以我就在这边写一下关于这个天线的改装。下图是这个天线的振子,馈源和馈源的支撑杆,我收了一个二手货所以比较破旧
可以看出这是个DP振子配合了一段巴伦,由特别宽度和长度的铜皮组成。
本次改装的关键就在于需要把振子按照波长的对应关系放大,然后重新组装到反射天线的焦点位置。我重新用铜皮焊接了一个大尺寸的振子(铜皮宽度不变),然后把它塞到了原本振子的位置,同时把顶部小栅格反射器往外调节一些,我的参数是多11mm左右,而不是像外网教程里面把它反装。
把支撑杆做短一些方便调节振子的位置。下图就是我做的新振子和我测量的原来2.4G振子的尺寸数据。
最后,用快装板把栅格天线固定在三脚架上方便对星。S11的测试结果在-19dB @ 1.7GHz,相当出色的驻波特性说明振子和小反射器的尺寸正好。天线其他参数不知,不具备测试条件。对星过程我不再赘述,其他教程很多。我们长三角地带大概要仰起50度,方向基本对上正南方偏十几度,具体可以根据地理位置查询。极化方向很重要,振子要和地面接近平行。
2. 低噪声放大器(LNA)
这一块我其实没啥好说的,设计地比较潦草。只是随手拿了身边有的放大器单元MAX2615,记得是18dB的增益和2.0的噪声系数。结构就是LNA+SAW+LAN的放大滤波放大结构。为了方便做了一个Type-c的供电,测试后总增益24dB,比预期的稍微小了点但是没去细细探究,能用就行了,应该不会比卖几百块的差劲太多。改了个屏蔽盒忘记拍照了,反正没有特别的东西。
前端预留了一个SAW的位置,不过没焊接,使用了一颗电容跳过。5V电源使用LDO稳压到3.3V,比较简单就不放PCB了。由于露出的微带比较多,拾取WIFI 2.4xx/5.xxGHz 还有手机 1.7xxGHz 多的频段的能力比较强,需要改进。LNA和天线使用的时候最好要远离这些强信号源。
3. SDR系统和后续的数据处理
SDR系统是本次的灵魂所在。本次接收之所以不同,是因为使用了PlutoSDR作为接收设备,它提供了12位的更好的精度和更大的采样率支持。而使这一切成功的关键就在于国外开发者提供的Open Satellite Project(OSP)。OSP是支持其他SDR设备的,然而它并不支持PlutoSDR。所以在此基础上,使用它的解调流图,将信号源改写成PlutoSDR然后调通解调器,就是成功的关键。
为了完成这个工作,首先部署了PlutoSDR的GNURadio开发环境,这个部署是给我带来了相当大的困难,方法可以见我的另一篇文章《PlutoSDR 的 GNURadio 3.10 开发环境部署》。然后就是调试OSP所提供的解调器,一开始怎么都不工作,后来发现两个关键点。
一、 符号速率 Symble Rate要符合GK-2A的LRIT的速率,这里我用的是128K。
二、 原作中的基带低通滤波器似乎不可以直接使用,我将它禁止了。
GNURadio会将解调后的数据通过本地的TCP发送到另外一个解码工具中,这里就不多讲了,其中的原理我不太了解,可以参考原著的说明,同样涵盖在OSP项目中。该Decoder会继续将解码后的数据发送到另一个工具xrit-rx中,将数据帧解析为图片,如果希望了解更多可以直接去看该项目。
卫星链路参数参考:
4. 实测和总结
首先是采用了SDR#进行了对星,看看大致的方位。信道还是相当清晰的,PlutoSDR设置在30dB的增益。
然后切换到解码工具链:卫星信道清晰,BPSK星座图分离良好,无丢帧。
最后,是接收到的Full Disk(FD)的红外云图照片:还是相当的高清和漂亮的。
和谷歌地球的实时云图进行对比:
但是,其实到这也不是一切都完美了,后面的接收到的时候还是存在许多问题。比如有出现的不知道什么干扰,SNR表跳动,星座图不分离,数据丢帧。目前不知道是不是由于干扰导致数字锁相环不稳定,还是什么其他原因,可能需要深入探索。还有出现TCP连接中断导致解码器卡死等故障有待排查。不过,总之还是解出了第一张图片,取得了阶段性成果可以与大家分享。