《電子技術應用》
您所在的位置:首頁 > 模擬設計 > 設計應用 > 一種高階音頻均衡濾波器的設計實現
一種高階音頻均衡濾波器的設計實現
摘要: 音頻均衡器作為高品質音響不可或缺的關鍵附屬調節設備,在音效調整修飾方面起著至關重要的作用。一般音頻均衡器有數字和模擬兩種實現方法,模擬方法用有源和無源濾波器組實現。
Abstract:
Key words :

  音頻" title="音頻">音頻均衡" title="均衡">均衡器作為高品質音響不可或缺的關鍵附屬調節設備,在音效調整修飾方面起著至關重要的作用。一般音頻均衡器有數字和模擬兩種實現方法,模擬方法用有源和無源濾波器" title="濾波器">濾波器組實現,受器件溫度等特性的影響,難以達到較高的可靠性和一致性,且成本較高。數字實現方法采用數字濾波器,具有較高的靈活性和可靠性。常用的數字濾波器有IIR和FIR兩種。IIR濾波器結構簡單,所需的存儲空間小,但其相位是非線性;FIR濾波器是線性相位濾波器,這對高品質音效處理是必要的。本文通過在FPGA內設計了1 024階FIR濾波器實現數字均衡濾波,通過系數的重載實現多種頻率響應的均衡特性。

  1 總體概述

  文中設計的FIR音頻均衡濾波器采用多相濾波結構,用時間換取空間,節省FPGA內部資源,以達到在固定資源下的最大階數。實現結構框圖如圖1所示。

數字濾波器實現結構框圖

圖1 數字濾波器實現結構框圖

  輸入序列以及濾波系數分別存儲在緩存陣列中,在時鐘同步下由控制模塊通過生成相應的讀寫地址及使能信號,使其按照一定次序輸出到乘累加模塊進行運算,并輸出最終結果。系數可通過外部輸入重載,以實現不同的均衡特性。EP1C3系列FPGA共有13個M4K塊,每個為256 ×18位,取數據和系數的位寬為16位。為了充分利用有限資源,并考慮處理速度及音頻信號速率要求,取每個緩存子模塊的存儲深度為256,即將乘累加模塊復用256次,每256個系統時鐘周期運算一個采樣點數據,輸出一個濾波結果。每個緩存子模塊占用一個M4K塊,連續4個子模塊串聯,就可實現256 x4=1 024階的要求,再考慮系數占用的空間,總共消耗8個M4K塊。這也是在有限資源下能實現的最高階" title="高階">高階數。

  2 各模塊實現

  2.1 輸入序列緩存模塊

  輸入序列緩沖模塊采用雙口RAM模塊實現,將4個級聯使用,如圖2所示。4個子塊使用相同的讀寫地址及使能信號,采樣數據從第一個子塊輸入,第一個子塊的數據輸出端與下一級子塊的輸入端直接相連,依次類推。每個緩存子塊的數據y1~y4都輸出給乘累加模塊進行運算。

輸入序列緩沖模塊實現框圖

圖2 輸入序列緩沖模塊實現框圖

  該模塊的關鍵是讀寫地址的控制,寫地址waddr必須滯后讀地址raddr一個時鐘周期,這樣子塊當前輸出數據會在下個時鐘寫入下一個子塊的相應單元。256個周期后,子塊的數據整體移到下一個子塊。

 

  2.2 濾波器系數存儲模塊

  濾波器系數存儲模塊和輸入序列緩存模塊相對應,采用雙口RAM模塊實現,共有4個256深度的雙口RAM模塊,如圖3所示。

 濾波器系數存儲模塊實現框圖

圖3 濾波器系數存儲模塊實現框圖

  4個子塊使用相同的輸入數據線,通過系數寫地址的譯碼,生成各子塊的寫使能’wen1~wen4和寫地址h_addr,控制輸入的系數按照順序依次存入到RAM中。系數的讀地址h_addr由控制模塊生成,4個子塊共用一個讀地址,輸出與數據相對應的系數h1~h4到乘累加模塊,進行乘累加運算。

  2.3 控制模塊

  控制模塊產生輸入序列緩存模塊的讀寫地址、使能信號以及濾波系數存儲模塊的讀地址、使能信號,并對乘累加運算進行控制。

  輸入序列需要在緩存模塊中反復移位輸出進行運算,每256個時鐘周期輸入1個數,輸入序列的寫地址必須滯后讀地址一個時鐘周期,才能保證數據的連續、不丟失。這樣新寫入的數據不在固定的位置,就要求讀地址也不是單純的累加關系。以每個RAM塊深度等于4為例研究讀寫地址的關系,如圖4所示。

每個RAM塊深度為4時讀寫順序
 

