日本在线www-日本在线播放一区-日本在线不卡免费视频一区-日本在线不卡视频-成人影院久久久久久影院-成人影院一区二区三区

ABB
關注中國自動化產業發展的先行者!
CAIAC 2025
2025工業安全大會
OICT公益講堂
當前位置:首頁 >> 案例 >> 案例首頁

案例頻道

基于DSP混合編程的LMS自適應濾波算法實現
  • 企業:《自動化博覽》     領域:自動化軟件     行業:網絡通訊    
  • 點擊數:1806     發布時間:2014-07-13 17:54:48
  • 分享到:

    摘要:本文分析了LMS自適應濾波算法的基本原理,并結合2FSK信號解調的實例,在TMS320VC5416器件上分別采用C語言和混合編程方法對LMS自適應濾波算法進行了實現。結果表明,采用混合編程的LMS自適應濾波實現方法具有軟件接口簡單,運行速度快,易于進行實時信號處理等特點。

    關鍵詞: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 引言

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

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

    2 自適應濾波器的結構和算法

    2.1 自適應濾波器的結構常規濾波器具有特定的特性,輸入信號根據濾波器的特性產生相應的輸出。但是實際應用是反過來要求的,即對濾波器輸出的要求是明確的,而濾波器特性無法預先知道,這就必須依賴自適應濾波技術。

    自適應濾波器的權系數可以根據一種自適應算法來不斷修改,使系數的沖激響應能滿足給定的性能。圖1為自適應濾波器的一般形式。

                   
                                      圖1 自適應濾波器結構圖

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

                   
                                      圖2 橫向濾波器的結構示意圖

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

    2.2 自適應濾波器的算法

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

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

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

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

    3 自適應濾波算法的DSP實現

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

                     
                                         圖3 2FSK信號解調框圖

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

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

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

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

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

                       
                               圖4 DSP實現LMS算法程序流程圖

    3.1 自適應濾波算法C語言實現

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

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

    3.2 自適應濾波算法混合編程實現

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

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

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

    3.2.1 函數調接用接口規則

    C編譯器規定了一組嚴格的函數調用規則。除了特殊的運行支持函數外,任何被C函數所調用的函數都必須遵循這些規則,否則就會破壞C環境,造成不可預測的結果[4]。

    (1) 參數傳遞

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

    (2) 結果返回

    函數調用結束后,將返回值置于累加器A中。整數和指針在累加器A的低16位中返回。浮點數和長整型數在累加器A的32位中返回。

    (3) 函數調用時需注意的一些問題

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

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

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

    3.2.2 用匯編實現C語言函數

    用匯編語言實現LMS自適應濾波器的算法,并根據這些規則和接口規范,將編寫的匯編代碼編譯成能在C語言下調用的函數。

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

    4 DSP實現結果分析

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

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

    5 結語

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

    參考文獻:

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

    [2] 姚天任, 孫洪. 現代數字信號處理[M]. 武漢: 華中科技大學出版社, 1999. 

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

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

    作者簡介

    黃勇(1978-),男,湖北洪湖人,工程師,碩士,現就職于中國船舶重工集團公司第七一O研究所,主要研究方向為信號處理。

熱點新聞

推薦產品

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



