File Exchange

image thumbnail

Signal separation with Wiener filtering

version 1.0.2 (2.03 KB) by Marco Buzzoni
Wiener filter estimation based on Wiener-Hopf equations for signal separation or denoising


Updated 16 Feb 2020

View License

This function provides an implementation of the Wiener filter based on Wiener-Hopf equations.
Given a noisy signal and a reference signal, the Wiener filter can be applied to the noisy signal for estimating the contribution coherent with the reference signal.
Note that this kind of filter may be used also in cascade in order to separate multiple contribution if multiple references are present.
The function is provided with a demo in order to show its application in a simple case and it is full compatible with Octave.

% x = noisy signal
% y = reference signalsinit
% N = filter order
% xest = estimated signal
% b = Wiener filter coefficents
% MSE = mean squared error

Comments and Ratings (3)

Marco Buzzoni

Dear Castillo,
I try to answer to your question (I speak just Italian and English). This function estimate a filter of length N that can denoise a signal (x) by considering a reference signal (y).
X, y and N are inputs that means that they are data that you shall provide to the function in order to achieve the outputs.
A possible application is that when you have an acoustic signal, for instance acquired from a pipe with a noisy flow inside, and the pressure signal of this flow. If want to extract the part of noise due to the flow passage, you can use the acoustic signal as x and the pressure signal as y. Once obtained the Wiener filter, you can filter the acoustic signal obtaining an estimation of the contribution related the flow passage.

Best regards,
Marco Buzzoni

de donde optengo x, y, N?



The code has been improved: the function can be performed by using column or row vectors as inputs.


Title, summary, description and tags have been improved.

MATLAB Release Compatibility
Created with R2019a
Compatible with any release
Platform Compatibility
Windows macOS Linux