Widora-neo+电视棒 玩软件无线电



  • SDR看起来很高深的样子, 其实用一个电视棒 通过USB连接widora-neo就可以做成个简单的SDR接收机了.

    1. 硬件
    电视棒选择使用RTL2832U+R820T芯片的 .
    R820T是调谐器,接收频率范围24MHz - 1766 MHz, RTL2832U是螃蟹家的一款用于数字电视广播接收的解调芯片,后来有大神发现它可以直接输出原始的I/Q采样数据.
    下面是其中一款:
    0_1482130600535_DVB.jpg

    2. SDR 软件.
    在openwrt平台上使用rtl_sdr软件可以方便地接收和处理数字信号.
    依次安装下列软件:
    2.1 opkg install libusb-1.0 ( ???RTL2832是支持USB2.0的)
    2.2 opkg install librtlsdr
    2.3 opkg install rtl-sdr

    (可以在此下载: 2_1482130632396_libusb-1.0_1.0.19-1_ramips_24kec.ipk 1_1482130632396_librtlsdr_2014-02-10_ramips_24kec.ipk 0_1482130632395_rtl-sdr_2014-02-10_ramips_24kec.ipk

    3. 收听调频广播
    3.1 做一个fm.sh文件,内容如下:
    #!/bin/sh
    rtl_fm -A fast -M wbfm -E deemp -s 256k -r 96k -f ${*}M | aplay -r 48k -f dat -t raw -c 2

    3.2 完成后赋权限:
    chmod 755 fm.sh

    3.3 运行 ./fm.sh 103.7 可以播放当地103.7MHz的调频电台
    接收灵敏度略低于商品调频收音机.

    4. 指定频率范围内搜索电台:
    例子:
    rtl_fm -A fast -M wbfm -E deemp -s 256k -r 96k -l 120 -f 100M:103M:25k | aplay -r 48k -f dat -t raw -c 2
    100MHz 至 103MHz 范围内搜索调频电台, 步进25k, 播放搜索到的第一个台.
    (-l 120 噪音抑制电平,弱台取小值.)

    5. 收听航空波段
    航空波段属于调幅波,仅给个例子,可以自己去研究.
    rtl_fm -A lut -M am -s 10k -f 126.2917M | aplay -r 10k -f S16_LE -t raw

    6. 接收飞行器广播信息
    运行命令: rtl_adsb -V
    可视化软件参见 http://www.rtl1090.com/

    可以从中提取航班和检验码等信息:
    使用方法: rtl_adsb | decode
    放在后台运行: screen sh -c "rtl_adsb | decode >> record.data " (将提取的信息存到record.data文件中)
    如果decode的当前目录未加入到PATH环境变量中,用 rtl_adsb | ./decode

    7. 其他
    7.1 可以tcp传送接收到的原始采样数据.
    7.2 参考http://kmkeen.com/rtl-demod-guide/index.html可以了解更多rtl_sdr的使用说明.


  • administrators

    大神,我以后要跟你玩了!



  • 直接用rtl_adsb 命令可以输出飞行器发布的ADS-B 28位字符信息。
    为此编了一个程序,可以从中提取航班和检验码等信息0_1482980769822_decode
    使用方法: rtl_adsb | decode
    放在后台运行: screen sh -c "rtl_adsb | decode >> record.data " (将提取的信息存到record.data文件中)

    结果会是这样的:
    0_1482981147366_adsb.JPG
    24位的CRC还可以用来纠错,还不知道如何来操作。



  • 改进了一下,现在可以检错并提取座标了。0_1483512692979_decode2

    0_1483512710876_upload-1aaf4566-635b-4802-8caf-3723c564a26f



  • 这几天玩得意犹未尽,增加了hash和定时保存的功能,0_1484267539250_decode

    源代码放在这里:https://github.com/widora/ctest 见ads_b.c

    0_1484268999531_ss.JPG



  • 给你提供个简便的方法



  • 使用dump1090
    opkg install dump1090

    最好在screen中运行
    screen -S dump
    dump1090 --aggressive --net --interactive

    浏览器打开ip:8080就有了



  • 用过这个dump1090, 很不错。



  • @tykgood 自己抓出来的数据更有意思 0_1486893261999_flight.xls



  • 用了一个上变频模块,将0-30MHz的短波搬移到 125-155MHz电视棒频率接收范围内。这样就可以收听短波了。
    0_1487302157279_psb.JPG

    1. 按如下接线:
      0_1487302188841_widora-radio.jpg

    2. 我用下面的脚本来收听:
      freq=134.495M ( 9.5M实际频率 +125M变频 - 0.005M 固有频偏)
      rtl_fm -A lut -M am -s 6k -l 0 -f $freq | aplay -r 6k -f S16_LE -t raw
      0_1487302928515_upload-b1a3e857-6941-44d4-966c-2ce847d85008
      http://player.youku.com/player.php/sid/XMjUxNjc0NzQzMg==/v.swf
      我只是甩了根软线在窗外作为天线,在晚上可以收到不少台,在白天可以收到中国之音等强台. 用好点的短波天线效果会更好。

    3. rtl_fm 软件有缺点:
      3.1就是不能实时调谐,每次换台都要重新启动任务。不过我想这个肯定是可以改进的。
      3.2 软件没有AFC功能,容易漂台。
      3.3 邻台干扰。

    总之,在Widora-openwrt上安装和使用SDR软件是可行的。


  • administrators

    老火腿了!!!!



  • 楼主大神呀!!
    不过我觉得航班都是数据不是很直观,图像看着好点…个人观点哈

    感觉在op下面的rtl命令不如win的hdsdr方便,如果听广播的话



  • @tykgood 是的,图形界面更直观,而且电脑上的SDR软件性能更好。嵌入式用的rtl_fm性能相对弱小,并且频率不能即时微调,应该可以修改下rtl_fm.c源码,让它用按键或遥控器来步进调台,这样就会方便多。