查看: 7847|回复: 1

[大赛作品提交] 基于树莓派的数字无线电接收机

[复制链接]
  • TA的每日心情
    开心
    2017-5-23 21:48
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    发表于 2018-1-9 16:12:32 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 ky123 于 2018-1-31 14:01 编辑

        首先感谢e络盟友情赞助的500元e络盟购物券~
    1,作品描述
        本设计结合自制的射频扩展板,旨在将树莓派打造成一台软件无线电接收机。与一般的硬件输出iq数据+上位机处理不同,本作品结合开源项目openwebrx,树莓派充当初级iq数据处理机+webserver,用户可以利用浏览器查看瀑布图,收听无线电讯号。仿制在无线电爱好者大名鼎鼎的kiwisdr,这是一台0~30Mhz的无线电接收机+webserver,最多可以同时供四个用户利用浏览器收听无线电讯号,日前深圳已有一台kiwisdr上线,截图如下:

    zs_sdr

    zs_sdr


    2,小试牛刀,当电视棒遇上openwebrx。
        何为sdr?Software Defined Radio,SDR) 是一种软件定义无线电技术,近代由于高速ADC和处理器的迅猛发展,在无线电系统的中频普遍被数字中频取代,结合DSP技术可以灵活实现信号处理。
        何为iq数据?参见这里http://www.ni.com/tutorial/4805/en/,简单地说,数字信号处理中将信号分为iq两路,对信号的解调等带来极大的方便。
        何为电视棒?全名叫RTL2832U+R820T电视棒,这原本是类似U盘大小的一台DVB-T数字电视信号接收器,插到USB口,结合厂家的驱动和上位机即可接收观看数字电视信号,后来被人发现该设备接收频率广泛,从几十M到1Ghz,而且输出数据为中频IQ数据,便重新编写驱动,截获上传的IQ数据,电视棒也摇身成SDR接收机。具体应用可以参见https://www.rtl-sdr.com/about-rtl-sdr/,该设备淘宝仅仅售价几十元,是目前为止性价比最高的SDR接收机,国内外玩家同样玩的不亦乐乎。
        何为openwebrx?具体可以参见https://github.com/simonyiszk/openwebrx,这是一个带有web接口的多用户软件无线电接收软件,简而言之,按照相应格式输入iq数据,用户可以通过浏览器访问该webserver,查看频谱,收听解调得到的信号。
        那么,可以将电视棒插到树莓派上,安装相应驱动,然后安装openwebrx,此时就可以访问树莓派的相应端口,树莓派摇身一变成一台数字无线电接收机。
        具体操作可以参照http://blog.sdr.hu/2015/06/30/quick-setup-openwebrx.html。无非就是这么几个步骤:①安装驱动。②安装openwebrx。③配置config_webrx.py。然后启动即可。
         实物和效果见下图:

    rtl-sdr

    rtl-sdr

    rtl-sdr软件访问

    rtl-sdr软件访问

    webserver监听8073端口。
    3,硬件实现
        由第二节电视棒构建的软件无线电接收机,我们大体了解了系统组成。硬件上无非需要一个射频接收板,该接收板需要完成放大,数字化,下变频,滤波等工作,输出iq数据通过一定的接口传输给树莓派树莓派通过相应接口接收iq数据,并且按照openwebrx要求的数据格式打包发送给该软件。原理框图如下:

    原理框图

    原理框图

    (1)ADC数据采集板
    这里采用ADI的AD9200转换器,是一款10-Bit, 20 MSPS Sampling A/D Converter,前端放大器采用淘宝一款宽带30db放大器。
    (2)FPGA信号处理板
    直接利用手头的DE0-NANO,板子小巧,资源22K LE也够用。
    实物连接图如下:从左到右依次为树莓派,de0-nano,adc数据采集板。

    硬件连线

    硬件连线

    4,软件实现
    (1)FPGA
    FPGA完成的工作主要由数字下变频,CIC抽取,FIR补偿滤波,spi数据传输至树莓派。主要框图如下:

    FPGA信号处理

    FPGA信号处理

    (2)树莓派
    树莓派工作主要是重新打包FPGA上传的数据,然后按照openwebrx要求的数据格式,将IQ数据发送给该软件。根据https://github.com/simonyiszk/op ... w-receiver-hardware原作者的描述,这里采用pipe,将spi上传的数据不断送入管道,然后在config_webrx.py中将数据获取方式改为从管道读取即可。
    相应的fpga程序和树莓派c程序在附件中给出。
    由于手头没有信号发生器,翻箱子找了个25Mhz的晶振,接到adc输入,由于adc采样率20MHz,根据采样定理,信号会混叠到5Mhz。效果图如下。
    5Mhz晶振测试.JPG
    5,改进
        硬件部分,放大电路不起作用,原因查找中,致使小信号无法采集到,接上天线无法接收信号,
        软件部分,抽取滤波器通带传输特性不好,远离中心频率时衰减过大,需要进一步改进。
    代码打包
    pi-sdr.zip (3.3 MB, 下载次数: 19)
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    2018-1-12 14:05
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    发表于 2018-1-12 14:09:12 | 显示全部楼层
    555555555555555555SDF 施法
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-4-19 05:31 , Processed in 0.119524 second(s), 20 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.