| ??? 02/27/02 15:48 Read: times |
#20212 - RE: FIR Filter |
mike, Thanks, I know that the CYGNAL part could do it but i have to use the AD part, i have no choice in this matter.
Franc, I'm doing most of the things you've suggested, its fixed point, i have no real use for the XCH (although i am considering another way of implementing the divide function). I have gotten my code down to 35 cycles for the 16 tap filter, however this is even a bit slow for the micro. The divide functions used (easier than using the multiply by a decimal value) are as follows: Bitwise shifting 1 mov A,X0 ADD A,X14 ; Adding symmetrically equal component mov A,020h ; Moving data to bitwise addressable register mov 08h,C ; Moving the carry bit out mov 09h,07h ; Bitwise shift mov R7,032d ; Moving to running total Divides 2 data points by 128 ;Using Divide Function mov A,X2 ADD A,X12 RRC A ;Here, to account for the overflow, i first rotated mov B,#020d ;right using RRC so that there can be no overflow bits neglected. div AB ADD A,R7 Mov R7,A Divides 2 data points by 40 and finally: mov A,X6 ADD A,X8 RRC A RR A RR A ADD A,R7 Mov R7,A divides 2 coefficients by 8 anyone with any improvements on them would be a hero in my eyes!! |
| Topic | Author | Date |
| FIR Filter | 01/01/70 00:00 | |
| RE: FIR Filter | 01/01/70 00:00 | |
| RE: FIR Filter | 01/01/70 00:00 | |
| RE: FIR Filter | 01/01/70 00:00 | |
| RE: FIR Filter | 01/01/70 00:00 | |
| RE: FIR Filter | 01/01/70 00:00 | |
| RE: FIR Filter | 01/01/70 00:00 | |
| RE: FIR Filter | 01/01/70 00:00 | |
RE: FIR Filter | 01/01/70 00:00 |



