Effacer les filtres
Effacer les filtres

Use FIR Wiener Filter to remove the noise??

27 vues (au cours des 30 derniers jours)
Lana Aydin
Lana Aydin le 13 Déc 2021
Réponse apportée : Akash le 20 Fév 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.

Réponses (1)

Akash
Akash le 20 Fév 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.

Catégories

En savoir plus sur Audio Processing Algorithm Design dans Help Center et File Exchange

Produits


Version

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by