摘 要 為了更好地將電子信息類理論課程與工程應(yīng)用結(jié)合,提升學生學以致用的能力,文章開發(fā)了基于經(jīng)典自適應(yīng)濾波最小均方誤差(LMS:Least Mean Square)算法的MATLAB和FPGA一體化硬件仿真實驗教學案例。利用MATLAB軟件對自適應(yīng)濾波算法進行編程設(shè)計,并借助Quartus Ⅱ來實現(xiàn)LMS算法的測試。該自適應(yīng)濾波算法實驗教學案例對于初學者來說通俗易懂,不僅有利于加深學生對自適應(yīng)濾波理論和信號處理的理解,還可以提高學生自主進行項目開發(fā)和學以致用能力,以及解決復(fù)雜工程問題的能力。
關(guān)鍵詞 自適應(yīng)濾波;MATLAB仿真;LMS算法;FPGA
中圖分類號:G424 " " " " " " " " " " " " " " 文獻標識碼:A " " DOI:10.16400/j.cnki.kjdk.2025.03.004
Adaptive Algorithm Experimental Teaching Case Design Based on the
Combination of MATLAB and FPGA
LI Yingsong, FU Yonglin, LI Liping, MIAO Yongchun
(School of Electronics and Information Engineering, Anhui University, Hefei, Anhui 230601)
Abstract In order to better combine electronic information theory courses with engineering applications and improve students' ability to apply what they have learned, this article developed an Software-Hardware simulation experimental teaching case for classic adaptive filtering least mean square (LMS) algorithm using MATLAB and FPGA. MATLAB is to program and design the adaptive filtering algorithm, and Quartus Ⅱ is used to implement the simulation test of the LMS algorithm. This adaptive filtering algorithm experimental teaching case is easy to understand for beginners. It not only helps deepen students' understanding of adaptive filtering theory and signal processing, but also improves students' independent project development and ability to apply what they have learned for solving complex projects.
Keywords adaptive filtering; MATLAB simulation; LMS algorithm; FPGA
隨著信息與通信技術(shù)的發(fā)展,數(shù)字通信成為目前主要的通信方式,也成為通信發(fā)展的主要方向,涉及移動通信、衛(wèi)星通信、物聯(lián)網(wǎng)、車聯(lián)網(wǎng)和通感一體化方向。然而,作為數(shù)字通信的關(guān)鍵技術(shù),數(shù)字信號處理在數(shù)字通信領(lǐng)域具有重要的作用。數(shù)字信號處理(Digital Signal Processing,DSP)是指利用數(shù)字計算機對模擬信號進行采樣、量化、編碼、處理和再生等一系列操作的技術(shù),其廣泛應(yīng)用于通信、媒體、醫(yī)療、雷達、導(dǎo)航、噪聲抑制和控制系統(tǒng)等領(lǐng)域。近年來,數(shù)字信號處理(DSP)已經(jīng)發(fā)展成為一項成熟的技術(shù)[1-3],逐步從仿真走向工業(yè)應(yīng)用。
自適應(yīng)濾波器在數(shù)字信號處理中起著重要的作用,可以應(yīng)用于多種場景,例如信道估計、均衡、系統(tǒng)識別、波束賦形和波達方向估計、去除噪聲、增強信號、回聲消除和提高信噪比等。它根據(jù)輸入信號的特性和預(yù)設(shè)的目標函數(shù)動態(tài)地調(diào)整濾波器的參數(shù),以更準確地反映輸入信號的信息。常用的自適應(yīng)濾波器算法包括最小均方誤差(Least Mean Square,LMS)算法、遞歸最小二乘(Recursive Least Squares,RLS)算法、仿射投影算法(Affine projection Algorithm, APA)等。自適應(yīng)濾波器在數(shù)字信號處理、數(shù)字通信和雷達系統(tǒng)中扮演著重要角色,可以有效地處理數(shù)字信號,并提升信號的質(zhì)量。
對于學生而言,學習并理解自適應(yīng)信號處理的原理并不太難,但面臨將知識進行實際應(yīng)用時,學生卻無法將所學知識應(yīng)用到實際工程實踐中以解決復(fù)雜工程問題,導(dǎo)致學習效果不佳。在這種情況下,MATLAB作為一種算法開發(fā)語言,具有編程簡單、易于掌握的特點,可以將自適應(yīng)信號處理理論的數(shù)學問題和公式轉(zhuǎn)化為程序代碼,有助于學生掌握自適應(yīng)信號處理的基本理論并在實際工程中進行應(yīng)用。此外,MATLAB還是一款功能強大且廣泛應(yīng)用于工程和科學領(lǐng)域的軟件,其提供了豐富的工具箱和函數(shù),使得數(shù)字信號處理變得簡單易學,學生可以通過圖像和圖形的方式可以迅速理解信號的變化。通過MATLAB,學生可以快速上手并深入理解數(shù)字信號處理的概念和技術(shù),將信號處理的理論和方法與實際應(yīng)用結(jié)合。同時,在電子信息類課程中還有很多關(guān)于現(xiàn)場可編程邏輯門陣列(Field Programmable Gate Array, FPGA)的相關(guān)學習,以實現(xiàn)硬件工程的設(shè)計。但是將這兩門課程結(jié)合并應(yīng)用于實際工程實踐時,卻缺少相關(guān)的實踐教學案例,導(dǎo)致學生學習效果很差,很難將理論知識和工程應(yīng)用結(jié)合[4-5]。
在新工科建設(shè)、雙一流建設(shè)、工程認證的驅(qū)動下許多高校開始積極探索工程教育的創(chuàng)新路徑[6-7]。特別是以產(chǎn)出為中心的工程認證,促使學校積極推進課程改革和學科建設(shè),形成了“以改促建、以建促學”的良好局面。這一系列的改革舉措旨在為學生提供更廣闊的學習空間,使他們能夠更好地將理論知識與實踐技能相結(jié)合,實現(xiàn)課堂基礎(chǔ)理論學習與專業(yè)知識應(yīng)用的緊密結(jié)合,為未來的就業(yè)和創(chuàng)新創(chuàng)業(yè)奠定堅實的基礎(chǔ)。本文結(jié)合MATLAB和FPGA開發(fā)了基于經(jīng)典的自適應(yīng)濾波最小均方誤差(LMS:Least Mean Square)算法的軟硬件仿真實驗教學案例,使學生深入理解自適應(yīng)濾波理論,掌握編程技巧和實際應(yīng)用,實現(xiàn)從算法理論計算到軟硬件編程實現(xiàn)的全過程教學,為學生的全過程學習構(gòu)建抽象理論與實踐應(yīng)用之間的橋梁。首先,學習LMS的基本原理;其次,基于LMS的工作原理和迭代函數(shù),使用MATLAB編寫LMS算法的程序代碼,并對LMS的學習性能進行仿真測試分析;再次,利用QuartusⅡ和ModelSim進行聯(lián)合仿真;最后,以圖形的形式向?qū)W生展示LMS的工作原理,并對結(jié)果進行分析。
1" 實驗設(shè)計與實現(xiàn)
隨著在線監(jiān)測和自適應(yīng)學習技術(shù)的需求,信號處理技術(shù)的重要性日益凸顯,其在通信、音視頻處理、雷達信號處理、車聯(lián)網(wǎng)、低空經(jīng)濟等眾多國防重大工程和區(qū)域經(jīng)濟發(fā)展領(lǐng)域可確保信息傳輸?shù)膶崟r高效,數(shù)字濾波技術(shù)作為自適應(yīng)信號處理技術(shù)的重要組成部分,其應(yīng)用廣泛且關(guān)重要。為了使學生能夠掌握自適應(yīng)濾波算法理論、濾波器設(shè)計及其應(yīng)用,本實驗教學案例基于經(jīng)典自適應(yīng)濾波算法中的最小均方(LMS)算法,采用MATLAB和FPGA結(jié)合的形式實現(xiàn)自適應(yīng)濾波算法的編程設(shè)計和硬件聯(lián)合仿真設(shè)計,鏈接LMS算法理論和其工程應(yīng)用,使學生懂算法、學編程、會應(yīng)用。
在教學過程中,學生首先應(yīng)通過數(shù)字信號處理課程的學習,深入理解信號處理中自適應(yīng)濾波的核心概念、典型算法、數(shù)學推導(dǎo),并培養(yǎng)學生運用MATLAB進行算法編程實現(xiàn),掌握信號分析和處理的技能。同時,教學過程中還復(fù)習了Verilog" HDL語言課程和FPGA的仿真,有利于學生掌握模塊實例化理論與實踐,并結(jié)合QuartusⅡ和ModelSim仿真軟件深入了解算法的應(yīng)用與實現(xiàn)。最后,通過MATLAB算法編程分析和仿真來調(diào)試和驗證設(shè)計的正確性。
在MATLAB中實現(xiàn)LMS算法時,首先需要構(gòu)建算法的基礎(chǔ)框架,定義關(guān)鍵變量和初始化參數(shù)。接著,利用MATLAB內(nèi)置的信號處理函數(shù)和LMS算法的迭代公式,編寫權(quán)重更新和誤差計算的核心代碼。通過輸入語音信號對LMS算法進行測試,驗證其正確性和LMS的性能,并以圖形的形式直觀顯示仿真結(jié)果。
在完成MATLAB中LMS算法模型的設(shè)計與參數(shù)設(shè)定后,下一步是使用Quartus" II和ModelSim軟件進行硬件聯(lián)合仿真以驗證LMS算法的性能。根據(jù)硬件描述語言Verilog" HDL與之前定義的參數(shù)和性能指標進行編碼實現(xiàn)。最后,創(chuàng)建Testbench激勵文件來進行仿真測試,以評估LMS算法在硬件上的性能和準確性。學生可以基于仿真結(jié)果對算法進行必要的調(diào)整和優(yōu)化,以滿足特定應(yīng)用的要求,并掌握參數(shù)對LMS算法的影響,為未來自適應(yīng)信號的應(yīng)用奠定基礎(chǔ)。
2" 實驗原理與教學方法
2.1" LMS算法原理
LMS算法是一種自適應(yīng)濾波技術(shù),它融合了Wiener濾波器的實現(xiàn)便捷性和Kalman濾波器的高效性,同時克服了它們的局限。該算法通過迭代調(diào)整濾波器系數(shù)來最小化輸出誤差,適用于實時信號處理,同時因其計算效率高、適應(yīng)性強以及復(fù)雜度低等特點而受到廣泛青睞。其核心機制是基于誤差信號來遞進更新濾波器系數(shù),以期達到最佳的濾波效果。這種遞推的過程使得LMS算法在實時應(yīng)用中具有較高的效率和靈活性。LMS算法的原理框圖如圖1所示。根據(jù)自適應(yīng)濾波理論,結(jié)合圖1,LMS算法的工作機理描述如下:
上式u中為輸入信號,為參考信號,有時也叫期望信號。根據(jù)不同的應(yīng)用場景,參考信號既可以是有效信號(信號增強),也可以是噪聲信號(去噪),還可以是無線通信信道和陣列權(quán)值;為估計誤差信號;為系統(tǒng)輸出信號。為步長因子,它影響算法的收斂速度和穩(wěn)態(tài)誤差,其值太大可能導(dǎo)致算法不穩(wěn)定,其值太小可能導(dǎo)致收斂過慢。因此,在實際應(yīng)用中,可以根據(jù)需求,調(diào)整以平衡收斂速度和穩(wěn)態(tài)誤差。I為單位矢量,z-1為延遲。LMS算法的優(yōu)點在于其簡單性和易于實現(xiàn),特別是在處理未知信號或變化的環(huán)境信息時,它能快速適應(yīng)并調(diào)整濾波器系數(shù)以改善性能,達到跟蹤或者穩(wěn)定系統(tǒng)的效果。
2.2" 算法設(shè)計
首先,初始化LMS算法的關(guān)鍵參數(shù),選擇合適的濾波器階數(shù)和步長因子,并初始化權(quán)重w。輸入的語音信號是ITU-TP.501[8]中的樣本,使用8000Hz的采樣頻率進行重采樣并取32000個采樣點,噪聲信號是與音頻數(shù)據(jù)相同長度的高斯白噪聲,其均值為0,標準差為0.05。語音信號如圖2所示。
為了獲得LMS算法的收斂速度和穩(wěn)定性,采用標準化均方誤差(normalized" mean" square" deviation," NMSD)作為性能指標,對其性能進行評估。NMSD的定義如下:
在實驗中,采用100次計算的平均值得到LMS算法學習曲線,如圖3所示。當曲線趨于平穩(wěn)時,算法逐步收斂,對應(yīng)的標準化均方誤差值越小,說明算法估計性能越好。將采樣得到的語音信號和系統(tǒng)輸入輸出信號的數(shù)據(jù)利用dec2bin函數(shù)轉(zhuǎn)化為16位二進制,并儲存為文本文件,作為激勵文件Testbench數(shù)據(jù)進行后續(xù)的FPGA仿真實驗測試。
2.3" FPGA仿真設(shè)計
LMS濾波器結(jié)構(gòu)圖如圖4所示。
本設(shè)計的濾波器階數(shù)為16,本實驗采用QuartusⅡ13.1版本,芯片為Cyclone" IV E 系列EP4CE115F29C7 器件,仿真器為ModelSim SE 10.1c版本,為精確仿真驗證提供了強大的軟件平臺支持,保障了仿真過程的準確性和效率。
在設(shè)計流程中,根據(jù)模擬結(jié)構(gòu)圖編寫Verilog HDL代碼實現(xiàn)LMS濾波器。需要定義模塊的輸入輸出端口,包括輸入信號、期望的輸出信號以及濾波器的系數(shù)。然后,根據(jù)LMS濾波器的結(jié)構(gòu)設(shè)計LMS算法的核心部分,即系數(shù)的更新機制和誤差信號的計算。在Quartus Ⅱ中進行編譯,分析綜合結(jié)果如圖5所示。
系統(tǒng)編譯成功后,為了驗證LMS濾波器設(shè)計的正確性和有效性,需要編寫激勵文件進行測試。激勵文件的數(shù)據(jù)來源于上一節(jié)通過MATLAB生成的文件。在仿真環(huán)境中,將編寫好的激勵文件testbench導(dǎo)入QuartusⅡ并執(zhí)行RTL(寄存器傳輸級)仿真。ModelSim中運行結(jié)果如圖6,可以觀察到三條曲線,分別代表帶噪聲的語音信號、原始清晰的語音信號以及經(jīng)LMS濾波器處理后的信號。通過這三條曲線的對比,可以直觀地評估LMS濾波器的去噪效果。LMS濾波器能夠有效地從噪聲信號中恢復(fù)出原始信號,與Matlab仿真的結(jié)果一致,這表明設(shè)計的LMS濾波器成功達到了預(yù)期目標。
3" 結(jié)語
本研究通過將MATLAB的強大仿真能力與FPGA的硬件實現(xiàn)潛力相結(jié)合,實現(xiàn)LMS自適應(yīng)濾波算法的設(shè)計、仿真和測試。這種融合理論與實踐的方法極大地豐富了學生的學習體驗,使學生能夠在實際操作中觀察和分析算法的性能,從而更深入地理解自適應(yīng)濾波算法的工作原理和性能。這種多課程結(jié)合的學習方式和軟硬件結(jié)合的教學方式,不僅可以將學生學習的多門課程串聯(lián)起來,還可以提升學生主動探索和解決問題的能力,培養(yǎng)學生在面對復(fù)雜工程問題時的批判性思維和創(chuàng)新能力。
參考文獻
[1] 王連明,陳菊芳,黃繼鵬,等.電子信息類專業(yè)實驗課程體系改革與實踐[J].實驗室研究與探索,2018,37(3):147-149.
[2] 王青云,梁瑞宇,趙力,等.實時語音信號處理教學與實驗方法研究[J].實驗室研究與探索,2019,38(9):186-189.
[3] 尹霄麗,尹鵬,林泊安,等.多課程融合的“信號與系統(tǒng)”實驗教學改革[J].實驗室研究與探索,2016,35(10):192-195.
[4] 石昊強,蔣占軍.Matlab和FPGA相結(jié)合的軟硬件綜合實驗設(shè)計[J].實驗室研究與探索,2020,39(1):103-107.
[5] 朱磊,宋彩霞.基于DSP的FIR數(shù)字濾波綜合實驗設(shè)計[J].實驗技術(shù)與管理,2017,34(1):206-209.
[6] 芮賢義,唐宇軒.基于自適應(yīng)濾波的回聲消除實驗設(shè)計[J].實驗室研究與探索,2022,41(8):23-26.
[7] 楊子康,熊蘭.傳統(tǒng)數(shù)字設(shè)計與FPGA融合的教學改革與實踐[J].電氣電子教學學報,2022,44(1):13-17.
[8] ITU-T.Recommendation ITU-T P.501:Test signals for use in telephony and other speech-based applications[EB/OL].https://www.itu.int/net/itu-t/sigdb/genaudio/Pseries.htm. 3969/j.issn.1008-0686.2022.01.004.