| Electronic Components Datasheet Search |
|
AN540 Datasheet(PDF) 5 Page - Microchip Technology |
|
|
|||||||||||||||||||||||||||||
AN540 Datasheet(HTML) 5 Page - Microchip Technology |
|
5 / 17 page ![]() © 1993 Microchip Technology Inc. DS00540B-page 5 Implementing IIR Digital Filters 4 ; MOVFP16 Dn_2,AARG ; D(n-2) = multiplier MOVFP16 Ax2,BARG ; A2 = multiplicand call DblMult ; (ACCd,ACCc) = A2*D(n-2) ; ; Add product to output of 1st section ; Save result in 32 bit Accumulator ; ADD32 DPX,ACC ; ; Compute A1*D(n-1) ; MOVFP16 Dn_1,AARG ; AARG = D(n-2) = multiplier MOVFP16 Ax1,BARG ; BARG = A2 = multiplicand call DblMult ; (ACCd,ACCc) = A1*D(n-1) ; ; Compute A1*D(n-1) + A2*D(n-2) + output of previous section ; multiplications already done, so simply perform a 32 bit add ; of previously obtained multiplication results ; ADD32 DPX,ACC ; ACC = A1*D(n-1)+A2*D(n-2)+(output of 1st ; ; ; save the upper 16 bits of D(n) from the 32 bit accumulator ; left shift the result by 1, to adjust the decimal point after ; a Q15*Q15 multiplication ; rlcf ACC+B1,w rlcf ACC+B2,w movwf Dn rlcf ACC+B3,w ; decimal adjust ( mult by 2) movwf Dn+B1 ; ; Compute B2 * [D(n) + D(n-2)] ; if B0_EQUALS_B2 ADD16ACC Dn_2,Dn,AARG ; AARG = Dn + D(n-2) = multiplier MOVFP16 Bx0,BARG ; BARG = A2 = multiplicand call DblMult ; (ACCd,ACCc) = B2*[D(n)+D(n-2)] MOVPF32 DPX,ACC else MOVFP16 Bx0,BARG MOVFP16 Dn,AARG call DblMult ; B0*D(n) MOVPF32 DPX,ACC MOVFP16 Bx2,BARG MOVFP16 Dn_2,AARG call DblMult ; B2*D(n-2) ADD32 DPX,ACC endif ; ; Shift down D(n-1) to D(n-2) after D(n-2) usage is no longer required. ; This way in the next iteration D(n-2) is equal to the present D(n-1) ; movfp Dn_1,AARG+B0 movpf AARG+B0,Dn_2 ; Shift down D(n-1) movfp Dn_1+B1,AARG+B1 movpf AARG+B1,Dn_2+B1 ; AARG = D(n-1) = multiplier MOVFP16 Bx1,BARG ; BARG = B1 = multiplicand call DblMult ; (ACCd,ACCc) = B1*D(n-1) ; ; Compute Output Y = B1*D(n-1) + B2*D(n-2) + B0*D(n) ; = B1*D(n-1) + B0*[D(n) + D(n-2)] ; Since all multiplications are already done, simply perform a ; 32 bit addition ; ADD32 DPX,ACC ; ACC = B1*D(n-1) + B2*D(n-2) + B0*D(n) 4-133 |
|
|
Link URL |
| Does ALLDATASHEET help your business so far? [ DONATE ] |
About Alldatasheet | Advertisement | Contact us | Privacy Policy | Link to Datasheet | Link Exchange | Manufacturer List All Rights Reserved©Alldatasheet.com |
| Russian : Alldatasheetru.com | Korean : Alldatasheet.co.kr | Spanish : Alldatasheet.es | French : Alldatasheet.fr | Italian : Alldatasheetit.com Portuguese : Alldatasheetpt.com | Polish : Alldatasheet.pl | Vietnamese : Alldatasheet.vn Indian : Alldatasheet.in | Mexican : Alldatasheet.com.mx | British : Alldatasheet.co.uk | New Zealand : Alldatasheet.co.nz |
|
Family Site : ic2ic.com |
icmetro.com |