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

  1. ************************************************************
  2. *
  3. *               FOURTH-ORDER IIR
  4. *            ELLIPTIC LOWPASS FILTER
  5. *
  6. *            CASCADE STRUCTURE WITH
  7. *        SECOND-ORDER DIRECT-FORM II SUBSECTIONS
  8. *
  9. *            FILTER CHARACTERISTICS
  10. *
  11. *    SAMPLING FREQUENCY = 10 KHZ
  12. *
  13. *                 BAND 1      BAND 2
  14. *
  15. *    LOWER BAND EDGE     0.00000     2.75000
  16. *    UPPER BAND EDGE     2.50000     5.00000
  17. *    NOMINAL GAIN        1.00000     0.00000
  18. *    NOMINAL RIPPLE        0.06000     0.06000
  19. *    MAXIMUM RIPPLE        0.05617     0.05514
  20. *    RIPPLE IN DB        0.47469       -25.17089
  21. *
  22. *
  23. *               FILTER STRUCTURE
  24. *
  25. *
  26. *            b       y (n)        b
  27. *             01     1             02
  28. * o--->--o--->---o--->---o--->---o--->---o--->---o--->---o
  29. * x(n)     |     |  -1     |     |     |  -1     |    y(n)
  30. *     ^  a     v z  b  ^     ^  a     v z  b  ^
  31. *     |   11  |     11|     |   12  |     12|
  32. *     o---<---o--->---o     o---<---o--->---o
  33. *     |     |  -1     |     |     |  -1     |
  34. *     ^  a     v z  b  ^     ^  a     v z  b  ^
  35. *     |   21  |     21|     |   22  |     22|
  36. *     o---<---o--->---o     o---<---o--->---o
  37. *
  38. *
  39. ************************************************************
  40. *
  41. *  CYCLES | EXECUTION TIME | PROGRAM MEMORY | DATA MEMORY
  42. *      | (MICROSECONDS) |    (WORDS)     |    (WORDS)
  43. *  -------|----------------|----------------|-------------
  44. *      |           |            |
  45. *    27   |     5.4       |       27        |       18
  46. *      |           |            |
  47. *  -------------------------------------------------------
  48. *
  49. *  (EXCLUDING I/O AND INITIALIZATION)
  50. *
  51. ************************************************************
  52. *
  53.     IDT 'IIR4CAS'
  54. D2N    EQU 0
  55. D2NM1    EQU 1
  56. D2NM2    EQU 2
  57. *
  58. D1N    EQU 3
  59. D1NM1    EQU 4
  60. D1NM2    EQU 5
  61. *
  62. B01    EQU 6
  63. B11    EQU 7
  64. B21    EQU 8
  65. *
  66. A11    EQU 9
  67. A21    EQU 10
  68. *
  69. B02    EQU 11
  70. B12    EQU 12
  71. B22    EQU 13
  72. *
  73. A12    EQU 14
  74. A22    EQU 15
  75. *
  76. MODE    EQU 16
  77. CLOCK    EQU 17
  78. YN    EQU 18
  79. XN    EQU 19
  80. ONE    EQU 20
  81. *
  82.     AORG 0
  83. *
  84.     B START
  85. *
  86. * COEFFICIENTS ARE INITIALLY *
  87. * STORED IN PROGRAM MEMORY   *
  88. *
  89. CB01    DATA    >1F05    *  0.242342 *
  90. CB11    DATA    >2B75    *  0.339521 *
  91. CB21    DATA    >1EFD    *  0.242117 *
  92. *
  93. CA11    DATA    >394D    *  0.447687 *
  94. CA21    DATA    >D889    * -0.308310 *
  95. *
  96. CB02    DATA    >62F1    *  0.772990 *
  97. CB12    DATA    >26DB    *  0.303581 *
  98. CB22    DATA    >62ED    *  0.772887 *
  99. *
  100. CA12    DATA    >FEF7    * -0.008080 *
  101. CA22    DATA    >90EE    * -0.867723 *
  102. *
  103. MD    DATA    >000A
  104. SMP    DATA    499    * SAMPLING RATE OF 10 KHZ *
  105. *
  106. START    LDPK 0
  107. *
  108.     LACK 1
  109.     SACL ONE    * CONTENT OF ONE IS 1 *
  110. *
  111.     LARK AR0,CLOCK    * THIS SECTION OF CODE LOADS  *
  112.     LARK AR1,11    * THE FILTER COEFFICIENTS AND *
  113.     LACK SMP    * OTHER VALUES FROM PROGRAM   *
  114. LOAD    LARP AR0    * MEMORY TO DATA MEMORY       *
  115.     TBLR *-,AR1
  116.     SUB ONE
  117.     BANZ LOAD
  118. *
  119.     ZAC        * THIS SECTION SETS THE *
  120.     SACL D2N    * INITIAL STATE OF THE    *
  121.     SACL D2NM1    * FILTER TO ZERO    *
  122.     SACL D2NM2
  123.     SACL D1N
  124.     SACL D1NM1
  125.     SACL D1NM2
  126. *
  127.     OUT MODE,PA0    * INITIALIZATION OF ANALOG *
  128.     OUT CLOCK,PA1    * INTERFACE BOARD       *
  129. *
  130. WAIT    BIOZ NXTPT    * BIO PIN GOES LOW WHEN A *
  131.     B WAIT        * NEW SAMPLE IS AVAILABLE *
  132. *
  133. NXTPT    IN XN,PA2    * BRING IN THE NEW SAMPLE XN *
  134. *
  135.     LAC XN,15    * START FIRST CASCADE SECTION *
  136. *
  137.     LT D1NM1
  138.     MPY A11     * d (n-1) * a    *
  139. *               1         11
  140.     LTA D1NM2
  141.     MPY A21
  142. *
  143.     APAC
  144. *
  145.     SACH D1N,1
  146. *
  147.     ZAC
  148. *
  149.     MPY B21
  150. *
  151.     LTD D1NM1
  152.     MPY B11
  153. *
  154.     LTD D1N
  155.     MPY B01     * FINISHED FIRST CASCADE SECTION *
  156. *
  157. *            * START SECOND CASCADE SECTION *
  158. *
  159.     LTA D2NM1
  160.     MPY A12     * d (n-1) * a  *
  161. *               2         12
  162.     LTA D2NM2
  163.     MPY A22
  164. *
  165.     APAC
  166. *
  167.     SACH D2N,1
  168. *
  169.     ZAC
  170. *
  171.     MPY B22
  172. *
  173.     LTD D2NM1
  174.     MPY B12
  175. *
  176.     LTD D2N
  177.     MPY B02
  178. *
  179.     APAC
  180. *
  181.     SACH YN,1    * FINISHED SECOND CASCADE SECTION *
  182. *            * AND FILTER              *
  183. *
  184.     OUT YN,PA2    * OUTPUT THE FILTER RESPONSE y(n) *
  185. *
  186.     B WAIT        * GO GET THE NEXT POINT *
  187. *
  188.     END
  189.