1 /*
2 * Copyright (c) 2016, Texas Instruments Incorporated
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 *
9 * * Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer.
11 *
12 * * Redistributions in binary form must reproduce the above copyright
13 * notice, this list of conditions and the following disclaimer in the
14 * documentation and/or other materials provided with the distribution.
15 *
16 * * Neither the name of Texas Instruments Incorporated nor the names of
17 * its contributors may be used to endorse or promote products derived
18 * from this software without specific prior written permission.
19 *
20 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
22 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
23 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
24 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
25 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
26 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
27 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
28 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
29 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
30 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31 *
32 */
33 \r
34 /*=================================================================\r
35 * sysbfflt.c: BF filters for all angles of interest\r
36 *=================================================================*/\r
37 \r
38 #include <xdc/std.h>\r
39 #include <ti/mas/types/types.h>\r
40 \r
41 #include "sysbfflt.h"\r
42 \r
43 /* SYS_BF_ANGLE_P0 */\r
44 Fract sysBfFltP0[][SYS_BF_FILTER_LENGTH] = {\r
45 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32767, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},\r
46 { 4, -20, 50, -99, 170, -273, 423, -658, 1088, -2242, 32453, 2628, -1190, 706, -452, 292, -183, 108, -56, 24, -6, 0, 0, 0},\r
47 { -30, 103, -230, 426, -710, 1120, -1731, 2732, -4766, 12228, 27878, -6328, 3324, -2054, 1326, -851, 524, -297, 145, -53, 8, 0, 0, 0},\r
48 { 4, -20, 50, -99, 170, -273, 423, -658, 1088, -2242, 32453, 2628, -1190, 706, -452, 292, -183, 108, -56, 24, -6, 0, 0, 0},\r
49 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32767, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},\r
50 { 0, 0, -6, 24, -56, 108, -183, 292, -452, 706, -1190, 2628, 32453, -2242, 1088, -658, 423, -273, 170, -99, 50, -20, 4, 0},\r
51 { 0, 0, 8, -53, 145, -297, 524, -851, 1326, -2054, 3324, -6328, 27878, 12228, -4766, 2732, -1731, 1120, -710, 426, -230, 103, -30, 0},\r
52 { 0, 0, -6, 24, -56, 108, -183, 292, -452, 706, -1190, 2628, 32453, -2242, 1088, -658, 423, -273, 170, -99, 50, -20, 4, 0}\r
53 };\r
54 \r
55 /* SYS_BF_ANGLE_P30 */\r
56 Fract sysBfFltP30[][SYS_BF_FILTER_LENGTH] = {\r
57 { 8, -54, 152, -312, 554, -902, 1407, -2178, 3513, -6613, 26596, 14027, -5285, 3007, -1902, 1231, -782, 470, -255, 116, -35, 0, 0, 0},\r
58 { -25, 88, -199, 371, -621, 981, -1517, 2388, -4136, 10250, 29149, -5866, 3041, -1872, 1208, -776, 479, -273, 134, -50, 8, 0, 0, 0},\r
59 { -11, 42, -100, 189, -319, 507, -784, 1228, -2086, 4748, 31832, -3605, 1788, -1087, 700, -451, 280, -162, 82, -32, 6, 0, 0, 0},\r
60 { 0, -34, 113, -250, 461, -767, 1209, -1868, 2952, -5179, 13643, 26879, -6563, 3478, -2155, 1392, -893, 548, -310, 150, -54, 8, 0, 0},\r
61 { 0, 0, -35, 116, -255, 470, -782, 1231, -1902, 3007, -5285, 14027, 26596, -6613, 3513, -2178, 1407, -902, 554, -312, 152, -54, 8, 0},\r
62 { 0, 0, 8, -50, 134, -273, 479, -776, 1208, -1872, 3041, -5866, 29149, 10250, -4136, 2388, -1517, 981, -621, 371, -199, 88, -25, 0},\r
63 { 0, 0, 6, -32, 82, -162, 280, -451, 700, -1087, 1788, -3605, 31832, 4748, -2086, 1228, -784, 507, -319, 189, -100, 42, -11, 0},\r
64 { 0, 8, -54, 150, -310, 548, -893, 1392, -2155, 3478, -6563, 26879, 13643, -5179, 2952, -1868, 1209, -767, 461, -250, 113, -34, 0, 0}\r
65 };\r
66 \r
67 /* SYS_BF_ANGLE_P45 */\r
68 Fract sysBfFltP45[][SYS_BF_FILTER_LENGTH] = {\r
69 { 4, -20, 50, -99, 170, -273, 423, -658, 1088, -2242, 32453, 2628, -1190, 706, -452, 292, -183, 108, -56, 24, -6, 0, 0, 0},\r
70 { -30, 103, -230, 426, -710, 1120, -1731, 2732, -4766, 12228, 27878, -6328, 3324, -2054, 1326, -851, 524, -297, 145, -53, 8, 0, 0, 0},\r
71 { 4, -20, 50, -99, 170, -273, 423, -658, 1088, -2242, 32453, 2628, -1190, 706, -452, 292, -183, 108, -56, 24, -6, 0, 0, 0},\r
72 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32767, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},\r
73 { 0, 0, -6, 24, -56, 108, -183, 292, -452, 706, -1190, 2628, 32453, -2242, 1088, -658, 423, -273, 170, -99, 50, -20, 4, 0},\r
74 { 0, 0, 8, -53, 145, -297, 524, -851, 1326, -2054, 3324, -6328, 27878, 12228, -4766, 2732, -1731, 1120, -710, 426, -230, 103, -30, 0},\r
75 { 0, 0, -6, 24, -56, 108, -183, 292, -452, 706, -1190, 2628, 32453, -2242, 1088, -658, 423, -273, 170, -99, 50, -20, 4, 0},\r
76 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32767, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}\r
77 };\r
78 \r
79 /* SYS_BF_ANGLE_P60 */\r
80 Fract sysBfFltP60[][SYS_BF_FILTER_LENGTH] = {\r
81 { -11, 42, -100, 189, -319, 507, -784, 1228, -2086, 4748, 31832, -3605, 1788, -1087, 700, -451, 280, -162, 82, -32, 6, 0, 0, 0},\r
82 { -25, 88, -199, 371, -621, 981, -1517, 2388, -4136, 10250, 29149, -5866, 3041, -1872, 1208, -776, 479, -273, 134, -50, 8, 0, 0, 0},\r
83 { 8, -54, 152, -312, 554, -902, 1407, -2178, 3513, -6613, 26596, 14027, -5285, 3007, -1902, 1231, -782, 470, -255, 116, -35, 0, 0, 0},\r
84 { 0, 8, -54, 150, -310, 548, -893, 1392, -2155, 3478, -6563, 26879, 13643, -5179, 2952, -1868, 1209, -767, 461, -250, 113, -34, 0, 0},\r
85 { 0, 0, 6, -32, 82, -162, 280, -451, 700, -1087, 1788, -3605, 31832, 4748, -2086, 1228, -784, 507, -319, 189, -100, 42, -11, 0},\r
86 { 0, 0, 8, -50, 134, -273, 479, -776, 1208, -1872, 3041, -5866, 29149, 10250, -4136, 2388, -1517, 981, -621, 371, -199, 88, -25, 0},\r
87 { 0, 0, -35, 116, -255, 470, -782, 1231, -1902, 3007, -5285, 14027, 26596, -6613, 3513, -2178, 1407, -902, 554, -312, 152, -54, 8, 0},\r
88 { 0, -34, 113, -250, 461, -767, 1209, -1868, 2952, -5179, 13643, 26879, -6563, 3478, -2155, 1392, -893, 548, -310, 150, -54, 8, 0, 0}\r
89 };\r
90 \r
91 /* SYS_BF_ANGLE_P90 */\r
92 Fract sysBfFltP90[][SYS_BF_FILTER_LENGTH] = {\r
93 { -30, 103, -230, 426, -710, 1120, -1731, 2732, -4766, 12228, 27878, -6328, 3324, -2054, 1326, -851, 524, -297, 145, -53, 8, 0, 0, 0},\r
94 { 4, -20, 50, -99, 170, -273, 423, -658, 1088, -2242, 32453, 2628, -1190, 706, -452, 292, -183, 108, -56, 24, -6, 0, 0, 0},\r
95 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32767, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},\r
96 { 0, 0, -6, 24, -56, 108, -183, 292, -452, 706, -1190, 2628, 32453, -2242, 1088, -658, 423, -273, 170, -99, 50, -20, 4, 0},\r
97 { 0, 0, 8, -53, 145, -297, 524, -851, 1326, -2054, 3324, -6328, 27878, 12228, -4766, 2732, -1731, 1120, -710, 426, -230, 103, -30, 0},\r
98 { 0, 0, -6, 24, -56, 108, -183, 292, -452, 706, -1190, 2628, 32453, -2242, 1088, -658, 423, -273, 170, -99, 50, -20, 4, 0},\r
99 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32767, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},\r
100 { 4, -20, 50, -99, 170, -273, 423, -658, 1088, -2242, 32453, 2628, -1190, 706, -452, 292, -183, 108, -56, 24, -6, 0, 0, 0}\r
101 };\r
102 \r
103 /* SYS_BF_ANGLE_P120 */\r
104 Fract sysBfFltP120[][SYS_BF_FILTER_LENGTH] = {\r
105 { -11, 42, -100, 189, -319, 507, -784, 1228, -2086, 4748, 31832, -3605, 1788, -1087, 700, -451, 280, -162, 82, -32, 6, 0, 0, 0},\r
106 { 0, -34, 113, -250, 461, -767, 1209, -1868, 2952, -5179, 13643, 26879, -6563, 3478, -2155, 1392, -893, 548, -310, 150, -54, 8, 0, 0},\r
107 { 0, 0, -35, 116, -255, 470, -782, 1231, -1902, 3007, -5285, 14027, 26596, -6613, 3513, -2178, 1407, -902, 554, -312, 152, -54, 8, 0},\r
108 { 0, 0, 8, -50, 134, -273, 479, -776, 1208, -1872, 3041, -5866, 29149, 10250, -4136, 2388, -1517, 981, -621, 371, -199, 88, -25, 0},\r
109 { 0, 0, 6, -32, 82, -162, 280, -451, 700, -1087, 1788, -3605, 31832, 4748, -2086, 1228, -784, 507, -319, 189, -100, 42, -11, 0},\r
110 { 0, 8, -54, 150, -310, 548, -893, 1392, -2155, 3478, -6563, 26879, 13643, -5179, 2952, -1868, 1209, -767, 461, -250, 113, -34, 0, 0},\r
111 { 8, -54, 152, -312, 554, -902, 1407, -2178, 3513, -6613, 26596, 14027, -5285, 3007, -1902, 1231, -782, 470, -255, 116, -35, 0, 0, 0},\r
112 { -25, 88, -199, 371, -621, 981, -1517, 2388, -4136, 10250, 29149, -5866, 3041, -1872, 1208, -776, 479, -273, 134, -50, 8, 0, 0, 0}\r
113 };\r
114 \r
115 /* SYS_BF_ANGLE_P135 */\r
116 Fract sysBfFltP135[][SYS_BF_FILTER_LENGTH] = {\r
117 { 4, -20, 50, -99, 170, -273, 423, -658, 1088, -2242, 32453, 2628, -1190, 706, -452, 292, -183, 108, -56, 24, -6, 0, 0, 0},\r
118 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32767, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},\r
119 { 0, 0, -6, 24, -56, 108, -183, 292, -452, 706, -1190, 2628, 32453, -2242, 1088, -658, 423, -273, 170, -99, 50, -20, 4, 0},\r
120 { 0, 0, 8, -53, 145, -297, 524, -851, 1326, -2054, 3324, -6328, 27878, 12228, -4766, 2732, -1731, 1120, -710, 426, -230, 103, -30, 0},\r
121 { 0, 0, -6, 24, -56, 108, -183, 292, -452, 706, -1190, 2628, 32453, -2242, 1088, -658, 423, -273, 170, -99, 50, -20, 4, 0},\r
122 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32767, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},\r
123 { 4, -20, 50, -99, 170, -273, 423, -658, 1088, -2242, 32453, 2628, -1190, 706, -452, 292, -183, 108, -56, 24, -6, 0, 0, 0},\r
124 { -30, 103, -230, 426, -710, 1120, -1731, 2732, -4766, 12228, 27878, -6328, 3324, -2054, 1326, -851, 524, -297, 145, -53, 8, 0, 0, 0}\r
125 };\r
126 \r
127 /* SYS_BF_ANGLE_P150 */\r
128 Fract sysBfFltP150[][SYS_BF_FILTER_LENGTH] = {\r
129 { 8, -54, 152, -312, 554, -902, 1407, -2178, 3513, -6613, 26596, 14027, -5285, 3007, -1902, 1231, -782, 470, -255, 116, -35, 0, 0, 0},\r
130 { 0, 8, -54, 150, -310, 548, -893, 1392, -2155, 3478, -6563, 26879, 13643, -5179, 2952, -1868, 1209, -767, 461, -250, 113, -34, 0, 0},\r
131 { 0, 0, 6, -32, 82, -162, 280, -451, 700, -1087, 1788, -3605, 31832, 4748, -2086, 1228, -784, 507, -319, 189, -100, 42, -11, 0},\r
132 { 0, 0, 8, -50, 134, -273, 479, -776, 1208, -1872, 3041, -5866, 29149, 10250, -4136, 2388, -1517, 981, -621, 371, -199, 88, -25, 0},\r
133 { 0, 0, -35, 116, -255, 470, -782, 1231, -1902, 3007, -5285, 14027, 26596, -6613, 3513, -2178, 1407, -902, 554, -312, 152, -54, 8, 0},\r
134 { 0, -34, 113, -250, 461, -767, 1209, -1868, 2952, -5179, 13643, 26879, -6563, 3478, -2155, 1392, -893, 548, -310, 150, -54, 8, 0, 0},\r
135 { -11, 42, -100, 189, -319, 507, -784, 1228, -2086, 4748, 31832, -3605, 1788, -1087, 700, -451, 280, -162, 82, -32, 6, 0, 0, 0},\r
136 { -25, 88, -199, 371, -621, 981, -1517, 2388, -4136, 10250, 29149, -5866, 3041, -1872, 1208, -776, 479, -273, 134, -50, 8, 0, 0, 0}\r
137 };\r
138 \r
139 /* SYS_BF_ANGLE_P180 */\r
140 Fract sysBfFltP180[][SYS_BF_FILTER_LENGTH] = {\r
141 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32767, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},\r
142 { 0, 0, -6, 24, -56, 108, -183, 292, -452, 706, -1190, 2628, 32453, -2242, 1088, -658, 423, -273, 170, -99, 50, -20, 4, 0},\r
143 { 0, 0, 8, -53, 145, -297, 524, -851, 1326, -2054, 3324, -6328, 27878, 12228, -4766, 2732, -1731, 1120, -710, 426, -230, 103, -30, 0},\r
144 { 0, 0, -6, 24, -56, 108, -183, 292, -452, 706, -1190, 2628, 32453, -2242, 1088, -658, 423, -273, 170, -99, 50, -20, 4, 0},\r
145 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32767, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},\r
146 { 4, -20, 50, -99, 170, -273, 423, -658, 1088, -2242, 32453, 2628, -1190, 706, -452, 292, -183, 108, -56, 24, -6, 0, 0, 0},\r
147 { -30, 103, -230, 426, -710, 1120, -1731, 2732, -4766, 12228, 27878, -6328, 3324, -2054, 1326, -851, 524, -297, 145, -53, 8, 0, 0, 0},\r
148 { 4, -20, 50, -99, 170, -273, 423, -658, 1088, -2242, 32453, 2628, -1190, 706, -452, 292, -183, 108, -56, 24, -6, 0, 0, 0}\r
149 };\r
150 \r
151 /* SYS_BF_ANGLE_M150 */\r
152 Fract sysBfFltM150[][SYS_BF_FILTER_LENGTH] = {\r
153 { 0, 0, -35, 116, -255, 470, -782, 1231, -1902, 3007, -5285, 14027, 26596, -6613, 3513, -2178, 1407, -902, 554, -312, 152, -54, 8, 0},\r
154 { 0, 0, 8, -50, 134, -273, 479, -776, 1208, -1872, 3041, -5866, 29149, 10250, -4136, 2388, -1517, 981, -621, 371, -199, 88, -25, 0},\r
155 { 0, 0, 6, -32, 82, -162, 280, -451, 700, -1087, 1788, -3605, 31832, 4748, -2086, 1228, -784, 507, -319, 189, -100, 42, -11, 0},\r
156 { 0, 8, -54, 150, -310, 548, -893, 1392, -2155, 3478, -6563, 26879, 13643, -5179, 2952, -1868, 1209, -767, 461, -250, 113, -34, 0, 0},\r
157 { 8, -54, 152, -312, 554, -902, 1407, -2178, 3513, -6613, 26596, 14027, -5285, 3007, -1902, 1231, -782, 470, -255, 116, -35, 0, 0, 0},\r
158 { -25, 88, -199, 371, -621, 981, -1517, 2388, -4136, 10250, 29149, -5866, 3041, -1872, 1208, -776, 479, -273, 134, -50, 8, 0, 0, 0},\r
159 { -11, 42, -100, 189, -319, 507, -784, 1228, -2086, 4748, 31832, -3605, 1788, -1087, 700, -451, 280, -162, 82, -32, 6, 0, 0, 0},\r
160 { 0, -34, 113, -250, 461, -767, 1209, -1868, 2952, -5179, 13643, 26879, -6563, 3478, -2155, 1392, -893, 548, -310, 150, -54, 8, 0, 0}\r
161 };\r
162 \r
163 /* SYS_BF_ANGLE_M135 */\r
164 Fract sysBfFltM135[][SYS_BF_FILTER_LENGTH] = {\r
165 { 0, 0, -6, 24, -56, 108, -183, 292, -452, 706, -1190, 2628, 32453, -2242, 1088, -658, 423, -273, 170, -99, 50, -20, 4, 0},\r
166 { 0, 0, 8, -53, 145, -297, 524, -851, 1326, -2054, 3324, -6328, 27878, 12228, -4766, 2732, -1731, 1120, -710, 426, -230, 103, -30, 0},\r
167 { 0, 0, -6, 24, -56, 108, -183, 292, -452, 706, -1190, 2628, 32453, -2242, 1088, -658, 423, -273, 170, -99, 50, -20, 4, 0},\r
168 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32767, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},\r
169 { 4, -20, 50, -99, 170, -273, 423, -658, 1088, -2242, 32453, 2628, -1190, 706, -452, 292, -183, 108, -56, 24, -6, 0, 0, 0},\r
170 { -30, 103, -230, 426, -710, 1120, -1731, 2732, -4766, 12228, 27878, -6328, 3324, -2054, 1326, -851, 524, -297, 145, -53, 8, 0, 0, 0},\r
171 { 4, -20, 50, -99, 170, -273, 423, -658, 1088, -2242, 32453, 2628, -1190, 706, -452, 292, -183, 108, -56, 24, -6, 0, 0, 0},\r
172 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32767, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}\r
173 };\r
174 \r
175 /* SYS_BF_ANGLE_M120 */\r
176 Fract sysBfFltM120[][SYS_BF_FILTER_LENGTH] = {\r
177 { 0, 0, 6, -32, 82, -162, 280, -451, 700, -1087, 1788, -3605, 31832, 4748, -2086, 1228, -784, 507, -319, 189, -100, 42, -11, 0},\r
178 { 0, 0, 8, -50, 134, -273, 479, -776, 1208, -1872, 3041, -5866, 29149, 10250, -4136, 2388, -1517, 981, -621, 371, -199, 88, -25, 0},\r
179 { 0, 0, -35, 116, -255, 470, -782, 1231, -1902, 3007, -5285, 14027, 26596, -6613, 3513, -2178, 1407, -902, 554, -312, 152, -54, 8, 0},\r
180 { 0, -34, 113, -250, 461, -767, 1209, -1868, 2952, -5179, 13643, 26879, -6563, 3478, -2155, 1392, -893, 548, -310, 150, -54, 8, 0, 0},\r
181 { -11, 42, -100, 189, -319, 507, -784, 1228, -2086, 4748, 31832, -3605, 1788, -1087, 700, -451, 280, -162, 82, -32, 6, 0, 0, 0},\r
182 { -25, 88, -199, 371, -621, 981, -1517, 2388, -4136, 10250, 29149, -5866, 3041, -1872, 1208, -776, 479, -273, 134, -50, 8, 0, 0, 0},\r
183 { 8, -54, 152, -312, 554, -902, 1407, -2178, 3513, -6613, 26596, 14027, -5285, 3007, -1902, 1231, -782, 470, -255, 116, -35, 0, 0, 0},\r
184 { 0, 8, -54, 150, -310, 548, -893, 1392, -2155, 3478, -6563, 26879, 13643, -5179, 2952, -1868, 1209, -767, 461, -250, 113, -34, 0, 0}\r
185 };\r
186 \r
187 /* SYS_BF_ANGLE_M90 */\r
188 Fract sysBfFltM90[][SYS_BF_FILTER_LENGTH] = {\r
189 { 0, 0, 8, -53, 145, -297, 524, -851, 1326, -2054, 3324, -6328, 27878, 12228, -4766, 2732, -1731, 1120, -710, 426, -230, 103, -30, 0},\r
190 { 0, 0, -6, 24, -56, 108, -183, 292, -452, 706, -1190, 2628, 32453, -2242, 1088, -658, 423, -273, 170, -99, 50, -20, 4, 0},\r
191 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32767, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},\r
192 { 4, -20, 50, -99, 170, -273, 423, -658, 1088, -2242, 32453, 2628, -1190, 706, -452, 292, -183, 108, -56, 24, -6, 0, 0, 0},\r
193 { -30, 103, -230, 426, -710, 1120, -1731, 2732, -4766, 12228, 27878, -6328, 3324, -2054, 1326, -851, 524, -297, 145, -53, 8, 0, 0, 0},\r
194 { 4, -20, 50, -99, 170, -273, 423, -658, 1088, -2242, 32453, 2628, -1190, 706, -452, 292, -183, 108, -56, 24, -6, 0, 0, 0},\r
195 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32767, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},\r
196 { 0, 0, -6, 24, -56, 108, -183, 292, -452, 706, -1190, 2628, 32453, -2242, 1088, -658, 423, -273, 170, -99, 50, -20, 4, 0}\r
197 };\r
198 \r
199 /* SYS_BF_ANGLE_M60 */\r
200 Fract sysBfFltM60[][SYS_BF_FILTER_LENGTH] = {\r
201 { 0, 0, 6, -32, 82, -162, 280, -451, 700, -1087, 1788, -3605, 31832, 4748, -2086, 1228, -784, 507, -319, 189, -100, 42, -11, 0},\r
202 { 0, 8, -54, 150, -310, 548, -893, 1392, -2155, 3478, -6563, 26879, 13643, -5179, 2952, -1868, 1209, -767, 461, -250, 113, -34, 0, 0},\r
203 { 8, -54, 152, -312, 554, -902, 1407, -2178, 3513, -6613, 26596, 14027, -5285, 3007, -1902, 1231, -782, 470, -255, 116, -35, 0, 0, 0},\r
204 { -25, 88, -199, 371, -621, 981, -1517, 2388, -4136, 10250, 29149, -5866, 3041, -1872, 1208, -776, 479, -273, 134, -50, 8, 0, 0, 0},\r
205 { -11, 42, -100, 189, -319, 507, -784, 1228, -2086, 4748, 31832, -3605, 1788, -1087, 700, -451, 280, -162, 82, -32, 6, 0, 0, 0},\r
206 { 0, -34, 113, -250, 461, -767, 1209, -1868, 2952, -5179, 13643, 26879, -6563, 3478, -2155, 1392, -893, 548, -310, 150, -54, 8, 0, 0},\r
207 { 0, 0, -35, 116, -255, 470, -782, 1231, -1902, 3007, -5285, 14027, 26596, -6613, 3513, -2178, 1407, -902, 554, -312, 152, -54, 8, 0},\r
208 { 0, 0, 8, -50, 134, -273, 479, -776, 1208, -1872, 3041, -5866, 29149, 10250, -4136, 2388, -1517, 981, -621, 371, -199, 88, -25, 0}\r
209 };\r
210 \r
211 /* SYS_BF_ANGLE_M45 */\r
212 Fract sysBfFltM45[][SYS_BF_FILTER_LENGTH] = {\r
213 { 0, 0, -6, 24, -56, 108, -183, 292, -452, 706, -1190, 2628, 32453, -2242, 1088, -658, 423, -273, 170, -99, 50, -20, 4, 0},\r
214 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32767, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},\r
215 { 4, -20, 50, -99, 170, -273, 423, -658, 1088, -2242, 32453, 2628, -1190, 706, -452, 292, -183, 108, -56, 24, -6, 0, 0, 0},\r
216 { -30, 103, -230, 426, -710, 1120, -1731, 2732, -4766, 12228, 27878, -6328, 3324, -2054, 1326, -851, 524, -297, 145, -53, 8, 0, 0, 0},\r
217 { 4, -20, 50, -99, 170, -273, 423, -658, 1088, -2242, 32453, 2628, -1190, 706, -452, 292, -183, 108, -56, 24, -6, 0, 0, 0},\r
218 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32767, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},\r
219 { 0, 0, -6, 24, -56, 108, -183, 292, -452, 706, -1190, 2628, 32453, -2242, 1088, -658, 423, -273, 170, -99, 50, -20, 4, 0},\r
220 { 0, 0, 8, -53, 145, -297, 524, -851, 1326, -2054, 3324, -6328, 27878, 12228, -4766, 2732, -1731, 1120, -710, 426, -230, 103, -30, 0}\r
221 };\r
222 \r
223 /* SYS_BF_ANGLE_M30 */\r
224 Fract sysBfFltM30[][SYS_BF_FILTER_LENGTH] = {\r
225 { 0, 0, -35, 116, -255, 470, -782, 1231, -1902, 3007, -5285, 14027, 26596, -6613, 3513, -2178, 1407, -902, 554, -312, 152, -54, 8, 0},\r
226 { 0, -34, 113, -250, 461, -767, 1209, -1868, 2952, -5179, 13643, 26879, -6563, 3478, -2155, 1392, -893, 548, -310, 150, -54, 8, 0, 0},\r
227 { -11, 42, -100, 189, -319, 507, -784, 1228, -2086, 4748, 31832, -3605, 1788, -1087, 700, -451, 280, -162, 82, -32, 6, 0, 0, 0},\r
228 { -25, 88, -199, 371, -621, 981, -1517, 2388, -4136, 10250, 29149, -5866, 3041, -1872, 1208, -776, 479, -273, 134, -50, 8, 0, 0, 0},\r
229 { 8, -54, 152, -312, 554, -902, 1407, -2178, 3513, -6613, 26596, 14027, -5285, 3007, -1902, 1231, -782, 470, -255, 116, -35, 0, 0, 0},\r
230 { 0, 8, -54, 150, -310, 548, -893, 1392, -2155, 3478, -6563, 26879, 13643, -5179, 2952, -1868, 1209, -767, 461, -250, 113, -34, 0, 0},\r
231 { 0, 0, 6, -32, 82, -162, 280, -451, 700, -1087, 1788, -3605, 31832, 4748, -2086, 1228, -784, 507, -319, 189, -100, 42, -11, 0},\r
232 { 0, 0, 8, -50, 134, -273, 479, -776, 1208, -1872, 3041, -5866, 29149, 10250, -4136, 2388, -1517, 981, -621, 371, -199, 88, -25, 0}\r
233 };\r
234 \r
235 /* Table of all available filters */\r
236 Fract *sysBfFilters[SYS_BF_ANGLES_MAX] = {\r
237 &sysBfFltP0[0][0], /* SYS_BF_ANGLE_P0 */\r
238 &sysBfFltP30[0][0], /* SYS_BF_ANGLE_P30 */\r
239 &sysBfFltP45[0][0], /* SYS_BF_ANGLE_P45 */\r
240 &sysBfFltP60[0][0], /* SYS_BF_ANGLE_P60 */\r
241 &sysBfFltP90[0][0], /* SYS_BF_ANGLE_P90 */\r
242 &sysBfFltP120[0][0], /* SYS_BF_ANGLE_P120 */\r
243 &sysBfFltP135[0][0], /* SYS_BF_ANGLE_P130 */\r
244 &sysBfFltP150[0][0], /* SYS_BF_ANGLE_P150 */\r
245 &sysBfFltP180[0][0], /* SYS_BF_ANGLE_P180 */\r
246 &sysBfFltM150[0][0], /* SYS_BF_ANGLE_M150 */\r
247 &sysBfFltM135[0][0], /* SYS_BF_ANGLE_M135 */\r
248 &sysBfFltM120[0][0], /* SYS_BF_ANGLE_M120 */\r
249 &sysBfFltM90[0][0], /* SYS_BF_ANGLE_M90 */\r
250 &sysBfFltM60[0][0], /* SYS_BF_ANGLE_M60 */\r
251 &sysBfFltM45[0][0], /* SYS_BF_ANGLE_M45 */\r
252 &sysBfFltM30[0][0] /* SYS_BF_ANGLE_M30 */\r
253 };\r
254 \r
255 /* Table of all available filter angles */\r
256 tint sysBfFilterAngles[SYS_BF_ANGLES_MAX] = {\r
257 0, /* SYS_BF_ANGLE_P0 */\r
258 30, /* SYS_BF_ANGLE_P30 */\r
259 45, /* SYS_BF_ANGLE_P45 */\r
260 60, /* SYS_BF_ANGLE_P60 */\r
261 90, /* SYS_BF_ANGLE_P90 */\r
262 120, /* SYS_BF_ANGLE_P120 */\r
263 130, /* SYS_BF_ANGLE_P130 */\r
264 150, /* SYS_BF_ANGLE_P150 */\r
265 180, /* SYS_BF_ANGLE_P180 */\r
266 -150, /* SYS_BF_ANGLE_M150 */\r
267 -135, /* SYS_BF_ANGLE_M135 */\r
268 -120, /* SYS_BF_ANGLE_M120 */\r
269 -90, /* SYS_BF_ANGLE_M90 */\r
270 -60, /* SYS_BF_ANGLE_M60 */\r
271 -45, /* SYS_BF_ANGLE_M45 */\r
272 -30 /* SYS_BF_ANGLE_M30 */\r
273 };\r
274 \r
275 /* nothing past this point */\r
276 \r