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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于ARM自適應(yīng)均衡器的設(shè)計(jì)與實(shí)現(xiàn)

          基于ARM自適應(yīng)均衡器的設(shè)計(jì)與實(shí)現(xiàn)

          作者: 時(shí)間:2017-06-04 來(lái)源:網(wǎng)絡(luò) 收藏

          無(wú)線通信中,信號(hào)在非理想信道傳輸時(shí)總是存在失真,具體表現(xiàn)為[1,2]。為降低干擾,通常在接收端采用進(jìn)行失真補(bǔ)償。一般由橫向?yàn)V波器組成,這是中最易實(shí)現(xiàn)的形式,也是實(shí)際應(yīng)用比較廣泛的一種方法[3-5]。

          ARM作為嵌入式的主流核心架構(gòu),具有高速度、高精度和智能化等優(yōu)點(diǎn),逐漸取代了單片機(jī)技術(shù),占據(jù)了絕大部分市場(chǎng)。在工業(yè)控制、移動(dòng)設(shè)備、智能儀表、信息家電和網(wǎng)絡(luò)通信等領(lǐng)域有廣泛的應(yīng)用[6-9]。

          本文利用ARM的高速度、高精度和低功耗優(yōu)點(diǎn),采用μC/OS-Ⅱ系統(tǒng),構(gòu)建了基于的自適應(yīng)均衡器。

          1 系統(tǒng)設(shè)計(jì)

          自適應(yīng)均衡器系統(tǒng)框圖如圖1所示。


          1.1 系統(tǒng)功能

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

          采集的模擬數(shù)據(jù)經(jīng)調(diào)理后,通過(guò)多路選擇開(kāi)關(guān)進(jìn)行A/D轉(zhuǎn)換,進(jìn)入主處理器。在主處理器調(diào)用LMS算法對(duì)采集的數(shù)據(jù)進(jìn)行自適應(yīng)均衡,處理后的數(shù)據(jù)通過(guò)LCD模塊顯示。系統(tǒng)自帶鍵盤(pán),可以方便現(xiàn)場(chǎng)調(diào)試和算法參數(shù)調(diào)整。同時(shí)系統(tǒng)通過(guò)RS-232接口與上位機(jī)進(jìn)行通信。

          1.2 ARM微處理器

          本系統(tǒng)采用Philips公司生產(chǎn)的LPC2131微處理器,它是基于一個(gè)支持實(shí)施仿真和跟蹤的16/32位TD-
          MI-S CPU的微處理器,具有高性能和低功耗的特性。

          該處理器結(jié)構(gòu)主要包括8 KB的片內(nèi)RAM,多個(gè)串行接口,1個(gè)8位A/D轉(zhuǎn)換器,2個(gè)32位定時(shí)器。處理器可通過(guò)外部存儲(chǔ)器接口進(jìn)行擴(kuò)展。這些功能結(jié)構(gòu)使LPC2131特別適用于工業(yè)控制和醫(yī)療系統(tǒng)。

          1.3 人機(jī)交互接口

          控制器具有一個(gè)LCD接口,用于實(shí)時(shí)顯示采集的數(shù)據(jù)和經(jīng)過(guò)自適應(yīng)均衡后的數(shù)據(jù),以方便工作人員現(xiàn)場(chǎng)調(diào)試和觀察設(shè)備運(yùn)行。該接口可以支持圖形液晶。本系統(tǒng)采用128×64模組STN點(diǎn)陣圖形液晶模塊[10]。該模塊由列驅(qū)動(dòng)器HD61202和行驅(qū)動(dòng)器HD61203組成,可直接與8位CPU相接。兩個(gè)控制器原理基本相同,可以簡(jiǎn)化顯示模塊的設(shè)計(jì)。

          2 算法原理

          線性均衡器結(jié)構(gòu)如圖2所示。其中濾波器可以采用FIR或IIR結(jié)構(gòu)。由于IIR濾波器存在不穩(wěn)定性問(wèn)題,因此采用FIR濾波器,其結(jié)構(gòu)如圖3所示。

          工作原理為:發(fā)方首先發(fā)送一訓(xùn)練序列,收方收到經(jīng)信道已失真的序列,再經(jīng)濾波器得到,以此序列與訓(xùn)練序列相減得到誤差εk,將誤差輸入自適應(yīng)算法模塊,根據(jù)算法不斷調(diào)整濾波器系數(shù),直到誤差接近最小或達(dá)到允許誤差范圍內(nèi),此時(shí)均衡器能夠使前后序列誤差最小,從而進(jìn)入鎖定狀態(tài)。此后就不再需要訓(xùn)練序列,這樣均衡器就能夠?qū)崿F(xiàn)對(duì)信道碼間串?dāng)_的補(bǔ)償或抑制功能。目前最常用的自適應(yīng)算法是最小均方誤差算法,即LMS算法。它是一種易于實(shí)現(xiàn)、性能穩(wěn)健、應(yīng)用廣泛的算法。依據(jù)原理框圖和均方誤差原則,可以得到LMS算法如下:設(shè)濾波器的輸入為x(n),理想輸出為d(n),實(shí)際輸出為y(n),濾波器系數(shù)為ωi(n),(i=0,1,…,M-1),則:


          3 軟件設(shè)計(jì)

          在軟件設(shè)計(jì)中采用了搶占式實(shí)時(shí)多任務(wù)μC/OS-Ⅱ操作系統(tǒng)。此操作系統(tǒng)內(nèi)核具有簡(jiǎn)潔、穩(wěn)定、實(shí)時(shí)性強(qiáng)等優(yōu)點(diǎn),可以簡(jiǎn)化應(yīng)用系統(tǒng)設(shè)計(jì),使整個(gè)系統(tǒng)結(jié)構(gòu)簡(jiǎn)潔,應(yīng)用程序易于維護(hù)。

          3.1 初始化函數(shù)

          完成系統(tǒng)硬件和軟件初始化工作。其中硬件初始化工作包括中斷、鍵盤(pán)和顯示初始化,為系統(tǒng)正常工作做好準(zhǔn)備;軟件初始化主要?jiǎng)?chuàng)建一個(gè)任務(wù),完成時(shí)鐘、中斷和通信模塊的啟動(dòng)。

          3.2 系統(tǒng)任務(wù)

          本系統(tǒng)根據(jù)任務(wù)的重要性,分為4個(gè)不同的優(yōu)先級(jí)任務(wù):系統(tǒng)監(jiān)控、AD采樣、鍵盤(pán)輸入、LCD顯示。其功能如圖4所示。


          3.3 算法流程

          為實(shí)現(xiàn)軟件的以上功能,利用C語(yǔ)言在ADS集成環(huán)境中編程實(shí)現(xiàn)基于LMS算法的自適應(yīng)均衡器算法。其算法流程如圖5所示。


          4 試驗(yàn)結(jié)果

          為驗(yàn)證系統(tǒng)的有效性和可靠性,進(jìn)行了算法驗(yàn)證。首先采集500個(gè)數(shù)據(jù)并保存,然后進(jìn)行LMS自適應(yīng)均衡,得到如圖6所示的結(jié)果。圖中上半部分為帶噪聲的原始輸入信號(hào)波形,下半部分為均衡后的輸出信號(hào)波形。從圖中可以看出,該算法均衡效果良好,達(dá)到了設(shè)計(jì)要求。

          本系統(tǒng)以為平臺(tái),設(shè)計(jì)了基于LMS算法的自適應(yīng)均衡器,消除了無(wú)線通信中的問(wèn)題。系統(tǒng)體積小、功耗低、便攜性強(qiáng)。通過(guò)實(shí)驗(yàn)驗(yàn)證了系統(tǒng)的可靠性和有效性,具有一定的實(shí)用價(jià)值。




          評(píng)論


          相關(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); })();