999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于DSP混合編程的LMS自適應(yīng)濾波算法實現(xiàn)

2014-05-29 09:40:12黃勇吳運金宋俊才中國船舶重工集團公司第七一研究所湖北宜昌443003
自動化博覽 2014年5期
關(guān)鍵詞:信號結(jié)構(gòu)

黃勇,吳運金,宋俊才(中國船舶重工集團公司第七一○研究所,湖北 宜昌 443003)

1 引言

在許多數(shù)字電子系統(tǒng)中,為了提取信號有用信息,我們可以使用數(shù)字信號處理器件(DSP)對采樣后的數(shù)字信號進行算法處理。DSP進行算法處理常用C語言或匯編語言進行編程。使用C語言可以大大提高軟件開發(fā)速度和可讀性,方便軟件的修改和移植,但是C代碼的效率無法與匯編代碼相比。使用匯編語言雖然編寫比較繁雜,可移植性差,但可以更為合理充分利用DSP芯片提供的硬件資源,代碼效率高[1]。

本文介紹自適應(yīng)濾波(LMS)算法的基本原理,結(jié)合其在2FSK信號解調(diào)中的應(yīng)用,使用C語言與匯編混合編程的方法在TMS320VC5416 DSP器件上進行實現(xiàn),并指出混合編程在該項應(yīng)用中的優(yōu)勢。

2 自適應(yīng)濾波器的結(jié)構(gòu)和算法

2.1 自適應(yīng)濾波器的結(jié)構(gòu)

常規(guī)濾波器具有特定的特性,輸入信號根據(jù)濾波器的特性產(chǎn)生相應(yīng)的輸出。但是實際應(yīng)用是反過來要求的,即對濾波器輸出的要求是明確的,而濾波器特性無法預(yù)先知道,這就必須依賴自適應(yīng)濾波技術(shù)。

自適應(yīng)濾波器的權(quán)系數(shù)可以根據(jù)一種自適應(yīng)算法來不斷修改,使系數(shù)的沖激響應(yīng)能滿足給定的性能。圖1為自適應(yīng)濾波器的一般形式。

圖1 自適應(yīng)濾波器結(jié)構(gòu)圖

自適應(yīng)濾波器有兩個獨立的部分:一個按理想模式設(shè)計的濾波器,一套自適應(yīng)算法,用來調(diào)節(jié)濾波器權(quán)系數(shù)使濾波器性能達到要求。自適應(yīng)濾波可采用FIR或者IIR結(jié)構(gòu),由于IIR濾波器存在穩(wěn)定性問題,因此一般采用FIR濾波器作為自適應(yīng)濾波器的結(jié)構(gòu),自適應(yīng)FIR濾波器結(jié)構(gòu)可以分為三種結(jié)構(gòu)類型:橫向型結(jié)構(gòu)、對稱橫向型結(jié)構(gòu)、格型結(jié)構(gòu)。本文采用的是自適應(yīng)濾波器設(shè)計中最常用的FIR橫向型結(jié)構(gòu)。圖2為橫向濾波器的結(jié)構(gòu)示意圖。

圖2 橫向濾波器的結(jié)構(gòu)示意圖

其中x(n)為自適應(yīng)濾波器的輸入;W(n)為自適應(yīng)濾波器的權(quán)值:W(n) = {W0(n),W1(n),W2(n),…,WN-1(n)};y(n)為自適應(yīng)濾波器的輸出:

2.2 自適應(yīng)濾波器的算法

最常用的自適應(yīng)算法是最小均方誤差算法,即LMS算法(Least Mean Square),LMS算法是一種易于實現(xiàn)、性能穩(wěn)健、應(yīng)用廣泛的算法。所有的濾波器系數(shù)調(diào)整算法都是設(shè)法使y(n)接近d(n),所不同的只是對于這種接近的評價標準不同。LMS算法的目標是通過調(diào)整系數(shù),使輸出誤差序列e(n)=d(n)-y(n)的均方值最小化,并且根據(jù)這個判據(jù)來修改權(quán)系數(shù)。誤差序列的均方值又叫“均方誤差”,即:

代入y(n)的表達式(1)有:

其中R=E[x(n)xT(n)]為N*N自相關(guān)矩陣,它是輸入信號采樣值間的相關(guān)性矩陣。P=E[d(n)x(n)]為N*1互相關(guān)矢量,代表理想信號d(n)與輸入矢量的相關(guān)性。

