17
255-Tap Programmable FIR Filter
The Programmable FIR filter can be used to implement real
filters with even or odd symmetry, using up to 255 filter taps,
or complex filters with up to 64 taps. The FIR filter takes
advantage of symmetry in coefficients by summing data
samples that share a common coefficient, prior to multiplica-
tion. In this manner, two filter taps are calculated per multiply
accumulate cycle. Asymmetric filters cannot share common
coefficients, so only one tap per multiply accumulate cycle is
calculated. The filter can be effectively bypassed by setting
the coefficient C
0
= 1 and all other coefficients, C
N
= 0.
Additionally, the Programmable FIR filter provides for deci-
mation rates, R, from 1 to 16. The processing rate of the Fil-
ter Compute Engine is PROCCLK. As a result, the frequency
of PROCCLK must exceed a minimum value to insure that a
filter calculation is complete before the result is required for
output. In configurations which do not use decimation, one
input sample period is available for filter calculation before
an output is required. For configurations which employ deci-
mation, up to 16 input sample periods may be available for
filter calculation.
For real filter configurations, use Equation 11 to calculate the
number of taps available at a given input filter sample rate.
for real filters, and
for complex filters, where floor is defined as the integer por-
tion of a number; PROCCLK is the compute clock; FSAMP =
the FIR input sample rate; R = Decimation Rate; SYM = 1 for
symmetrical filter, 0 for asymmetrical filter; ODD# = 1 for an
odd number of filter taps, 0 = an even number of taps.
Use Equation 12 to calculate the maximum input rate.
for real filters, and
for complex filters, where floor[x], PROCCLK, FSAMP, R =
Decimation Rate, SYM, and ODD# are defined as in Equa-
tion 11.
Use Equation 13 to calculate the maximum output sample
rate for both real and complex filters.
The coefficients are 22 bits and are loaded using writes to
Control Words 128 through 255 (see Microprocessor Write
Section). For real filters, the same coefficients are used by I
and Q paths. If the filter is configured as a symmetric filter
using Control Word 17 bit 9, then coefficients are loaded
starting with the center coefficient in Control Word 128 and
proceed to last coefficient in Control Word 128+n. The filter
symmetry type can be set to even or odd symmetric, and the
number of filter coefficients can be even or odd, as illustrated
in Figure 20. Note that complex filters can also be realized
but are only allowed to be asymmetric. Only the coefficients
that are used need to be loaded.
TAPS
floor PROCCLK
SYM
)
(
[
–
F
SAMP
R
)
]
(
)
R
]
–
(
)
1
+
(
=
(EQ. 11A)
SYM
)
ODD#
(
TAPS
floor (PROCCLK
F
SAMP
R
(
)
R
]
2
(
)
]
–
=
(EQ. 11B)
(EQ. 12A)
F
SAMP
PROCCLK
(
)
R
( )
R
floor Taps
)
[
+
[
+
=
SYM
(
)
ODD#
(
)]
1
SYM
+
(
)
]]
(EQ. 12B)
F
SAMP
PROCCLK
(
)
R
( )
[
]
R
floor Taps
)
2
( )]
+
[
]
=
(EQ. 13)
F
FIROUT
F
SAMP
(
)
R
=
EVEN SYMMETRIC
EVEN TAP FILTER
ODD SYMMETRIC
EVEN TAP FILTER
EVEN SYMMETRIC
ODD TAP FILTER
ODD SYMMETRIC
ODD TAP FILTER
C0
CN-1
C
C
C0
CN-1
C0
CN-1
COEFFICIENT
NUMBER
COEFFICIENT
NUMBER
COEFFICIENT
NUMBER
COEFFICIENT
NUMBER
C
C
ASYMMETRIC
ODD TAP FILTER
C0
CN-1
COEFFICIENT
NUMBER
C
ASYMMETRIC
EVEN TAP FILTER
C0
CN-1
COEFFICIENT
NUMBER
C
COMPLEX FILTERS
C
Q(0)
C
I(N-1)
COEFFICIENT
NUMBER
I
REAL COEFFICIENT VALUE
C
C
Q(N-1)
REAL FILTERS
Definitions:
Even Symmetric: h(n) = h(N-n-1) for n = 0 to N-1
Odd Symmetric: h(n) = -h(N-n-1) for n = 0 to N-1
Asymmetric:
a filter with no coefficient symmetry
Even Tap filter:
a filter where N is an even number
Odd Tap filter:
a filter where N is an odd number
Real Filter:
a filter implemented with real coefficients
Complex Filters: a filter with quadrature coefficients
FIGURE 20. DEMONSTRATION OF DIFFERENT TYPES OF
DIGITAL FIR FILTERS CONFIGURED IN THE
PROGRAMMABLE DOWNCONVERTER
C
V
C
Q
C
I
C0
CN-1
HSP50214