>On Thu, 06 Sep 2007 12:43:09 -0500, zeugnim wrote:
>
>> hi,
>>
>> This is my first filter implementation and is made in Scilab, also the
>> design of the 3ord Chebyshev Type I IIR Filter (with the iir function).

I

>> actually have 3 filters, so i can use them as an equalizer for an

audio

>> application. I´m using Direct Form I Realization. Since I have to
>> implement this on a 24bit Fixed-Point DSP I had to scale my

coefficients

>> by a factor of 256 (same as shifting 8 bits). The problem that I've

been

>> having is that the output signal generated by the scilab script gets

some

>> attenuation but only with my coefficients scaled, without the scale

factor

>> I get 0 dB gain. I don't know what am I doing wrong. The script is

based on

>> a Fixed Point Implementation of DFI IIR Filter shown in "Real-Time

Digital

>> Signal Processing - Implementations and Applications", basically it

first

>> update the input buffer, insert new data on the first position of that
>> bufffer, then it multiply and accumulate b coefs(numerator) with

inputs,

>> then makes the same thing with a coefs(denominator) and an output

buffer

>> and finally it subtract both variables used as accumulators and place

the

>> result into the first position of the output buffer.
>> I really apreciate anyone's help cause I'm stuck here and I want to

learn

>> all I can about DSP, also it would be nice if anyone know about some
>> reading that I can use. Anyways... thanks for your attention...
>>
>Are you rounding the coefficients? Are you filtering at low frequencies

>compared to the sample rate? Are you using third-order filters instead
>of a 1st-order cascaded with a 2nd order?
>
>Any of these things could cause your DC gain (and other filter
>behavior) to be off.
>
>--
>Tim Wescott
>Control systems and communications consulting
>http://www.wescottdesign.com
>
>Need to learn how to apply control theory in your embedded system?
>"Applied Control Theory for Embedded Systems" by Tim Wescott
>Elsevier/Newnes, http://www.wescottdesign.com/actfes/actfes.html
>

Yes, my sample rate is twice faster than the higher frequency that I'm
filtering... but about rounding the coefficients I guess I'm not, so I do
a little research on doing that, thanks. And yes I'm using third-order
bandpassing filters, do you suggest me to use SOS??

Reply by Tim Wescott●September 7, 20072007-09-07

On Thu, 06 Sep 2007 12:43:09 -0500, zeugnim wrote:

> hi,
>
> This is my first filter implementation and is made in Scilab, also the
> design of the 3ord Chebyshev Type I IIR Filter (with the iir function). I
> actually have 3 filters, so i can use them as an equalizer for an audio
> application. I´m using Direct Form I Realization. Since I have to
> implement this on a 24bit Fixed-Point DSP I had to scale my coefficients
> by a factor of 256 (same as shifting 8 bits). The problem that I've been
> having is that the output signal generated by the scilab script gets some
> attenuation but only with my coefficients scaled, without the scale factor
> I get 0 dB gain. I don't know what am I doing wrong. The script is based on
> a Fixed Point Implementation of DFI IIR Filter shown in "Real-Time Digital
> Signal Processing - Implementations and Applications", basically it first
> update the input buffer, insert new data on the first position of that
> bufffer, then it multiply and accumulate b coefs(numerator) with inputs,
> then makes the same thing with a coefs(denominator) and an output buffer
> and finally it subtract both variables used as accumulators and place the
> result into the first position of the output buffer.
> I really apreciate anyone's help cause I'm stuck here and I want to learn
> all I can about DSP, also it would be nice if anyone know about some
> reading that I can use. Anyways... thanks for your attention...
>

Are you rounding the coefficients? Are you filtering at low frequencies
compared to the sample rate? Are you using third-order filters instead
of a 1st-order cascaded with a 2nd order?
Any of these things could cause your DC gain (and other filter
behavior) to be off.
--
Tim Wescott
Control systems and communications consulting
http://www.wescottdesign.com
Need to learn how to apply control theory in your embedded system?
"Applied Control Theory for Embedded Systems" by Tim Wescott
Elsevier/Newnes, http://www.wescottdesign.com/actfes/actfes.html

Reply by zeugnim●September 6, 20072007-09-06

hi,
This is my first filter implementation and is made in Scilab, also the
design of the 3ord Chebyshev Type I IIR Filter (with the iir function). I
actually have 3 filters, so i can use them as an equalizer for an audio
application. I´m using Direct Form I Realization. Since I have to
implement this on a 24bit Fixed-Point DSP I had to scale my coefficients
by a factor of 256 (same as shifting 8 bits). The problem that I've been
having is that the output signal generated by the scilab script gets some
attenuation but only with my coefficients scaled, without the scale factor
I get 0 dB gain. I don't know what am I doing wrong. The script is based on
a Fixed Point Implementation of DFI IIR Filter shown in "Real-Time Digital
Signal Processing - Implementations and Applications", basically it first
update the input buffer, insert new data on the first position of that
bufffer, then it multiply and accumulate b coefs(numerator) with inputs,
then makes the same thing with a coefs(denominator) and an output buffer
and finally it subtract both variables used as accumulators and place the
result into the first position of the output buffer.
I really apreciate anyone's help cause I'm stuck here and I want to learn
all I can about DSP, also it would be nice if anyone know about some
reading that I can use. Anyways... thanks for your attention...
Regards,
Daniel