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

  1. ************************************************************
  2. *
  3. *                 FIR FILTER
  4. *              LENGTH-60 DIFFERENTIATOR
  5. *
  6. *               FILTER CHARACTERISTICS
  7. *
  8. *    SAMPLING FREQUENCY = 10 KHZ
  9. *
  10. *    LOWER BAND EDGE     0.0000
  11. *    UPPER BAND EDGE     5.0000
  12. *    DESIRED SLOPE        0.4800
  13. *    MAX % DEVIATION     0.3171
  14. *
  15. *                 FILTER STRUCTURE
  16. *
  17. *
  18. *           -1      -1              -1
  19. *          z       z             z
  20. * o--->---o--->---o--->---o---> -  -  -o---->---o
  21. * x(n)      |      |      |           |    |
  22. *      |      |      |           |    |
  23. *      v h(0)  v h(1)  v h(2)       v h(N-2) v h(N-1)
  24. *      |      |      |           |    |
  25. *      |      |      |           |    |
  26. *      o--->---o--->---o---> -  -  -o---->---o--->---o
  27. *                               y(n)
  28. *
  29. ************************************************************
  30. *
  31. *   CYCLES | EXECUTION TIME | PROGRAM MEMORY | DATA MEMORY
  32. *       | (MICROSECONDS) |      (WORDS)    |     (WORDS)
  33. *   -------|----------------|----------------|------------
  34. *       |            |             |
  35. *     243  |     48.6        |        11         |       120
  36. *       |            |             |
  37. *   ------------------------------------------------------
  38. *
  39. *   (EXCLUDING I/O AND INITIALIZATION)
  40. *
  41. ************************************************************
  42. *
  43.     IDT 'FIRDIF'
  44. XN    EQU 0
  45. XNM1    EQU 1
  46. XNM2    EQU 2
  47. XNM3    EQU 3
  48. XNM4    EQU 4
  49. XNM5    EQU 5
  50. XNM6    EQU 6
  51. XNM7    EQU 7
  52. XNM8    EQU 8
  53. XNM9    EQU 9
  54. XNM10    EQU 10
  55. XNM11    EQU 11
  56. XNM12    EQU 12
  57. XNM13    EQU 13
  58. XNM14    EQU 14
  59. XNM15    EQU 15
  60. XNM16    EQU 16
  61. XNM17    EQU 17
  62. XNM18    EQU 18
  63. XNM19    EQU 19
  64. XNM20    EQU 20
  65. XNM21    EQU 21
  66. XNM22    EQU 22
  67. XNM23    EQU 23
  68. XNM24    EQU 24
  69. XNM25    EQU 25
  70. XNM26    EQU 26
  71. XNM27    EQU 27
  72. XNM28    EQU 28
  73. XNM29    EQU 29
  74. XNM30    EQU 30
  75. XNM31    EQU 31
  76. XNM32    EQU 32
  77. XNM33    EQU 33
  78. XNM34    EQU 34
  79. XNM35    EQU 35
  80. XNM36    EQU 36
  81. XNM37    EQU 37
  82. XNM38    EQU 38
  83. XNM39    EQU 39
  84. XNM40    EQU 40
  85. XNM41    EQU 41
  86. XNM42    EQU 42
  87. XNM43    EQU 43
  88. XNM44    EQU 44
  89. XNM45    EQU 45
  90. XNM46    EQU 46
  91. XNM47    EQU 47
  92. XNM48    EQU 48
  93. XNM49    EQU 49
  94. XNM50    EQU 50
  95. XNM51    EQU 51
  96. XNM52    EQU 52
  97. XNM53    EQU 53
  98. XNM54    EQU 54
  99. XNM55    EQU 55
  100. XNM56    EQU 56
  101. XNM57    EQU 57
  102. XNM58    EQU 58
  103. XNM59    EQU 59
  104. *
  105. H0    EQU 60
  106. H1    EQU 61
  107. H2    EQU 62
  108. H3    EQU 63
  109. H4    EQU 64
  110. H5    EQU 65
  111. H6    EQU 66
  112. H7    EQU 67
  113. H8    EQU 68
  114. H9    EQU 69
  115. H10    EQU 70
  116. H11    EQU 71
  117. H12    EQU 72
  118. H13    EQU 73
  119. H14    EQU 74
  120. H15    EQU 75
  121. H16    EQU 76
  122. H17    EQU 77
  123. H18    EQU 78
  124. H19    EQU 79
  125. H20    EQU 80
  126. H21    EQU 81
  127. H22    EQU 82
  128. H23    EQU 83
  129. H24    EQU 84
  130. H25    EQU 85
  131. H26    EQU 86
  132. H27    EQU 87
  133. H28    EQU 88
  134. H29    EQU 89
  135. H30    EQU 90
  136. H31    EQU 91
  137. H32    EQU 92
  138. H33    EQU 93
  139. H34    EQU 94
  140. H35    EQU 95
  141. H36    EQU 96
  142. H37    EQU 97
  143. H38    EQU 98
  144. H39    EQU 99
  145. H40    EQU 100
  146. H41    EQU 101
  147. H42    EQU 102
  148. H43    EQU 103
  149. H44    EQU 104
  150. H45    EQU 105
  151. H46    EQU 106
  152. H47    EQU 107
  153. H48    EQU 108
  154. H49    EQU 109
  155. H50    EQU 110
  156. H51    EQU 111
  157. H52    EQU 112
  158. H53    EQU 113
  159. H54    EQU 114
  160. H55    EQU 115
  161. H56    EQU 116
  162. H57    EQU 117
  163. H58    EQU 118
  164. H59    EQU 119
  165. *
  166. MODE    EQU 120
  167. CLOCK    EQU 121
  168. YN    EQU 124
  169. ONE    EQU 125
  170. *
  171.     AORG 0
  172. *
  173.     B START
  174. *
  175. * COEFFICIENTS ARE INITIALLY *
  176. * STORED IN PROGRAM MEMORY   *
  177. *
  178. CH0    DATA    >0030    *  0.146547E-02 *
  179. CH1    DATA    >FFC2    * -0.186717E-02 *
  180. CH2    DATA    >0015    *  0.670857E-03 *
  181. CH3    DATA    >FFEF    * -0.507893E-03 *
  182. CH4    DATA    >000F    *  0.476907E-03 *
  183. CH5    DATA    >FFF0    * -0.482679E-03 *
  184. CH6    DATA    >0010    *  0.505055E-03 *
  185. CH7    DATA    >FFEE    * -0.536698E-03 *
  186. CH8    DATA    >0012    *  0.576256E-03 *
  187. CH9    DATA    >FFEB    * -0.624602E-03 *
  188. CH10    DATA    >0016    *  0.681939E-03 *
  189. CH11    DATA    >FFE7    * -0.750338E-03 *
  190. CH12    DATA    >001B    *  0.831878E-03 *
  191. CH13    DATA    >FFE1    * -0.929373E-03 *
  192. CH14    DATA    >0022    *  0.104702E-02 *
  193. CH15    DATA    >FFD8    * -0.119041E-02 *
  194. CH16    DATA    >002C    *  0.136731E-02 *
  195. CH17    DATA    >FFCB    * -0.158880E-02 *
  196. CH18    DATA    >003D    *  0.187070E-02 *
  197. CH19    DATA    >FFB6    * -0.223732E-02 *
  198. CH20    DATA    >0059    *  0.272579E-02 *
  199. CH21    DATA    >FF90    * -0.339682E-02 *
  200. CH22    DATA    >008E    *  0.435422E-02 *
  201. CH23    DATA    >FF42    * -0.578642E-02 *
  202. CH24    DATA    >0108    *  0.806880E-02 *
  203. CH25    DATA    >FE75    * -0.120382E-01 *
  204. CH26    DATA    >028B    *  0.198777E-01 *
  205. CH27    DATA    >FB04    * -0.389339E-01 *
  206. CH28    DATA    >0DD6    *  0.108105E+00 *
  207. CH29    DATA    >837E    * -0.972714E+00 *
  208. CH30    DATA    >7C81    * -CH29 *
  209. CH31    DATA    >F229    * -CH28 *
  210. CH32    DATA    >04FB    * -CH27 *
  211. CH33    DATA    >FD74    * -CH26 *
  212. CH34    DATA    >018A    * -CH25 *
  213. CH35    DATA    >FEF7    * -CH24 *
  214. CH36    DATA    >00BD    * -CH23 *
  215. CH37    DATA    >FF71    * -CH22 *
  216. CH38    DATA    >006F    * -CH21 *
  217. CH39    DATA    >FFA6    * -CH20 *
  218. CH40    DATA    >0049    * -CH19 *
  219. CH41    DATA    >FFC2    * -CH18 *
  220. CH42    DATA    >0034    * -CH17 *
  221. CH43    DATA    >FFD3    * -CH16 *
  222. CH44    DATA    >0027    * -CH15 *
  223. CH45    DATA    >FFDD    * -CH14 *
  224. CH46    DATA    >001E    * -CH13 *
  225. CH47    DATA    >FFE4    * -CH12 *
  226. CH48    DATA    >0018    * -CH11 *
  227. CH49    DATA    >FFE9    * -CH10 *
  228. CH50    DATA    >0014    * -CH9 *
  229. CH51    DATA    >FFED    * -CH8 *
  230. CH52    DATA    >0011    * -CH7 *
  231. CH53    DATA    >FFEF    * -CH6 *
  232. CH54    DATA    >000F    * -CH5 *
  233. CH55    DATA    >FFF0    * -CH4 *
  234. CH56    DATA    >0010    * -CH3 *
  235. CH57    DATA    >FFEA    * -CH2 *
  236. CH58    DATA    >003D    * -CH1 *
  237. CH59    DATA    >FFCF    * -CH0 *
  238. *
  239. MD    DATA    >000A
  240. SMP    DATA    499    * SAMPLING RATE OF 10 KHZ *
  241. *
  242. START    LDPK 0
  243. *
  244.     LACK 1
  245.     SACL ONE    * CONTENT OF ONE IS 1 *
  246. *
  247.     LARK AR0,CLOCK    * THIS SECTION OF CODE LOADS  *
  248.     LARK AR1,60    * THE FILTER COEFFICIENTS AND *
  249.     LACK SMP    * OTHER VALUES FROM PROGRAM   *
  250. LOAD    LARP AR0    * MEMORY TO DATA MEMORY       *
  251.     TBLR *-,AR1
  252.     SUB ONE
  253.     BANZ LOAD
  254. *
  255.     OUT MODE,PA0    * INITIALIZATION OF ANALOG *
  256.     OUT CLOCK,PA1    * INTERFACE BOARD       *
  257. *
  258.     LARP AR0    * SET ARP TO AR0 *
  259. *
  260. WAIT    BIOZ NXTPT    * BIO PIN GOES LOW WHEN A *
  261.     B WAIT        * NEW SAMPLE IS AVAILABLE *
  262. *
  263. NXTPT    IN XN,PA2    * BRING IN THE NEW SAMPLE XN *
  264. *
  265.     LARK AR0,XNM59    * AR0 POINTS TO THE INPUT SEQUENCE *
  266.     LARK AR1,H59    * AR1 POINTS TO THE IMPULSE RESPONSE *
  267. *
  268.     ZAC
  269. *
  270.     LT *-,AR1
  271.     MPY *-,AR0
  272. *
  273. LOOP    LTD *,AR1
  274.     MPY *-,AR0
  275. *
  276.     BANZ LOOP
  277. *
  278.     APAC        * ACCUMULATE LAST MULTIPLY *
  279. *
  280.     SACH YN,1
  281. *
  282.     OUT YN,PA2    * OUTPUT THE FILTER RESPONSE y(n) *
  283. *
  284.     B WAIT        * GO GET THE NEXT POINT *
  285. *
  286.     END
  287.