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

          新聞中心

          EEPW首頁 > 測試測量 > 設(shè)計應(yīng)用 > 基于LabVIEW和NI USRP進(jìn)行射頻/通信物理層研究

          基于LabVIEW和NI USRP進(jìn)行射頻/通信物理層研究

          作者:JanDohl 時間:2012-08-30 來源:電子產(chǎn)品世界 收藏

            有擾射頻概念

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

            作為德累斯頓工業(yè)大學(xué)沃達(dá)豐移動通信系統(tǒng)集團(tuán)的研發(fā)人員,我主要負(fù)責(zé)設(shè)計方法來提高低價位移動前端的模擬射頻性能。 我的研究主題是通過DSP技術(shù)來抑制硬件損傷,這一概念也就是有擾射頻。 我可以使用昂貴的實(shí)驗(yàn)室硬件來消除非線性、同相/正交失衡、相位噪聲和載波頻率偏移等負(fù)面損壞影響,但是成本較低的DSP方法卻可以明顯提高常見通信系統(tǒng) 的質(zhì)量?! ?/p>

           

            許多通信系統(tǒng)采用由混頻器、功率放大器、低噪聲放大器組成的低成本射頻前端,得到的性能和特性并不是很理想。 消費(fèi)電子產(chǎn)品行業(yè)是一個通過低成本來刺激消費(fèi)的行業(yè),理想的射頻前端對于該行業(yè)來說價格過于昂貴且不實(shí)用。 低價位的消費(fèi)設(shè)備射頻元器件已得到廣泛應(yīng)用,但卻存在明顯的射頻損傷問題,射頻損傷會阻礙通信鏈路、減小網(wǎng)絡(luò)容量。 因此,消費(fèi)設(shè)備開發(fā)人員在設(shè)計射頻前端時,只能在成本和性能上做出取舍。

            由于移動電話和無線應(yīng)用的快速普及,研究和開發(fā)更有效、更精確的DSP硬件損傷校正對于工程師來說意義重大。此外,由于模擬前端通常是設(shè)計無線電元器件中難度最大且成本最高的一個環(huán)節(jié);采用數(shù)學(xué)算法來消除損傷可降低無線設(shè)備的成本,提高數(shù)據(jù)速率和無線鏈路的可靠性。

            算法開發(fā)

            這個有擾射頻項(xiàng)目是在可對特定非線性放大器損傷影響進(jìn)行盲目特征記述的現(xiàn)有數(shù)學(xué)模型的基礎(chǔ)上展開的。 然后通過編寫算法來自定義模型,提高降級信號的校正性能,并通過重復(fù)的軟件仿真來進(jìn)行算法迭代。 借助前饋校正,我開發(fā)出了一種使用僅仿真軟件的概念驗(yàn)證方法。前饋校正是通過校正數(shù)學(xué)算法以數(shù)字形式補(bǔ)償損傷的無線信號的一種方法 。 這樣,我通過仿真得到了全面的數(shù)據(jù)后,就可以將估計值與我們開發(fā)的方法得出的值進(jìn)行比較。

            實(shí)際驗(yàn)證

            接下來第二個階段就是搭建測試臺,在真實(shí)的系統(tǒng)中驗(yàn)證算法的整體效率。 作為軟件的新用戶,我通過本地 MathScript RT模塊將所有現(xiàn)有代碼移植到這個圖像化編程環(huán)境。 不到四周的時間,我借助兩個通過無線連接的 USRP軟件定義無線設(shè)備開發(fā)了第一個可實(shí)時運(yùn)行的工作原型。 盡管開發(fā)過程中使用的是Windows系統(tǒng)的計算機(jī),但是該軟件卻可實(shí)時應(yīng)用損傷校正,而無需專用的DSP或現(xiàn)場可編程門陣列,這樣就簡化了原型的開發(fā)。

            借助 USRP軟件定義的無線電設(shè)備,我能夠快速從仿真過渡到無線工作原型。 該原型通過有擾射頻來對低價位發(fā)射機(jī)和接收機(jī)中常采用的非理想射頻元器件進(jìn)行特征記述和校正。

            能夠如此迅速、輕松地開發(fā)出此類系統(tǒng)的原型真是出乎我的意料,因?yàn)榻o線鏈路和開發(fā)子系統(tǒng)是需要很大努力的。 使用真實(shí)信號進(jìn)行驗(yàn)證需要

            a. 將發(fā)射機(jī)和接收機(jī)同步
            b. 根據(jù)可能的不同調(diào)制方案建立正交頻分復(fù)用(OFDM)鏈路
            c. 在LabVIEW軟件上開發(fā)估計和抑制算法
            d. 將人工損傷與已知的行為相結(jié)合,對不同的仿真結(jié)果進(jìn)行比較
            e. 收集性能特性,將結(jié)果記錄到文件中,搭建視覺友好的圖形化用戶界面

            這個原型通過一個軟件定義的無線電平臺就解決了所有這些需求,該平臺由兩個 USRP-2920收發(fā)器組成的單輸入、單輸出發(fā)射和接收設(shè)備對和在上位機(jī)執(zhí)行的LabVIEW VI組成。 首先通過對估計的各種NI USRP射頻前端噪聲源進(jìn)行建模來記錄系統(tǒng)的特性,噪聲源包括時鐘源的相位噪聲以及放大階段和其他元器件產(chǎn)生的非線性增益。

            采用LabVIEW設(shè)計OFDM鏈路后,我最終取得了以下成果:

            a. 搭建包含1024個子載波的OFDM鏈路,每個子載波最大調(diào)制為256-QAM
            b. 證明估計和抑制方法可抑制來自真實(shí)非線性放大器硬件的非線性損傷
            c. 發(fā)現(xiàn)該方法可改進(jìn)之處
            d. 數(shù)據(jù)速率約達(dá)1.4 Mbps

            結(jié)論

            由于具有較豐富的ANSI C/C++和MathWorks, Inc. MATLAB®軟件編程經(jīng)驗(yàn),我很快就適應(yīng)了LabVIEW系統(tǒng)設(shè)計軟件的方法,通過直接重用專門用于仿真的.m文件腳本,開發(fā)時間縮短了。 看到自己編寫的許多.m文件腳本轉(zhuǎn)換為本地LabVIEW代碼,并行執(zhí)行性能得到了提高,我總是很有成就感。

            LabVIEW系統(tǒng)設(shè)計軟件在并行編程上確實(shí)很出色,是我研究過程中開發(fā)信號處理和通信算法的好幫手。 我用過C++、Java和其他語言進(jìn)行編程,但我還沒發(fā)現(xiàn)有其他方法比LabVIEW更直接、更直觀地反映這種并行機(jī)制。

            最終應(yīng)用,也就是“有擾射頻演示儀”,將LabVIEW系統(tǒng)設(shè)計軟件方法與NI USRP硬件相結(jié)合,為工作原型開發(fā)和交互式項(xiàng)目中的挑戰(zhàn)探索提供了有效地方法。 該平臺具有極高的靈活性,可重配置設(shè)置來仿真各種操作條件下低價位RF通常出現(xiàn)的損傷問題。 該平臺還可根據(jù)研究需要進(jìn)行擴(kuò)展。

            我打算在2012年的幾個會議上發(fā)表我的研究成果。最終有效地證明噪聲模型以及基于真實(shí)原型的噪聲抑制算法的有效性。 再接下去,我將使用“有擾RF演示儀”項(xiàng)目所取得的工作成果來支持其他研究,深入探索非線性硬件損傷。

          pa相關(guān)文章:pa是什么


          c++相關(guān)文章:c++教程


          通信相關(guān)文章:通信原理


          混頻器相關(guān)文章:混頻器原理


          關(guān)鍵詞: NI LabVIEW

          評論


          相關(guān)推薦

          技術(shù)專區(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); })();