在均方誤差最小時,可以得到W(n+1)=W(n)+2ue(n)X(n) (4)[2]

式(1)、(2)、(4)構(gòu)成了DSP實現(xiàn)的LMS算法。其優(yōu)點是:實現(xiàn)起來簡單,不依賴模型,因此具有穩(wěn)健的性能。

3 自適應(yīng)濾波算法的DSP實現(xiàn)

本文以2FSK信號的解調(diào)為實例,分析LMS自適應(yīng)濾波在DSP上的實現(xiàn)。2FSK信號的頻點為4kHz和6kHz,采樣頻率40kHz。其解調(diào)過程如圖3所示[3]:

圖3 2FSK信號解調(diào)框圖

為了能實時解調(diào)2FSK信號,要求經(jīng)過一個碼元周期內(nèi)就能對2FSK信號的該碼元進行解碼判決,為了達到這個要求,必須在一個采樣間隔內(nèi)完成對2FSK信號的兩次LMS濾波、平方和低通濾波處理。因此,要求DSP能快速實現(xiàn)LMS濾波。

按照這種設(shè)計思想,我們在TMS320VC5416 上實現(xiàn)20階LMS算法的自適應(yīng)濾波器,分別采用C語言和混合編程的方法來實現(xiàn)。圖4為DSP實現(xiàn)的程序流程圖,整個實現(xiàn)過程主要分為3步:

(1)濾波運算的相關(guān)運算單元、寄存器以及變量的初始化;

(2)根據(jù)輸入的采樣值計算濾波器的輸出求出誤差;

(3)根據(jù)LMS算法的迭公式更新濾波器的參數(shù),有新的采樣輸入后轉(zhuǎn)入下一次執(zhí)行。

圖4 DSP實現(xiàn)LMS算法程序流程圖

3.1 自適應(yīng)濾波算法C語言實現(xiàn)

在編寫程序的初始化階段,首先應(yīng)該進行自適應(yīng)系數(shù)、緩沖區(qū)、變量的初始化,并設(shè)置緩沖區(qū)的地址以及數(shù)據(jù)和程序在存儲區(qū)內(nèi)的分配,基于LMS自適應(yīng)算法的輸入數(shù)據(jù)逐步輸入到數(shù)據(jù)緩沖區(qū),每輸入一個采樣數(shù)據(jù),進行一次LMS自適應(yīng)濾波運算。因此,每次輸入的新采樣數(shù)據(jù)前,數(shù)據(jù)緩沖區(qū)高位地址的數(shù)據(jù)依次向低位地址數(shù)據(jù)移動,新采樣數(shù)據(jù)被存放在數(shù)據(jù)緩沖區(qū)的最高位地址,清除最低地址數(shù)據(jù)。x(n),y(n),d(n),w(n)分別定義為不同的存儲空間。以下是實現(xiàn)LMS自適應(yīng)濾波的一段C語言代碼,省略了初始化和對濾波結(jié)果的處理。

程序中最外層循環(huán)每執(zhí)行一次,實現(xiàn)一次LMS自適應(yīng)濾波運算。第{1}、{2}、{3}步分別實現(xiàn)公式(1)、(2)、(4)。

3.2 自適應(yīng)濾波算法混合編程實現(xiàn)

用C語言編寫的自適應(yīng)濾波程序,結(jié)構(gòu)清晰,易于編寫,可讀性強,易于維護。但是執(zhí)行效率不高,由于在一個LMS算法中有多次迭代,而且隨著FIR階數(shù)的增加,迭代的次數(shù)也會相應(yīng)地增加,在一個采樣周期內(nèi)實現(xiàn)對信號的LMS自適應(yīng)濾波、平方和低通濾波還有一定的困難。因此可以采用匯編語言編寫LMS算法來提高執(zhí)行效率,但是匯編語言編寫程序比較繁雜,可讀性差,可移植性差,不便于軟件的升級和維護。

為了兼顧C語言和匯編的優(yōu)點,避免其弊端,我們采用C語言與匯編語言混合編程的方法。獨立編寫匯編程序和C程序,用匯編語言生成對運行速度要求較高的目標代碼模塊,用C語言編寫主程序和對代碼效率要求不高的程序代碼,用鏈接器將C模塊和匯編模塊鏈接起來。采用這種方法,C程序可以調(diào)用匯編程序,并且可以訪問匯編程序中定義的變量。

