信號的頻譜分析,加噪降噪處理


信號的頻譜分析,加噪降噪處理

一、題目:
說一段話並錄音:信號與系統真有趣,我愛信號與系統,我愛學習。
(1)用Matlab讀取語音信號,理解信號含義及抽樣頻率的含義,並繪制語音信號時域波形。
(2) 語音信號頻譜分析,使用FFT分析信號頻譜,觀察語音信號的頻域特性。
(3) 語音信號變換:快放,慢放,疊加噪聲等。
(4) 根據頻譜分析結果設計帶通濾波器,對語音信號進行降噪過濾

二、分析:
1.通過audioread函數來讀取信號,通過采樣,得到了輸入信號的時域信號。然后通過快速傅里葉變換FFT,得到了輸入信號的頻域(本課程未要求)波形。
2.加入高頻和低頻信號來模擬噪聲。加入到原始的信號中,進而分析混合音頻的頻譜和時域波形。
3.Sound函數通過改變采樣率來實現快放和慢放。
4.首先通過matlab產生的頻譜對音頻進行頻率分析,忽略高頻(電流噪聲),得到本人的聲音頻率區間:大部分落在120-200HZ范圍內。
圖1 實驗者本人的聲音頻率范圍

為了盡可能的濾掉噪音,不可避免地損失部分原聲頻率。設計帶通濾波器,使它允許通過150-160HZ的濾波器。發現此時的濾波效果最好,同時損失程度不是很大。
5.因為一階濾波器的濾波效果是有限的,所以最優濾波效果仍然無法滿足足夠的濾波效果,考慮建立二階帶通濾波器。進行實驗。
經查閱資料[1]:二階帶通濾波器與中心角頻率和阻尼系數有關:當二階濾波器的阻尼系數K為0.707時,效果最好。中心角頻率ω=2πf,根據實際情況選定f=160HZ。同時二階帶通濾波器的系統函數為: H(s)=Kωs/(s2+Kωs+ω2 )
進行降噪,發現效果優於一階帶通濾波器。
圖2 一階帶通濾波器降噪效果

圖3 二階帶通濾波器降噪效果

盡管損失了部分原來聲音頻率,但是很好的濾掉了高頻噪聲。

三、MATLAB代碼如下:

特別注意:錄入的音頻已經提前通過Au變成單聲道文件。

clear;
[y,fs]=audioread('C:\Users\DELL\Desktop\123.wav');
%sound(y,fs);%播放語言信號
%sound(y,0.5*fs);%慢放語言信號
%sound(y,2.5.*fs);%快放語言信號
N=length(y); %信號的長度
T = 1/fs;%采樣間隔
t=(0:N-1)/fs;%時域范圍
figure(1);
subplot(2,1,1);
plot(t,y); %音頻信號時域圖
title('音頻時域圖');
xlabel('Time');ylabel('Amplitude');
Y=fft(y,N);%快速傅里葉變換
subplot(2,1,2);
df=fs/length(Y); %計算譜線間隔
f=0:df:(fs/2-df); %頻譜范圍,截取前半段(抽樣頻率高於最大頻率的2倍)
Yf=abs(Y); %幅度響應
Yf=Yf(1:length(Yf)/2); %由於幅度響應是偶函數,所以截取一半
plot(f,Yf); %音頻信號頻譜圖
axis([0,fs/5,0,2000]);
title('音頻頻譜圖');

%加入噪聲
tt =(1:N);
yn=0.3*cos(25*2*pi/fs*tt')+0.3*cos(20000*2*pi/fs*tt')+0.2*cos(19000*2*pi/fs*tt')+0.2*cos(18000*2*pi/fs*tt')+0.2*cos(17000*2*pi/fs*tt');%加噪聲
s=5.*y+yn; %將噪音和原來的音頻混合,將原來的聲音幅值增大,使得效果更明顯
sound(s,fs);%播放帶噪音的語言信號
figure(2);
subplot(211);
plot(t,s); %加入噪聲的音頻時域圖
title('加入噪聲的音頻時域圖');
xlabel('時間');ylabel('振幅');
grid;%加入網格
subplot(212);
S=fft(s,N);
Sf=abs(S); %幅度
DF=fs/length(S);%計算譜線間隔
f=0:DF:(fs/2-DF);%頻譜范圍,截取前半段(抽樣頻率高於最大頻率的2倍)
Sf=Sf(1:length(Sf)/2); %由於幅度響應是偶函數,所以截取一半
axis([0,fs/5,0,10000]);%限制坐標范圍能更清楚觀察到頻譜

plot(f,Sf);
title('加入噪聲的音頻頻譜圖');
xlabel('頻率');ylabel('振幅');
grid;

%一般男聲平均150-160hz
r1=10.61;%電阻阻值(ome)
c1=1*10^(-4);%電容(f)
r2=9.947;%電阻阻值(ome)
c2=1*10^(-4);%電容(f)
Func=tf([1 0],[r1*c1 (1+(r1*c1)/(r2*c2)) 1/(r2*c2)]);%系統的傳遞函數
%---------------------補充二階濾波---------------------------------
% omega=2*pi*f,而f是160hz,中心角頻率
%二階濾波器的阻尼系數0.707
k=0.707;
omega=180;
%Func=tf([k.*omega 0],[1 k.*omega omega.*omega]);%二階系統的傳遞函數
[yout,tout] = lsim(Func,s,t);%濾波后信號圖像
%sound(yout,fs);%
figure(3);
subplot(211);
plot(tout,yout); %消除噪聲的音頻時域圖
title('消除噪聲的音頻時域圖');
xlabel('時間');ylabel('振幅');
grid;
subplot(212);
S=fft(yout,N);
Sf=abs(S); %幅度
DF=fs/length(S);%計算譜線間隔
f=0:DF:(fs/2-DF);%頻譜范圍,截取前半段(抽樣頻率高於最大頻率的2倍)
Sf=Sf(1:length(Sf)/2); %由於幅度響應是偶函數,所以截取一半
axis([0,fs/5,0,10000]);%限制坐標范圍能更清楚觀察到頻譜

plot(f,Sf);
axis([0,fs/5,0,1000]);
title('消除噪聲的音頻頻譜圖');
xlabel('頻率');ylabel('振幅');
grid;


四、設計的優缺點
1、本課程設計前期采用的為一階濾波器,濾波的能力和精確度都很有限,使用二階濾波的效果提高了精度,仍然很難完全將噪聲過濾。
2.本實驗通過對濾波器的檢驗,觀察當噪音頻率很高或者很低時,低通濾波器和高通濾波器模型的准確度和可行性。。
3.為保證降噪的質量,通過matlab的頻譜分析,忽略掉錄音時產上的高頻電流,得到人聲所在頻率區間,從而設計合理的帶通濾波器。同時針對不同用戶選取不同的帶通濾波器,達到了個性化和合理化。
五、總結
由於時間所限,本文未能完全發掘信號處理的更多內容。例如信號的快放慢放方面如何保證在快放慢放方面聲音的不失真性。以及利用更高階濾波器更好的實現濾波。后續可以從如何提高濾波精度的方面進行更深的研究。

參考文獻:
[1]尉雲峰. RC有源濾波器優化綜合技術研究[J]. 機電工程,2002,(04):34-35.
[2] 鄭君里等. 信號與系統[M]. 北京:高等教育出版社,2011:226-235.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM