Is there a way to initialize a filter to the first unfiltered value?

5 visualizaciones (últimos 30 días)
DH
DH el 11 de Dic. de 2017
Respondida: mojtaba rayati el 5 de Dic. de 2023
I want to filter a data set. Suppose the data set consists of data points which equal 100 plus noise. I want the filtered value to be initialized to the first unfiltered value, instead of zero, so the filter won't have to take a long time to go from zero to the nominal value. Is there a way to do this?
After some thought, I came up with this method: filteredData = filter(b, a, raw - raw(1)) + raw(1); I think this answers my question, but I would welcome any comments.

Respuestas (1)

mojtaba rayati
mojtaba rayati el 5 de Dic. de 2023
Be sure that your b array is normalized then for x0 initial condition: y=filter(b, a, x-x0) + x0.
The Reason: In FIR filter case:
if the above formulation is equal to y=filter(b, a, x-x0) + x0.
Similar reason can be used for IIR Filter

Community Treasure Hunt

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

Start Hunting!

Translated by