Hello everyone,
As the title says, I should find a general way to normalize some filters to have unity gain at DC. My filters are an Hanning window (note that b/d and a/c are the vectors in which are reported the coefficients of, respectively, numerator and denominator of the transfer function of the filters)
b = [0.25 0.5 0.25];
a = [1 0 0];
And a derivative-based filter:
d = [1 -1];
c = [1 -0.95]
Any help will be greatly appreciated.

 採用された回答

Honglei Chen
Honglei Chen 2013 年 10 月 8 日

0 投票

I don't quite understand your question. For example, in your filter formed by d and c, it has a null at DC, how do you expect it to have a unit gain at DC?
In general, if you have filter coefficients b and a, the DC gain is given by sum(b)/sum(a). You can just scale the filter response accordingly.

1 件のコメント

Vittorio
Vittorio 2013 年 10 月 8 日
Yes, what you said is correct. In fact, I resolved my issue by just scaling:
[h,w] = freqz(b,a,500,1000); %frequency response of the filter H = b/a
scale = 1/max(abs(h)); %scaling factor
b = b*scale; %scale*H
Thank you for your answer!

サインインしてコメントする。

その他の回答 (0 件)

コミュニティ

カテゴリ

質問済み:

2013 年 10 月 7 日

コメント済み:

2013 年 10 月 8 日

Community Treasure Hunt

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

Start Hunting!

Translated by