2.詳細的需求:
姓名:
單位:
電話:
郵件:
主站蜘蛛池模板: 亚洲人成电影青青在线播放-亚洲人成www在线播放-亚洲人成a在线网站-亚洲人av高清无码-久操久-久操-9c.lu | 欧美日本免费-欧美日本韩国-欧美日本国产-欧美日本二区-在线观看导航-在线观看成人网 | 九九激情网,日韩色综合,成人小视频网站,国产永久在线观看,污黄视频在线观看,看国产一级片 | 久久精品片-久久精品欧美一区二区-久久精品女人毛片国产-久久精品嫩草影院免费看-在线日韩国产-在线日韩不卡 | 欧美日韩国产在线成人网,成人免费一级片,在线观看国产一区,国产麻豆精品免费密入口,国产欧美日韩在线,在线视频观看国产 | 波多野结衣在线中文-波多野结衣在线影视免费观看-波多野结衣在线影视-波多野结衣在线一区二区-波多野结衣在线一区-波多野结衣在线网址 | 精品性影院一区二区三区内射-精品亚洲成A人20247在线观看-精品亚洲国产成AV人片传媒-精品亚洲国产成人A片在线播放-精品亚洲国产成人A片在线观看-精品亚洲国产熟女福利自在线 | 六月丁香七月婷婷,欧美老女人逼,久久亚洲国产高清,国产一级在线观看视频,日产wv二区三区四区,瑟瑟网站在线观看 | 亚洲女同在线观看-亚洲女同在线-亚洲女同视频-亚洲女同精品中文字幕-美国激情ap毛片-美国黄色一级毛片 | 日本xxxxx18护士xxx-日本xxxxwwww-日本xxxx1819黑人-日本xxxbbb0oo-国产精品免费看久久久-国产精品免费久久久免费 | 麻豆蜜桃色精品电影网在线高清-麻豆蜜臀国产精品无码视频电影无删减在线观看-麻豆免费版-麻豆免费观看高清完整视频-麻豆免费看-麻豆免费网站 | 一级成人生活片免费看-一级床上爽高清播放-一级大毛片-一级大片免费看-一级二级毛片-一级夫妻黄色片 | 亚欧成人毛片一区二区三区四区-亚欧成人乱码一区二区-亚久久伊人精品青青草原2020-亚飞与亚基在线观看-国产综合成人观看在线-国产综合91天堂亚洲国产 | 久久就是精品-久久看片网-久久蝌蚪-久久老熟女一区二区三区-久久老司机波多野结衣-久久乐国产综合亚洲精品 | 欧美在线一,91成人爽a毛片一区二区,在线播放国产精品,亚洲欧美日韩高清,zozozo欧美人禽交另类视频,久久精品无码一区二区日韩av | 2015天堂网-2014天堂网-19国产精品麻豆免费观看-18视频在线观看网站-18黄免app网站-18成网站www在线观看 | 国语自产视频在线一区二区-国语自产偷拍-国语自产偷拍精品-国语自产偷拍精品视-国语自产偷拍精品视频-国语自产偷拍精品视频蜜芽 99欧美在线-99碰碰-99青草-99青草青草久热精品视频-99青青-99青青草 | 欧美日韩中文综合v日本-欧美日韩中文字幕久久-欧美日韩中文在线-欧美日韩中文一区二区三区-欧美日韩中文国产一区二区三区-欧美日韩在线视频观看 | 中文高清无码人妻-中文超碰中文字幕-中日韩一卡二卡三卡四卡在线观看-中日韩精品卡一卡二卡3卡-制服丝袜中文在线-制服丝袜在线观看 | 欧洲免费极品videos-欧洲美女高清一级毛片-欧洲精品欧美精品-欧洲精品不卡1卡2卡三卡四卡-中午字幕在线观看-中文字日产幕码三区的做法大全 | 久热久热精品在线观看-久青草影院-久青草国产在线视频亚瑟影视-久青草国产在线视频-正在播放黑人杂交派对卧槽-正在播放国产尾随丝袜美女 | 2021国产精品视频一区-2021国产精品一区二区在线-2021国产精品自产拍在线-2021国产精品自产拍在线观看-2021国产精品自在拍在线播放-2021国产麻豆剧 | 亚洲日本韩国在线,国产一级片免费看,99久久精品免费国产一区二区三区,大香伊人中文字幕精品,国产成人综合久久精品尤物,亚洲免费在线视频 | 激情www,国产成人爱情动作片在线观看,五月天婷婷在线观看高清,欧美美女福利视频,五月激激激综合网色播免费,国产亚洲欧美日韩综合另类 | 日b视频免费看-日b视频免费-人禽性bbb视频-人禽无码做爰在线观看-人妻中文字幕无码-人妻一区日韩二区国产欧美的无码 | 99久久中文字幕,五月天激激婷婷大综合丁香,欧美老女人性视频,精品午夜一区二区三区在线观看,99成人免费视频,2020国产精品永久在线观看 | 日本v片免费一区二区三区-日本v片-日本vs欧美一区二区三区-日本va视频-国产精品路线1路线2路线-国产精品看片 | 99久久免费视频-99久久免费看精品国产一区-99久久免费看国产精品-99久久免费精品视频-欧美ⅹxxxx视频-欧美ⅹxxxhd3d | 2021天天躁狠狠燥,视频在线观看一区,免费理伦片在线观看全网站,国产精品一区二区资源,免费国产成人高清网站app,欧美国产在线观看 | 在线亚洲激情,免费看电影网站,奇米影音先锋,99免费视频观看,国产成人aa视频在线观看,久久久蜜桃 欧美人成在线视频-欧美人成一本免费观看视频-欧美人xxxxxbbbb-欧美区在线-在线不卡免费视频-在线播放周妍希国产精品 | 五月天六月婷婷开心激情,天使的性电影,三级韩国一区久久二区综合,五月婷婷久,九九精品在线视频,66精品综合久久久久久久 | 丝袜情趣在线资源二区-丝袜啪啪-丝袜秘书ol连裤袜在线播放-丝袜美女被出水一区-国产国产人在线成免费视频69-国产国产人免费视频成69堂 | 国产成人av网站网址-国产成人av无码精品-国产成人av无码精品天堂-国产成人av无码片在线观看-国产成人av无码一区二区三区不卡-国产成人av无码永久免费 | 国产精品国产三级大全在线观看-国产精品国产三级囯产av中文-国产精品国产三级国av在线观看-国产精品国产三级国v麻豆-国产精品国产三级国产-国产精品国产三级国产aⅴ | 欧洲亚洲综合,亚洲欧美综合视频,国产视频分类,欧美亚洲综合在线,亚洲另类第一页,91在线观 | 我爱52av好色,一级毛片大全免费播放,成人午夜无人区一区二区,国产一区国产二区国产三区,青青青青久久精品国产h,狠狠操五月天 | 欧美亚洲国产一区-欧美亚洲国产视频-欧美亚洲国产日韩综合在线播放-欧美亚洲国产日韩一区二区三区-jizzjizz免费大全-jizzjizz免费 | 国产成人av网站网址-国产成人av无码精品-国产成人av无码精品天堂-国产成人av无码片在线观看-国产成人av无码一区二区三区不卡-国产成人av无码永久免费 | 国产成人综合在线观看网站-国产成人综合在线-国产成人综合亚洲亚洲欧美-国产成人综合亚洲动漫在线-国产成人综合亚洲-国产成人综合网在线观看 | 国产一级视频在线-国产一级视频免费-国产一级视频久久-国产一级视频播放-日本中文字幕在线视频站-日本中文字幕在线视频 | 国产亚洲精品a在线观看app-国产亚洲精品A久久777777-国产亚洲精品AV片在线观看播放-国产亚洲精品AV麻豆狂野-亚洲 欧美 国产在线视频-亚洲 欧美 国产 综合五月天 日韩精品免费观看,亚洲精品国产综合一线久久,99精品国产高清一区二区三区香蕉,亚洲图区欧美,日韩电影免费在线观看中文字幕,999国产精品999久久久久久 |