AN2072 Freescale Semiconductor / Motorola, AN2072 Datasheet

no-image

AN2072

Manufacturer Part Number
AN2072
Description
AN2072, Decision Feedback Equalizer for StarCore-Based DSPs
Manufacturer
Freescale Semiconductor / Motorola
Datasheet
© Freescale Semiconductor, Inc., 2000–2004. All rights reserved.
Freescale Semiconductor
Application Note
Decision Feedback Equalizer for
StarCore™-Based DSPs
By Ahsan Aziz
It is well known that a maximum likelihood sequence equalizer
(MLSE) is the optimum equalizer for a typical intersymbol
interference (ISI) channel. Unfortunately, the complexity of the
MLSE equalizer increases exponentially with the channel-
memory length. To reduce this computational load, many sub-
optimal solutions have been developed. Decision feedback
equalizers (DFE) are a good sub-optimal solution. With the
introduction of faster DSPs, such as Freescale’s StarCore™-
based, computationally-intense algorithms can now be easily
implemented. The DFE can be implemented as a combination
of simple FIR filters. This application note presents a method
for computing the DFE coefficient and a method for
implementing the algorithm on Freescale’s StarCore-based
DSPs.
CONTENTS
1
2
3
3.1
3.2
3.3
3.4
4
5
6
Decision Feedback Equalization Theory ................2
Derivation of DFE Filter Coefficients ....................4
Implementation of the Algorithm ........................... 6
DFE Implementation on the SC140 Core ...............8
Main Calling Routine.............................................. 9
Forming the Matrix ................................................. 9
Cholesky Factorization and Back Substitution .....14
Results ...................................................................26
Conclusion ............................................................29
References .............................................................29
Rev. 1, 11/2004
AN2072

Related parts for AN2072

AN2072 Summary of contents

Page 1

... Freescale Semiconductor, Inc., 2000–2004. All rights reserved. Rev. 1, 11/2004 CONTENTS 1 Decision Feedback Equalization Theory ................2 2 Derivation of DFE Filter Coefficients ....................4 3 Implementation of the Algorithm ........................... 6 3.1 DFE Implementation on the SC140 Core ...............8 3.2 Main Calling Routine.............................................. 9 3.3 Forming the Matrix ................................................. 9 3.4 Cholesky Factorization and Back Substitution .....14 4 Results ...................................................................26 5 Conclusion ............................................................29 6 References .............................................................29 AN2072 ...

Page 2

Decision Feedback Equalization Theory 1 Decision Feedback Equalization Theory Channel equalizers are either linear or non-linear, as shown in Figure 1. Non-linear equalization is needed when the channel distortion is too severe for the linear equalizer to mitigate the channel ...

Page 3

Channel k The ideal, infinite-length feed-forward filter is a noise whitening filter that results in an overall response with minimum phase. Choosing an infinite-length filter eliminates the delay optimization, because the overall response, consisting of transmit, channel, ...

Page 4

Derivation of DFE Filter Coefficients 2 Derivation of DFE Filter Coefficients The name MMSE-DFE implies that the DFE coefficients are derived under MMSE criteria. Consider the development, where b and w are the feedback and feed forward filter coefficients derived ...

Page 5

The w feed forward filter taps are expressed in Equation 9. For a decision delay of ∆, the corresponding MMSE is expressed in Equation 10. ⎫ ⋅ ?asteriskframe? ⎬ ...

Page 6

Derivation of DFE Filter Coefficients ⎛ I H?asteriskframe? HH?asteriskframe? – ν ⎝ The middle term in the right-hand side of Equation 18, is defined as a Cholesky factorization, where LDL’ is the Lower-Diagonal-Upper. 1 – H kframe?R nn ...

Page 7

Implementation of the Algorithm This section presents an implementation of the algorithm using Matlab and the corresponding DSP implementation techniques. The Matlab implementation uses practical requirements of a typical communication system (such as; GSM), with the goal of implementing ...

Page 8

Implementation of the Algorithm Code Listing 1. Matlab Code to Compute the Cholesky Factorization function [L,D,A,U]=outer_cholesky(A) n=size(A,1); for k=1:n-1 A(k,k)=sqrt(A(k,k)); A(k+1:n,k)=A(k+1:n,k)/A(k,k); for j=k+1:n end end Factor matrix A into LDL 1. When complete, column of L, corresponding to the highest ...

Page 9

DFE Implementation on the SC140 Core A decision feedback equalizer can be efficiently implemented on the SC140 core because this core has four arithmetic logic units (ALUs) and special instructions for computing complex numbers and performing matrix operations. Setting ...

Page 10

