在振動、聲學、地震、通訊、雷達、控制系統和生物醫學工程等廣泛的科學技術領域中都對實際所觀察的信號提出了濾波和頻譜分析的要求。以數字形式對它們進行處理的內容,就構成了數字信號處理的基本研究內容。在虛擬儀器中濾波技術有著廣泛的應用。從測試現場采集到的信號中包含有對數據處理有用的信號、無用信號和噪聲,濾波的目的是從信號中提取有用的信號。在虛擬儀器系統中,將信號采集到電腦中,通常還需要利用軟件完成復雜的分析和信號處理工作,LabVIEW 提供了大量的分析工具,成熟的算法,方便了軟件的開發。基于此本文在PC機LabVIEW軟件中模擬產生一個接近于實際信號的帶噪聲的信號,生成一個帶噪聲的信號發生裝置。選擇濾波速度較快的無限沖激響應濾波器IIR,對虛擬濾波器去除噪聲進行設計。 1、設計思路 在信號傳輸過程中,經常會混入高頻噪聲,噪聲的能量甚至會超過信號能量。因此接收端收到信號后,通常首先要進行低通濾波,然后才能對信號做進一步處理。 設計的流程圖圖1所示: 2.虛擬濾波器去除噪聲VI設計原理 2.1 生成濾波器的自選信號 自選信號是信號發生器發出的信號加上噪聲信號來實現的。在信號發生器部分應用Basic Function Generator.vi產生正弦波、方波、三角波、鋸齒波等標準信號,噪聲部分我使用了Uniform. White Noise Waveform.vi生成均勻分布的偽隨機的白噪聲,然后一起相加生成自選信號。 圖1 虛擬濾波器去除噪聲VI流程圖 在本程序中,設定Fs(采樣頻率)和#s(采樣點數)均為1000,根據奈奎斯特抽樣定理生成信號的頻率小于Fs/2,頻譜就不會失真,所以Basic Function Generator.vi生成信號的頻率最好不要超過500Hz。但經過試驗在LabVIEW中采樣頻率如果越接近Fs/2頻譜很容易失真。所以Basic Function Generator.vi生成信號的頻率一定要根據實際使用情況選擇。 噪聲的幅度值在[-a,a]之間,a是幅度的絕對值,本次設的是默認值0.10。由于生成的噪聲輸出信號要和Basic Function Generator.vi的生成信號相加,所以Sampling info(采樣信息)和Basic Function Generator.vi的Sampling info一致。輸出的signal out同樣也是一個簇,包含了to,Y,dt三個數據,各個數據的作用和Basic Function Generator.vi中的signal out是一樣的。Basic Function Generator.vi和Uniform. White Noise Waveform.vi的signal out輸出的信號各自經過一個get waveform. component.vi得到波形成分Y。最后兩者生成的信號經過get waveform. component.vi后再經過一個Add得到模仿的真實信號,如圖2所示,在連線時可以將兩者的error in(out)相連以備最后總程序產生報錯系統。 圖2 自選信號部分程序圖 2.2. 濾波部分 濾波部分是本程序的核心部分。選用濾波速度快,對相位沒有要求的IIR濾波器,本程序采用Butterworth濾波器和Chebyshev濾波器。巴特沃斯濾波器擁有最平滑的頻率響應,在截斷頻率以外,頻率響應單調下降。在通帶中是理想的單位響應,在阻帶中響應為零,過渡帶的陡峭成度正比于濾波器的階數,所以通過提高階數可以明顯的提高濾波效果。并且可以選擇低通濾波,高通濾波,帶通濾波或者帶阻濾波,用戶可以根據自己的濾波要求選擇合適的濾波模式。這個功能的實現是用一個case選擇結構完成的。 在程序的前面板,用一個下拉框表來實現選擇不同濾波器模式的功能,總共設置了九種不同的模式,當我們要觀察自選信號不經過濾波的形狀時我們可以選擇關閉濾波器,當我們觀察在不同濾波器下的濾波效果時可以切換到不同的模式觀察,濾波部分的程序圖表如圖3所示。 圖3 濾波部分 2.3.顯示部分 顯示部分是本程序面向用戶的一個關鍵部分,最終的成果是通過它呈現出來。我們要顯示的波形圖分為濾波前的自選信號和濾波后的信號。 時域信號的顯示:從濾波部分以數組方式輸出的信號即為濾波結果的時域信號,這里通過一個Build Waveform.vi來恢復波形并連接Waveform. Graph(波形圖)這樣就可以在前面板上顯示濾波后的信號波形了。在本程序中,Y就是從濾波器輸出的數組元素,dt是在生成自選信號時設定的Fs的倒數。to為默認值0,相當于從坐標軸的原點開始顯示波形。 頻域信號的顯示:這里主要用到的是Real FFT.vi Real FFT.vi:這個VI計算輸入序列的快速傅立葉變換(FFT)或離散傅立葉變換(DFT)。如果輸入序列的長度為2的冪,Real FFT.vi將執行FFT程序;如果輸入序列的長度不是2的冪,則會調用一個有效的DFT程序。本程序中將濾波器輸出的數組輸入到Real FFT中進行快速傅立葉變換,這時候的輸出是復數數組,才通過一個Complex To Polar.vi得到信號的幅度分量。顯示部分的程序如圖4所示: 圖4 顯示部分的程序圖 3. 去除噪聲效果測試 首先選擇待濾波的自選信號的參數,這里選擇的自選信號是由頻率為10Hz,幅度為1V的正弦信號疊加幅度為0.5V的白噪聲信號組成的,如圖5所示: 圖5 自選信號時域波形 設置巴特沃斯低通濾波器的低截止頻率大于10HZ,這里選擇是的是15Hz。自選信號經過濾波器后的輸出信號如圖6所示:從圖中看到,噪聲信號已經被濾除掉,得到加噪聲之前的正弦信號,達到我們預期的濾波效果。 圖6濾波后的信號 4、結論 本文的創新點是在PC機LabVIEW軟件中模擬產生一個接近于實際信號的帶噪聲的信號,生成一個帶噪聲的信號發生裝置。由于需要濾除的是白噪聲,所以選擇濾波速度較快的無限沖激響應濾波器IIR,對于濾波后的信號以數組的方式得到,通過合理的顯示方式可以直觀的看到信號濾波后的效果,對信號濾波前后的時域對比給出。 |