I'm implementing DBPSK (differential binary phase-shift keying) over audio (44.1kHz sample-rate) using software. Eventually I'll use multiple audio frequencies at once, so I'm using FFTs and inverse FFTs.

As expected, as the window size (symbol length) gets smaller, ISI becomes more and more of a problem and the BER (bit error rate) increases.

It seems like using RRC (root-raised cosine) filters is an established way to reduce ISI.

If as part of my data transmission I send out a special known signal that can be detected, then presumably I can determine the impulse response of the channel and apply an inverse transformation to re-construct (ignoring noise) the original signal without multi-path distortion. Why is RRC useful if this transformation can be done?

  • 1
    $\begingroup$ I think historically, the computations for system identification for the use of inverting the effects of a channel were too costly as compared with shaping the data in advance to avoid ISI. $\endgroup$ – user2718 Jan 30 '13 at 16:07
  • $\begingroup$ As your question indicates, just being smart about the pulse shape that you choose is a much simpler process than trying to perform online system identification and deconvolution. If you don't expect to have some unknown channel frequency response when your system is operating, there's no need to design in that capability. You can instead characterize ISI due to pulse shaping at design time and accommodate it appropriately in your receiver. $\endgroup$ – Jason R Jan 30 '13 at 18:14

There are three reasons to avoid ISI through pulse shaping rather than correcting it via channel correction methods.

  1. As Bruce pointed out, it is a simpler solution and requires fewer computations.
  2. Channel correction usually amplifies the received noise.
  3. Received noise will corrupt the channel model, making the ISI removal imperfect to some degree.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.