Use FIR Wiener Filter to remove the noise??

35 visualizzazioni (ultimi 30 giorni)
Lana Aydin
Lana Aydin il 13 Dic 2021
Risposto: Akash il 20 Feb 2024
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.

Risposte (1)

Akash
Akash il 20 Feb 2024
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.

Categorie

Scopri di più su Simulation, Tuning, and Visualization in Help Center e File Exchange

Prodotti


Release

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by