multirate implementation on fix point DSP and efficiency

Started by domistep September 12, 2005
Hye,

 I have a question to try to find a way to improve my processing.

I use a multirate filter with decimation.
There is a decimation by 40. One FIr is used then decimation, and the 1
IIR with decimation, then a second IIR with decimation, then again oner
IIR and decimation and at last one FIr .

I use a fix point DSP. The filter are designed in 16 bits inputs / outputs
(32 bits for computation).
It appears that the results is that i have in output a 12bits resoution
and 4 lsb bits are lost during the stages.

How can i improve this? 
Should i change the IIR design? or thedecimation?


thank you


		
This message was sent using the Comp.DSP web interface on
www.DSPRelated.com
domistep wrote:

> Hye, > > I have a question to try to find a way to improve my processing. > > I use a multirate filter with decimation. > There is a decimation by 40. One FIr is used then decimation, and the 1 > IIR with decimation, then a second IIR with decimation, then again oner > IIR and decimation and at last one FIr . > > I use a fix point DSP. The filter are designed in 16 bits inputs / outputs > (32 bits for computation). > It appears that the results is that i have in output a 12bits resoution > and 4 lsb bits are lost during the stages. > > How can i improve this? > Should i change the IIR design? or thedecimation? > >
This sort of problem is generally caused by an implementation detail that is not easy to track down without looking at code -- and many folks (certainly I) generally don't look at code in newsgroup postings unless there's less than 5 or 10 lines. Check to make sure that you're using the correct gains going into your internal states. You should have gains that will neither cause your states to overflow or underflow. The best way to do this is to write out the difference equations from your input to your states, find the transfer function, then do a frequency sweep. This process is outlined for somewhat different systems in http://www.wescottdesign.com/articles/zTransform/z-transforms.html, but it works fine for filters. -- Tim Wescott Wescott Design Services http://www.wescottdesign.com
Why did you pick IIR filters?

Dirk

domistep wrote:
> Hye, > > I have a question to try to find a way to improve my processing. > > I use a multirate filter with decimation. > There is a decimation by 40. One FIr is used then decimation, and the 1 > IIR with decimation, then a second IIR with decimation, then again oner > IIR and decimation and at last one FIr . > > I use a fix point DSP. The filter are designed in 16 bits inputs / outputs > (32 bits for computation). > It appears that the results is that i have in output a 12bits resoution > and 4 lsb bits are lost during the stages. > > How can i improve this? > Should i change the IIR design? or thedecimation? > > > thank you > > > > This message was sent using the Comp.DSP web interface on > www.DSPRelated.com
Why did you pick IIR filters?

Dirk

domistep wrote:
> Hye, > > I have a question to try to find a way to improve my processing. > > I use a multirate filter with decimation. > There is a decimation by 40. One FIr is used then decimation, and the 1 > IIR with decimation, then a second IIR with decimation, then again oner > IIR and decimation and at last one FIr . > > I use a fix point DSP. The filter are designed in 16 bits inputs / outputs > (32 bits for computation). > It appears that the results is that i have in output a 12bits resoution > and 4 lsb bits are lost during the stages. > > How can i improve this? > Should i change the IIR design? or thedecimation? > > > thank you > > > > This message was sent using the Comp.DSP web interface on > www.DSPRelated.com
domistep wrote:

> Hye, > > I have a question to try to find a way to improve my processing. > > I use a multirate filter with decimation. > There is a decimation by 40. One FIr is used then decimation, and the 1 > IIR with decimation, then a second IIR with decimation, then again oner > IIR and decimation and at last one FIr . > > I use a fix point DSP. The filter are designed in 16 bits inputs / outputs > (32 bits for computation). > It appears that the results is that i have in output a 12bits resoution > and 4 lsb bits are lost during the stages. > > How can i improve this? > Should i change the IIR design? or thedecimation? > >
This sort of problem is generally caused by an implementation detail that is not easy to track down without looking at code -- and many folks (certainly I) generally don't look at code in newsgroup postings unless there's less than 5 or 10 lines. Check to make sure that you're using the correct gains going into your internal states. You should have gains that will neither cause your states to overflow or underflow. The best way to do this is to write out the difference equations from your input to your states, find the transfer function, then do a frequency sweep. This process is outlined for somewhat different systems in http://www.wescottdesign.com/articles/zTransform/z-transforms.html, but it works fine for filters. -- Tim Wescott Wescott Design Services http://www.wescottdesign.com
Hye,

 I have a question to try to find a way to improve my processing.

I use a multirate filter with decimation.
There is a decimation by 40. One FIr is used then decimation, and the 1
IIR with decimation, then a second IIR with decimation, then again oner
IIR and decimation and at last one FIr .

I use a fix point DSP. The filter are designed in 16 bits inputs / outputs
(32 bits for computation).
It appears that the results is that i have in output a 12bits resoution
and 4 lsb bits are lost during the stages.

How can i improve this? 
Should i change the IIR design? or thedecimation?


thank you


		
This message was sent using the Comp.DSP web interface on
www.DSPRelated.com