home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / dsp / dspgroup / firiir.arc / IIR4DIR.ASM < prev    next >
Encoding:
Assembly Source File  |  1985-08-15  |  3.6 KB  |  185 lines

  1. ************************************************************
  2. *
  3. *               FOURTH-ORDER IIR
  4. *            ELLIPTIC LOWPASS FILTER
  5. *
  6. *            DIRECT-FORM II STRUCTURE
  7. *
  8. *            FILTER CHARACTERISTICS
  9. *
  10. *    SAMPLING FREQUENCY = 10 KHZ
  11. *
  12. *                 BAND 1      BAND 2
  13. *
  14. *    LOWER BAND EDGE     0.00000     2.75000
  15. *    UPPER BAND EDGE     2.50000     5.00000
  16. *    NOMINAL GAIN        1.00000     0.00000
  17. *    NOMINAL RIPPLE        0.06000     0.06000
  18. *    MAXIMUM RIPPLE        0.05617     0.05514
  19. *    RIPPLE IN DB        0.47469       -25.17089
  20. *
  21. *
  22. *               FILTER STRUCTURE
  23. *
  24. *
  25. *                      b
  26. *                       0
  27. *          o--->---o---->----o---->----o--->---o
  28. *          x(n)    |     |  -1      |    y(n)
  29. *              ^    a    v z   b   ^
  30. *              |     1    |      1  |
  31. *              o----<----o---->----o
  32. *              |     |  -1      |
  33. *              ^    a    v z   b   ^
  34. *              |     2    |      2  |
  35. *              o----<----o---->----o
  36. *              |     |  -1      |
  37. *              ^    a    v z   b   ^
  38. *              |     3    |      3  |
  39. *              o----<----o---->----o
  40. *              |     |  -1      |
  41. *              ^    a    v z   b   ^
  42. *              |     4    |      4  |
  43. *              o----<----o---->----o
  44. *
  45. *
  46. *
  47. ************************************************************
  48. *
  49. *   CYCLES | EXECUTION TIME | PROGRAM MEMORY | DATA MEMORY
  50. *       | (MICROSECONDS) |      (WORDS)    |     (WORDS)
  51. *   -------|----------------|----------------|------------
  52. *       |            |             |
  53. *     24   |      4.8        |        24         |       16
  54. *       |            |             |
  55. *   ------------------------------------------------------
  56. *
  57. *   (EXCLUDING I/O AND INITIALIZATION)
  58. *
  59. ************************************************************
  60. *
  61.     IDT 'IIR4DIR'
  62. DN    EQU 0
  63. DNM1    EQU 1
  64. DNM2    EQU 2
  65. DNM3    EQU 3
  66. DNM4    EQU 4
  67. *
  68. A1    EQU 5
  69. A2    EQU 6
  70. A3    EQU 7
  71. A4    EQU 8
  72. *
  73. B0    EQU 9
  74. B1    EQU 10
  75. B2    EQU 11
  76. B3    EQU 12
  77. B4    EQU 13
  78. *
  79. MODE    EQU 14
  80. CLOCK    EQU 15
  81. YN    EQU 18
  82. XN    EQU 19
  83. ONE    EQU 20
  84. *
  85.     AORG 0
  86. *
  87.     B START
  88. *
  89. * COEFFICIENTS ARE INITIALLY *
  90. * STORED IN PROGRAM MEMORY   *
  91. *
  92. CA1    DATA    >3845    *  0.4396070 *
  93. *
  94. *            * A2 = -1.172416.  THE -1.0 TERM *
  95. CA2    DATA    >E9EE    * IS IMPLEMENTED WITH A SUB AND  *
  96. *            * A2 CONTAINS -0.172416 = >E9EE. *
  97. *
  98. CA3    DATA    >3167    *  0.3859772 *
  99. CA4    DATA    >DDC1    * -0.2675277 *
  100. *
  101. CB0    DATA    >17FA    *  0.1873279 *
  102. CB1    DATA    >2B02    *  0.3360168 *
  103. CB2    DATA    >3D1F    *  0.4775291 *
  104. CB3    DATA    >2AFF    *  0.3359135 *
  105. CB4    DATA    >17F3    *  0.1871291 *
  106. *
  107. MD    DATA    >000A
  108. SMP    DATA    499    * SAMPLING RATE OF 10 KHZ *
  109. *
  110. START    LDPK 0
  111. *
  112.     LACK 1
  113.     SACL ONE    * CONTENT OF ONE IS 1 *
  114. *
  115.     LARK AR0,CLOCK    * THIS SECTION OF CODE LOADS  *
  116.     LARK AR1,10    * THE FILTER COEFFICIENTS AND *
  117.     LACK SMP    * OTHER VALUES FROM PROGRAM   *
  118. LOAD    LARP AR0    * MEMORY TO DATA MEMORY       *
  119.     TBLR *-,AR1
  120.     SUB ONE
  121.     BANZ LOAD
  122. *
  123.     ZAC        * THIS SECTION SETS THE *
  124.     SACL DN     * INITIAL STATE OF THE    *
  125.     SACL DNM1    * FILTER TO ZERO    *
  126.     SACL DNM2
  127.     SACL DNM3
  128.     SACL DNM4
  129. *
  130.     OUT MODE,PA0    * INITIALIZATION OF ANALOG *
  131.     OUT CLOCK,PA1    * INTERFACE BOARD       *
  132. *
  133. WAIT    BIOZ NXTPT    * BIO PIN GOES LOW WHEN A *
  134.     B WAIT        * NEW SAMPLE IS AVAILABLE *
  135. *
  136. NXTPT    IN XN,PA2    * BRING IN THE NEW SAMPLE XN *
  137. *
  138. *            * IMPLEMENTATION OF SYSTEM POLES *
  139.     LAC XN,15
  140. *
  141.     LT DNM1
  142.     MPY A1        * d(n-1) * a  *
  143. *                    1
  144.     LTA DNM2    * THIS SECTION IS EQUIVALENT TO *
  145.     MPY A2        * -1.172416 * DNM2.  THE -1.0    *
  146.     SUB DNM2,15    * TERM IS IMPLEMENTED WITH THE    *
  147. *            * SUB DNM2,15 AND A2 CONTAINS    *
  148. *            * -0.172416 = >E9EE.        *
  149. *
  150.     LTA DNM3
  151.     MPY A3
  152. *
  153.     LTA DNM4
  154.     MPY A4
  155. *
  156.     APAC
  157. *
  158.     SACH DN,1
  159. *
  160.     ZAC
  161. *
  162.     MPY B4        * IMPLEMENTATION OF SYSTEM ZEROES *
  163. *
  164.     LTD DNM3
  165.     MPY B3        * d(n-3) * b  *
  166. *                    3
  167.     LTD DNM2
  168.     MPY B2
  169. *
  170.     LTD DNM1
  171.     MPY B1
  172. *
  173.     LTD DN
  174.     MPY B0
  175. *
  176.     APAC
  177. *
  178.     SACH YN,1    * FINISHED FILTER *
  179. *
  180.     OUT YN,PA2    * OUTPUT THE FILTER RESPONSE y(n) *
  181. *
  182.     B WAIT        * GO GET THE NEXT POINT *
  183. *
  184.     END
  185.