采用C語言和匯編混合編程必須遵循一些有關(guān)的規(guī)則,否則會遇到一些意想不到的問題。

3.2.1 函數(shù)調(diào)接用接口規(guī)則

C編譯器規(guī)定了一組嚴格的函數(shù)調(diào)用規(guī)則。除了特殊的運行支持函數(shù)外,任何被C函數(shù)所調(diào)用的函數(shù)都必須遵循這些規(guī)則,否則就會破壞C環(huán)境,造成不可預(yù)測的結(jié)果[4]。

(1) 參數(shù)傳遞

函數(shù)調(diào)用前,將參數(shù)以逆序壓入運行堆棧,即最右邊的參數(shù)最先入棧,然后自右向左將參數(shù)依次入棧。但是,對于TMS320C54X,在函數(shù)調(diào)用時,第一個參數(shù)放入累加器A中進行傳遞。若參數(shù)是長整型和浮點數(shù)時,則低位字先壓棧,高位字后壓棧。若參數(shù)中有結(jié)構(gòu)形式,則調(diào)用函數(shù)給結(jié)構(gòu)分配空間,其地址通過累加器A傳遞給被調(diào)用函數(shù)。

(2) 結(jié)果返回

函數(shù)調(diào)用結(jié)束后,將返回值置于累加器A中。整數(shù)和指針在累加器A的低16位中返回。浮點數(shù)和長整型數(shù)在累加器A的32位中返回。

(3) 函數(shù)調(diào)用時需注意的一些問題

參數(shù)不是由被調(diào)用函數(shù)彈出椎棧,而是由調(diào)用函數(shù)彈出。因此調(diào)用函數(shù)可以傳遞任意數(shù)目的參數(shù)至函數(shù),而且函數(shù)不必知道有多少個參數(shù)傳遞。

在匯編程序中,除了自動初始化全局變量外,不要將.cinit段用作其它用途。C程序在boot.asm中的啟動程序認為.cinit段中放置的全部是初始化表,因此將其它一些信息放入.cinit段將產(chǎn)生不可預(yù)料的結(jié)果。

如果要定義在C程序中訪問的匯編變量或調(diào)用的匯編子程序,則必須在匯編程序中用.global說明為外部。

3.2.2 用匯編實現(xiàn)C語言函數(shù)

用匯編語言實現(xiàn)LMS自適應(yīng)濾波器的算法,并根據(jù)這些規(guī)則和接口規(guī)范,將編寫的匯編代碼編譯成能在C語言下調(diào)用的函數(shù)。

將被調(diào)用的LMS自適應(yīng)濾波函數(shù)設(shè)計為int lms_asm(int x,int*w,int *des,int step),其中x表示一個新輸入的采樣數(shù)據(jù)點,w表示存放FIR濾波器系數(shù)的首地址,des表示存放期望數(shù)據(jù)的首地址,step為步長,返回值是經(jīng)過LMS自適應(yīng)濾波后對應(yīng)的輸出。以下為該函數(shù)的匯編實現(xiàn)方法,由于篇幅限制,主要列出函數(shù)接口部分,省去了LMS自適應(yīng)算法部分:

4 DSP實現(xiàn)結(jié)果分析

將采用C語言和采用混合編程的方法的實現(xiàn)LMS自適應(yīng)濾波的方法進行對比測試,測試平臺:運行于WindowsXp sp3的DSP集成開發(fā)軟件CCS2.2,輸入信號為調(diào)制頻率為4KHz與6KHz的2FSK調(diào)制信號,采樣頻率為40kHz,DSP采用TMS320VC5416,主頻160MHz。

根據(jù)測試平臺的特點,兩個數(shù)據(jù)采樣點的間隔時間為25微秒,即4000時鐘周期,通過CCS2.2自帶的“View Clock”工具測試處理1個采樣點時調(diào)用“int lms_asm(int x,int *w,int *des,int step)”所消耗的時鐘周期,測試結(jié)果表明,完全使用C語言實現(xiàn)的算法完成1個采樣點的處理需耗用8000多時鐘周期,而采用C語言調(diào)用匯編算法的方法只需耗用400多時鐘周期。滿足DSP對采樣數(shù)據(jù)逐點處理的需求。

5 結(jié)語

