【信號(hào)去噪】基于自適應(yīng)濾波+平滑濾波+小波濾波實(shí)現(xiàn)心電信號(hào)去噪處理含Matlab源碼
1 簡介
基于維納濾波、卡爾曼濾波、譜減法實(shí)現(xiàn)語音去噪處理。
2 部分代碼
function [wiener_enspeech] = wienerfilter(testsignal)
%維納濾波器函數(shù)
testsignal=testsignal';
frame_len=256; %幀長
step_len=0.5*frame_len; %分幀時(shí)的步長,相當(dāng)于重疊50%
wav_length=length(testsignal);
R = step_len;
L = frame_len;
f = (wav_length-mod(wav_length,frame_len))/frame_len;
k = 2*f-1; % 幀數(shù)
h = sqrt(1/101.3434)*hamming(256)'; % 漢寧窗乘以系數(shù)的原因是使其復(fù)合條件要求;
% testsignal = testsignal(1:f*L); ?% 帶噪語音與純凈語音長度對(duì)齊
% signal= signal(1:f*L); ?
win = zeros(1,f*L); % 設(shè)定初始值;
wiener_enspeech = zeros(1,f*L); ? ? ? ? ? ? ? ? ? ? ? ?
%-------------------------------分幀-------------------------------------
for r = 1:k
? ?y = testsignal(1+(r-1)*R:L+(r-1)*R); % 對(duì)帶噪語音幀間重疊一半取值;
? ?y = y.*h; % 對(duì)取得的每一幀都加窗處理;
? ?w = fft(y); % 對(duì)每一幀都作傅里葉變換;
? ?Y(1+(r-1)*L:r*L) = w(1:L); % 把傅里葉變換值放在Y中;
end
%-------------------------------估計(jì)噪聲-----------------------------------
? NOISE= stationary_noise_evaluate(Y,L,k); %噪聲最小值跟蹤算法
% 每幀中的傅里葉變換和噪聲估計(jì)均如上所示
%-------------------------------winner-------------------------------------
for t = 1:k ? ?
? ?X = abs(Y).^2; ?
? ?S=max((X(1+(t-1)*L:t*L)-NOISE(1+(t-1)*L:t*L)),0);
? ?G_k=(X(1+(t-1)*L:t*L)-NOISE(1+(t-1)*L:t*L))./X(1+(t-1)*L:t*L);
? ?S = sqrt(S);
? ?A1=G_k.*S;
? ?A = Y(1+(t-1)*L:t*L)./abs(Y(1+(t-1)*L:t*L)); % 帶噪于語音的相位;
? ?S = A1.*A; % 因?yàn)槿硕鷮?duì)相位的感覺不明顯,所以恢復(fù)時(shí)用的是帶噪語音的相位信息;
? ?s = ifft(S); ?
? ?s = real(s); % 取實(shí)部;
? ?wiener_enspeech(1+(t-1)*L/2:L+(t-1)*L/2) = wiener_enspeech(1+(t-1)*L/2:L+(t-1)*L/2)+s; % 在實(shí)域疊接相加;
? ?win(1+(t-1)*L/2:L+(t-1)*L/2) = win(1+(t-1)*L/2:L+(t-1)*L/2)+h; % 窗的疊接相加;
end
wiener_enspeech = wiener_enspeech./win; % 去除加窗引起的增益得到增強(qiáng)的語音;
wiener_enspeech=wiener_enspeech';
end
3 仿真結(jié)果



4 參考文獻(xiàn)
[1]鄭永敏, 鮑鴻, & 張晶. (2017). 基于維納–小波分析的語音去噪新方法. 廣東工業(yè)大學(xué)學(xué)報(bào), 34(5), 4.
[2]何志勇, 朱忠奎. 脈沖噪聲環(huán)境下基于卡爾曼濾波的語音增強(qiáng)[J]. 計(jì)算機(jī)應(yīng)用, 2011, 31(12):5.
博主簡介:擅長智能優(yōu)化算法、神經(jīng)網(wǎng)絡(luò)預(yù)測、信號(hào)處理、元胞自動(dòng)機(jī)、圖像處理、路徑規(guī)劃、無人機(jī)等多種領(lǐng)域的Matlab仿真,相關(guān)matlab代碼問題可私信交流。
部分理論引用網(wǎng)絡(luò)文獻(xiàn),若有侵權(quán)聯(lián)系博主刪除。
