home *** CD-ROM | disk | FTP | other *** search
- ;************************************************************
- ;
- ; LINEAR-PHASE FIR FILTER
- ; LENGTH-80 BANDPASS FILTER
- ;
- ; SAMPLING FREQUENCY = 10 KHZ
- ;
- ; FILTER CHARACTERISTICS
- ;
- ; BAND 1 BAND 2 BAND 3
- ;
- ; LOWER BAND EDGE 0.0000 1.3750 4.0000
- ; UPPER BAND EDGE 1.0000 3.6250 5.0000
- ; NOMINAL GAIN 0.0000 1.0000 0.0000
- ; NOMINAL RIPPLE 0.0010 0.0200 0.0010
- ; MAXIMUM RIPPLE 0.0004 0.0076 0.0004
- ; RIPPLE IN DB -68.3965 0.0657 -68.3997
- ;
- ; FILTER STRUCTURE
- ;
- ;
- ; -1 -1 -1
- ; z z z
- ; o--->---o--->---o--->---o---> - - -o---->---o
- ; x(n) | | | | |
- ; | | | | |
- ; v h(0) v h(1) v h(2) v h(N-2) v h(N-1)
- ; | | | | |
- ; | | | | |
- ; o--->---o--->---o---> - - -o--->----o--->---o
- ; y(n)
- ;
- ;***********************************************************
- ;
- ; CYCLES | EXECUTION TIME | PROGRAM MEMORY | DATA MEMORY
- ; | (MICROSECONDS) | (WORDS) | (WORDS)
- ; -------|----------------|----------------|-------------
- ; | | |
- ; 163 | 32.6 | 163 | 120
- ; | | |
- ; -------------------------------------------------------
- ;
- ; (EXCLUDING INITIALIZATION AND I/O)
- ;
- ;***********************************************************
- ;
- ;
- XN: EQU 0
- XNM1: EQU 1
- XNM2: EQU 2
- XNM3: EQU 3
- XNM4: EQU 4
- XNM5: EQU 5
- XNM6: EQU 6
- XNM7: EQU 7
- XNM8: EQU 8
- XNM9: EQU 9
- XNM10: EQU 10
- XNM11: EQU 11
- XNM12: EQU 12
- XNM13: EQU 13
- XNM14: EQU 14
- XNM15: EQU 15
- XNM16: EQU 16
- XNM17: EQU 17
- XNM18: EQU 18
- XNM19: EQU 19
- XNM20: EQU 20
- XNM21: EQU 21
- XNM22: EQU 22
- XNM23: EQU 23
- XNM24: EQU 24
- XNM25: EQU 25
- XNM26: EQU 26
- XNM27: EQU 27
- XNM28: EQU 28
- XNM29: EQU 29
- XNM30: EQU 30
- XNM31: EQU 31
- XNM32: EQU 32
- XNM33: EQU 33
- XNM34: EQU 34
- XNM35: EQU 35
- XNM36: EQU 36
- XNM37: EQU 37
- XNM38: EQU 38
- XNM39: EQU 39
- XNM40: EQU 40
- XNM41: EQU 41
- XNM42: EQU 42
- XNM43: EQU 43
- XNM44: EQU 44
- XNM45: EQU 45
- XNM46: EQU 46
- XNM47: EQU 47
- XNM48: EQU 48
- XNM49: EQU 49
- XNM50: EQU 50
- XNM51: EQU 51
- XNM52: EQU 52
- XNM53: EQU 53
- XNM54: EQU 54
- XNM55: EQU 55
- XNM56: EQU 56
- XNM57: EQU 57
- XNM58: EQU 58
- XNM59: EQU 59
- XNM60: EQU 60
- XNM61: EQU 61
- XNM62: EQU 62
- XNM63: EQU 63
- XNM64: EQU 64
- XNM65: EQU 65
- XNM66: EQU 66
- XNM67: EQU 67
- XNM68: EQU 68
- XNM69: EQU 69
- XNM70: EQU 70
- XNM71: EQU 71
- XNM72: EQU 72
- XNM73: EQU 73
- XNM74: EQU 74
- XNM75: EQU 75
- XNM76: EQU 76
- XNM77: EQU 77
- XNM78: EQU 78
- XNM79: EQU 79
- ;
- H0: EQU 80
- H1: EQU 81
- H2: EQU 82
- H3: EQU 83
- H4: EQU 84
- H5: EQU 85
- H6: EQU 86
- H7: EQU 87
- H8: EQU 88
- H9: EQU 89
- H10: EQU 90
- H11: EQU 91
- H12: EQU 92
- H13: EQU 93
- H14: EQU 94
- H15: EQU 95
- H16: EQU 96
- H17: EQU 97
- H18: EQU 98
- H19: EQU 99
- H20: EQU 100
- H21: EQU 101
- H22: EQU 102
- H23: EQU 103
- H24: EQU 104
- H25: EQU 105
- H26: EQU 106
- H27: EQU 107
- H28: EQU 108
- H29: EQU 109
- H30: EQU 110
- H31: EQU 111
- H32: EQU 112
- H33: EQU 113
- H34: EQU 114
- H35: EQU 115
- H36: EQU 116
- H37: EQU 117
- H38: EQU 118
- H39: EQU 119
- ;
- MODE: EQU 120
- CLOCK: EQU 121
- MASK1: EQU 122
- MASK2: EQU 123
- YN: EQU 124
- ONE: EQU 125
- ;
- ORG 0
- ;
- B START
- ;
- ; COEFFICIENTS ARE INITIALLY ;
- ; STORED IN PROGRAM MEMORY ;
- ;
- ; DUE TO THE SYMMETRY OF THE IMPULSE RESPONSE ;
- ; ONLY HALF OF THE SAMPLES OF THE IMPULSE ;
- ; RESPONSE ARE STORED. THIS MEANS THAT ;
- ; h(N-1-n) = h(n). ;
- ;
- COEF:
- dw 0FFDCH ; -0.107251E-02 ; h(1),h(80)
- dw 001FH ; 0.973976E-03 ; 2,79
- dw 0051H ; 0.249065E-02 ; 3,77
- dw 0FFE9H ; -0.675043E-03 ;
- dw 0FFE6H ; -0.771385E-03 ;
- dw 0FFBAH ; -0.212256E-03 ;
- dw 0FFB4H ; -0.229530E-02 ;
- dw 004BH ; 0.231021E-02 ;
- dw 0FFF9H ; -0.194902E-03 ;
- dw 0069H ; 0.322896E-02 ;
- dw 00A2H ; 0.496452E-02 ;
- dw 0FF6FH ; -0.440419E-02 ;
- dw 0FFFEH ; -0.314831E-04 ;
- dw 0FF70H ; -0.438169E-02 ;
- dw 0FEF4H ; -0.815474E-02 ;
- dw 00CBH ; 0.621682E-02 ;
- dw 000BH ; 0.342216E-03 ;
- dw 00E6H ; 0.704627E-02 ;
- dw 0187H ; 0.119391E-01 ;
- dw 0FEE5H ; -0.860811E-02 ;
- dw 000BH ; 0.346738E-03 ;
- dw 0FE7FH ; -0.117293E-01 ;
- dw 0FDBFH ; -0.175964E-01 ;
- dw 0192H ; 0.122947E-01 ;
- dw 0FFB5H ; -0.227426E-02 ;
- dw 026AH ; 0.188796E-01 ;
- dw 0368H ; 0.266148E-01 ;
- dw 0FDC2H ; -0.175126E-01 ;
- dw 00C0H ; 0.586574E-02 ;
- dw 0FC0AH ; -0.309240E-01 ;
- dw 0FAA3H ; -0.418954E-01 ;
- dw 0347H ; 0.256315E-01 ;
- dw 0FE3DH ; -0.137498E-01 ;
- dw 0747H ; 0.568720E-01 ;
- dw 09BBH ; 0.760286E-01 ;
- dw 0FA3DH ; -0.450011E-01 ;
- dw 052BH ; 0.403853E-01 ;
- dw 0EB59H ; -0.161339E+00 ;
- dw 0DC2AH ; -0.279963E+00 ;
- dw 02D57H ; 0.352454E+00 ;
- dw 000AH
- dw 0200H
- dw 0800H
- dw 08000H
- ;
-
- START: LDPK 0
- ;
- LACK 1
- SACL ONE ; CONTENT OF ONE IS 1 ;
- ;
- LARK AR0,MASK2 ; THIS SECTION OF CODE LOADS ;
- LARK AR1,2BH ; THE FILTER COEFFICIENTS AND ;
- LACK 45 ; OTHER VALUES FROM PROGRAM ;
- LOAD: LARP AR0 ; MEMORY TO DATA MEMORY ;
- TBLR *-,AR1
- SUB ONE
- BANZ LOAD
- ;
- NOP
- NOP
- ;
- WAIT: BIOZ NXTPT ; BIO PIN GOES LOW WHEN A ;
- B WAIT ; NEW SAMPLE IS AVAILABLE ;
- ;
- NXTPT: IN XN,PA3 ; BRING IN THE NEW SAMPLE XN ;
- LAC XN,4
- SUB ONE,15
- SACL XN,0
- ;
- ZAC
- ;
- LT XNM79 ; DUE TO SYMMETRY h(0) = h(79) ;
- MPY H0 ; x(n-79) * h(79) ;
- ;
- LTD XNM78
- MPY H1 ; h(1) = h(78) ;
- ;
- LTD XNM77
- MPY H2
- ;
- LTD XNM76
- MPY H3
- ;
- LTD XNM75
- MPY H4
- ;
- LTD XNM74
- MPY H5
- ;
- LTD XNM73
- MPY H6
- ;
- LTD XNM72
- MPY H7
- ;
- LTD XNM71
- MPY H8
- ;
- LTD XNM70
- MPY H9
- ;
- LTD XNM69
- MPY H10
- ;
- LTD XNM68
- MPY H11
- ;
- LTD XNM67
- MPY H12
- ;
- LTD XNM66
- MPY H13
- ;
- LTD XNM65
- MPY H14
- ;
- LTD XNM64
- MPY H15
- ;
- LTD XNM63
- MPY H16
- ;
- LTD XNM62
- MPY H17
- ;
- LTD XNM61
- MPY H18
- ;
- LTD XNM60
- MPY H19
- ;
- LTD XNM59
- MPY H20
- ;
- LTD XNM58
- MPY H21
- ;
- LTD XNM57
- MPY H22
- ;
- LTD XNM56
- MPY H23
- ;
- LTD XNM55
- MPY H24
- ;
- LTD XNM54
- MPY H25
- ;
- LTD XNM53
- MPY H26
- ;
- LTD XNM52
- MPY H27
- ;
- LTD XNM51
- MPY H28
- ;
- LTD XNM50
- MPY H29
- ;
- LTD XNM49
- MPY H30
- ;
- LTD XNM48
- MPY H31
- ;
- LTD XNM47
- MPY H32
- ;
- LTD XNM46
- MPY H33
- ;
- LTD XNM45
- MPY H34
- ;
- LTD XNM44
- MPY H35
- ;
- LTD XNM43
- MPY H36
- ;
- LTD XNM42
- MPY H37
- ;
- LTD XNM41
- MPY H38
- ;
- LTD XNM40
- MPY H39
- ;
- LTD XNM39
- MPY H39
- ;
- LTD XNM38
- MPY H38
- ;
- LTD XNM37
- MPY H37
- ;
- LTD XNM36
- MPY H36
- ;
- LTD XNM35
- MPY H35
- ;
- LTD XNM34
- MPY H34
- ;
- LTD XNM33
- MPY H33
- ;
- LTD XNM32
- MPY H32
- ;
- LTD XNM31
- MPY H31
- ;
- LTD XNM30
- MPY H30
- ;
- LTD XNM29
- MPY H29
- ;
- LTD XNM28
- MPY H28
- ;
- LTD XNM27
- MPY H27
- ;
- LTD XNM26
- MPY H26
- ;
- LTD XNM25
- MPY H25
- ;
- LTD XNM24
- MPY H24
- ;
- LTD XNM23
- MPY H23
- ;
- LTD XNM22
- MPY H22
- ;
- LTD XNM21
- MPY H21
- ;
- LTD XNM20
- MPY H20
- ;
- LTD XNM19
- MPY H19
- ;
- LTD XNM18
- MPY H18
- ;
- LTD XNM17
- MPY H17
- ;
- LTD XNM16
- MPY H16
- ;
- LTD XNM15
- MPY H15
- ;
- LTD XNM14
- MPY H14
- ;
- LTD XNM13
- MPY H13
- ;
- LTD XNM12
- MPY H12
- ;
- LTD XNM11
- MPY H11
- ;
- LTD XNM10
- MPY H10
- ;
- LTD XNM9
- MPY H9
- ;
- LTD XNM8
- MPY H8
- ;
- LTD XNM7
- MPY H7
- ;
- LTD XNM6
- MPY H6
- ;
- LTD XNM5
- MPY H5
- ;
- LTD XNM4
- MPY H4
- ;
- LTD XNM3
- MPY H3
- ;
- LTD XNM2
- MPY H2
- ;
- LTD XNM1
- MPY H1
- ;
- LTD XN
- MPY H0
- ;
- APAC
- ;
- SACH YN,1
- LAC YN,12
- ADDH mask1
- SACH YN,0
- ;
-
- OUT YN,PA4 ; OUTPUT THE FILTER RESPONSE y(n) ;
- ;
- B WAIT ; GO GET THE NEXT POINT ;
- ;
- END
-