本文并結(jié)合2fsk信號解調(diào)的實例,在TMS320VC5416器件上分別采用C語言和混合編程方法對LMS自適應(yīng)濾波算法進行了實現(xiàn),在使用C語言算法時,算法處理速率不能達到預(yù)定的要求,而使用匯編與C語言混合編程的方法,能在一個采樣周期內(nèi),完成LMS自適應(yīng)算法,并且還能處理后續(xù)的平方低通濾波等解碼過程。這表明,采用混合編程的LMS自適應(yīng)濾波算法具有編程與引用簡單,運行速度快等特點。

[1] 胡洪凱, 鄭紅, 吳冠. TMS320C54X DSP 混合編程的方法研究[J]. 電子技術(shù)應(yīng)用, 2001, (8) : 68 - 70.

[2] 姚天任, 孫洪. 現(xiàn)代數(shù)字信號處理[M]. 武漢: 華中科技大學(xué)出版社, 1999.

[3] 曹志剛, 錢亞生. 現(xiàn)代通信原理[M]. 北京: 清華大學(xué)出版社, 2003.

[4] TMS320C1x/C2x/C2xx/C5x Assemble Language Tools User's Guide[Z],Texas Instruments, 1999.

猜你喜歡
信號結(jié)構(gòu)
《形而上學(xué)》△卷的結(jié)構(gòu)和位置
信號
鴨綠江(2021年35期)2021-04-19 12:24:18
完形填空二則
論結(jié)構(gòu)
中華詩詞(2019年7期)2019-11-25 01:43:04
新型平衡塊結(jié)構(gòu)的應(yīng)用
模具制造(2019年3期)2019-06-06 02:10:54
孩子停止長個的信號
論《日出》的結(jié)構(gòu)
基于LabVIEW的力加載信號采集與PID控制
一種基于極大似然估計的信號盲抽取算法
創(chuàng)新治理結(jié)構(gòu)促進中小企業(yè)持續(xù)成長
主站蜘蛛池模板: 亚洲精品无码不卡在线播放| 亚洲男人在线| 国模私拍一区二区| 亚洲人成日本在线观看| 黄色网站不卡无码| 欧洲高清无码在线| 国产亚洲欧美在线人成aaaa| 综合亚洲网| 亚洲午夜片| 无码福利视频| 欧美区国产区| 99人妻碰碰碰久久久久禁片| 色综合狠狠操| 国产女人综合久久精品视| av在线无码浏览| 伊人国产无码高清视频| 丰满少妇αⅴ无码区| 久久精品91麻豆| 久久中文字幕2021精品| 尤物视频一区| 区国产精品搜索视频| 日韩精品免费一线在线观看| 无码 在线 在线| 狠狠亚洲五月天| 呦系列视频一区二区三区| 制服丝袜在线视频香蕉| 99久久精品久久久久久婷婷| 日日拍夜夜嗷嗷叫国产| 精品国产香蕉伊思人在线| 欧美69视频在线| 无码精品一区二区久久久| 国产精品自在在线午夜区app| 精品久久久久久成人AV| aⅴ免费在线观看| 亚洲人成色在线观看| 亚洲成人在线免费| 国产91高清视频| 幺女国产一级毛片| 青青操国产| 91热爆在线| 一区二区三区高清视频国产女人| 日本亚洲国产一区二区三区| 欧美成人怡春院在线激情| 99在线免费播放| 亚洲aaa视频| 国产一级毛片yw| 色综合久久久久8天国| 精品国产香蕉在线播出| 日韩区欧美区| 99在线国产| 亚洲综合经典在线一区二区| 色亚洲成人| 欧美日韩国产成人高清视频| 国产一级特黄aa级特黄裸毛片| 成年看免费观看视频拍拍| 伊人久久久久久久| 激情综合激情| 人人91人人澡人人妻人人爽 | 日本www色视频| 久久人搡人人玩人妻精品一| 午夜少妇精品视频小电影| 欧美激情第一欧美在线| 欧美日韩在线观看一区二区三区| 91口爆吞精国产对白第三集| 国产一区二区三区日韩精品| 亚洲无线观看| 波多野结衣亚洲一区| 亚洲国产系列| 中国精品久久| 人人爱天天做夜夜爽| 亚洲三级片在线看| 亚洲 日韩 激情 无码 中出| 亚洲AV无码一区二区三区牲色| 日韩a级片视频| 午夜三级在线| 国产国模一区二区三区四区| 青草视频网站在线观看| 污视频日本| 日韩不卡免费视频| 最新痴汉在线无码AV| 国产成人精品一区二区三区| 亚洲天堂首页|