Hi all, Currently, I am designing low-pass filter that will be implemented in mcu processor and the result filter response is like this: -6 -4 -2 -z + 3z - 3z + 1 h = --------------- -6 -5 -4 -3 -2 -1 z + 6z + 17z - 29z + 38z - 33z + 13 Then the system input-output equation for implemenation will be like this: y[n] = 1/13 * (x[n] -3x[n-2] + 3x[n-4] ...) There is a "1/13" denominator for division operation. However, the division operation take a lot of processing time. Is there any common way to avoid this division operation. Thank you for your help. Cheers Henry |
|
Problem in design filter -- Is it possible to avoid the division operation?
Started by ●October 9, 2002
Reply by ●October 9, 20022002-10-09
Hi, The easiest way in a digital system is to scale your input and outputs by a factor of 2 ( which is easily achievable ). You divide the numerator and the denominator by a factor of 2 say 64 / 32 here and since it looks like u can multiply easily, a multiply by 13 should not be difficult. Thanks. Regards, Gautam -----Original Message----- From: Henry Chang [mailto:] Sent: Wednesday, October 09, 2002 5:52 PM To: Subject: [matlab] Problem in design filter -- Is it possible to avoid the division operation? Hi all, Currently, I am designing low-pass filter that will be implemented in mcu processor and the result filter response is like this: -6 -4 -2 -z + 3z - 3z + 1 h = --------------- -6 -5 -4 -3 -2 -1 z + 6z + 17z - 29z + 38z - 33z + 13 Then the system input-output equation for implemenation will be like this: y[n] = 1/13 * (x[n] -3x[n-2] + 3x[n-4] ...) There is a "1/13" denominator for division operation. However, the division operation take a lot of processing time. Is there any common way to avoid this division operation. Thank you for your help. Cheers Henry _____________________________________ Note: If you do a simple "reply" with your email client, only the author of this message will receive your answer. You need to do a "reply all" if you want your answer to be distributed to the entire group. _____________________________________ About this discussion group: To Join: To Post: To Leave: Archives: http://www.yahoogroups.com/group/matlab More DSP-Related Groups: http://www.dsprelated.com/groups.php3 ">http://docs.yahoo.com/info/terms/ |
Reply by ●October 10, 20022002-10-10
hi, As 1/13 could be = 0.0769 and if multipliaction does not take much processing time that would be an option. You could think of implementing this in 2's compliment form. bye On Wed, 09 Oct 2002 12:22:09 Henry Chang wrote: >Hi all, > > Currently, I am designing low-pass filter that will be implemented >in mcu processor and the result filter response is like this: > -6 -4 -2 > -z + 3z - 3z + 1 > h = --------------- > -6 -5 -4 -3 -2 -1 > z + 6z + 17z - 29z + 38z - 33z + 13 > > Then the system input-output equation for implemenation will be >like this: > > y[n] = 1/13 * (x[n] -3x[n-2] + 3x[n-4] ...) > > There is a "1/13" denominator for division operation. However, the >division operation take a lot of processing time. Is there any common >way to avoid this division operation. > > Thank you for your help. > >Cheers >Henry > > >_____________________________________ >Note: If you do a simple "reply" with your email client, only the author of this message will receive your answer. You need to do a "reply all" if you want your answer to be distributed to the entire group. > >_____________________________________ >About this discussion group: > >To Join: > >To Post: > >To Leave: > >Archives: http://www.yahoogroups.com/group/matlab > >More DSP-Related Groups: http://www.dsprelated.com/groups.php3 > >">http://docs.yahoo.com/info/terms/ > ____________________________________________________________ Watch a championship game with Elway or McGwire. Enter Now at http://champions.lycos.com |