Use FIR Wiener Filter to remove the noise??

37 ビュー (過去 30 日間)
Lana Aydin
Lana Aydin 2021 年 12 月 13 日
回答済み: Akash 2024 年 2 月 20 日
Hello
I have an audio file that added white guass noise to it, I need to determine the FIR filter coefficients using the Wiener-Hopf equation
so I started like this and stopped
[X, Fs] = audioread('test.wav'); % read audio file
gnoise = awgn(X, 15); % Add white guass noise
Noise = gnoise - X; %extract the noise
as a result X and Fs would be Fs = 48000; X = 961452x2 double
how can we design a wiener filter to clear the noise? I wrote the code below for that but it didn't cleared
N = 100;
rxx = xcorr(gnoise, N);
rxy = xcorr(gnoise, X, N);
R = toeplitz(rxx);
W = inv(R).*rxy; %%% my W value is not one dimension, I could't get it as one dimension matrix.
Y = filter(W(:), gnoise);
thankks.

回答 (1 件)

Akash
Akash 2024 年 2 月 20 日
Hi Lana,
To design a Wiener filter that can effectively reduce the noise, you might find the MATLAB File Exchange link provided below useful. It contains a design for a Wiener filter where a signal is taken, noise is added, and then the Wiener filter is applied to mitigate the noise's effect.

カテゴリ

Help Center および File ExchangeSimulation, Tuning, and Visualization についてさらに検索

製品


リリース

R2020b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by