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

9 ビュー (過去 30 日間)
DH
DH 2017 年 12 月 11 日
回答済み: mojtaba rayati 2023 年 12 月 5 日
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.

回答 (1 件)

mojtaba rayati
mojtaba rayati 2023 年 12 月 5 日
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

カテゴリ

Help Center および File ExchangeDigital Filter Analysis についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by