home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / dsp / dspgroup / asms.arc / FIRBPHY.ASM < prev    next >
Encoding:
Assembly Source File  |  1987-06-07  |  7.3 KB  |  515 lines

  1. ;************************************************************
  2. ;
  3. ;            LINEAR-PHASE FIR FILTER
  4. ;               LENGTH-80 BANDPASS FILTER
  5. ;
  6. ;    SAMPLING FREQUENCY = 10 KHZ
  7. ;
  8. ;             FILTER CHARACTERISTICS
  9. ;
  10. ;                BAND 1     BAND 2      BAND 3
  11. ;
  12. ;    LOWER BAND EDGE     0.0000     1.3750      4.0000
  13. ;    UPPER BAND EDGE     1.0000     3.6250      5.0000
  14. ;    NOMINAL GAIN        0.0000     1.0000      0.0000
  15. ;    NOMINAL RIPPLE        0.0010     0.0200      0.0010
  16. ;    MAXIMUM RIPPLE        0.0004     0.0076      0.0004
  17. ;    RIPPLE IN DB      -68.3965     0.0657    -68.3997
  18. ;
  19. ;                FILTER STRUCTURE
  20. ;
  21. ;
  22. ;           -1      -1             -1
  23. ;          z       z             z
  24. ; o--->---o--->---o--->---o---> -  -  -o---->---o
  25. ; x(n)      |      |      |           |    |
  26. ;      |      |      |           |    |
  27. ;      v h(0)  v h(1)  v h(2)       v h(N-2) v h(N-1)
  28. ;      |      |      |           |    |
  29. ;      |      |      |           |    |
  30. ;      o--->---o--->---o---> -  -  -o--->----o--->---o
  31. ;                               y(n)
  32. ;
  33. ;***********************************************************
  34. ;
  35. ;   CYCLES | EXECUTION TIME | PROGRAM MEMORY | DATA MEMORY
  36. ;       | (MICROSECONDS) |      (WORDS)    |     (WORDS)
  37. ;   -------|----------------|----------------|-------------
  38. ;       |            |             |
  39. ;     163  |      32.6        |       163         |        120
  40. ;       |            |             |
  41. ;   -------------------------------------------------------
  42. ;
  43. ;   (EXCLUDING INITIALIZATION AND I/O)
  44. ;
  45. ;***********************************************************
  46. ;
  47. ;
  48. XN:    EQU 0
  49. XNM1:    EQU 1
  50. XNM2:    EQU 2
  51. XNM3:    EQU 3
  52. XNM4:    EQU 4
  53. XNM5:    EQU 5
  54. XNM6:    EQU 6
  55. XNM7:    EQU 7
  56. XNM8:    EQU 8
  57. XNM9:    EQU 9
  58. XNM10:    EQU 10
  59. XNM11:    EQU 11
  60. XNM12:    EQU 12
  61. XNM13:    EQU 13
  62. XNM14:    EQU 14
  63. XNM15:    EQU 15
  64. XNM16:    EQU 16
  65. XNM17:    EQU 17
  66. XNM18:    EQU 18
  67. XNM19:    EQU 19
  68. XNM20:    EQU 20
  69. XNM21:    EQU 21
  70. XNM22:    EQU 22
  71. XNM23:    EQU 23
  72. XNM24:    EQU 24
  73. XNM25:    EQU 25
  74. XNM26:    EQU 26
  75. XNM27:    EQU 27
  76. XNM28:    EQU 28
  77. XNM29:    EQU 29
  78. XNM30:    EQU 30
  79. XNM31:    EQU 31
  80. XNM32:    EQU 32
  81. XNM33:    EQU 33
  82. XNM34:    EQU 34
  83. XNM35:    EQU 35
  84. XNM36:    EQU 36
  85. XNM37:    EQU 37
  86. XNM38:    EQU 38
  87. XNM39:    EQU 39
  88. XNM40:    EQU 40
  89. XNM41:    EQU 41
  90. XNM42:    EQU 42
  91. XNM43:    EQU 43
  92. XNM44:    EQU 44
  93. XNM45:    EQU 45
  94. XNM46:    EQU 46
  95. XNM47:    EQU 47
  96. XNM48:    EQU 48
  97. XNM49:    EQU 49
  98. XNM50:    EQU 50
  99. XNM51:    EQU 51
  100. XNM52:    EQU 52
  101. XNM53:    EQU 53
  102. XNM54:    EQU 54
  103. XNM55:    EQU 55
  104. XNM56:    EQU 56
  105. XNM57:    EQU 57
  106. XNM58:    EQU 58
  107. XNM59:    EQU 59
  108. XNM60:    EQU 60
  109. XNM61:    EQU 61
  110. XNM62:    EQU 62
  111. XNM63:    EQU 63
  112. XNM64:    EQU 64
  113. XNM65:    EQU 65
  114. XNM66:    EQU 66
  115. XNM67:    EQU 67
  116. XNM68:    EQU 68
  117. XNM69:    EQU 69
  118. XNM70:    EQU 70
  119. XNM71:    EQU 71
  120. XNM72:    EQU 72
  121. XNM73:    EQU 73
  122. XNM74:    EQU 74
  123. XNM75:    EQU 75
  124. XNM76:    EQU 76
  125. XNM77:    EQU 77
  126. XNM78:    EQU 78
  127. XNM79:    EQU 79
  128. ;
  129. H0:    EQU 80
  130. H1:    EQU 81
  131. H2:    EQU 82
  132. H3:    EQU 83
  133. H4:    EQU 84
  134. H5:    EQU 85
  135. H6:    EQU 86
  136. H7:    EQU 87
  137. H8:    EQU 88
  138. H9:    EQU 89
  139. H10:    EQU 90
  140. H11:    EQU 91
  141. H12:    EQU 92
  142. H13:    EQU 93
  143. H14:    EQU 94
  144. H15:    EQU 95
  145. H16:    EQU 96
  146. H17:    EQU 97
  147. H18:    EQU 98
  148. H19:    EQU 99
  149. H20:    EQU 100
  150. H21:    EQU 101
  151. H22:    EQU 102
  152. H23:    EQU 103
  153. H24:    EQU 104
  154. H25:    EQU 105
  155. H26:    EQU 106
  156. H27:    EQU 107
  157. H28:    EQU 108
  158. H29:    EQU 109
  159. H30:    EQU 110
  160. H31:    EQU 111
  161. H32:    EQU 112
  162. H33:    EQU 113
  163. H34:    EQU 114
  164. H35:    EQU 115
  165. H36:    EQU 116
  166. H37:    EQU 117
  167. H38:    EQU 118
  168. H39:    EQU 119
  169. ;
  170. MODE:    EQU 120
  171. CLOCK:    EQU 121
  172. MASK1:    EQU 122
  173. MASK2:    EQU 123
  174. YN:    EQU 124
  175. ONE:    EQU 125
  176. ;
  177.     ORG 0
  178. ;
  179.     B START
  180. ;
  181. ; COEFFICIENTS ARE INITIALLY ;
  182. ; STORED IN PROGRAM MEMORY   ;
  183. ;
  184. ; DUE TO THE SYMMETRY OF THE IMPULSE RESPONSE ;
  185. ; ONLY HALF OF THE SAMPLES OF THE IMPULSE     ;
  186. ; RESPONSE ARE STORED.    THIS MEANS THAT       ;
  187. ; h(N-1-n) = h(n).                  ;
  188. ;
  189. COEF:
  190.     dw    0FFDCH    ; -0.107251E-02 ; h(1),h(80)
  191.     dw    001FH    ;  0.973976E-03 ; 2,79
  192.     dw    0051H    ;  0.249065E-02 ; 3,77
  193.     dw    0FFE9H    ; -0.675043E-03 ;
  194.     dw    0FFE6H    ; -0.771385E-03 ;
  195.     dw    0FFBAH    ; -0.212256E-03 ;
  196.     dw    0FFB4H    ; -0.229530E-02 ;
  197.     dw    004BH    ;  0.231021E-02 ;
  198.     dw    0FFF9H    ; -0.194902E-03 ;
  199.     dw    0069H    ;  0.322896E-02 ;
  200.     dw    00A2H    ;  0.496452E-02 ;
  201.     dw    0FF6FH    ; -0.440419E-02 ;
  202.     dw    0FFFEH    ; -0.314831E-04 ;
  203.     dw    0FF70H    ; -0.438169E-02 ;
  204.     dw    0FEF4H    ; -0.815474E-02 ;
  205.     dw    00CBH    ;  0.621682E-02 ;
  206.     dw    000BH    ;  0.342216E-03 ;
  207.     dw    00E6H    ;  0.704627E-02 ;
  208.     dw    0187H    ;  0.119391E-01 ;
  209.     dw    0FEE5H    ; -0.860811E-02 ;
  210.     dw    000BH    ;  0.346738E-03 ;
  211.     dw    0FE7FH    ; -0.117293E-01 ;
  212.     dw    0FDBFH    ; -0.175964E-01 ;
  213.     dw    0192H    ;  0.122947E-01 ;
  214.     dw    0FFB5H    ; -0.227426E-02 ;
  215.     dw    026AH    ;  0.188796E-01 ;
  216.     dw    0368H    ;  0.266148E-01 ;
  217.     dw    0FDC2H    ; -0.175126E-01 ;
  218.     dw    00C0H    ;  0.586574E-02 ;
  219.     dw    0FC0AH    ; -0.309240E-01 ;
  220.     dw    0FAA3H    ; -0.418954E-01 ;
  221.     dw    0347H    ;  0.256315E-01 ;
  222.     dw    0FE3DH    ; -0.137498E-01 ;
  223.     dw    0747H    ;  0.568720E-01 ;
  224.     dw    09BBH    ;  0.760286E-01 ;
  225.     dw    0FA3DH    ; -0.450011E-01 ;
  226.     dw    052BH    ;  0.403853E-01 ;
  227.     dw    0EB59H    ; -0.161339E+00 ;
  228.     dw    0DC2AH    ; -0.279963E+00 ;
  229.     dw    02D57H    ;  0.352454E+00 ;
  230.     dw    000AH
  231.     dw     0200H
  232.     dw    0800H
  233.     dw    08000H
  234. ;
  235.  
  236. START:    LDPK 0
  237. ;
  238.     LACK 1
  239.     SACL ONE    ; CONTENT OF ONE IS 1 ;
  240. ;
  241.     LARK AR0,MASK2    ; THIS SECTION OF CODE LOADS  ;
  242.     LARK AR1,2BH    ; THE FILTER COEFFICIENTS AND ;
  243.     LACK 45        ; OTHER VALUES FROM PROGRAM   ;
  244. LOAD:    LARP AR0    ; MEMORY TO DATA MEMORY       ;
  245.     TBLR *-,AR1
  246.     SUB ONE
  247.     BANZ LOAD
  248. ;
  249.     NOP
  250.     NOP
  251. ;
  252. WAIT:    BIOZ NXTPT    ; BIO PIN GOES LOW WHEN A ;
  253.     B WAIT        ; NEW SAMPLE IS AVAILABLE ;
  254. ;
  255. NXTPT:    IN XN,PA3    ; BRING IN THE NEW SAMPLE XN ;
  256.     LAC XN,4
  257.     SUB ONE,15
  258.     SACL XN,0
  259. ;
  260.     ZAC
  261. ;
  262.     LT XNM79    ; DUE TO SYMMETRY h(0) = h(79) ;
  263.     MPY H0        ; x(n-79) * h(79) ;
  264. ;
  265.     LTD XNM78
  266.     MPY H1        ; h(1) = h(78) ;
  267. ;
  268.     LTD XNM77
  269.     MPY H2
  270. ;
  271.     LTD XNM76
  272.     MPY H3
  273. ;
  274.     LTD XNM75
  275.     MPY H4
  276. ;
  277.     LTD XNM74
  278.     MPY H5
  279. ;
  280.     LTD XNM73
  281.     MPY H6
  282. ;
  283.     LTD XNM72
  284.     MPY H7
  285. ;
  286.     LTD XNM71
  287.     MPY H8
  288. ;
  289.     LTD XNM70
  290.     MPY H9
  291. ;
  292.     LTD XNM69
  293.     MPY H10
  294. ;
  295.     LTD XNM68
  296.     MPY H11
  297. ;
  298.     LTD XNM67
  299.     MPY H12
  300. ;
  301.     LTD XNM66
  302.     MPY H13
  303. ;
  304.     LTD XNM65
  305.     MPY H14
  306. ;
  307.     LTD XNM64
  308.     MPY H15
  309. ;
  310.     LTD XNM63
  311.     MPY H16
  312. ;
  313.     LTD XNM62
  314.     MPY H17
  315. ;
  316.     LTD XNM61
  317.     MPY H18
  318. ;
  319.     LTD XNM60
  320.     MPY H19
  321. ;
  322.     LTD XNM59
  323.     MPY H20
  324. ;
  325.     LTD XNM58
  326.     MPY H21
  327. ;
  328.     LTD XNM57
  329.     MPY H22
  330. ;
  331.     LTD XNM56
  332.     MPY H23
  333. ;
  334.     LTD XNM55
  335.     MPY H24
  336. ;
  337.     LTD XNM54
  338.     MPY H25
  339. ;
  340.     LTD XNM53
  341.     MPY H26
  342. ;
  343.     LTD XNM52
  344.     MPY H27
  345. ;
  346.     LTD XNM51
  347.     MPY H28
  348. ;
  349.     LTD XNM50
  350.     MPY H29
  351. ;
  352.     LTD XNM49
  353.     MPY H30
  354. ;
  355.     LTD XNM48
  356.     MPY H31
  357. ;
  358.     LTD XNM47
  359.     MPY H32
  360. ;
  361.     LTD XNM46
  362.     MPY H33
  363. ;
  364.     LTD XNM45
  365.     MPY H34
  366. ;
  367.     LTD XNM44
  368.     MPY H35
  369. ;
  370.     LTD XNM43
  371.     MPY H36
  372. ;
  373.     LTD XNM42
  374.     MPY H37
  375. ;
  376.     LTD XNM41
  377.     MPY H38
  378. ;
  379.     LTD XNM40
  380.     MPY H39
  381. ;
  382.     LTD XNM39
  383.     MPY H39
  384. ;
  385.     LTD XNM38
  386.     MPY H38
  387. ;
  388.     LTD XNM37
  389.     MPY H37
  390. ;
  391.     LTD XNM36
  392.     MPY H36
  393. ;
  394.     LTD XNM35
  395.     MPY H35
  396. ;
  397.     LTD XNM34
  398.     MPY H34
  399. ;
  400.     LTD XNM33
  401.     MPY H33
  402. ;
  403.     LTD XNM32
  404.     MPY H32
  405. ;
  406.     LTD XNM31
  407.     MPY H31
  408. ;
  409.     LTD XNM30
  410.     MPY H30
  411. ;
  412.     LTD XNM29
  413.     MPY H29
  414. ;
  415.     LTD XNM28
  416.     MPY H28
  417. ;
  418.     LTD XNM27
  419.     MPY H27
  420. ;
  421.     LTD XNM26
  422.     MPY H26
  423. ;
  424.     LTD XNM25
  425.     MPY H25
  426. ;
  427.     LTD XNM24
  428.     MPY H24
  429. ;
  430.     LTD XNM23
  431.     MPY H23
  432. ;
  433.     LTD XNM22
  434.     MPY H22
  435. ;
  436.     LTD XNM21
  437.     MPY H21
  438. ;
  439.     LTD XNM20
  440.     MPY H20
  441. ;
  442.     LTD XNM19
  443.     MPY H19
  444. ;
  445.     LTD XNM18
  446.     MPY H18
  447. ;
  448.     LTD XNM17
  449.     MPY H17
  450. ;
  451.     LTD XNM16
  452.     MPY H16
  453. ;
  454.     LTD XNM15
  455.     MPY H15
  456. ;
  457.     LTD XNM14
  458.     MPY H14
  459. ;
  460.     LTD XNM13
  461.     MPY H13
  462. ;
  463.     LTD XNM12
  464.     MPY H12
  465. ;
  466.     LTD XNM11
  467.     MPY H11
  468. ;
  469.     LTD XNM10
  470.     MPY H10
  471. ;
  472.     LTD XNM9
  473.     MPY H9
  474. ;
  475.     LTD XNM8
  476.     MPY H8
  477. ;
  478.     LTD XNM7
  479.     MPY H7
  480. ;
  481.     LTD XNM6
  482.     MPY H6
  483. ;
  484.     LTD XNM5
  485.     MPY H5
  486. ;
  487.     LTD XNM4
  488.     MPY H4
  489. ;
  490.     LTD XNM3
  491.     MPY H3
  492. ;
  493.     LTD XNM2
  494.     MPY H2
  495. ;
  496.     LTD XNM1
  497.     MPY H1
  498. ;
  499.     LTD XN
  500.     MPY H0
  501. ;
  502.     APAC
  503. ;
  504.     SACH YN,1
  505.     LAC YN,12
  506.     ADDH mask1
  507.     SACH YN,0
  508. ;
  509.     
  510.     OUT YN,PA4    ; OUTPUT THE FILTER RESPONSE y(n) ;
  511. ;
  512.     B WAIT        ; GO GET THE NEXT POINT ;
  513. ;
  514.     END
  515.