国产欧美日韩精品a在线观看-国产欧美日韩精品一区二区三区-国产欧美日韩精品综合-国产欧美中文字幕-一区二区三区精品国产-一区二区三区精品国产欧美

ACS880-07C
關(guān)注中國(guó)自動(dòng)化產(chǎn)業(yè)發(fā)展的先行者!
CAIAC 2025
2024
工業(yè)智能邊緣計(jì)算2024年會(huì)
2023年工業(yè)安全大會(huì)
OICT公益講堂
當(dāng)前位置:首頁(yè) >> 案例 >> 案例首頁(yè)

案例頻道

基于DSP混合編程的LMS自適應(yīng)濾波算法實(shí)現(xiàn)
  • 企業(yè):《自動(dòng)化博覽》     領(lǐng)域:自動(dòng)化軟件     行業(yè):網(wǎng)絡(luò)通訊    
  • 點(diǎn)擊數(shù):1658     發(fā)布時(shí)間:2014-07-13 17:54:48
  • 分享到:

    摘要:本文分析了LMS自適應(yīng)濾波算法的基本原理,并結(jié)合2FSK信號(hào)解調(diào)的實(shí)例,在TMS320VC5416器件上分別采用C語(yǔ)言和混合編程方法對(duì)LMS自適應(yīng)濾波算法進(jìn)行了實(shí)現(xiàn)。結(jié)果表明,采用混合編程的LMS自適應(yīng)濾波實(shí)現(xiàn)方法具有軟件接口簡(jiǎn)單,運(yùn)行速度快,易于進(jìn)行實(shí)時(shí)信號(hào)處理等特點(diǎn)。

    關(guān)鍵詞:LMS算法;DSP;混合編程

    Abstract: This paper analyzes the basic principle of LMS adaptive filtering algorithm, and combining with the example of 2FSK signal demodulation, realizes the LMS adaptive filtering algorithm adopting C language and mixed programming method on the device TMS320VC5416. The result shows that the realized method of the LMS adaptive filtering algorithm has advantages such as simple software interface, fast running speed, easily realizing real-time signal processing. 

    Key words: LMS adaptive filtering algorithm; DSP; Mixed programming

    1 引言

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

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

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

    2.1 自適應(yīng)濾波器的結(jié)構(gòu)常規(guī)濾波器具有特定的特性,輸入信號(hào)根據(jù)濾波器的特性產(chǎn)生相應(yīng)的輸出。但是實(shí)際應(yīng)用是反過(guò)來(lái)要求的,即對(duì)濾波器輸出的要求是明確的,而濾波器特性無(wú)法預(yù)先知道,這就必須依賴自適應(yīng)濾波技術(shù)。

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

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

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

                   
                                      圖2 橫向?yàn)V波器的結(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算法是一種易于實(shí)現(xiàn)、性能穩(wěn)健、應(yīng)用廣泛的算法。所有的濾波器系數(shù)調(diào)整算法都是設(shè)法使y(n)接近d(n),所不同的只是對(duì)于這種接近的評(píng)價(jià)標(biāo)準(zhǔn)不同。LMS算法的目標(biāo)是通過(guò)調(diào)整系數(shù),使輸出誤差序列e(n)=d(n)-y(n)的均方值最小化,并且根據(jù)這個(gè)判據(jù)來(lái)修改權(quán)系數(shù)。誤差序列的均方值又叫“均方誤差”,即:
    

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    (1) 參數(shù)傳遞

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

    (2) 結(jié)果返回

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

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

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

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

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

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

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

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

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

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

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

    5 結(jié)語(yǔ)

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

    參考文獻(xiàn):

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

    [2] 姚天任, 孫洪. 現(xiàn)代數(shù)字信號(hào)處理[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ǎn)介

    黃勇(1978-),男,湖北洪湖人,工程師,碩士,現(xiàn)就職于中國(guó)船舶重工集團(tuán)公司第七一O研究所,主要研究方向?yàn)樾盘?hào)處理。

熱點(diǎn)新聞

推薦產(chǎn)品

x
  • 在線反饋
1.我有以下需求:



2.詳細(xì)的需求:
姓名:
單位:
電話:
郵件:
主站蜘蛛池模板: 国产成人免费高清视频 | 小屁孩和大人啪啪 | 欧美巨大精品欧美一区二区 | 国产精品露脸脏话对白 | 人妖欧美一区二区三区四区 | 131美女爱做免费毛片 | 免费区欧美一级毛片 | 可以免费看黄的网站 | 亚洲国产成人精品激情 | 欧美6699在线视频免费 | 99国产福利视频区 | 亚洲精品xxxxx | 亚洲国产欧美目韩成人综合 | 色视频www在线播放国产人成 | 日本高清福利视频在线观看 | 国产自在线观看 | 亚洲毛片在线 | 久久精品视频免费 | 一级做a爰片久久毛片苍井优 | 欧美一区二区在线观看免费网站 | 波多野结衣在线不卡 | 欧美成人二区 | 手机看片1024久久精品你懂的 | 黑色丝袜美美女被躁视频 | 欧美高清一级毛片免费视 | www.亚洲综合| 日韩中文字幕视频在线 | 草草视频在线免费观看 | 久久99久久精品久久久久久 | 久久国产精品一国产精品 | 亚洲最大黄网 | 国产精品久久大陆 | 国产精品亚洲第一区二区三区 | 久草在线最新视频 | 222aaa天堂 | 九九免费精品视频在这里 | 免费鲁丝片一级观看 | 日韩免费观看的一级毛片 | 欧日韩美香蕉在线观看 | 久久伊人热 | 日韩一区二区三区在线 |