圖4 每個RAM塊深度為4時讀寫順序

  可見此時輸入序列的讀地址順序如圖5所示。

每個RAM塊深度為4時讀地址
 

圖5 每個RAM塊深度為4時讀地址

  由此類推可得實際輸入序列緩存模塊的讀地址如圖6所示。

輸入序列緩存模塊讀地址
圖6 輸入序列緩存模塊讀地址

  整個控制模塊的實現如圖7所示。主計數器整體計數,每256個時鐘周期,地址產生模塊就把計數器的計數值整體加1,作為輸人序列的讀地址raddr輸出,實現了圖6所示的地址順序。寫地址waddr由讀地址raddr經延時一個時鐘周期獲得。由于輸入序列是按時間順序輸出的,故濾波系數只要從存儲陣列中也相應地順序輸出就可以了,將主計數器的計數值直接引出作為濾波系數陣列的讀地址h_addr。

整個控制模塊的實現

圖7 整個控制模塊的實現

  主計數器的輸出經過譯碼電路后,輸出數據的低速采樣時鐘sa_clk,用來同步輸入序列。還輸出輸入序列的寫使能wren,每256個時鐘周期使能一次,寫一次數據。

  2.4 乘累加模塊

  乘累加模塊負責將輸入的數據和系數進行乘累加運算,每256個時鐘周期輸出一個濾波結果。其實現框圖如圖8所示。

乘累加模塊實現框圖

圖8 乘累加模塊實現框圖

  輸入序列緩存模塊輸出的數據y1~y4和濾波器系數存儲陣列輸出的相應系數h1~h4在該模塊進行乘累加運算。每256個時鐘周期,計算完1個采樣點數據的4個部分y1’~y4’,由鎖存器鎖存,經兩級流水線加法器后得到最終濾波結果y,然后將累加器清零,開始準備下個采樣點數據的計算。其中,鎖存器的鎖存時鐘及乘累加器的清零信號都由輸入序列的寫使能wren經過相應的延時處理后得到。

  3 仿真結果

  對設計的均衡濾波器進行綜合編譯,編譯報告如圖9所示。

 編譯報告

圖9 編譯報告

  可見該1 024階FIR均衡濾波器在EP1C3系列FPGA內得以實現,僅占用其約70%的邏輯資源和約50%的存儲空間。為了驗證該設計功能,將濾波器系數利用存儲器初始化文件進行初始化,存儲的系數如圖10所示。

濾波器初始化系數
 

圖10 濾波器初始化系數

  為了直觀驗證,輸入序列x取為δ序列,即x中只有1個數據為1,其它為0。根據濾波器及卷積的相關知識,輸出結果y=x*h=δ*h=h,即為濾波器系數。仿真結果如圖11所示。

 濾波器仿真結果
 

圖11 濾波器仿真結果

  輸入序列x只有1個采樣時鐘周期為數據1,其它全為0,fout為輸出的濾波結果。可見結果為-1~-16的重復數據,與圖10所示的濾波器系數一致,濾波器工作正常。

  4 結束語

  利用EP1C3約70%的邏輯單元及約50%的存儲空間,設計了1024階FIR數字濾波器,并通過重載系數,可實現多種頻率響應的均衡特性,實現了簡易數字均衡濾波器的功能,達到了設計目標。

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 国产精品香蕉在线| freexxxx性女hd性中国| 果冻传媒国产仙踪林欢迎你| 亚洲综合久久精品无码色欲| 精品久久久中文字幕一区| 国产一区二区三区在线观看影院| 国产精品亚洲四区在线观看| 国产精品对白交换视频| 99久久99久久精品国产片果冻| 小sao蹄子你好sao啊| 中文字幕中文字幕在线| 日本三级韩国三级香港三的极不 | 国产浮力影院第一页| 国产精品无码久久久久久久久久| 99热精品在线免费观看| 好大好硬使劲脔我爽视频| 三上悠亚伦理片| 成年性生交大片免费看| 久久久一本精品99久久精品88 | 操动漫美女视频| 久久亚洲美女精品国产精品| 日韩电影免费观看| 亚洲VA中文字幕无码毛片| 欧美乱强伦xxxxx高潮| 亚洲国产精品网站久久| 欧美精品videosex极品| 亚洲精品无码国产| 特级深夜a级毛片免费观看| 免费一级乱子伦片| 短篇丝袜乱系列集合嘉嘉| 免费观看的a级毛片的网站| 精品国产一区二区| 初尝黑人巨砲波多野结衣| 精品无人乱码一区二区三区| 又大又湿又紧又爽a视频| 美女扒开胸罩让男生吃乳| 四虎影视大全免费入口| 美女视频黄频a免费大全视频| 四虎影视永久费观看在线| 美女被爆羞羞视频网站视频| 啊灬啊别停灬用力啊岳|