多種類型噪聲濾波.pdf
DSP 系統課程設計 音頻信號多種類型噪聲濾波分析與處理音頻信號多種類型噪聲濾波分析與處理 任課老師:錢滿義 學院:電信學院 班級: 姓名: 學號: 142 同組成員班級: 同組成員姓名: 同組成員學號: 142 2017 年 4 月 20 日 目錄:目錄: 設計背景 . 2 設計要求 . 4 設計思路及原理 . 5 設計思路 . 5 設計原理 . 6 Matlab 實驗. 8 噪聲類型分析過程 8 噪聲濾除方法 . 11 Matlab 仿真過程. 11 Matlab 結果分析總結 . 21 DSP 設計程序運行及結果 21 運行結果 . 21 運行結果分析 . 25 濾波算法程序段 . 26 設計過程中遇到的問題及解決方法 28 DSP 設計感想 29 參考文獻 . 30 設計背景設計背景 隨著信息時代和數字世界的到來, 數字信號處理已成為如今一門極其 重要的學科和技術領域。數字信號處理在通信、語音、圖像、自動控 制、雷達、軍事、航空航天、醫療和家用電器等眾多領域得到了廣泛 的應用。數字信號處理(DSP)包括兩重含義:數字信號處理技術 (Digital Signal Processing)和數字信號處理器(Digital Signal Processor)。數字信號處理(DSP)是利用計算機或專用處理設備, 以數值計算的方法、對信號進行采集、濾波、增強、壓縮、估值和識 別等加工處理,借以達到提取信息和便于應用的目的, 其應用范圍涉 及幾乎所有的工程技術領域。 在信號處理中,濾波就顯得非常重要。在數字信號處理過程中,經常 需對信號進行過濾、檢測、 預測等處理,這些任務的完成都要用到濾 波器。數字濾波器是數字信號處理的基本方法。 根據其單位沖激響應 函數的時域特性可分為兩類:無限沖激響應( IIR)濾波器和有限沖激 響應(FIR)濾波器。FIR 濾波器是有限長單位沖激響應濾波器,在結 構上是非遞歸型的。它可以在幅度特性隨意設計的同時, 保證精確嚴 格的線性相位。所以FIR 數字濾波器廣泛地應用于數字信號處理領 域。 音頻信號(audio)是帶有語音、音樂和音效的有規律的聲波的頻率、 幅度變化信息載體。音頻信號在信號采集、傳輸、處理等過程中常受 到多種類型噪聲的干擾,主要包含環境噪聲、電子線路噪聲、電源噪 聲等等。為了恢復原來的音頻信號, 常需要設計音頻信號濾波算法用 于抑制或者濾除音頻信號中的噪聲。 圖1音頻信號噪聲產生的示意圖 由于音頻信號可能受到不同類型的干擾從而形成不同類型的噪聲, 可通過分析不同類型噪聲的特點, 設計適用的濾波算法實現噪聲的抑 制或濾除。 設計要求設計要求 1、 利用Matlab分析實驗提供的4份含噪音頻信號的特征分析并設計實 現適用于不同類型噪聲的濾波方法。 培養利用Matlab進行信號處理的 仿真能力; 2、對A/D和D/A轉換器及DSP信號處理器進行編程,培養使用DSP硬件 平臺實現信號采集與傳輸能力,同時利用DSP C語言實現對采集到的 信號檢測識別,即具有實時信號處理的能力。 設計思路及原理設計思路及原理 設計思路設計思路 1、 利用Matlab進行仿真分析 (1)分別讀取含有不同種類噪聲的音頻文件提取音頻對應的數據以及 采樣率,顯示含噪信號的時域波形; (2)從時、頻域分別分析含噪信號中噪聲類型特征; (3)設計適用于不同種類噪聲類型的濾波算法,利用Matlab設計含噪 信號濾波處理,嘗試進行濾波性能的定量分析。 2、利用 C 語言設計 DSP 程序,在信號處理平臺上實現噪聲濾波處理 首先利用利用 Matlab 分析音頻信號所含噪聲特征,設計合適的濾波 方法;在DSP 對音頻信號通過 A/D 采集,編寫音頻信號采集、濾波程 序,實現音頻信號的噪聲濾波處理。實驗步驟: (1)音頻信號的噪聲分析 對實驗提供的四份音頻信號利用 Matlab 進行噪聲信號的特征分析, 對每種不同的噪聲提出適用的濾波處理算法; (2)音頻信號的濾波算法實現與驗證 利用 Matlab 編程實現濾波算法,通過濾波后的音頻數據與原始不含 噪聲的音頻數據進行對比分析,計算檢驗濾波算法的性能參數。 (3)音頻信號 DSP 平臺采集 通過音頻線連接計算機聲卡至 DSP 板卡的音頻輸入口, 初始化 DSP 的 A/D 采集模塊的硬件配置(采樣率等),利用查詢模式或者DMA 模式 進行音頻信號的采集,將采集到的音頻信號存儲到申請的緩沖區中。 (4)時域信號的分析 將采集獲得的音頻信號利用 Graph 波形查看功能顯示時域波形, 并從 波形上分析音頻信號的時域特征,并與Matlab 數據進行比較等。 (5)濾波算法的 DSP 平臺實現 在 DSP 平臺上實現音頻信號的濾波算法, 利用 DSP 實現音頻信號中多 種噪聲類型的濾波處理。 (6)DSP 濾波實現的性能驗證 通過 D/A 播放濾波后的音頻信號進行濾波性能的驗證。 設計原理設計原理 x(t) 信號采集與傳輸: DSP 數據流的輸入和輸出 信號處理: Matlab 算法仿真→Simulator 下 C 算法仿真→DSP 硬件處理 抗混迭 濾波器 A/D x[k]數字 信號處理 y[k] D/A 低通 濾波器 y(t) 利用 DSP 實現信號實時 FIR 濾波需要分 4 個步驟: 第 1 步:利用 MATLAB 進行 FIR 濾波仿真 第 2 步:利用 Simulator 在 CCS 下進行 FIR 濾波仿真 第 3 步:編寫利用 DMA 進行信號采集與傳輸程序, 利用 DSP 進行快速 信號采集與傳輸; 第 4 步:實時 DMA 采集外部信號,實現 DSP 信號實時 FIR 濾波 上電復位 A/D和D/A 初始化 J5接收數據 J6輸出數據McBSP初始化 DMA 通道初始化 DMA方式 接收A/D數據 信號濾波 等待DMA接收中斷 主程序 信號經D/A輸出 中斷服務程序 信號采集和濾波的流程圖 在 DMA 采集和傳輸程序的主程序 main_dma.c 中的存儲器處理子程序 processBuffer()中嵌入濾波算法,則可以實現利用 DSP 實現信號實 時濾波。 DSPLIB 庫與 fir()函數的調用方法 調用 DSPLIB 庫時,在工程中要添加庫文件55xdspx.lib(存儲器為大 模式),在 C 源程序中要包含 dsplib.h 頭文件,即#include 。 Fir()函數調用格式: ushort oflag = fir(DATA *x, DATA *h, DATA *r, DATA *dbuffer, ushort nx,ushort nh) 入口參數說明: x[nx]表示含有 nx 個實數的實輸入信號向量; h[nh]表示含有 nh 個實數的系數向量,按自然順序 排列,即濾波器的單位脈沖響應。 r[nx]表示含有 nx 個實數的輸出向量; 允許原位運算,即 r=x。 注:DATA 為 Q15 格式數據 Matlab 實驗工具箱:濾波器設計工具箱 sptool 設計 FIR 濾波器 MatlabMatlab 實驗實驗 噪聲類型分析過程:噪聲類型分析過程: audio_typea 信號噪聲類型:由于信號頻譜是全頻段的,考慮是高