# Decision Feedback Equalizer initialization

Suppose I want to implement only via software on matlab a DFE.

I am studying the decision feedback equalizer but some slightly more practical concepts are not very clear to me from the theory. Specifically:

1. How do I choose the number of taps (feedback and feedforward) to use in the equalizer? Are they chosen based on the size of the payload? Based on some other parameter? Or should I proceed by trial and error comparing the result obtained?

2. How do I initialize them? All 0 except the last one to 1? What criteria/rule do I use to initialize them correctly? (I'm talking about initializing them, not updating them!)

3. How does the training sequence length (in the sent frame) affect the quality of the DFE? Is there some kind of relationship between it and other parameters?

I have an AdalmPluto SDR with 61.44 MSPS to use in loopback mode. Personally (but without a scientific basis to justify my choice) at first glance I would choose with a payload of 1000 data (e.g. BPSK):

• a training sequence 200 long
• a Barker preamble 13 long and repeated a couple of times
• 16 forward taps (?)
• 15 feedback taps (?) ..then I would run simulation tests.

How do I choose the number of taps (feedback and feedforward) to use in the equalizer?

Long enough to reflect the channels you need to equalize. So, if your sample rate is 100 MS/s, and your channel has a delay spread of 10 ms, you'll need 100·10⁶ MS/s · 10·10⁻³ s = 10⁶ taps, for example.

(That is not a channel you would normally use a DFE on. Your channel probably is shorter!)

How do I initialize them? All 0 except the last one to 1?

That's one possible initialization. Optimal initialization for optimization algorithms is a big topic and depends on how you calculate your tap updates; a Google scholar search for your update method + "tap initialization" will certainly yield relevant results.

If you're doing a preamble anyways, doing an MMSE channel estimate based on that preamble, and interpolating the result to the number of your DFE taps, would be a good starting point. Nuances apply!

How does the training sequence length (in the sent frame) affect the quality of the DFE?

You use the channel estimate based on the preamble to set your taps with higher certainty – there's no chance for mis-decided symbols in a known preamble.

The longer the preamble, the better your initial channel estimate can be – and that of course has drastic effects on convergence and error probability in the payload data.

Of course, the time and energy you use to send a preamble can't be used to send data. So, as everywhere, that's an estimation/energy tradeoff.

Also note that often, wideband channels are time-variant, and the whole deal of a DFE is that it automatically adjusts itself if the channel gradually changes. So doing a fantastically long preamble makes little sense in a system where you'd want a DFE – the channel will have lost coherence in the meantime.

You list numbers for the length of preambles and amount of taps – but you don't specify coherence bandwidth and time in comparison to your signal's bandwidth and symbol rate; that seems wrong. There's no general "13 is a good number" in engineering.

• Thanks for the detailed response! I updated the main post by adding that I have available an AdalmPluto SDR with 61.44 MSPS to use in loopback ... it is not very clear to me though how I quantify the channel delay spread in order to calculate the number of taps. Commented Nov 13, 2023 at 14:44
• That's a very large separate question. But in the end it's a question of describing the channel you need to work over. It's critical, however. You probably want to look into the definition of delay spread, coherence time. Commented Nov 13, 2023 at 14:47
• Given my inexperience in this matter, I ask if it makes sense to look into definition of "delay spread, coherence time" in my case .. i.e. simply using a loopback SDR. Because (but maybe I am wrong) it might is a concept that is addressed with wireless channels. Commented Nov 13, 2023 at 15:04
• I don't fully understand what you're telling me here, but yes. If you want to build an equalizer, you need to understand the theory of a channel. What else than the channel would the equalizer deal with? Commented Nov 13, 2023 at 15:07
• I take this opportunity (if I may) to kindly ask you one more thing. What can be done to improve the performance of DFE and reduce BER even more? Is there any other strategy/algorithm that can be implemented before/during or after DFE? I just need some theoretical hints, of course I will look into books and online articles ... but it is just to get a general overview. Thanks so much. Commented Nov 14, 2023 at 9:01