Implementation of the Algorithm The output of the matrix multiply block is scaled by right shifting each entry of the matrix multiply by 2. ceil(log [# of rows this specific implementation example the scale factor is 1/16. ...

Page 11

H = The address register pointing to the memory that contains the complex-impulse response, h This causes the pointer to wrap around before filling each column of the convolution matrix transpose when it reaches the last entry ...

Page 12

Implementation of the Algorithm T matrix multiply block read row-wise, the result For example, to multiply two matrices of size [(N Matrix2, four address registers are used as follows: ...

Page 13

Code Listing 4. Main Kernel for Matrix Multiply Block move.4f (r0)+,d0:d1:d2:d3move.4f (r1)+,d4:d5:d6:d7 loopstart2 N_loop: ;load real/imag of transpose(H) and H [ mac d0,d4,d8 mac d2,d6,d10 ] [ mac d1,d5,d8 mac d3,d7,d10 ] [ add d8,d10,d12 move.4f (r0)+,d0:d1:d2:d3 ] loopend2 Code ...

Page 14

Implementation of the Algorithm NN_loop: loopstart0 doen1 #COL_CONV_MATRIX P_loop: loopstart1 [ doen2 #ROW_CONV_MATRIX_over2 clr d9 clr d11 ] move.4f (r0)+,d0:d1:d2:d3 loopstart2 N_loop: loopend2 [ asrr #CONV_MATRIX_SCALE,d12asrr #CONV_MATRIX_SCALE,d13 suba #8, rnd d12,d12rnd d13,d13 suba #8, moves.2f d12:d13,(r3)+ ...

Page 15

Cholesky Factorization The first step in finding the feed-forward and the feedback taps is to compute the lower triangular Cholesky factor of matrix A (formed by replacing the lower triangle of the original matrix A by its Cholesky factor). ...

Page 16

Implementation of the Algorithm ( , ) ...

Page 17

( , ) ...

Page 18

Implementation of the Algorithm loopend1 ;****End loop_b***** end_loop_b: tfra BASE_ROW,r0 adda #N_1,r0,r0 tfra r0,r1 [ suba #4,r1 dosetup2 loop_d ] tfra r1,BASE_COL ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% move.2f (r1),d0:d1 [ move.2f (r1),d4:d5 clr mac d0,d4, mac d1,d5,d6 move.2f (r0),d2:d3 ...

Page 19

[ mac d0,d4,d6 moves.2f d10:d11,(r4)+n0 ] mac d1,d5,d6 [ sub d6,d2,d10 move.2f (r0)+n0,d2:d3 clr d6 clr d7 ] loopend2 mac d1,d5,d6 end_loop_d: adda #N_1,CURRENT_COL,CURRENT_COL adda #N_0,BASE_COL,r1adda #N_0,BASE_COL,BASE_COL loopend1 ;****End loop_c****** end_loop_c: sub #1,d8 adda #N_1,BASE_ROW,r0 adda #N_1,BASE_ROW,BASE_ROW loopend0 ;****End loop_a ...

Page 20

Implementation of the Algorithm In the Matlab code, the monic matrix L (L_matrix) of the LDL* Cholesky factor is generated by multiplying each column of matrix A by the reciprocal of the diagonal entry for that column. In the assembly ...

Page 21

BASE_ROW,r0; loopend0 ;****End loop_address_setting LOOP 2 In this part of the algorithm, data is read from two different locations in memory: 1. ...

Page 22

Implementation of the Algorithm Table 3. Read Out of Loop 2 Data in the SC140 Iteration First Second Third Forth Fifth Sixth Seventh Eight Stuffing four zeros (eight complex elements for this particular example) makes the code easier to write ...

Page 23

Finding the Optimum Delay This section describes the assembly routine to find the optimum ...

Page 24

Implementation of the Algorithm Code Listing 8. Locating the Optimum Delay (find_max.asm) section .data local global Ftemp N equ 16 align 4 DUMMY dc 0,0,0,0,0,0 Ftemp ds 3*4 endsec section .text local global find_max_delay find_max_delay type func move.w #d_array,r0 move.w ...

Page 25

The best index is saved in d7l tfr d7,d6 move.w (r1),d4 ; The maximum value is saved in d4l cmpgt d4,d0 add #<8,d6 max d0,d4 move.w (r0)+n3,d0 Loop_3: loopstart3 ...

Page 26

Results Code Listing 9. Routine for Computing Square Root Inverse Square Root section .text local global sqrt_and_invsqrt sqrt_and_invsqrt type func push d1 clb d0,d2 and #$0000fffe,d2,d2 asrr d2,d0 asrr #2,d0 tfr d1,d3 loopstart3 loop1 clb d1,d10 asrr d10,d1 [ mpy ...

Page 27

Figure 1. Real Part of the DFE Feed Forward Tap Figure 9. Imaginary Part of the DFE Feed Forward Tap Decision Feedback Equalizer for StarCore™-Based DSPs, Rev. 1 Freescale Semiconductor Results 27 ...

Page 28

Results Figure 10. Real Part of the DFE Feedback Tap Figure 11. Imaginary Part of the DFE Feedback Tap These results show that the DSP and the Matlab results agree within the allowable error range of 16-bit arithmetic. The X ...

Page 29

Keeping the result in ...

Page 30

References NOTES: Decision Feedback Equalizer for StarCore™-Based DSPs, Rev Freescale Semiconductor ...

Page 31

NOTES: Decision Feedback Equalizer for StarCore™-Based DSPs, Rev. 1 Freescale Semiconductor References 31 ...

Page 32

... P.O. Box 5405 Denver, Colorado 80217 1-800-441-2447 or 303-675-2140 Fax: 303-675-2150 LDCForFreescaleSemiconductor@hibbertgroup.com AN2072 Rev. 1 11/2004 Information in this document is provided solely to enable system and software implementers to use Freescale Semiconductor products. There are no express or implied copyright licenses granted hereunder to design or fabricate any integrated circuits or integrated circuits based on the information in this document ...

Related keywords