铱星:在家接收和解码卫星星座信号

哈Ha

上一部分中,我们检查了来自Inmarsat卫星的信号的接收。 现在,我们将考虑一个同样有趣的系统-铱星卫星通信系统,任何人都可以在家中接收信号。


铱星网络覆盖范围,维基百科照片

对于那些对它如何工作感兴趣的人,继续进行下去。

注意 :下面的数据没有什么秘密,本文中描述的解码器已经在github上使用了一年多。 愿意在天线上花费35美元并将其放在窗户上的任何人都可以使用频率和信号。 尽管如此,铱星通信系统仍在运行,因此出于法律原因未布置某些数据。 根据某些国家/地区的法律,此材料仅旨在了解,发布或存储收到的消息。


这里没有新内容,所有内容已在上一篇文章中进行了描述。 我使用了有源L波段1525-1637贴片天线天线,可以以35美元的价格购买,以及SDRPlay接收器,可以用RTL SDR V3代替,后者的价格也约为35美元。 因此,一切将花费不到$ 100,这是相当实惠的。

接待的整套设备如下所示(比例尺匹配盒):



接下来,打开窗户(玻璃会衰减该范围的无线电波),将天线对准天空,您可以接收信号。 重要的是不要忘记在接收机设置中包括bias-tee,因为 天线是活动的,没有电源就无法工作。 如果一切正确完成,在大约1.6 GHz的频率上,我们应该看到以下图片:



顺便说一句,如果您更详细地查看频谱,则可以清楚地看到由于多普勒效应而产生的直线斜率-卫星在轨道上移动,并且频率发生变化。



有趣的是,铱星和Inmarsat之间存在两个相当根本的区别。

首先,Inmarsat使用地球静止卫星在地球静止轨道上飞行,高度为35786 km。 相比之下,铱星采用的是另一种方法- 超过60颗卫星在低轨道(871公里)飞行,覆盖了整个地球领土(KDPV上的照片)。 这允许使用更紧凑和无方向性的天线,并且这样的系统在对地静止卫星的接收受到限制的北部地区效果更好。 顺便说一下,计算出铱星卫星的数量,以便用户可以随时使用天空中可见的几颗卫星。



其次,铱星使用根本不同的数据传输方案-使用短突发数据包代替恒定频率的恒定数据链路,如图所示。

至此,我们将结束“理论”部分,如果一切正常,那么是时候继续进行软件了。

软体类


使用用于解码的软件,存在一种“小的”复杂性-它是在Linux下编写的。 也许有一种秘密的方法可以在Windows下编译Gnu Radio项目,但是除大量错误外,我从来没有失败过。 使用Linux,一切都很简单并且可以直接使用,但是我认为大多数读者仍然安装了Windows。 因此,我们将采用另一种方法-将信号记录在HDSDR中,然后从Windows 10的Ubuntu下启动解码器进行处理。幸运的是,10ka 提供了此功能

第一步 编译铱

首先,您需要将Ubuntu下载到App Store并在其中安装GNU Radio。

实际上编译gr-iridium解码器并不是特别困难:

git clone https://github.com/muccc/gr-iridium.git cd gr-iridium mkdir build cd build cmake .. make sudo make install sudo ldconfig 

该过程如下所示:



解码器需要使用gr-osmosdr模块 。 它的编译是按照相同的原理完成的,只有一个区别-我们需要在此步骤中禁用不必要的接收器,否则我们将得到编译错误。

 git clone git://git.osmocom.org/gr-osmosdr cd gr-osmosdr mkdir build cd build/ cmake .. -DENABLE_UHD=OFF -DENABLE_RTL=OFF -DENABLE_BLADERF=OFF -DENABLE_FCD=OFF -DENABLE_RFSPACE=OFF -DENABLE_REDPITAYA=OFF -DENABLE_HACKRF=OFF make sudo make install sudo ldconfig 

