0

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.
KaleM
  • 115
  • 4

1 Answers1

1

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.

Marcus Müller
  • 30,525
  • 4
  • 34
  • 58
  • 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. – KaleM Nov 13 '23 at 14:44
  • 1
    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. – Marcus Müller Nov 13 '23 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. – KaleM Nov 13 '23 at 15:04
  • 1
    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? – Marcus Müller Nov 13 '23 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. – KaleM Nov 14 '23 at 09:01
  • Nothing that I'm aware of that you could even think of trying at your current understanding – Marcus Müller Nov 14 '23 at 09:06
  • Again, all this depends 100% on being able to understand what the channel is. So, talking about specifics of how to deal with the channel in a more specific way than the general DFE has to wait until you understand the channel. – Marcus Müller Nov 14 '23 at 09:08