102 lines
2.8 KiB
Plaintext
102 lines
2.8 KiB
Plaintext
****************************************************************************
|
|
|
|
fir.asm N-tap finite impulse response filter (FIR)
|
|
|
|
Analog Devices, Inc.
|
|
DSP Division
|
|
Three Technology Way
|
|
P.O. Box 9106
|
|
Norwood, MA 02062
|
|
|
|
23-JUNE-2001 BJM
|
|
|
|
This directory contains an example ADSP-2191, single-core subroutine
|
|
that implements a N-tap finite impulse response filter (FIR) using coefficients.
|
|
|
|
Files contained in this directory:
|
|
|
|
fir.dpj VisualDSP project file
|
|
fir.asm ADSP-2191 source for FIR
|
|
fir_test.asm Calling function for fic.asm
|
|
ADSP-2191.ldf Linker description file
|
|
input_dec.dat Sample data for FIR
|
|
_________________________________________________________________
|
|
|
|
CONTENTS
|
|
|
|
I. FUNCTION/ALGORITHM DESCRIPTION
|
|
II. IMPLEMENTATION DESCRIPTION
|
|
III. DESCRIPTION OF INPUT DATA
|
|
|
|
I. FUNCTION/ALGORITHM DESCRIPTION
|
|
|
|
The project fir.dpj contains an implementation of a single-core subroutine
|
|
that implements a N-tap finite impulse response filter (FIR). This
|
|
routine has been optimized to take advantage of the repetitive multiply
|
|
accumulates inherent to the algorithm.
|
|
|
|
y(n) = Summation from k=0 to M of h(k)*x(n-k)
|
|
|
|
|
|
II. IMPLEMENTATION DESCRIPTION
|
|
|
|
The assembly language module FIR_TEST.ASM initializes the input and
|
|
coefficient buffers and then calls FIR.ASM.
|
|
|
|
The first buffer declared, IN, is Num_Samp locations long.
|
|
|
|
The next buffer declared, OUT, is also Num_Samp long, and stores the
|
|
output of the filter.
|
|
|
|
Delay_Line is the third buffer declared. This buffer holds the delay line.
|
|
Since there are past intermediate values for each stage of the FIR, the length of
|
|
this buffer is as long as the number of Taps.
|
|
|
|
The coefficient buffer, COEFF, contains the FIR filter coefficients. The
|
|
coefficients are typically generated by a filter design software package.
|
|
|
|
The linker descriptive file is ADSP-2191.LDF, which describes the hardware in
|
|
terms of memory spaces and peripherals.
|
|
|
|
Because there is no data dependency between DSP cores, it is possible
|
|
to do perform an FIR in DSP core 1, while also performing an FIR in DSP core 2
|
|
on separate input data, using different coefficients.
|
|
|
|
III. DESCRIPTION OF INPUT DATA
|
|
|
|
1. INPUT SAMPLES:
|
|
-----------------
|
|
This FIR routine expects input data which conforms to the following criteria:
|
|
|
|
Generate input data such that an array of input fixed point values are arranged
|
|
in the following order:
|
|
|
|
INPUT DATA
|
|
|
|
indata(0)
|
|
indata(1)
|
|
indata(2)
|
|
indata(3)
|
|
...
|
|
...
|
|
...
|
|
|
|
|
|
|
|
2. COEFFICIENT DATA:
|
|
-----------------------
|
|
This FIR routine expects TAPS 1.15 fixed point values to be used as coefficients.
|
|
|
|
COEFFICIENT DATA
|
|
|
|
coef(0)
|
|
coef(1)
|
|
coef(2)
|
|
coef(3)
|
|
...
|
|
...
|
|
...
|
|
|
|
|
|
|