有一个有趣的陷阱。 运行make时,出现奇怪的错误,例如“ c ++:错误:/ wd4251:没有这样的文件或目录”。 在Google中进行的搜索显示,这些错误与Windows版本有关,而在Ubuntu下编译则无法实现。 事实证明,也许-用命令“ make -n”打印了详细的日志后,我发现默认情况下Windows驱动器已在Ubuntu中挂载,并cmake“拾取”了这些文件:

 cd /home/dmitrii/Documents/gr-osmosdr-0.1.5/build/lib && /usr/bin/c++ -DBOOST_ALL_DYN_LINK -DHAVE_CONFIG_H=1 -DNOMINMAX -DUSE_SSE2 -Dgnuradio_osmosdr_EXPORTS -I/home/dmitrii/Documents/gr-osmosdr-0.1.5/build/lib -I/home/dmitrii/Documents/gr-osmosdr-0.1.5/include -I/home/dmitrii/Documents/gr-osmosdr-0.1.5/lib -I/home/dmitrii/Documents/gr-osmosdr-0.1.5/lib/file -I/home/dmitrii/Documents/gr-osmosdr-0.1.5/lib/rtl_tcp -I/home/dmitrii/Documents/gr-osmosdr-0.1.5/lib/soapy -isystem "/mnt/c/Program Files/PothosSDR/include" -O3 -DNDEBUG -fPIC -Wall -Wextra -Wno-unused-parameter -Wsign-compare -fvisibility=hidden -fvisibility-inlines-hidden -msse2 /MP /wd4251 /wd4503 -o CMakeFiles/gnuradio-osmosdr.dir/source_impl.cc.o -c /home/dmitrii/Documents/gr-osmosdr-0.1.5/lib/source_impl.cc 

自然,源代码是不兼容的,没有任何编译。 这就是从Windows下使用Ubuntu的独特之处。 解决方案很简单-卸载文件夹( sudo umount / mnt / c ),重复cmake并构建,然后再将其安装回( sudo mount -t drvfs C:/ mnt / c )。 当我们处理HDSDR中的记录文件时,已安装的驱动器将派上用场。

最后一步是安装Iridium Toolkit

 git clone https://github.com/muccc/iridium-toolkit.git 

现在一切准备就绪,我们可以记录和处理铱信号。

第二步 信号记录

一切都很简单-打开HDSDR,选择存在更多信号的区域,进行IQ记录。 铱星中的信号不是一直走,而是“分组”中,所以您可能需要稍等。 只有一个缺点-较大的记录量,一分钟的2 MHz带宽大约需要500 MB。

我再说一遍,在“正常” Linux下这是没有必要的,您可以使用没有中间记录的SDR接收器立即启动gr-iridium,但这在Windows上不起作用-lsusb看不到已连接的设备。

第三步 处理中

我们停止在HDSDR中记录,在/ mnt / c / Users / XXX / Documents / HDSDR文件夹中切换到Ubuntu,并输入以下命令:

 iridium-extractor -c 1619XXXXXX -r 2000000 -f sc16 --offline HDSDR_20200112_110653Z_1619XXXkHz_RF.wav | grep "A:OK" 

这里HDSDR_20200112_110653Z_1619XXXkkHz_RF.wav是我们记录的文件,1619XXXXXX是中心记录频率,2,000,000是记录的wav文件的带宽。 如果一切都正确完成,则应显示以下内容:



如果看不到软件包,则继续进行是没有用的,您需要找出错误所在。 如果记录可见,请再次重复该命令,将结果保存到文件中,然后使用iridium-parser.py处理该文件:

 iridium-extractor -c 1619XXXXXX -r 2000000 -f sc16 --offline HDSDR_20200112_110653Z_1619XXXkHz_RF.wav | grep "A:OK" > output.bits python iridium-parser.py output.bits > output.parsed 

现在,我们可以从保存的output.parsed文件中提取信息。 您可以从那里“获取”各种数据,例如文本或语音消息。 出于法律原因,在这里我不会做任何事情,任何人都可以阅读项目页面上的详细说明。 例如,在铱星那里有一些有趣的观点,不仅可以传输文本或语音数据,还可以传输GSM数据,即GSM数据。 铱星终端可以在没有通常覆盖范围的地方提供GSM通信服务-卫星和此处的终端可能仅充当标准GSM数据包的“延长线”。

例如,您可以演示如何从记录的数据中获取飞行卫星的坐标:



将坐标导入Google地图很容易,并且可以看到在录制过程中卫星飞越了奥斯陆(红线)上的某个地方:



其他Iridium Toolkit功能可以在github页面上找到。

结论


如您所见,从卫星接收信号的过程并不那么复杂,并且从研究通信系统的角度来看,这非常有趣。

对于那些希望更详细地研究铱星的人,可以观看一些视频(英语):



我希望这足以增进理解。

与往常一样,所有成功的实验。

Source: https://habr.com/ru/post/zh-CN483604/


All Articles