Post Go back to editing

基于AD9361的FM收音机链路搭建和业务演示

本帖主要阐述FM收音机链路的快速搭建和业务演示。在硬件方面,我们使用了定为电子的U2基带板卡FMC202射频前端(FMC202是定为电子推出的一款基于VITA57.1 FMC架构,双通道2发量收MIMO零中频射频板卡,其处理核心ADI公司的RF捷变收发器AD9361,射频频段70MHz-6GHz)作为FM收音机的硬件平台,并使用定为电子的软件无线电快速开发验证套件DPS作为软件开发工具。有了这些工具,加之你了解FM收音机基本原理的话,那么你可以在不到半天的时间内完成FM收音机链路搭建和业务演示。下面就让我们一起来见证一下吧!

在开始搭建一个链路前,首先要做的是对链路原理的分析和仿真验证。

一、原理分析
         那我们应该先搞明白收音机链路的原理,收音机接收原理如图:



      天线接收到信号后,经过射频板卡的处理,通过相应的接口将信号送至信号处理模块处理,最后再通过一些接口送至相应的信息终端播放。

      这里我们需要弄明白的就是信号处理单元的流程:

 

      使用ADC将射频端送入的信号转换为数字信号,然后经过下变频,抽取滤波,FM解调输出的就是语音信号了。

二、参数仿真

      看懂了算法原理,我们开始一个设计还需要对算法中的参数进行仿真验证:

 

 

      仿真出需要的参数后,我们就可以开始搭建链路了。

      对于原理的具体讲解,请查询各种资料吧,本帖就主要讲解收音机链路的搭建。

三、链路搭建

      根据收音机原理图,我们知道,射频模块输出的信号,需要通过接口送至信号处理单元,所以,我们需要使用一个ADC板卡,将射频信号采集到FPGA中处理。

      这里我们使用成都定为电子技术有限公司研发的FMC202射频板卡,他是一个输出零中频的2发2收的射频板卡,这里我们只需要使用它来接收一路信号即可,因此完全满足我们的需求。

      我先给出完整的收音机链路截图,后面再为大家详细讲解每个模块:

 

     1、fmc202接口

             FMC202为0中频射频板卡,硬件中集成了下变频至基带和滤波部分。因此,FMC202的RX输出为基带的I/Q信号,并且有2路IQ(因为是2发2收),这里我们只使用了FMC202的一个接收端,因此另一个接收端是空着的。这里我们设置FMC202基带信号的频率为12.8MHZ,也就是说从FMC202模块输出的数据的速率为12.8MHZ。

     2、变频

              根据收音机原理,我们应该先做的是变频,但是我们的FMC202射频板卡输出就是零中频信号,因此,就不需要我们再做变频操作。

     3、抽取滤波

              由于语音信号的频率在几十K级,所以,我们在这里需要做低通滤波以及抽取滤波,打开50_down_samples这个模块如下图:

 

 

             可以看见,这里面总共有6个滤波器,上下两行滤波器分别对I、Q两路进行滤波

         3.1、第一级抽取滤波器

                     我们先看第一个滤波器,是一个截止频率为700K,带宽200K,5倍抽取的低通滤波器,其参数截图如下:




         3.2、第二级抽取滤波器

                      截止频率为320K,带宽为200K,5倍抽取的低通滤波器,其参数截图如下:

 


         3.3、第三级抽取滤波器

                        是一个截止频率为200K,带宽为180K,2倍抽取的低通滤波器,其参数截图如下:

 



         3.4、论证

                      我们的信号速率从12.8MHZ变为12.8M/50=256K。我们从这里可以看出来:

 

 

                      可以发现,红色代表的速率为7.8125e-08S=1/7.8125e-08HZ=12.8MHZ,50_down_samples模块输出连线为淡蓝色代表的速率为3.9063e-06S=1/3.9063e-06HZ=256KHZ。256KHZ的采样速率已经完全足够语音信号的带宽。

   4、fm解调

              下面就开始对着256KHZ的语音信号进行FM解调,打开FM_demod模块:

              实际就相当于求模运算。

  5、声道划分
                  这里输出实际上就已经是可以播放的语音信号了,但是为了听觉效果更加立体,后面用了两个高低通滤波器,将高低音部分给拆分开来,使得高音更高。从而形成左右两个声道。
             5.1和信号部分

                      和信号部分DownSample_LPF模块的截图如下:

 

 

                     这是一个截止频率为18KHZ,带宽为14KHZ的低通滤波器,其参数设置截图:

 

 

                        在上图中可以发现,滤波器输出有个Down Sample1模块,完成了数据速率的4倍下采样,其参数设置截图:

 

 

             5.2、差信号部分

                      我们再看差信号的部分,L_R模块:

 

 

                    将语音信号经过一个滤波器后变频输出至后一个滤波器,我们先看第一个滤波器,其参数截图如下:

 

 

                      这个滤波器是一个截止频率为38KHZ,带宽为30KHZ的高通滤波器,这样就取出了语音信号的高音部分。下面是一个DDS模块,输出了一路正弦信号,其参数截图如下:

 

 

                         DDS的输出频率为38KHZ。将DDS输出的信号和高通滤波器输出的信号做乘法运算,也就说明,将滤波器输出的差信号部分的频率搬移到了基带。

                        然后将输出的信号经过低通滤波器和Down Sample1模块,把速率降为64K的信号,这部分和前边和信号部分一致,就不再讲述了。

              6、数据上传PC

                          最后,我们需要将这64K的左右两声道的信号传输到PC上来播放,模块DataToPC的截图如下:

 

 

             7、生成bit                    

                  这里面就完成将输入的语音信号通过UDP接口上传至PC端来实时播放,里面使用了FIFO缓存数据,当数据达到了一个UDP数据包的长度后,就输出至UDP接口,用户只需要使输入UDP端口的数据满足该协议即可。具体操作就不再讲述。

搭建好链路后,我们开始生成bit文件,如下图所示:

 

 

              设置好生成bit的路径和芯片信号,由于我们使用了FMC202板卡,为了保证数据和时钟对齐,我们使用ADC时钟,即FMC202板卡上的ADC的时钟。点击Generate生成bit。我们的示例中有一个生成给U2的bit。

 

四、bit下载与配置    
        1、bit下载与射频配置

 

              生成bit后,准备好硬件平台,连接好天线,加载bit至所生成的板卡中,然后开始配置FMC202的射频频点,打开FMC202的配置界面,如下如所示:

 

 

              这里的接收频点,可以根据当地的广播信号频率来设置,截图中设置的是95.5M,接收带宽设置为2M,开启AGC使能,只使用了FMC202的接收2通道,所以,我们只选择RX2使能。这里的基带采样率就是我们链路中FMC202 RX模块上设置的那个速率。设置好IP和FPGA后,即可点击初始化->配置,如果配置失败,请确认bit文件是否下载正确,或者重新配置。

 

       2、业务传输

 

             在DPS的业务传输界面里,点击设置,由于我们的链路中DataToPC模块里面使用的是UDP传输方式,所以在设置里面选择UDP,我们的语音速率为64KHZ,左右声道,因此选择语音速率为64KHZ,立体声。截图如下:

 

 

            设置好了以后,点击返回->电台通信->接收,即可听见你所配置的广播信号,如果听见的效果不好,可以试着移动天线的位置。

            安装新版DPS2.0软件后,即可打开附件中的链路,附件中bit支持U2平台的xc7k325t-2ffg676芯片,用户可以直接下载。

 

           相关源码请到http://www.dingwave.com/bbs/foru ... 1&extra=#pid262下载。

 

附录:

FMC202外观框图

FMC架构