<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 業(yè)界動(dòng)態(tài) > 基于SDR的FM調(diào)制與解調(diào)器的實(shí)現(xiàn)

          基于SDR的FM調(diào)制與解調(diào)器的實(shí)現(xiàn)

          作者: 時(shí)間:2019-07-01 來(lái)源:電子產(chǎn)品世界 收藏

            張博,李少陽(yáng), 劉宇

          本文引用地址:http://www.ex-cimer.com/article/201907/402132.htm

            (西安郵電大學(xué)電子工程學(xué)院,陜西省 西安市 710121)

            摘要:提出了一種基于SDR的器的實(shí)現(xiàn)方案,此方案采用ZYNQ平臺(tái)和射頻收發(fā)芯片搭建。首先介紹ZYNQ+的SDR硬件平臺(tái)的設(shè)計(jì),其次對(duì)的原理分析并結(jié)合MATLAB進(jìn)行算法仿真,最終在ZYNQ平臺(tái)上完成SDR工程設(shè)計(jì)。

            關(guān)鍵詞:;;

            基金項(xiàng)目:西安市集成電路重大專(zhuān)項(xiàng)(201809174CY3JC16);陜西省教育廳服務(wù)地方產(chǎn)業(yè)化專(zhuān)項(xiàng)(15JF029)

            0 引言

            FM(Frequcncy Modulation) 調(diào)制是目前國(guó)內(nèi)外采用的較為普遍的一種調(diào)制方式。主要應(yīng)用于高保真音樂(lè)廣播,對(duì)講機(jī),衛(wèi)星通信等領(lǐng)域,傳統(tǒng)的方法使用模擬器件搭建的方式,應(yīng)用最廣泛的為收音機(jī)。此方式電路結(jié)構(gòu)復(fù)雜,靈活性差,抗干擾能力弱;后來(lái)逐漸出現(xiàn)DSP或者FPGA與A/D結(jié)合的結(jié)構(gòu),此方案中對(duì)ADC和DAC的要求比較高 [1-2] 。射頻鏈路比較復(fù)雜,不可靈活配置。對(duì)于戰(zhàn)場(chǎng)上單兵作戰(zhàn)通信,飛機(jī)通信,人們對(duì)SDR要求越來(lái)越高,本文提出了在ZYNQ+AD9361的架構(gòu)上實(shí)現(xiàn)的FM調(diào)制與解調(diào)方案。本方案電路結(jié)構(gòu)簡(jiǎn)單,功耗低,接收和發(fā)射頻點(diǎn)靈活可調(diào),高動(dòng)態(tài)范圍等優(yōu)點(diǎn),F(xiàn)M解調(diào)也相對(duì)于傳統(tǒng)的鎖相環(huán)相干解調(diào)具有結(jié)構(gòu)簡(jiǎn)單,抗載頻失配,同時(shí)滿(mǎn)足解調(diào)寬帶和窄帶的信號(hào) [3]

            1 硬件平臺(tái)

            基于SDR的FM調(diào)制解調(diào)器的硬件平臺(tái)框圖如圖1所示,AD9361作為射頻收發(fā)的核心芯片,接收時(shí)將射頻數(shù)據(jù)與本振混頻后轉(zhuǎn)換為基帶數(shù)據(jù),通過(guò)內(nèi)部ADC將模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào),F(xiàn)PGA作為算法處理、系統(tǒng)控制的核心芯片,內(nèi)部含有ARM-A9雙核,主要用于對(duì)AD9361內(nèi)部寄存器的配置,以及系統(tǒng)參數(shù)的控制,F(xiàn)M調(diào)制解調(diào)算法在FPGA中的PL部分實(shí)現(xiàn),該ZYNQ+AD9361平臺(tái)能夠適應(yīng)各種數(shù)字通信,語(yǔ)音通信,本文論述主要應(yīng)用軍用飛機(jī)語(yǔ)音通信。

            1.1 主要芯片選型

            Xilinx 公司推出了新一代28 nm工藝,集成 FPGA 與雙 ARM 核,小封裝、低功耗全可編程片上系統(tǒng)(AllProgrammable SoC)Zynq-7000 系列。如圖2所示ZYNQ硬件結(jié)構(gòu),在芯片內(nèi)部FPGA通過(guò)AXI總線完成與ARM的數(shù)據(jù)交互。完美的將FPGA的優(yōu)勢(shì)與ARM的優(yōu)勢(shì)結(jié)合起來(lái) [4] 。

            采用ADI公司的AD9361射頻捷變收發(fā)器,作為射頻收發(fā)器,AD9361支持的頻率范圍在70 MMHz~6.0 GHz,涵蓋了大部分特許執(zhí)照和免執(zhí)照頻段,支持200 kHz~56MHz的通道帶寬,AD9361集成了SDR收發(fā)器所必須的RF、數(shù)模轉(zhuǎn)換、混合信號(hào) [5] 。AD9361芯片內(nèi)部結(jié)構(gòu)如圖3所示。AD9361內(nèi)部具有兩個(gè)接收和發(fā)射通路:每個(gè)接收通路各自含有一個(gè)低噪聲放大器(LNA),相內(nèi)(I)和(Q)正交放大器、混頻器、12位ADC和三級(jí)半帶濾波器以及階數(shù)可調(diào)的FIR濾波器,三級(jí)半帶可通過(guò)修改抽取系數(shù)來(lái)達(dá)到降低速率。其中FIR濾波器可以使用MATLAB中的FDATOOL濾波器工具產(chǎn)生濾波器系數(shù),通過(guò)軟件編程寫(xiě)入AD9361中,應(yīng)用于更多的通信帶寬中。

            發(fā)射通路與接收通路基本相同,基帶數(shù)據(jù)被AD9361接收到,直接進(jìn)入FIR濾波器,在經(jīng)過(guò)三級(jí)半帶濾波器插速之后,被DAC采樣,其中DAC的采樣速率可調(diào),通過(guò)三級(jí)半帶濾波器的插速處理來(lái)滿(mǎn)足DAC的采樣速率。最后信號(hào)分為I、Q兩路進(jìn)入射頻模塊部分與載波混頻,在經(jīng)過(guò)放大器通過(guò)天線發(fā)送。

            2 FM調(diào)制解調(diào)軟件算法設(shè)計(jì)

            2.1 FM調(diào)制算法

            調(diào)頻(FM)是載波的瞬時(shí)頻率隨調(diào)制信號(hào)成線性變化的一種調(diào)制方式,音頻調(diào)頻信號(hào)的數(shù)學(xué)表達(dá)可以寫(xiě)為:

          微信截圖_20190705122858.png

            其中,A0 為調(diào)頻信號(hào)的幅度;Wc 為載波角頻率;ν?(t)為音頻調(diào)制信號(hào);k?為調(diào)制角頻偏;?0 為調(diào)制信號(hào)的初始相位。把式(1)展開(kāi)得:

          微信截圖_20190705122908.png

            令 φ 等于式(3)并代入式(2)得式(4)

          微信截圖_20190705122912.png

            從式(3)看到,在實(shí)現(xiàn)FM時(shí)要對(duì)調(diào)制信號(hào)進(jìn)行積分,然后對(duì)這積分后的信號(hào)分別取正弦和余弦即可。因此用正交調(diào)制法實(shí)現(xiàn)時(shí)只須令:

          微信截圖_20190705122919.png

            因此,調(diào)制算法信號(hào)處理如圖4所示,語(yǔ)音信號(hào)通過(guò)STGL5000芯片的ADC以96 kHz的速度進(jìn)行采樣得到采樣的信號(hào)ν?(t),將到信號(hào)乘以調(diào)制角頻偏k? 并進(jìn)行累加求和,然后進(jìn)行Cordic運(yùn)算分別進(jìn)行sin和cos運(yùn)算得到正交調(diào)制,再經(jīng)過(guò)5級(jí)級(jí)聯(lián)的CIC濾波器內(nèi)插20倍,經(jīng)過(guò)內(nèi)插后的得到1.92 MHz的信號(hào)在分別乘以發(fā)射功率,就可以得到 I(t) 和Q(t) 的零中頻的調(diào)制信號(hào),AD9361以1.92 MHz的速度采集I(t) 和Q(t) 的零中頻的調(diào)制信號(hào),經(jīng)過(guò)FIR濾波器、多級(jí)半帶濾波器最終DAC以30.72 MHz的速度轉(zhuǎn)化為模擬信號(hào),在與載波信號(hào)混頻后通過(guò)天線發(fā)送 [6] 。

            2.2 FM解調(diào)算法

            調(diào)制信號(hào)表達(dá)式:

          微信截圖_20190705122925.png

            對(duì)信號(hào)進(jìn)行正交分解得:

          微信截圖_20190705122930.png

            對(duì)正交與同相分量比值反正切運(yùn)算:

          微信截圖_20190705122936.png

            然后,對(duì)相位差分,即可求得調(diào)制信號(hào):

          微信截圖_20190705122943.png

            FM信號(hào)用正交解調(diào)方法進(jìn)行解調(diào)時(shí),也具有較強(qiáng)的抗載頻失配(指失配差頻和差相是常量,非隨機(jī)變量)能力,本地載波與信號(hào)的載波存在頻差和相差時(shí),同相分量和正交分量可表示為:

          微信截圖_20190705122947.png

            同樣,對(duì)正交與同相分量之比值反正切及差分運(yùn)算,就可得到調(diào)制信號(hào):

          微信截圖_20190705122954.png

            當(dāng)載波失配差頻和差相是常量時(shí),解調(diào)輸出只不過(guò)增加了一個(gè)直流分量Δw 就可得到調(diào)制信號(hào)m(n)[7-8]

            因此,調(diào)制算法信號(hào)處理如下圖5所示,AD9361通過(guò)天線接收到射頻信號(hào)后,經(jīng)過(guò)混頻、ADC、多級(jí)半帶濾波器,F(xiàn)IR濾波器,最終FPGA以1.92MHz的速度采集到XI(t) 和XQ(t)兩路中頻信號(hào),經(jīng)過(guò)下變頻、CIC抽取濾波器、FIR低通濾波器變?yōu)榱阒蓄l信號(hào),在進(jìn)過(guò)cordic算法的極坐標(biāo)轉(zhuǎn)換得到瞬時(shí)相位,然后用前一時(shí)刻的瞬時(shí)相位減去后一時(shí)刻的瞬時(shí)相位,就可以得到相位差,即得到解調(diào)的有用信息 [9] 。但是由于本地載波和信號(hào)載波的頻差和相差,因此在將解調(diào)到的信號(hào)進(jìn)行平均得到信號(hào)的功率,并在解調(diào)的信號(hào)中減去平均功率,就可以得到調(diào)制信號(hào) [10] 。

            3 性能仿真與實(shí)現(xiàn)

            3.1 Matlab仿真

            在Matlab環(huán)境下對(duì)提出的FM調(diào)制解調(diào)算法進(jìn)行了仿真,主要仿真參數(shù)如下:

            (1)調(diào)制信號(hào)幅度為5的1 KHz正弦波;

            (2)載波信號(hào)幅度為1的64 KHz正弦波;

            (3)采樣率為1 MHz;

            (4)FM的最大頻偏為6 KHz;

            (5)仿真數(shù)據(jù)長(zhǎng)度為4500;FM調(diào)制結(jié)果仿真波形如圖6所示,由1 KHz的單音調(diào)制信號(hào),經(jīng)過(guò)正交調(diào)制產(chǎn)生I、Q兩路調(diào)制信號(hào),最終由I、Q兩路正交信號(hào)得到最終的調(diào)制信號(hào)。

            FM解調(diào)結(jié)果仿真波形如圖7所示,由調(diào)制信號(hào)經(jīng)過(guò)64 KHz下變頻,在經(jīng)過(guò)濾波器到零中頻的I、Q兩路基帶信號(hào),在最終解調(diào)出原始信號(hào) [10] 。

            3.2 設(shè)計(jì)實(shí)現(xiàn)

          1562302172417507.jpg

          1562301974578120.jpg

            在vivado中最終建立如圖8所示的工程,在工程中調(diào)用了ARM硬核(processing system7_0)通過(guò)SPI對(duì)AD9361的配置,用戶(hù)可以通過(guò)ARM核上的串口對(duì)AD9361的頻點(diǎn)改變,以及配合自定義IP (axi_interface_ctrl_0)通過(guò)AXI總線實(shí)時(shí)對(duì)FM調(diào)制系數(shù)、FM發(fā)射功率、以及收發(fā)切換設(shè)置,使得該系統(tǒng)適應(yīng)更多場(chǎng)景使用,自定義IP(FM_TOP_0) 實(shí)現(xiàn)對(duì)信號(hào)的調(diào)制與解調(diào);自定義語(yǔ)音收發(fā)IP(analog_aduio_datawr_0)實(shí)現(xiàn)對(duì)STGL5000芯片的數(shù)據(jù)的收發(fā)。自定義AD9361數(shù)據(jù)收發(fā)IP(system_axi_ad9364_1_0)實(shí)現(xiàn)對(duì)AD9361的數(shù)據(jù)收發(fā)。

            天線接收到信號(hào)后經(jīng)過(guò)AD9361一次下變頻后,通過(guò)內(nèi)部12位ADC轉(zhuǎn)化為數(shù)字信號(hào),由FPGA內(nèi)部的AD9361 IP接收到分成I、Q兩路傳送到FM調(diào)制解調(diào)模塊,解調(diào)出射頻信號(hào)中的音頻信號(hào),然后通過(guò)語(yǔ)音收發(fā)IP將語(yǔ)音信號(hào)發(fā)送到STGL5000芯片經(jīng)過(guò)DAC轉(zhuǎn)化后驅(qū)動(dòng)耳機(jī)發(fā)聲,該過(guò)程實(shí)現(xiàn)了SDR接收過(guò)程。

            STGL5000芯片將麥克風(fēng)的語(yǔ)音信號(hào)經(jīng)過(guò)內(nèi)部的ADC轉(zhuǎn)化為音頻數(shù)字信號(hào),有FPGA內(nèi)部的語(yǔ)音收發(fā)IP接收到,傳送到FM調(diào)制解調(diào)IP中進(jìn)行調(diào)制,將調(diào)制后的信號(hào)分為I、Q兩路信號(hào),通過(guò)AD9361數(shù)據(jù)收發(fā)IP將數(shù)據(jù)發(fā)送到AD9361芯片和本振混頻后通過(guò)天線輻射到空間中,如果用戶(hù)需要更大的功率可以外接功放。該過(guò)程實(shí)現(xiàn)了SDR的發(fā)射過(guò)程 [11] 。

          1562302151730197.jpg

            3.3 設(shè)計(jì)驗(yàn)證

            將如圖8所示的工程綜合,布局布線,生成比特流,導(dǎo)入到Xilinx SDK軟件中建立C工程 [12] ,最終編譯下載到SDR收發(fā)機(jī)的FPGA中,使用RS公司生產(chǎn)的SMA180電臺(tái)綜合測(cè)試儀。完成接收機(jī)和發(fā)射機(jī)的測(cè)試。

            測(cè)試FM調(diào)制時(shí),由RS綜測(cè)儀輸出1KHz的正弦波作為調(diào)制信號(hào),將AD9361的載波信號(hào)設(shè)置為108MHz,同時(shí)使用vivado軟件下的ILA調(diào)試方法,在線測(cè)試捕獲到某一時(shí)刻的調(diào)制信號(hào)以及調(diào)制后零中頻的I、Q兩路信號(hào),如圖9所示。

            測(cè)試FM解調(diào)時(shí),由RS綜合測(cè)試儀,輸出載波幅度108 MHz,功率為-53 dBm,調(diào)制信號(hào)為1 KHz的正弦波,最大頻偏為6KHz的射頻信號(hào),發(fā)送到接收機(jī)中,同時(shí)使用vivado軟件下的ILA調(diào)試方法,在線測(cè)試捕獲到某一時(shí)刻的低中頻調(diào)制信號(hào)I、Q兩路,經(jīng)過(guò)下變頻后變?yōu)榱阒蓄lI、Q兩路信號(hào),再通過(guò)解調(diào)算法解調(diào)出原始信號(hào),如圖10所示。

            4 結(jié)論

            本文實(shí)現(xiàn)了基于ZYNQ+AD9361平臺(tái)的FM調(diào)制解調(diào)器,此系統(tǒng)具有發(fā)射頻點(diǎn)、接收頻點(diǎn)以及FM發(fā)射調(diào)制角頻偏可靈活配置,收發(fā)切換時(shí)間小于10ms。采用ZYNQ系列的XC7Z020CLG484-1芯片,搭建工程,綜合后LUT資源占用616,觸發(fā)器資源占用107。此平臺(tái)適用于各種ZYNQ平臺(tái)具有很好的移植性,能夠應(yīng)用于各種無(wú)線通信設(shè)計(jì)。

            參考文獻(xiàn):

            [1]楊明極,馬琳.基于的FM解調(diào)算法[J].電子設(shè)計(jì)工程,2012,20(16):116-125.

            [2]曹沅.基于FPGA的FM調(diào)制解調(diào)器的實(shí)現(xiàn)[J].艦船電子工程,2013,3 (9):68-70.

            [3]劉立,向新,孫眸,王鋒.FM信號(hào)數(shù)字化解調(diào)算法的改進(jìn)與實(shí)現(xiàn)[J].光通信研究,2012,4:26-28.

            [4]Zynq-7000 All Programmable SoC(XC7Z010 and XC7Z020):DC and AC SwitchingCharacteristics [EB/OL].(2012-11).

            [5]AD9361 RF and BB PLL Synthesizer User Guide[EB/OL][2014-11-06](2015-09-01).http://www.analog.com/media/en/technical-documentation/user-guides/AD9361_Reference_Manual_UG 570.pdf.

            [6]余蓮.AD9361:基于突破性技術(shù)促進(jìn)軟件定義無(wú)線電應(yīng)用田電子技術(shù)應(yīng)用[J],2013,39(11):1.

            [7]楊小牛,樓才義,徐建良.原理與應(yīng)用.北京:電子工業(yè)出版社,2001.

            [8]Jeffrey H. Reed.軟件無(wú)線電—無(wú)線電工程的現(xiàn)代方法[M].陳強(qiáng)譯.北京人民郵電出版社,2004:366-372.

            [9]張欣.擴(kuò)頻通信數(shù)字基帶信號(hào)處理算法及其VLS工實(shí)現(xiàn)[M]. 北京:科學(xué)出版社,2004:57-63.

            [10]姚東,王愛(ài)民,馮峰.MTALAB命令大全[M].北京:人民郵電出版社,2000,6.

            [11]宋飛.基于FPGA的數(shù)字中頻處理技術(shù)研究田」西安:西安電子科技大學(xué),200.

            [12]陸佳華,潘祖龍,鵬競(jìng)宇.嵌入式系統(tǒng)硬件協(xié)同設(shè)計(jì)實(shí)戰(zhàn)指南:基于Xilinx ZYNQ [M]北京:機(jī)械工業(yè)出版社,2014.7.

            作者簡(jiǎn)介:

            張博(1983—),男,博士,教授,從事射頻模擬集成電路研究。

            李少陽(yáng)(1991-),男,碩士研究生,研究方向?yàn)榧呻娐贰?/p>

            劉宇 (1973-),男,碩士,高級(jí)工程師,研究方向?yàn)榧呻娐贰?/p>

            本文來(lái)源于科技期刊《電子產(chǎn)品世界》2019年第7期第31頁(yè),歡迎您寫(xiě)論文時(shí)引用,并注明出處



          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();