版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 摘 要</b></p><p> 自適應(yīng)濾波器是統(tǒng)計(jì)信號(hào)處理的一個(gè)重要組成部分。在現(xiàn)代濾波處理技術(shù)中,自適應(yīng)濾波器的處理效果尤為突出。在眾多濾波器中,特別是在一些對(duì)信號(hào)處理的實(shí)時(shí)性要求比較高,體積功耗有嚴(yán)格限制的場(chǎng)合,使用FPGA硬件實(shí)現(xiàn)的數(shù)字濾波器更為廣泛。</p><p> 本論文從自適應(yīng)濾波器研究的重要意義入手,介紹了線性自適
2、應(yīng)濾波器的算法,對(duì)幾種基于最小均方誤差準(zhǔn)則或最小平方誤差準(zhǔn)則的自適應(yīng)濾波器算法進(jìn)行研究,就濾波器的基本原理及設(shè)計(jì)方法做了簡(jiǎn)單的介紹,最終設(shè)計(jì)基于FPGA的LMS算法設(shè)計(jì)復(fù)數(shù)自適應(yīng)濾波器,對(duì)設(shè)計(jì)方法進(jìn)行敘述,并以VHDL語(yǔ)言編寫程序進(jìn)行仿真測(cè)試。</p><p> 關(guān)鍵詞:自適應(yīng)濾波器;FPGA;自適應(yīng)算法LMS;有限沖激響應(yīng)濾波器</p><p> FPGA-based design
3、of adaptive filter</p><p> Student:TAN xx Teacher:CHEN xx</p><p> Abstract:Adaptive filter is a statistical signal processing as an important component. Processing technology in the modern f
4、ilter, the adaptive filter, particularly in the treatment effect. Among the filters, especially in some of the real-time signal processing requirements of higher power, there are strict restrictions on the size of the oc
5、casion, the use of FPGA hardware to achieve a wider range of digital filters. </p><p> In this paper, adaptive filter from the importance of research to start to introduce the linear adaptive filter algorit
6、hm, based on several criteria MMSE or least square error criteria for the study of adaptive filter algorithm, it filters The basic principle and design method of a brief introduction, the final design of FPGA-based desig
7、n of complex LMS adaptive filter algorithm, the design methods described, and VHDL languages in maxplus simulation test platform.</p><p> Keywords: adaptive filter;FPGA;LMS adaptive algorithm;finite impulse
8、 response filter</p><p><b> 目 錄</b></p><p><b> 摘 要I</b></p><p><b> 1 緒論1</b></p><p><b> 1.1 引 言1</b></p>
9、<p> 2 自適應(yīng)算法研究及分析1</p><p> 2.1 自適應(yīng)濾波基本概念1</p><p> 2.2 變步長(zhǎng)自適應(yīng)濾波算法2</p><p> 2.3 仿射投影算法3</p><p> 2.4 RLS自適應(yīng)濾波算法3</p><p> 2.5 LMS算法及其推廣3</
10、p><p><b> 2.6小結(jié)6</b></p><p> 3 濾波器原理介紹7</p><p> 3.1 自適應(yīng)濾波器原理7</p><p> 3.2 本文濾波器的工作原理8</p><p> 4 基于FPGA的自適應(yīng)濾波器的設(shè)計(jì)11</p><p>
11、 4.1 基本設(shè)計(jì)方法11</p><p> 4.2 設(shè)計(jì)流程12</p><p> 4.2.1 設(shè)計(jì)準(zhǔn)備13</p><p> 4.2.2 設(shè)計(jì)輸入13</p><p> 4.2.3 功能仿真14</p><p> 4.2.4 設(shè)計(jì)處理14</p><p> 4.2.5
12、 時(shí)序仿真14</p><p> 4.2.6 器件編程測(cè)試14</p><p> 4.3 自適應(yīng)濾波器設(shè)計(jì)15</p><p> 4.3.1 自適應(yīng)濾波器結(jié)構(gòu)16</p><p> 4.3.2 復(fù)數(shù)濾波器設(shè)計(jì)與實(shí)現(xiàn)18</p><p> 4.3.3 基本設(shè)計(jì)準(zhǔn)備19</p><
13、p> 4.3.4 復(fù)數(shù)自適應(yīng)濾波器設(shè)計(jì)防真22</p><p><b> 4.4小結(jié)24</b></p><p><b> 5 結(jié)論25</b></p><p><b> 致 謝26</b></p><p><b> 參考文獻(xiàn)27<
14、/b></p><p><b> 1 緒論</b></p><p><b> 1.1 引 言</b></p><p> 隨著信號(hào)處理技術(shù)的不斷發(fā)展,對(duì)信號(hào)處理速度的要求也不斷提高。由于受到目前技術(shù)水平的限制,特別是集成電路技術(shù)發(fā)展的限制,許多理論上已經(jīng)很成熟的信號(hào)處理算法很難得以實(shí)用,這里面一個(gè)最重要的原因是硬
15、件速度問題。要求處理的信號(hào)形式越來(lái)越復(fù)雜,使得現(xiàn)代信號(hào)處理的方法大都以大數(shù)據(jù)量、高復(fù)雜度為其主要特點(diǎn)。在這種情況下,尋找有效的實(shí)時(shí)信號(hào)處理方法是非常有必要和迫切的。</p><p> 而隨著數(shù)字信號(hào)處理技術(shù)的發(fā)展,可編程門陣列FPGA的應(yīng)用迅速的普及起來(lái),F(xiàn)PGA具有高邏輯密度,高可靠性,用戶可編程以及可并行運(yùn)算等特點(diǎn),可縮短開發(fā)周期,降低成本,很好的同時(shí)滿足通用性和實(shí)時(shí)性要求。自1985年Xilinx公司推出
16、的第一塊現(xiàn)場(chǎng)可編程邏輯器件至今,以FPGA為代表的數(shù)位系統(tǒng)現(xiàn)場(chǎng)集成獲得了驚人的發(fā)展,從最初1200個(gè)可編程邏輯門電路發(fā)展到到90年代的25萬(wàn)個(gè)邏輯門電路。發(fā)展最早兩大著名FPGA廠商即是以FPGA器件系列為代表的Xilinx公司和以CPLD器件系列為代表的Altera公司。隨著集成電路技術(shù)和數(shù)字信號(hào)處理技術(shù)的日新月異,F(xiàn)PGA技術(shù)以現(xiàn)場(chǎng)可編程、現(xiàn)場(chǎng)修改、現(xiàn)場(chǎng)驗(yàn)證、現(xiàn)場(chǎng)實(shí)現(xiàn)的應(yīng)用優(yōu)勢(shì),已經(jīng)躍升為電子電路應(yīng)用領(lǐng)域廣受歡迎的實(shí)用技術(shù)。<
17、/p><p> 2 自適應(yīng)算法研究及分析</p><p> 2.1 自適應(yīng)濾波基本概念</p><p> 自適應(yīng)濾波器一般可分為兩個(gè)部分,即濾波部分和自適應(yīng)更新部分:(l)其中濾波部分根據(jù)某結(jié)構(gòu)常用的可有FIR和IIR兩種濾波形式,IIR結(jié)構(gòu)的自適應(yīng)濾波器在運(yùn)算的階數(shù)上要比FIR結(jié)構(gòu)的濾波器的階數(shù)要少,因而比相同性能的FIR池波器所需要本文最后討論的自適應(yīng)算法應(yīng)用
18、是基于FIR濾波自適應(yīng)信號(hào)處理算法一般用來(lái)獲得有的運(yùn)算里要少,但由于IIR結(jié)構(gòu)的濾波器在有限精度的條件下容易產(chǎn)生振蕩,具有不穩(wěn)定的特性,而且通過增加階數(shù),AR模型能夠?qū)RMA棋型進(jìn)行近似的模擬,所以,關(guān)可調(diào)參數(shù)。使這些參數(shù)為變盈的目標(biāo)函數(shù)在一定的約束條件下達(dá)到最優(yōu)。最常用的方法是基于估計(jì)誤差的平方值。然而在不同情況下它具有不盡相通的定義,從其準(zhǔn)則上進(jìn)行區(qū)分,自適應(yīng)處理方法可分為兩類:(a)隨機(jī)統(tǒng)計(jì)法,在隨機(jī)統(tǒng)計(jì)法中,準(zhǔn)則包含了輸入數(shù)據(jù)
19、的統(tǒng)計(jì)特性,算法的推導(dǎo)以估計(jì)誤差的平方的集平均或時(shí)平均(即均方誤差,MSE)為基礎(chǔ),經(jīng)典的算法是LMS算法。(b)精確法,在精確法中,準(zhǔn)則包含了已經(jīng)得到的真實(shí)確切的數(shù)據(jù)。滿足此類準(zhǔn)則所用的技術(shù)常稱為遞歸最小平方(RLS)技術(shù)。本章中將對(duì)其中的一些算法進(jìn)行綜述。</p><p> 2.2 變步長(zhǎng)自適應(yīng)濾波算法</p><p> 所謂自適應(yīng)濾波器,就是利用前一時(shí)刻己獲得的濾波器參數(shù)等結(jié)果,
20、自動(dòng)調(diào)節(jié)現(xiàn)時(shí)刻的濾波器參數(shù),以適應(yīng)信號(hào)和噪聲未知的或隨時(shí)間變化的統(tǒng)計(jì)特性,從而實(shí)現(xiàn)最優(yōu)濾波。由Widrow和HOFF提出的最小均方誤差(LMS)算法,因其具有計(jì)算量小、易于實(shí)現(xiàn)等優(yōu)點(diǎn)而在實(shí)踐中被廣泛采用。根據(jù)自適應(yīng)濾波器的原理,LMS算法迭代公式為:</p><p> y(n)=xT(n)w(n),e(n)=d(n)-y(n),W(n+1)=w(n)+2µe(n)X(n)</p><
21、;p> 其中X(n)表示n時(shí)刻的輸入信號(hào)矢量;y(n)為自適應(yīng)濾波器的輸出信號(hào);d(n)定義了期望信號(hào);e(n)表示n時(shí)刻的誤差;W(n)表示n時(shí)刻的自適應(yīng)濾波器的權(quán)值; µ是控制穩(wěn)定性和收斂速度的參量,稱之為步長(zhǎng)。</p><p> LMS算法收斂的條件為:0<µ<1/λ max,λmax是輸入信號(hào)自相關(guān)矩陣的最大特征值。</p><p> 由
22、于主輸入端不可避免地存在干擾噪聲,自適應(yīng)濾波算法將產(chǎn)生參數(shù)失調(diào)噪聲,減少步長(zhǎng)因子µ可減少自適應(yīng)濾波算法的穩(wěn)態(tài)失調(diào),提高算法的收斂精度,然而步長(zhǎng)因子的減少將降低算法的收斂速度和跟蹤速度。因此,固定步長(zhǎng)的自適應(yīng)濾波算法在收斂速度、時(shí)變系統(tǒng)跟蹤速度與收斂精度方面對(duì)算法調(diào)整步長(zhǎng)µ的要求相互矛盾.為了克服這種矛盾,人們提出多種變步長(zhǎng)自適應(yīng)算法。本文采用VSS-LMS的算法如下:</p><p> y(
23、n)=xT(n)W(n),e(n)=d(n)-y(n), w(n+l)=W(n)+2µ(n)e(n)x(n) </p><p> µ(n+l)=a(n)+ye2(n) </p><p> 當(dāng)µ(n+l)<Umin則µ(n+1)=Umin,µ(n+l)>Umax則µ(n+l)=Umax </p><
24、;p> Umax一般選擇接近標(biāo)準(zhǔn)LMS不穩(wěn)定的步長(zhǎng)點(diǎn),以提供最大的可能的收斂速度;在穩(wěn)定狀況下,根據(jù)所預(yù)期的誤調(diào)水平和所要求的算法的跟蹤能力作出一個(gè)合適的選擇。其中,參數(shù)參數(shù)0<a<1,y>0。a:為步長(zhǎng)的遺傳因子,主要決定算法的收斂時(shí)的步長(zhǎng)值,,y主要控制算法的跟蹤速度。在實(shí)際中a , y取值范圍分別為(0.95,0.99)和(0,0.001)。</p><p> 2.3 仿射投影算
25、法</p><p> 在有些情況下,可以重復(fù)利用過去的數(shù)據(jù)信號(hào),以便提高自適應(yīng)濾波算法的收斂速度。數(shù)據(jù)重用算法的代價(jià)就是增加了算法的失調(diào),并且和通常情況下一樣,通過引入步長(zhǎng)來(lái)實(shí)現(xiàn)最終的失調(diào)和收斂速度的之間的平衡,但是我們也可以通過仿射投影算法來(lái)達(dá)到目的。仿射投影算法最早由K.Ozeki和T.Umeda提出,它是歸一化最小均方誤差(NLMS)算法的推廣。仿射投影算法的性能介于LMS算法和RLS算法之間,其計(jì)算復(fù)雜
26、度比RLs算法低。歸一化最小均方誤差(NLMS)算法是LMS算法的一種改進(jìn)算法,它可以看作是一種變步長(zhǎng)因子的LMS算法,其收斂性能對(duì)輸入信號(hào)的能量變化不敏感。而仿射投影算法的計(jì)算復(fù)雜度比NLMS算法高很多,提出的快速仿射投影算法大大降低了仿射投影算法的計(jì)算復(fù)雜度。在快速仿射投影算法中,采用滑動(dòng)窗快速橫向?yàn)V波器算法計(jì)算預(yù)濾波向量,避免了矩陣求逆運(yùn)算??焖俜律渫队八惴ǖ挠?jì)算復(fù)雜度雖然降低了,但其內(nèi)嵌的滑動(dòng)窗快速橫向?yàn)V波器算法的實(shí)現(xiàn)相對(duì)復(fù)雜,
27、并且存在數(shù)值穩(wěn)定性問題。為解決快速仿射投影算法的數(shù)值穩(wěn)定性問題,Douglas等提出了正交變換的快速仿射投影算法的近似算法,避免了采用復(fù)雜的滑動(dòng)窗快速橫向?yàn)V波器算法,改</p><p> 2.4 RLS自適應(yīng)濾波算法</p><p> RLS算法采用了在每個(gè)時(shí)刻對(duì)所有己輸入信號(hào)重估的平方誤差之和最小這樣的準(zhǔn)則,它是對(duì)輸入信號(hào)的自相關(guān)矩陣Rxx(n)逆進(jìn)行遞推估計(jì)更新,收斂速度快,其收斂
28、性能與輸入信號(hào)的頻譜特性無(wú)關(guān)。但是,RLS算法的計(jì)算復(fù)雜度很高,所需的存儲(chǔ)量極大,不利于實(shí)時(shí)實(shí)現(xiàn);倘若被估計(jì)的自相關(guān)矩陣Rxx(n)的逆失去了正定特性,還將引起算法的發(fā)散。</p><p> 2.5 LMS算法及其推廣</p><p> LMS算法最早由Widrow和Hoff提出,是最簡(jiǎn)單也是應(yīng)用最廣泛的一種自適應(yīng)算法。本章將介紹LMS算法的一些重要特性,以及在實(shí)際系統(tǒng)設(shè)計(jì)中所采用的L
29、MS算法推廣形式。</p><p><b> LMS算法介紹</b></p><p> 代價(jià)函數(shù)和誤差性能曲面</p><p> 自適應(yīng)算法的工作是依據(jù)某種誤差最小準(zhǔn)則通過迭代來(lái)調(diào)整權(quán)重矢量。這里說的誤差是指濾波輸出和期望信號(hào)在某種意義下的距離。定義估計(jì)誤差e(n)為濾波器輸出和期望信號(hào)的差值,即</p><p>
30、 e(n)=d(n)-y(n)=d(n)- XT(n)W(n)</p><p> 則最典型的情況就是依據(jù)均方誤差(Mean Square Error,MSE)最小準(zhǔn)則將權(quán)矢量的代價(jià)函數(shù)定義為</p><p> ξ(n )= E {e2(n)}</p><p> 其中E{.}表示取期望。將相關(guān)式代入。展開代價(jià)函數(shù)的表達(dá)式</p><p>
31、; ξ(n )= E {|d(n)- XT(n)W(n)|2}=E{ d2(n)}+WT (n)RW(n)-2PTW(n)</p><p> 其中R表示輸入信號(hào)的自相關(guān)矩陣</p><p> R=E{ X (n )X T(n)}</p><p> P表示輸入信號(hào)和期望信號(hào)的互相關(guān)向量</p><p> P =E{ X (n )d (
32、n)}</p><p> W (n)表示權(quán)矢量,d (n)表示期望信號(hào)。</p><p> LMS算法原理和性能分析</p><p> LMS算法使用隨機(jī)梯度下降的方法實(shí)現(xiàn)代價(jià)函數(shù)最小化,具體地說,每次迭代時(shí)權(quán)矢量沿著誤差性能曲面的梯度估值的負(fù)方向按一定比例對(duì)步長(zhǎng)進(jìn)行更新。由式可得代價(jià)函數(shù)的梯度為</p><p> ▽?duì)?n )= а
33、(n) = -2P+2RW(n)</p><p><b> аW(n)</b></p><p> 式中用到了自相關(guān)矩陣R和互相關(guān)向量P,而實(shí)際上這兩個(gè)參量只有對(duì)輸入信號(hào)和期望響應(yīng)的統(tǒng)計(jì)特性進(jìn)行估計(jì)才能獲得。為了減小計(jì)算復(fù)雜度,用瞬時(shí)均方誤差的梯度▽e 2(n)作為均方誤差梯度的估值</p><p> ▽e2(n )= аe2(n)
34、 = 2e(n) аe(n) = -2e(n)x(n)</p><p> аW(n) аW(n)</p><p> 由于E{ ▽e2(n )}= ▽?duì)?n),權(quán)矢量可以用一個(gè)簡(jiǎn)單的迭代表達(dá)式來(lái)更新</p><p> W(n+1)= W(n)-(µ/2)▽e2(n )= W(n)+µe(n) x(n)</p>
35、<p> 其中μ代表迭代步長(zhǎng)。這就是LMS算法,參數(shù)μ決定了算法的收斂速度以及穩(wěn)態(tài)誤差。一個(gè)較大的μ可以產(chǎn)生很快的收斂速度,但在收斂到Wopt附近后將在一個(gè)較大范圍內(nèi)抖動(dòng)而無(wú)法進(jìn)一步收斂,即穩(wěn)態(tài)誤差較大;選擇較小的步長(zhǎng)可以獲得較小的穩(wěn)態(tài)誤差,但同時(shí)收斂速度也較慢。事實(shí)上,步長(zhǎng)μ的取值并不是任意的,其大小必須處于某一特定范圍,LMS算法才能收斂,即當(dāng)且僅當(dāng)步長(zhǎng)μ滿足</p><p> 0 <
36、 µ < 1/λmax</p><p><b> 時(shí)</b></p><p> Lim{W(n)}=Wopt</p><p> 上式為L(zhǎng)MS算法的收斂條件。</p><p> 以下是LMS算法的穩(wěn)態(tài)特性分析:</p><p> Widrow引入失調(diào)系數(shù)</p>
37、<p> 來(lái)描述算法的穩(wěn)態(tài)均方誤差對(duì)維納誤差的相對(duì)誤差,其中ξmin=E2{| eopt (n)|2}為維納誤差。</p><p> 對(duì)于LMS算法來(lái)說,其失調(diào)系數(shù)可以表示為如下兩種形式</p><p> δ=µTr(R)= µ∑λi</p><p><b> δ=µMPin</b></
38、p><p> 式中的Pin表示輸入信號(hào)功率。也就是說,濾波器階數(shù)越高,步長(zhǎng)因子μ和信號(hào)功率越大,就使得失調(diào)系數(shù)越大。</p><p> LMS濾波算法的一個(gè)完整描述如下所示:</p><p> W(n+1)= W(n)+ µe(n)U(n)</p><p> e(n)=d(n)-y(n)</p><p>
39、 y(n)=WT(n)U(n)</p><p> 最小均方誤差(LMS)算法是最簡(jiǎn)單、應(yīng)用最廣泛的自適應(yīng)算法之一。LMS算法通過自適應(yīng)調(diào)節(jié)w(n),使得殘余回波或平方誤差的期望值達(dá)到最小。事實(shí)上,LMs算法是依據(jù)最陡梯度法來(lái)更新濾波器系數(shù)w(n)的,為確保收斂,收斂因子應(yīng)滿足o<µ<2/λmax、(λmax、是E[x(n)*XT(n)]的最大特征值)。由于LMS算法易于實(shí)現(xiàn),同時(shí),算法對(duì)
40、有限寄存器長(zhǎng)度造成的實(shí)現(xiàn)誤差不敏感,因此LMS算法對(duì)于實(shí)際應(yīng)用來(lái)說具有相當(dāng)?shù)奈?。然而LMS算法的收斂速率依賴于E[x(n)* XT(n)]特征值的發(fā)散程度。在實(shí)際應(yīng)用中,輸入信號(hào)往往是語(yǔ)音,而語(yǔ)音的特征值分布相對(duì)分散,因此LMS的收斂速度較慢,于是又出現(xiàn)了很多改進(jìn)算法,比如滑動(dòng)窗LMS算法,時(shí)域去相關(guān)LMS算法(DLMS),NLMS算法,符號(hào)誤差算法,變步長(zhǎng)算法等等。這些算法比基本的LMS算法在精度和收斂速度上有明顯的改進(jìn),計(jì)算量和
41、基本LMS算法相當(dāng)。</p><p><b> 2.6小結(jié)</b></p><p> 本章主要對(duì)自適應(yīng)算法做了一些介紹以及性能分析。著重分析了常用的LMS算法和變步長(zhǎng)濾波算法,在自適應(yīng)算法中,LMS算法較為突出,通過介紹分析,為后文濾波器設(shè)計(jì)提供一定的理論基礎(chǔ),</p><p><b> 3 濾波器原理介紹</b>&
42、lt;/p><p> 3.1 自適應(yīng)濾波器原理</p><p> 濾波器是電子設(shè)備的一個(gè)常用的基本部件,人們對(duì)其已經(jīng)進(jìn)行了廣泛的研究。濾波器研究的一個(gè)基本問題就是:如何設(shè)計(jì)和建立最佳或最優(yōu)的濾波器。所謂最佳濾波器是指能夠根據(jù)某一最佳準(zhǔn)則進(jìn)行設(shè)計(jì)的濾波器。20世紀(jì)40年代,維納奠定了關(guān)于最佳濾波器研究的基礎(chǔ)。</p><p> 假定線性濾波器的輸入為有用信號(hào)和噪聲信
43、號(hào)之和,兩者均為廣義平穩(wěn)過程且已知它們的二階統(tǒng)計(jì)特性,根據(jù)最小均方誤差準(zhǔn)則,得了最佳線性濾波器的參數(shù)波器獲得了極其廣泛的應(yīng)用。這種濾波器被稱為維納濾波器。</p><p><b> 維納濾波器</b></p><p> 在維納研究的基礎(chǔ)上,人們還研究了根據(jù)最大輸出信噪比準(zhǔn)則、統(tǒng)計(jì)檢測(cè)準(zhǔn)則以及其他最佳準(zhǔn)則求得的最佳線性濾波器。但人們發(fā)現(xiàn),在一定條件下,這些最佳濾波器
44、與維納濾波器是等價(jià)的。因而,討論最優(yōu)線性濾波器時(shí),一般均以維納濾波器作為參考。</p><p> 要實(shí)現(xiàn)維納濾波,就要求:(l)輸入信號(hào)是廣義平穩(wěn)的;〔2)輸入信號(hào)的統(tǒng)計(jì)特征是已知的。根據(jù)其他最佳準(zhǔn)則的濾波器亦有同樣要求。然而,由于輸入過程取決于外界的信號(hào)、干擾環(huán)境,這種統(tǒng)計(jì)特性常常是未知的、變化的,因而不能滿足上述兩個(gè)要求。在這種情況下,促使人們研究自適應(yīng)濾波器。</p><p>
45、濾波器研究的一個(gè)基本問題是:如何建立最佳或最優(yōu)的濾波器。根據(jù)最小均方誤差準(zhǔn)則,20世紀(jì)40年代維納求得了最佳線性濾波器的參數(shù),這種濾波器稱為維納濾波器。然而,只有對(duì)信號(hào)和噪聲的統(tǒng)計(jì)特性先驗(yàn)已知的情況下,維納濾波器才能獲得最優(yōu)濾波。遺憾的是在實(shí)際應(yīng)用中,常常無(wú)法得到這些統(tǒng)計(jì)特性的先驗(yàn)知識(shí);或者,統(tǒng)計(jì)特性是隨時(shí)間變化的。因此用維納濾波器實(shí)現(xiàn)不了最優(yōu)濾波。在這種情況下,自適應(yīng)濾波能夠提供卓越的濾波性能。所謂自適應(yīng)濾波器,就是利用前一時(shí)刻己獲得
46、的濾波器參數(shù)的結(jié)果,自動(dòng)地調(diào)節(jié)現(xiàn)時(shí)刻的濾波器參數(shù),以適應(yīng)信號(hào)和噪聲未知的或隨時(shí)間變化的統(tǒng)計(jì)特性,從而實(shí)現(xiàn)最優(yōu)濾波。</p><p> 自適應(yīng)濾波器具有“自我調(diào)節(jié)”和“跟蹤”能力。自適應(yīng)濾波器可以分為線性自適應(yīng)濾波器和非線性自適應(yīng)濾波器。非線性自適應(yīng)濾波器包括Vofterra濾波器和基于神經(jīng)網(wǎng)絡(luò)的自適應(yīng)濾波器。非線性自適應(yīng)濾波器具有更強(qiáng)的信號(hào)處理能力。但是,由于非線性自適應(yīng)濾波器的計(jì)算較復(fù)雜,實(shí)際用得最多的仍然是
47、線性自適應(yīng)濾波器如圖3.1所示。</p><p> 圖3.1 自適應(yīng)濾波器原理圖</p><p> w(n)表示自適應(yīng)濾波器在時(shí)刻n的權(quán)矢量,用X(n)=[x(n)x(n+l)…x(n-N+l)]T表示n時(shí)刻輸入信號(hào)矢量,W(n)=[w0(n) w1 (n)…wN-1 (n)]表示n時(shí)刻N(yùn)階自適應(yīng)濾波器的權(quán)系數(shù),d(n)是期望信號(hào),e(n)是誤差信號(hào),v(n)是主端輸入干擾信號(hào)。根據(jù)自
48、適應(yīng)濾波算法優(yōu)化準(zhǔn)則J(n)=∑λn-1 |e(i)|2的不同,自適應(yīng)濾波算法可以分為兩類最基本的算法:最小均方誤差(LMS)算法和遞推最小二乘(RLS)算法。基于最小均方誤差準(zhǔn)則,LMS算法使濾波器的輸出信號(hào)與期望輸出信號(hào)之間的均方誤差E[e2(n)]最小?;谧钚《藴?zhǔn)則,RLS算法決定自適應(yīng)濾波器的權(quán)系數(shù)向量w(n)使估計(jì)誤差的加權(quán)平方和最小。其中λ為遺忘因子,且0<λ<1.由此兩準(zhǔn)則衍生出許多不同的自適應(yīng)濾波算法。自
49、適應(yīng)濾波算法廣泛應(yīng)用于系統(tǒng)辨識(shí)、回波消除、自適應(yīng)譜線增強(qiáng)、自適應(yīng)信道均衡、語(yǔ)音線性預(yù)測(cè)、自適應(yīng)天線陣等諸多領(lǐng)域中。</p><p> 3.2 本文濾波器的工作原理</p><p> 圖3.2 自適應(yīng)濾波器電路結(jié)構(gòu)圖</p><p> 如圖3.2,移位寄存器A1和寄存器A2用于存放輸入數(shù)據(jù)x(n),移位寄存器B中存放的是權(quán)系數(shù)。當(dāng)采樣的輸入信號(hào)x(n)準(zhǔn)備好以后
50、,應(yīng)發(fā)出一個(gè)準(zhǔn)備好的信號(hào)READY給濾波電路的控制器,它可以開始濾波了。下面將介紹濾波器從READY信號(hào)有效到濾波完畢這一過程中控制信號(hào)的值以及各寄存器的狀態(tài)。</p><p> (1)READY上升沿出現(xiàn)到T1狀態(tài)來(lái)臨之前。這個(gè)時(shí)間段,外部采樣好的數(shù)據(jù)x(n)還沒有被送入到移位寄存器A1中,因此A1中存放的數(shù)據(jù)由左至右依次為x(n-1)、x(n-2)、x(n-3)、x(n-4)、x(n-5)、x(n-6)、x
51、(n-7)和x(n-8);寄存器A2中存放的數(shù)據(jù)是x(n-9);移位寄存器B中存放的是w(n,0)、w(n,1)、w(n,2)、w(n,3)、w(n,4)、w(n,5)、w(n,6)和w(n,7);寄存器G1中存放的是y(n-1);G2中存放的是e(n-1)。移位寄存器A1與寄存器A2的片選信號(hào)CS1從高電平變?yōu)榈碗娖剑ǖ碗娖接行В?;?shù)據(jù)選擇器C1的控制信號(hào)SEL維持低電平,C1選擇的是外部送進(jìn)來(lái)的采樣信號(hào)x(n);累加器E1的清零信號(hào)
52、在T1上升沿到來(lái)之前把E1清零;移位寄存器B的片選信號(hào)CS2與累加器E1的片選信號(hào)CS3此時(shí)都為無(wú)效。這樣,一旦T1到來(lái),外部送來(lái)的采樣信號(hào)x(n)被送進(jìn)移位寄存器A1的最左端,與此同時(shí),A1中的數(shù)據(jù)均自左向右移一位,x(n-8)被這個(gè)上升沿送入寄存器A2。濾波器中的其他寄存器此時(shí)都不發(fā)生動(dòng)作。</p><p> (2)T1狀態(tài)。這期間各寄存器的狀態(tài)不難由T1的上升沿動(dòng)作推測(cè)出來(lái),移位寄存器A1中存放數(shù)據(jù)由左至
53、右依次為x(n)、x(n-1)、x(n-2)、x(n-3)、x(n-4)、x(n-5)、x(n-6)與x(n-7);寄存器A2中存放的數(shù)據(jù)是x(n-8);移位寄存器B中存放的是w(n,0)、w(n,1)、w(n,2)、w(n,3)、w(n,4)、w(n,5)、w(n,6)和w(n,7);寄存器G1中存放的是y(n-1);G2中存放的是e(n-1)。進(jìn)入T1狀態(tài)以后,A1與A2的片選信號(hào)CS1繼續(xù)有效;數(shù)據(jù)選擇器C1的控制信號(hào)SEL變?yōu)楦?/p>
54、電平,C1選擇的是A1最右端送過來(lái)的數(shù)據(jù)x(n-7);移位寄存器B的片選信號(hào)CS2與累加器E1的片選信號(hào)CS3變?yōu)橛行?;累加器的清零信?hào)CLR變?yōu)楦唠娖?,乘法器D1完成乘法運(yùn)算x(n-7)w(n,7),累加器完成加法運(yùn)算,等到T2上升沿將加法結(jié)果送入累加器中的寄存器。同時(shí)由乘法器D2、數(shù)據(jù)選擇器C2以及加法器E2對(duì)權(quán)系數(shù)w(n,7)進(jìn)行更新。T1狀態(tài)結(jié)束時(shí),加法器E2輸出的數(shù)據(jù)是w(n,7)+2μx(n-8)e(n-1),T2上升沿將其
55、送入移位寄存器B,完成</p><p> (3)T2、T8狀態(tài)。這七個(gè)狀態(tài)濾波器的運(yùn)行狀況與T1狀態(tài)完全一致,不同的是個(gè)寄存器存放的數(shù)據(jù)。濾波器的運(yùn)算情況這里不在復(fù)述。</p><p> (4)T9狀態(tài)。在一個(gè)運(yùn)算周期的前8個(gè)時(shí)鐘內(nèi),y(n)已經(jīng)計(jì)算完畢,w(n,0)~w(n,7)也被更新完畢,T9的上升沿將累加器內(nèi)部的加法器計(jì)算結(jié)果y(n)送入其內(nèi)部的寄存器,同時(shí)將更新后的w(n,0
56、)送入B,權(quán)系數(shù)至此完全被更新。此后寄存器G的時(shí)鐘信號(hào)CLK1將y(n)送入G,寄存器G2的時(shí)鐘信號(hào)CLK2將減法器F計(jì)算的誤差e(n)送入G2。T4狀態(tài)還必須調(diào)整控制信號(hào),為下個(gè)運(yùn)算做準(zhǔn)備。A1與A2的片選信號(hào)CS1,B的片選信號(hào)CS2,累加器的片選信號(hào)CS3都變?yōu)闊o(wú)效;數(shù)據(jù)選擇器C1的控制信號(hào)SEL變?yōu)榈碗娖剑珻1再次選擇外部送進(jìn)來(lái)的采樣信號(hào)。累加器E1的清零信號(hào)CLR變?yōu)榈碗娖?。此后,濾波器進(jìn)入等待狀態(tài),知道下一個(gè)READY信號(hào)的
57、上升沿到來(lái)才使它重新啟動(dòng)工作。</p><p> 4基于FPGA的自適應(yīng)濾波器的設(shè)計(jì)</p><p> 現(xiàn)場(chǎng)可編程門陣列(FPGA,Field Programmable Gate Array)的出現(xiàn)是超大規(guī)模集成電路(VLSI)技術(shù)和計(jì)算機(jī)輔助設(shè)計(jì)(CAD)技術(shù)發(fā)展的結(jié)果。FPGA器件集成度高、體積小、具有通過用戶編程實(shí)現(xiàn)專門應(yīng)用的功能。它允許電路設(shè)計(jì)者利用基于計(jì)算機(jī)的開發(fā)平臺(tái),經(jīng)過設(shè)
58、計(jì)輸入、仿真、測(cè)試和校驗(yàn),直至達(dá)到預(yù)期的結(jié)果。使用FPGA器件可以大大縮短系統(tǒng)的研制周期,減少資金的投入。更吸引人的是,采用FPGA器件可以將原來(lái)的電路板級(jí)產(chǎn)品集成為芯片級(jí)產(chǎn)品,從而降低了功耗,提高了可靠性,同時(shí)還可以很方便地對(duì)設(shè)計(jì)進(jìn)行在線修改。FPGA器件成為研制開發(fā)的理想器件,特別適用于產(chǎn)品的樣機(jī)開發(fā)和小批量的生產(chǎn),因此有人也把FPGA稱為可編程的ASIC。如今,F(xiàn)PGA器件廣泛應(yīng)用于通信、自動(dòng)控制、信息處理等諸多領(lǐng)域,越來(lái)越多的電
59、子設(shè)計(jì)人員在使用FPGA,熟練掌握FPGA設(shè)計(jì)技術(shù)已經(jīng)是對(duì)電子設(shè)計(jì)工程師的基本要求。</p><p> 4.1 基本設(shè)計(jì)方法</p><p> 傳統(tǒng)的系統(tǒng)硬件電路設(shè)計(jì)方法</p><p> 在EDA出現(xiàn)以前,人們采用傳統(tǒng)的硬件電路設(shè)計(jì)方法來(lái)設(shè)計(jì)系統(tǒng)。傳統(tǒng)的硬件電路采用自下而上(Bottom Up)的設(shè)計(jì)方法。其主要步驟是:根據(jù)系統(tǒng)對(duì)硬件的要求,詳細(xì)編制技術(shù)規(guī)格
60、書,并畫出系統(tǒng)控制流圖:然后根據(jù)技術(shù)規(guī)格書和系統(tǒng)控制流圖,對(duì)系統(tǒng)的功能進(jìn)行分化,合理地劃分功能模塊,并畫出系統(tǒng)功能框圖;接著就是進(jìn)行各功能的細(xì)化和電路設(shè)計(jì);各功能模塊電路設(shè)計(jì)調(diào)試完畢以后,將各功能模塊的硬件電路連接起來(lái),再進(jìn)行系統(tǒng)的調(diào)試;最后完成整個(gè)系統(tǒng)的硬件電路設(shè)計(jì)。</p><p> 從上述過程可以看到,系統(tǒng)硬件的設(shè)計(jì)是從選擇具體邏輯元器件開始的,并用這些元器件進(jìn)行邏輯電路設(shè)計(jì),完成系統(tǒng)各獨(dú)立功能模塊設(shè)計(jì),
61、然后再將各功能模塊連接起來(lái),完成整個(gè)系統(tǒng)的硬件設(shè)計(jì)。上述過程從最底層設(shè)計(jì)開始,到最高層設(shè)計(jì)完畢,故將這種設(shè)計(jì)方法稱為“自下而上”的設(shè)計(jì)方法。</p><p> 傳統(tǒng)的自下而上的硬件電路設(shè)計(jì)方法主要特征如下:</p><p> 1)采用通用的邏輯元器件;</p><p> 2)在系統(tǒng)硬件設(shè)計(jì)的后期進(jìn)行仿真和調(diào)試;</p><p> 3)
62、主要設(shè)計(jì)文件是電原理圖;</p><p> 2.新興的EDA硬件電路設(shè)計(jì)方法</p><p> 隨著大規(guī)模專用集成電路的開發(fā)和研制,為了提高開發(fā)的效率和增加已有開發(fā)成果的可繼承性,以及縮短開發(fā)時(shí)間,各種新興的EDA工具開始出現(xiàn),特別是硬件描述語(yǔ)言HDL(Hardware Description Language)的出現(xiàn),使得傳統(tǒng)的硬件電路設(shè)計(jì)方法發(fā)生了巨大變革,新興的EDA設(shè)計(jì)方法采用
63、了自上而下(TopDown)的設(shè)計(jì)方法。所謂自上而下的設(shè)計(jì)方法,就是從系統(tǒng)要求出發(fā),自上而下的逐步將設(shè)計(jì)內(nèi)容細(xì)化,最后完成系統(tǒng)的整體設(shè)計(jì)。</p><p> 各公司的EDA工具基本上都支持兩種標(biāo)準(zhǔn)的HDL,分別是VDHL和Verilog HDL。利用HDL語(yǔ)言對(duì)系統(tǒng)硬件電路的自上而下設(shè)計(jì)一般分為三個(gè)層次,如圖4.1所示:</p><p> 圖4.1 自上而下設(shè)計(jì)系統(tǒng)硬件的過程圖<
64、/p><p> 第一層次為行為描述,它是對(duì)整個(gè)系統(tǒng)的數(shù)學(xué)模型的描述。</p><p> 第二層次是寄存器傳輸描述RTL(又稱數(shù)據(jù)流描述)。</p><p> 第三層次是邏輯綜合。</p><p> EDA自上而下的設(shè)計(jì)方法具有以下特點(diǎn):</p><p> 1)電路設(shè)計(jì)更趨合理;</p><p&
65、gt; 2)采用系統(tǒng)早期仿真,從而可以在系統(tǒng)設(shè)計(jì)早期發(fā)現(xiàn)設(shè)計(jì)中存在的問題, 這樣就可以大大縮短系統(tǒng)的設(shè)計(jì)周期,降低費(fèi)用;</p><p> 3)降低了硬件電路設(shè)計(jì)難度,采用HDL語(yǔ)言,可免除編寫邏輯表達(dá)式或真值表的過程,令設(shè)計(jì)難度大幅度下降,從而也縮短了設(shè)計(jì)周期;</p><p> 4)主要設(shè)計(jì)文件是用HDL語(yǔ)言編寫的源程序。</p><p><b>
66、; 4.2 設(shè)計(jì)流程</b></p><p> 可編程邏輯器件的設(shè)計(jì)是利用EDA開發(fā)軟件和編程工具對(duì)器件開發(fā)的過程。高密度復(fù)雜可編程邏輯器件的設(shè)計(jì)流程如下圖所示。它包括設(shè)計(jì)準(zhǔn)備、設(shè)計(jì)輸入、功能仿真、設(shè)計(jì)處理、時(shí)序仿真和器件編程及測(cè)試等七個(gè)步驟。</p><p> 4.2.1 設(shè)計(jì)準(zhǔn)備</p><p> 在系統(tǒng)設(shè)計(jì)之前,首先要進(jìn)行方案論證、系統(tǒng)設(shè)計(jì)
67、和器件選擇等準(zhǔn)備工作。一般采用自上而下的設(shè)計(jì)方法,也可采用傳統(tǒng)的自下而上的設(shè)計(jì)方法。如圖4.3所示:</p><p><b> 圖4.2方案圖</b></p><p> 4.2.2 設(shè)計(jì)輸入</p><p> 設(shè)計(jì)輸入將所設(shè)計(jì)的系統(tǒng)或電路以開發(fā)軟件要求的某種形式表示出來(lái),并送入計(jì)算機(jī)的過程稱為設(shè)計(jì)輸入。設(shè)計(jì)輸入通常有以下集中形式:<
68、/p><p><b> 1)原理圖輸入方式</b></p><p> 2)硬件描述語(yǔ)言輸入方式</p><p><b> 3)波形輸入方式</b></p><p> 4.2.3 功能仿真</p><p> 功能仿真也叫做前仿真。用戶所設(shè)計(jì)的電路必須在編譯之前進(jìn)行邏輯功能
69、驗(yàn)證,此時(shí)的仿真沒有延時(shí)信息,對(duì)于初步的功能檢測(cè)非常方便。仿真中如發(fā)現(xiàn)錯(cuò)誤,則返回設(shè)計(jì)輸入中修改邏輯設(shè)計(jì)。</p><p> 4.2.4 設(shè)計(jì)處理</p><p> 設(shè)計(jì)處理是器件設(shè)計(jì)中的核心環(huán)節(jié)。在設(shè)計(jì)處理過程中,編譯軟件將對(duì)設(shè)計(jì)輸入文件進(jìn)行邏輯化簡(jiǎn)、綜合優(yōu)化和適配,最后產(chǎn)生編程用的編程文件。主要有:</p><p> 1)語(yǔ)法檢查和設(shè)計(jì)規(guī)則檢查</p
70、><p><b> 2)邏輯優(yōu)化和綜合</b></p><p><b> 3)適配和分割</b></p><p><b> 4)布局和布線</b></p><p> 4.2.5 時(shí)序仿真</p><p> 時(shí)序仿真又稱后仿真或延時(shí)仿真。由于不同器件
71、的內(nèi)部延時(shí)不一樣,不同的布局布線方案也給延時(shí)造成不同的影響,因此在設(shè)計(jì)處理以后,對(duì)系統(tǒng)和各模塊進(jìn)行時(shí)序仿真,分析其時(shí)序關(guān)系,估計(jì)設(shè)計(jì)的性能,以及檢查和消除競(jìng)爭(zhēng)冒險(xiǎn)等是非常有必要的。</p><p> 4.2.6 器件編程測(cè)試</p><p> 時(shí)序仿真完成后,軟件就可產(chǎn)生供器件編程使用的數(shù)據(jù)文件。</p><p> 自適應(yīng)濾波器的FPGA實(shí)現(xiàn)</p>
72、;<p> 根據(jù)圖中LMS自適應(yīng)FIR濾波器的計(jì)算機(jī)過程及實(shí)現(xiàn)的功能,系統(tǒng)主要有7大部分組成 ,控制模塊、輸入輸出接口模塊、濾波模塊、權(quán)值更新模塊、步長(zhǎng)調(diào)整模塊、誤差計(jì)算模塊和數(shù)據(jù)存儲(chǔ)模塊,其功能圖如圖4.4所示:</p><p><b> 圖4.3方框圖</b></p><p> (1)控制模塊主要初始化各模塊 產(chǎn)生控制信號(hào) 控制各模塊特定的功能
73、。如負(fù)責(zé)數(shù)據(jù)存儲(chǔ)地址分配、數(shù)據(jù)輸入輸出控制功能,根據(jù)外部輸入的幀時(shí)鐘生成數(shù)據(jù)存儲(chǔ)模塊讀取數(shù)據(jù)的讀寫地址等</p><p> (2)輸入輸出接口模塊主要實(shí)現(xiàn)輸入輸出接口協(xié)議,使數(shù)據(jù)并行輸入串行輸出。</p><p> ?。?)濾波模塊實(shí)現(xiàn)FIR算法和抽頭系數(shù)調(diào)整 FIR算法得到 Y(n),其主要實(shí)現(xiàn)一個(gè)卷積運(yùn)算,即Y(n)=W(n)X(n);抽頭系數(shù)調(diào)整算法利用己修改的單個(gè)抽頭系數(shù)的值來(lái)更
74、新其它存儲(chǔ)在LUT中的抽頭系數(shù)的組合和。</p><p> ?。?)誤差計(jì)算模塊主要根據(jù)當(dāng)前輸入的數(shù)據(jù)和從數(shù)據(jù)存儲(chǔ)模塊中讀取的數(shù)據(jù)對(duì)該路信號(hào)進(jìn)行處理,并產(chǎn)生權(quán)值更新模塊所需的數(shù)據(jù)。</p><p> ?。?)步長(zhǎng)調(diào)整模塊主要根據(jù)數(shù)據(jù)處理模塊的輸出對(duì)該路步長(zhǎng)進(jìn)行調(diào)整,同時(shí)把它們存入數(shù)據(jù)存儲(chǔ)模塊。</p><p> ?。?)權(quán)值更新模塊主要根據(jù)數(shù)據(jù)處理模塊的輸出對(duì)該路信
75、號(hào)的數(shù)據(jù)和權(quán)值進(jìn)行更新,同時(shí)把它們存入數(shù)據(jù)存儲(chǔ)模塊。</p><p> (7)刀數(shù)據(jù)存儲(chǔ)模塊主要存儲(chǔ)各路信號(hào)的處理數(shù)據(jù) 包括該路信號(hào)的增益、權(quán)值和步長(zhǎng),該路信號(hào)的上一個(gè)時(shí)刻的數(shù)值等。</p><p> 利用VHDL 硬件描述語(yǔ)言編寫程序,在 平臺(tái)對(duì)運(yùn)算單元進(jìn)行綜合和功能仿真。</p><p> 4.3 自適應(yīng)濾波器設(shè)計(jì)</p><p>
76、 用FPGA來(lái)實(shí)現(xiàn)自適應(yīng)濾波器,最理想的算法是最小均方(LMS)算法,其</p><p> 輸出信號(hào)y(n)、輸出誤差e(n)的計(jì)算公式為:</p><p> y(n)=w(n)xT(n)</p><p> e(n)=d(n)-y(n)=d(n)-w(n)xT(n)</p><p> 其中,x(n)表示第n個(gè)時(shí)刻輸入信號(hào)向量,x(n
77、)=[x(n),x(n-1) …….x(n-M+1)],M為濾波器的階數(shù),d(n)表示第n個(gè)時(shí)刻的輸入期待響應(yīng),y(n)、e(n)分別表示第n個(gè)時(shí)刻的輸出信號(hào)與輸出誤差,w(n)表示n時(shí)刻權(quán)系數(shù)向量,w(n)=[w(n,0),w(n,1)w(n,M-1)]。權(quán)系數(shù)是不斷更新的,權(quán)系數(shù)的更新使用下式:</p><p> w(n+1)=w(n)+μ[-▽(n)]</p><p> 式中μ表
78、示收斂因子,自適應(yīng)濾波器收斂的條件是</p><p> 0 < µ < 1/(2λmax)</p><p> 其中:λmax是輸入信號(hào)的自相關(guān)矩陣Rxx的最大特征值;▽(n)表示n時(shí)刻的均方誤差梯度,它的精確計(jì)算十分困難,通常使用一種非常有效的近似</p><p> ▽(n)≈-2(n)x(n)</p><p>
79、 此時(shí),權(quán)系數(shù)的更新可以表示為 w(n +1)=w(n)+2μe(n)x(n)</p><p> 用上式權(quán)系數(shù)可以非常方便的更新,但是有一個(gè)問題:對(duì)當(dāng)前的權(quán)系數(shù)進(jìn)行更新,必須知道當(dāng)前時(shí)刻的誤差信號(hào)e(n),顯然必須在輸出信號(hào)y(n)與誤差信號(hào)e(n)計(jì)算完畢后才能進(jìn)行權(quán)系數(shù)的更新;換言之,權(quán)系數(shù)的更新與濾波(y(n)的計(jì)算)不能同步進(jìn)行。如果能夠?qū)崿F(xiàn)權(quán)系數(shù)的更新與濾波同步進(jìn)行,那么在濾波的同時(shí)權(quán)系數(shù)也被更新了,
80、這樣,自適應(yīng)濾波器的濾波速度將提高將近一倍,這是我們所期待的。</p><p> 為了實(shí)現(xiàn)這一點(diǎn),必須對(duì)LMS算法進(jìn)行改進(jìn)。權(quán)系數(shù)的更新之所以不能與濾波同步進(jìn)行是由式w(n +1)=w(n)+2μe(n)x(n)決定的,如果將式w(n +1)=w(n)+2μe(n)x(n)中的e(n)改成e(n-1)后,自適應(yīng)算法還能成立,權(quán)系數(shù)更新與y(n)的計(jì)算就能夠同步進(jìn)行了。改進(jìn)后的權(quán)系數(shù)更新方程為:w(n +1)=w
81、(n)+2μe(n-1)x(n-1) 式中,2μe (n-1)x(n-1)為n-1時(shí)刻均方誤差梯度的近似形式。</p><p> 4.3.1 自適應(yīng)濾波器結(jié)構(gòu)</p><p> 這部分內(nèi)容設(shè)計(jì)一個(gè)8階自適應(yīng)濾波器,如圖4.5所示。圖中,A1、B、C1、D1、E1、G1用于計(jì)算輸出信號(hào)y(n)(即濾波器的追蹤部分),由于在運(yùn)算過程中,累加器的內(nèi)容不斷變化,等運(yùn)算完畢以后,才等于輸出信號(hào)y
82、(n)。要保存y(n)的值,必須提供一個(gè)寄存器,它就是下圖中的寄存器G1。F用于產(chǎn)生輸出誤差e(n),并將誤差鎖存在寄存器G2中,以供更新權(quán)系數(shù)只用;A1、A2、B、C2、D2、E2用于更新權(quán)系數(shù)(即濾波器的訓(xùn)練部分),更新過程中采用的誤差為上一次計(jì)算所產(chǎn)生的并保存在寄存器G2中的誤差e(n-1)。</p><p> 圖4.4自適應(yīng)濾波器結(jié)構(gòu)</p><p> 從上圖中可以看出,x(n
83、-1)與e(n-1)相乘用的是乘法器,但是二者的乘積與2μ相乘,使用一個(gè)數(shù)據(jù)選擇器來(lái)實(shí)現(xiàn)。這是因?yàn)?μ為收斂因子的兩倍,通常數(shù)值遠(yuǎn)小于1,只要滿足收斂條件,它的值大一點(diǎn)或者小一點(diǎn)對(duì)濾波效果影響并不是很明顯,因此可以考慮它只取諸如以下的一系列分立的值:</p><p> 1/2 1/4 1/8 1/16 ………… 1/2n </p><p> 這樣就可以通過移位運(yùn)算來(lái)
84、代替乘法運(yùn)算,從而大大減少電路所耗的硬件資源;不僅如此,由于這樣實(shí)現(xiàn)起來(lái)電路的延時(shí)遠(yuǎn)小于一個(gè)乘法器的延時(shí),用數(shù)據(jù)選擇器代替乘法器可以很大程度上提高濾波器的最高采樣頻率。</p><p> 4.3.2 復(fù)數(shù)濾波器設(shè)計(jì)與實(shí)現(xiàn)</p><p> 一般的自適應(yīng)濾波器的操作模式包括訓(xùn)練(Training)、追蹤(Tracking)兩個(gè)模式。首先,在發(fā)射端傳送固定長(zhǎng)度的訓(xùn)練序列,其典型序列為虛擬隨
85、機(jī)序列。則濾波器便可從輸入訊號(hào)搭配已知的序列,利用回歸演算法,去計(jì)算濾波器的系數(shù),以補(bǔ)償傳輸通道所造成的衰減。在這節(jié)中,我們將假設(shè)濾波器已經(jīng)進(jìn)入了追蹤模式,進(jìn)行濾波。在此基礎(chǔ)上,我們采用FIR架構(gòu)設(shè)計(jì)一個(gè)復(fù)數(shù)濾波器。在色散信道上傳輸二進(jìn)制數(shù)據(jù)的通信系統(tǒng)自適應(yīng)均衡中,需要復(fù)數(shù)LMS算法的經(jīng)典模型。為了便于在信道上傳輸數(shù)據(jù),應(yīng)采用某種調(diào)制形式,以使發(fā)送信號(hào)的頻譜落在信道的帶寬之內(nèi)。此外,為了使頻譜有效,要使用諸如QPSK或QAM等調(diào)制技術(shù),
86、這里信道輸出的基帶信號(hào)是復(fù)數(shù)形式,所以需要使用復(fù)數(shù)LMS算法。其模型流圖如圖所示。流圖說明,一個(gè)復(fù)數(shù)LMS算法等效于一組它們之間具有交叉耦合的四個(gè)實(shí)數(shù)LMS算法。對(duì)于FIR系統(tǒng),系統(tǒng)函數(shù)只有零點(diǎn),其差分方程如下:</p><p> 圖4.5 直接式FTR結(jié)構(gòu)</p><p> 由式即可繪出直接式FIR結(jié)構(gòu)如圖4.5所示。此種結(jié)構(gòu)也可稱為頭式延遲線結(jié)構(gòu),俗稱為橫向?yàn)V波器結(jié)構(gòu)。如果以VLS
87、I實(shí)現(xiàn)復(fù)雜度為參考量,橫向?yàn)V波器的結(jié)構(gòu)較為優(yōu)越,因此本設(shè)計(jì)FIR架構(gòu)采用橫向?yàn)V波為基礎(chǔ)衍生至LTE和DFE架構(gòu)。LTE如圖所示,其相關(guān)式子如下:</p><p><b> 圖4.6</b></p><p> 在FIR眾多架構(gòu)中,以橫向?yàn)V波器的結(jié)構(gòu)最為簡(jiǎn)單。但是仔細(xì)觀察圖4.7,倘若N階的FIR則需要N個(gè)乘法器與加法器,推導(dǎo)至我們?cè)O(shè)計(jì)的復(fù)數(shù)濾波器,則需要4N個(gè)乘法器
88、和2N個(gè)加法器,如此大的晶片面積,將導(dǎo)致成本增加。在這里,我們提出一個(gè)回路的方式來(lái)設(shè)計(jì)濾波器,如下圖所示。這種方式設(shè)計(jì)FIR濾波器,對(duì)于實(shí)數(shù)濾波器來(lái)說,只需要一個(gè)乘法器和累加器,并且可以通過一個(gè)簡(jiǎn)單的計(jì)數(shù)器來(lái)控制階數(shù),達(dá)到階數(shù)可編程的目的</p><p><b> 圖4.7</b></p><p> 4.3.3基本設(shè)計(jì)準(zhǔn)備 </p><p>
89、;<b> 1.確定系統(tǒng)接口</b></p><p> 濾波器可以通過全并行方式、全串行方式以及并行和串行相結(jié)合的方式來(lái)設(shè)計(jì)。這里采用上述的第三種方式,即具體操作運(yùn)算采用并行的方式,也就是濾波器中的加法器和乘法器采用并行結(jié)構(gòu)。但是整個(gè)運(yùn)算過程,采用串行方式。輸入的數(shù)據(jù)線有兩個(gè),分別為X_data_in,W_coef_in,都為16位,輸入包括實(shí)部和虛部,采用串行的方式輸入。輸出的結(jié)果為3
90、2位,也包括實(shí)數(shù)和虛部,同樣采用串行方式輸出。</p><p> 其他需要輸入的控制信號(hào)包括:</p><p> startop:啟動(dòng)信號(hào);</p><p><b> Clk:系統(tǒng)時(shí)鐘;</b></p><p><b> Clr:復(fù)位信號(hào)。</b></p><p>&
91、lt;b> 輸出信號(hào)包括:</b></p><p> Y_out:32位數(shù)據(jù)輸出;</p><p> Done:輸出狀態(tài),運(yùn)算正常結(jié)束;</p><p> Busy:輸出狀態(tài),系統(tǒng)忙;</p><p> Errors:輸出狀態(tài),運(yùn)算錯(cuò)誤。</p><p> 最終系統(tǒng)的接口設(shè)計(jì)如下接口設(shè)計(jì)圖
92、4.11所示。</p><p><b> 2.系統(tǒng)劃分</b></p><p> 可編程濾波器其主要元件有ROM、RAM、乘法器、累加器、加法器、判決電路、系數(shù)調(diào)整元件以及控制電路。下面按照LTE的運(yùn)算順序一一地對(duì)每個(gè)模組作進(jìn)一步介紹。</p><p> 兩個(gè)RAM作為輸入,分別用來(lái)存放抽頭輸入x(n)和抽頭權(quán)值w(n),由控制信號(hào)X_r
93、am_we和W_ram_we來(lái)控制信號(hào)的寫入。其中X_RAM用來(lái)產(chǎn)生信號(hào)的延遲,W_RAM存放FIR每個(gè)Tap的抽頭權(quán)值,其輸入W_coef_in為系數(shù)更新模組的輸出,其輸出為更新后的抽頭權(quán)值。4個(gè)16位鎖存器,分別用來(lái)存放x(n)和w(n)的實(shí)部和虛部,分別由實(shí)部使能</p><p> 信號(hào)Latch_re和虛部使能信號(hào)Latch_im控制鎖存,這兩個(gè)信號(hào)由控制部分提供。2個(gè)16位的2選1選擇器用來(lái)選擇乘法操
94、作的操作數(shù),由乘數(shù)選擇信號(hào)Mux_sel_a和Mux_sel_b來(lái)控制,兩個(gè)信號(hào)的四種組合00、11、01、10可以完成實(shí)部和虛部之間4個(gè)乘法運(yùn)算,這兩個(gè)信號(hào)也由控制部分來(lái)提供。</p><p> 乘法器的輸出為32位,輸出先后順序?yàn)镽(x)R(w),I(x)I(w),R(x)I(w),I(x)R(w),前兩項(xiàng)為最終結(jié)果的實(shí)數(shù)值,后兩項(xiàng)為虛數(shù)值。四項(xiàng)依順序存放到兩個(gè)32位的鎖存器,進(jìn)行加減運(yùn)算。</p&g
95、t;<p> 加法器的結(jié)果存放到兩個(gè)32位的鎖存器中,分別存放結(jié)果的實(shí)部和虛部。實(shí)部和虛部分別送到兩個(gè)累加器中進(jìn)行累加。累加器的輸出分別為最終結(jié)果的實(shí)部和虛部,籍由一個(gè)2選1選擇器,可以輸出最終結(jié)果,并輸入判決電路。通過判決電路,可以得到期望的輸出值。倘若系統(tǒng)已經(jīng)完成了訓(xùn)練模式,進(jìn)入追蹤模式,則此模組的輸出在理論上就等于系統(tǒng)發(fā)送端經(jīng)過濾波所得的信號(hào),這樣,就達(dá)到了信號(hào)恢復(fù)的功能。減法器的功能是獲得誤差信號(hào)ke,最終通過k
96、e調(diào)整FIR的系數(shù),使系數(shù)逼近最佳權(quán)重。ke輸入系數(shù)更新電路,獲得更新后的系數(shù)存放在W_RAM中,系數(shù)更新電路的輸入還有前一個(gè)信號(hào)時(shí)間的系數(shù)kw和信號(hào)值kx,步長(zhǎng)參數(shù)μ,籍由等式(4-11)進(jìn)行運(yùn)算獲得當(dāng)前的信號(hào)系數(shù)w。</p><p> 系統(tǒng)的控制部分和運(yùn)算部分之間的連接見圖4.13。圖中表明了兩個(gè)部分之間需要的控制信號(hào),這些信號(hào)在VHDL描述時(shí),定義為內(nèi)部的SIGNAL。</p><p&
97、gt; 圖4.9是整個(gè)系統(tǒng)的分解結(jié)果,32位的鎖存器由4個(gè)8位鎖存器組成,8位的鎖存器由D觸發(fā)器構(gòu)成,數(shù)據(jù)選擇器有16位的和32位的,在圖中沒有區(qū)分。</p><p> 圖4.9 系統(tǒng)分析結(jié)果圖</p><p> 4.3.4 復(fù)數(shù)自適應(yīng)濾波器設(shè)計(jì)防真</p><p> 圖4.10 8階LMS自適應(yīng)濾波器設(shè)計(jì)圖</p><p>
98、圖4.10使用DSPBuilder設(shè)計(jì)的8階LMS自適應(yīng)濾波器,更高階的濾波器可以通過級(jí)連實(shí)現(xiàn)[6][7].設(shè)計(jì)是根據(jù)自適應(yīng)濾波器的原理,使用DSPBuilder提供的模塊連接而成.測(cè)試的數(shù)據(jù)為一段語(yǔ)言信號(hào),在Windows下采集以后由MATLAB讀入,并且保存為mat文件.然后使用MATLAB的濾波器模塊生成了一個(gè)濾波器模型,將測(cè)試數(shù)據(jù)通過濾波器以后作為自適應(yīng)濾波器的參考信號(hào).首先在MATLAB下仿真,通過以后可以編譯、適配、將設(shè)計(jì)變
99、為硬件實(shí)現(xiàn),然后可以進(jìn)行后仿真或下載到硬件實(shí)現(xiàn).</p><p> 設(shè)計(jì)中所有外部的信號(hào)輸入、輸出DSPBuilder的模塊之前,必須經(jīng)過Input Port和Output Port,相當(dāng)于經(jīng)過FPGA的I/O口.DSPBuilder的庫(kù)里提供了大量的可以直接轉(zhuǎn)換為硬件的模塊.在這些模塊當(dāng)中,各種總線操作模塊對(duì)于數(shù)字信號(hào)處理有著比較重要的作用.信號(hào)的乘加運(yùn)算會(huì)導(dǎo)致數(shù)據(jù)位數(shù)的擴(kuò)展,用戶在設(shè)計(jì)信號(hào)處理系統(tǒng)時(shí),一定要
100、仔細(xì)分析輸入數(shù)據(jù)的動(dòng)態(tài)范圍,避免不必要的數(shù)據(jù)精度,同時(shí)要注意小數(shù)點(diǎn)的位置,以免溢出.中間結(jié)果和輸出結(jié)果可以用數(shù)據(jù)截位,數(shù)據(jù)重解釋等部件進(jìn)行處理.這些工作直接使用HDL編碼是較為繁瑣的,在DSPBuilder中則顯得相對(duì)簡(jiǎn)單.例如在圖的設(shè)計(jì)中,輸入數(shù)據(jù)的格式為10位,小數(shù)點(diǎn)在第9位和第8位之間,輸入信號(hào)欲轉(zhuǎn)化為整數(shù),以避免處理小數(shù).這種情況下可以使用數(shù)字增益模塊(實(shí)際上是常數(shù)乘法器),或者移位器來(lái)實(shí)現(xiàn),最簡(jiǎn)單的方法是使用總線重解釋模塊,將
101、小數(shù)點(diǎn)解釋為最低位,隨后的硬件處理將輸入數(shù)據(jù)視為整數(shù)數(shù)處理.在輸出端只需反方向解釋數(shù)據(jù)即可回復(fù)原來(lái)的格式,這些模塊并不會(huì)消耗實(shí)際的硬件資源.類似的模塊還有總線轉(zhuǎn)換器,除以2的冪次運(yùn)算可以使用總線轉(zhuǎn)換器在總線上截取若</p><p> 表1 速度與資源占用</p><p> 圖4.11 8階LMS濾波器的時(shí)序仿真圖 圖4.12 8階NLMS濾波器的時(shí)序仿真圖</p>
102、<p> 在DSPBuilder中可以插入TestBench測(cè)試臺(tái)生成器,在Simulink環(huán)境下直接啟動(dòng)Modelsim進(jìn)行后仿真,根據(jù)FPGA的設(shè)計(jì)流程規(guī)范,后仿真可以驗(yàn)證設(shè)計(jì)將來(lái)在硬件實(shí)現(xiàn)上的正確性.圖11、12是8階LMS和NLMS濾波器的Modelsim仿真波形.圖中可以看見濾波器輸出誤差的收斂,濾波器輸出和參考輸入趨于一致的過程.可見,當(dāng)輸入的信號(hào)為語(yǔ)音信號(hào)時(shí),NLMS濾波器的收斂性能要大大優(yōu)于LMS濾波器.&l
103、t;/p><p><b> 4.4小結(jié)</b></p><p> 本章采用FPGA實(shí)現(xiàn)了基于LMS算法的自適應(yīng)濾波器。采用VHDL編寫代碼實(shí)現(xiàn)。LMS(最小均方誤差)算法,并用MaxPlusll進(jìn)行編譯、綜合,F(xiàn)PGA器件選用ALTERA公司的eyefone系列的EPLC12芯片。設(shè)計(jì)在未大規(guī)模增加硬件資源的前提下極大縮短了運(yùn)算周期,達(dá)到了我們?cè)O(shè)計(jì)的目的。</p
104、><p><b> 5 結(jié)論</b></p><p> 自適應(yīng)信號(hào)處理技術(shù)廣泛應(yīng)用于系統(tǒng)辨識(shí)、回波消除、自適應(yīng)譜線增強(qiáng)、自適應(yīng)信道均衡、語(yǔ)音線性預(yù)測(cè)、預(yù)測(cè)解卷、信號(hào)檢測(cè)、自適應(yīng)噪聲消除、自適應(yīng)天線陣等諸多信號(hào)處理領(lǐng)域中。自從Widrow提出著名的LMS算法以來(lái),人們已經(jīng)提出了許多自適應(yīng)濾波算法,對(duì)自適應(yīng)濾波算法的研究己經(jīng)成為當(dāng)今自適應(yīng)信號(hào)處理中最為活躍的研究課題之一。
105、信號(hào)的統(tǒng)計(jì)量在自適應(yīng)信號(hào)處理中起著極其重要的作用,累積量是一種重要的統(tǒng)計(jì)量之一。高階統(tǒng)計(jì)量能抑制高斯噪聲或其它具有對(duì)稱概率分布函數(shù)的噪聲,基于累積量的自適應(yīng)濾波算法己出現(xiàn)在信號(hào)處理的許多應(yīng)用中。本文采用模塊化的設(shè)計(jì),提出用自適應(yīng)FIR復(fù)數(shù)濾波器的設(shè)計(jì)和FPGA的實(shí)現(xiàn)設(shè)計(jì)電路經(jīng)過軟件驗(yàn)證并進(jìn)行硬件仿真,結(jié)果表明電路工作可靠,能滿足設(shè)計(jì)要求.對(duì)線性自適應(yīng)濾波器的算法作了大量調(diào)查和研究,詳細(xì)比較了LMS算法和RLS算法的,并結(jié)合硬件設(shè)計(jì)考慮,
106、最終采用改進(jìn)的LMS算法提出一種設(shè)計(jì)自適應(yīng)濾波器的并行結(jié)構(gòu),將濾波過程與自適應(yīng)過程并行設(shè)計(jì)可縮短一半的運(yùn)算周期。針對(duì)通信系統(tǒng)基帶處理的情況,將設(shè)計(jì)應(yīng)用于復(fù)數(shù)濾波器,在盡量不增加硬件資源的前提下,提高運(yùn)算速度,采用并──串結(jié)合的方式設(shè)計(jì)自適應(yīng)FIR</p><p><b> 致 謝</b></p><p> 經(jīng)過這次畢業(yè)設(shè)計(jì),我覺得自己學(xué)到了不少東西,雖然在設(shè)計(jì)
107、過程中,遇到了很多問題和困難,但通過老師的指導(dǎo)、同學(xué)的幫助和自己的努力,基本上完成了設(shè)計(jì)要求。</p><p> 在這里,我要特別感謝我的導(dǎo)師xxx老師,她給了我許多的幫助和指導(dǎo)。在做論文期間,老師指導(dǎo)我學(xué)習(xí)相關(guān)資料,讓我能夠很廣泛的學(xué)習(xí)到更多以前沒有學(xué)過的知識(shí),耐心的指正我設(shè)計(jì)中的不足之處。老師豐富廣博的知識(shí),以及在做人處事方面,都給我留下了深刻的印象,使我受益非淺。</p><p>
108、 同時(shí),也要感謝其他的老師和同學(xué),謝謝他們?cè)诖髮W(xué)幾年的學(xué)習(xí)生活中對(duì)我的教導(dǎo)和幫助,讓我各方面得到了成長(zhǎng)和完善。</p><p> 由于本人水平有限,本論文若有錯(cuò)誤之處,敬請(qǐng)各位老師和同學(xué)指正.</p><p><b> 參考文獻(xiàn)</b></p><p> [1]高鷹.一種變步長(zhǎng)自適應(yīng)濾波算法及分析.電子學(xué)報(bào),2(X)1,29(8):1儀
109、科陽(yáng)1</p><p> [2]曾召華.劉貴忠.基于變步長(zhǎng)LMS的自適應(yīng)匹配算法.電子與信息學(xué)報(bào),2(X只,26(2):241一加7</p><p> [3]李國(guó)峰等.基于VHDL語(yǔ)言的LMS自適應(yīng)濾波器的硬件實(shí)現(xiàn)方法.南開大學(xué)學(xué)報(bào)(自然科學(xué)).2(X),35(3).</p><p> [4]高清運(yùn),李學(xué)初.自適應(yīng)濾波器的FPGA實(shí)現(xiàn).電子測(cè)量與儀器學(xué)報(bào).2(
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)設(shè)計(jì)---基于fpga的fir數(shù)字低通濾波器的設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)基于fpga的fir數(shù)字濾波器設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)-基于fpga的fir數(shù)字濾波器設(shè)計(jì)
- 基于fpga的cic濾波器設(shè)計(jì)
- 基于fpga的成型濾波器設(shè)計(jì)
- 基于fpga的fir濾波器設(shè)計(jì)
- 通信畢業(yè)設(shè)計(jì)-- 基于fpga的fir數(shù)字濾波器的設(shè)計(jì)
- 基于fpga的fir濾波器設(shè)計(jì)書
- 基于fpga的數(shù)字高通濾波器設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)----基于matlab的模擬濾波器的設(shè)計(jì)
- 基于fpga的fir濾波器課程設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)論文--基于matlab的模擬濾波器的設(shè)計(jì)
- 維納濾波器設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)(論文)-基于matlab的fir濾波器設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)--基于matlab 的高階低通濾波器的設(shè)計(jì)
- 有源濾波器的設(shè)計(jì)畢業(yè)設(shè)計(jì)論文
- fpga課程設(shè)計(jì)報(bào)告--基于fpga的fir濾波器的設(shè)計(jì)
- 基于FPGA的有源電力濾波器設(shè)計(jì).pdf
- 有源濾波器的設(shè)計(jì)畢業(yè)設(shè)計(jì)論文
- 基于fpga的iir數(shù)字低通濾波器設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論