DSPRelated.com
Forums

problem in normalization factor in low pass filter implementation

Started by i_am_henry July 14, 2002
Dear all,

Currently, I am working on implementing recursive low pass filter
with design equation extracted from manual
y(n) = 2*y(n-1) - y(n-2) + x(n) - 2*x(n-3) + x(n-6)

The frequency response of the filter is good.

However, the manual also mention, in actual implementation, there
is a normalization factor of 1/8 based upon the gain of the filter.
That is, the equation become:
y(n) = 1/8 * (2*y(n-1) - y(n-2) + x(n) - 2*x(n-3) + x(n-6))

But the frequency response of this filter is bad.

Is it some common practice to design a filter with desired good
frequency response but later add some normalization factor to
normalize the signal? What is the advantage to do so?

Thank you for your help.

Henry



Henry-

Are you sure the gain factor (1/8) is not supposed to be applied to the x[n]
components only? What happens if you try that?

Typically the gain/normalization factor is intended to insure unity gain (or
desired
gain) in the passband, but the frequency response of the filter (shape) should
remain
unchanged.

Jeff Brower
DSP sw/hw engineer
Signalogic i_am_henry wrote:
>
> Dear all,
>
> Currently, I am working on implementing recursive low pass filter
> with design equation extracted from manual
> y(n) = 2*y(n-1) - y(n-2) + x(n) - 2*x(n-3) + x(n-6)
>
> The frequency response of the filter is good.
>
> However, the manual also mention, in actual implementation, there
> is a normalization factor of 1/8 based upon the gain of the filter.
> That is, the equation become:
> y(n) = 1/8 * (2*y(n-1) - y(n-2) + x(n) - 2*x(n-3) + x(n-6))
>
> But the frequency response of this filter is bad.
>
> Is it some common practice to design a filter with desired good
> frequency response but later add some normalization factor to
> normalize the signal? What is the advantage to do so?
>
> Thank you for your help.
>
> Henry



henry,

the correct equation after scaling should be:
y(n) = 2*y(n-1) - y(n-2) + 1/8 *( x(n) - 2*x(n-3) + x(n-6) ).

This scaling is required to keep the signal level same after filtering. It is
required mostly when we are working with finite resolution systems with a fixed
dynamic range, as the signal may saturate/overflow otherwise or we'll loose
precision.

-priyank

--- i_am_henry <> wrote:
> Dear all,
>
> Currently, I am working on implementing recursive low pass filter
> with design equation extracted from manual
> y(n) = 2*y(n-1) - y(n-2) + x(n) - 2*x(n-3) + x(n-6)
>
> The frequency response of the filter is good.
>
> However, the manual also mention, in actual implementation, there
> is a normalization factor of 1/8 based upon the gain of the filter.
> That is, the equation become:
> y(n) = 1/8 * (2*y(n-1) - y(n-2) + x(n) - 2*x(n-3) + x(n-6))
>
> But the frequency response of this filter is bad.
>
> Is it some common practice to design a filter with desired good
> frequency response but later add some normalization factor to
> normalize the signal? What is the advantage to do so?
>
> Thank you for your help.
>
> Henry >


__________________________________________________


Henry-

You're not reading carefully. I said all of the "x[n]" components, like this:

y(n) = 2*y(n-1) - y(n-2) + x(n)/8 - x(n-3)/4 + x(n-6)/8

Jeff Brower
DSP sw/hw engineer
Signalogic i_am_henry wrote:
>
> Hi Jeff,
>
> Thank you for you help first.
>
> Yes, I have applied the gain/normalization factor (1/8) to all the
> input components according to the equation.
>
> However, for
> y(n) = 2*y(n-1) - y(n-2) + x(n) - 2*x(n-3) + x(n-6)
> the filter response tranfer function is
> Yn 1 - 2*z^-3 + z^-6
> ---- = -------------------- .............. (1)
> Xn 1 - 2*z^-1 + z^-2 > For
> y(n) = 1/8 * (2*y(n-1) - y(n-2) + x(n) - 2*x(n-3) + x(n-6))
> the filter response tranfer function is
> Yn 1 - 2*z^-3 + z^-6
> ---- = -------------------- .............. (2)
> Xn 8 - 2*z^-1 + z^-2
>
> The filter frequency respose of Equ. (2) is different from (1).
>
> Regards
> Henry Chang
> Assistant Computer Officer
> Chinese Univerisity of HK
>
> --- In matlab@y..., Jeff Brower <jbrower@s...> wrote:
> > Henry-
> >
> > Are you sure the gain factor (1/8) is not supposed to be applied to
> the x[n]
> > components only? What happens if you try that?
> >
> > Typically the gain/normalization factor is intended to insure unity
> gain (or desired
> > gain) in the passband, but the frequency response of the filter
> (shape) should remain
> > unchanged.
> >
> > Jeff Brower
> > DSP sw/hw engineer
> > Signalogic
> >
> >
> > i_am_henry wrote:
> > >
> > > Dear all,
> > >
> > > Currently, I am working on implementing recursive low pass
> filter
> > > with design equation extracted from manual
> > > y(n) = 2*y(n-1) - y(n-2) + x(n) - 2*x(n-3) + x(n-6)
> > >
> > > The frequency response of the filter is good.
> > >
> > > However, the manual also mention, in actual implementation,
> there
> > > is a normalization factor of 1/8 based upon the gain of the
> filter.
> > > That is, the equation become:
> > > y(n) = 1/8 * (2*y(n-1) - y(n-2) + x(n) - 2*x(n-3) + x(n-6))
> > >
> > > But the frequency response of this filter is bad.
> > >
> > > Is it some common practice to design a filter with desired good
> > > frequency response but later add some normalization factor to
> > > normalize the signal? What is the advantage to do so?
> > >
> > > Thank you for your help.
> > >
> > > Henry