AN2832 Freescale Semiconductor / Motorola, AN2832 Datasheet - Page 12

no-image

AN2832

Manufacturer Part Number
AN2832
Description
Packet Telephony Remote Diagnostics on the StarCore SC140 Core
Manufacturer
Freescale Semiconductor / Motorola
Datasheet
Remote Diagnostics on StarCore
During FFT/IFFT operations, the received signal and estimated channel impulse response are purely real signals;
that is, their imaginary portions are all zeroes. To increase computational efficiency, the real data set can be split
into two subsets [8], [9] for the real and imaginary parts, forming an equivalent complex data of half the original
size. Then a complex FFT/IFFT of half the original data size can be performed. The result is pre- and post-
processed to recover the original real data from the complex data.
3.2 Kernel-Level Optimization
The FFT/IFFT bit-reverse operations use a look-up table for in-place bit-reverse processing. Only values that must
be swapped are stored in the look-up table. The real and imaginary parts of the signal are 16-bit data, so the whole
complex data points are stored in 32-bit groups. In other words, the data swap is performed in 32-bits. The bit-
reverse operation can also be implemented through the Metrowerks® compiler-specific br_inc() macro. This
macro uses the hardware bit-reverse mechanism provided by the SC140 DSP core to change the index through bit-
reverse operations. Unfortunately, the in-place bit-reverse operation cannot be implemented directly. An additional
buffer with specific alignment must be allocated. This approach speeds up the bit reverse operation by
approximately 170 cycles per 10 ms frames at the expense of data placement flexibility and an additional 32 bytes.
The FFT implementation performs the radix-2 decimation-in-time (DIT) computation with a butterfly kernel
operation illustrated in Figure 8.
In assembly-level optimization, two butterflies can be computed in the kernel. In C-level implementation, only one
butterfly is computed in the kernel. The butterfly processing steps are rearranged so that the overall computation is
reduced from six to four (see Table 1). Only operations on the real portion of the complex data are considered. The
imaginary portion has the same number of operations.
Another portion of the kernel decomposes N/2-point complex FFT/IFFT data into N-point real FFT/IFFT data. The
decomposition formula is presented Equation 8. F
complex data corresponding to half the real data size.
12
Optimized Computation
[A– (A + BW)/2]
(A + BW)/2
(A – BW)/2
A + BW
Figure 8. Radix-2 Decimation-in-Time (DIT) FFT Butterfly Using In-Place Computation
Packet Telephony Remote Diagnostics on the StarCore SC140 Core, Rev. 1
Table 1. Butterfly Computation of the Real Portion of Complex Data
A
B
Instructions
MAC, MAC
SHR
SUB
W
k
is the FFT of the original real data and G
Normal Computation
–1
(A + BW)/2
(A – BW)/2
A + BW
A – BW
(A + BW)/2
(A – BW)/2
Freescale Semiconductor
Instructions
MAC, MAC
MSU, MSU
k
is the FFT of the
SHR
SHR

Related parts for AN2832