Skip to main content

ISI; solutions for zero ISI; duobinary with precoder

Short answer

ISI is pulse overlap causing errors. Two zero-ISI solutions: Nyquist pulse shaping and correlative coding. Duobinary encoding uses c_k = a_k + a_{k-1} with a precoder; decision: |c_k|>1 gives 0.

What is ISI? State two solutions for zero ISI. Explain duo-binary encoding with the use of precoder.

ISI

Intersymbol interference (ISI) is the overlap of pulse tails from neighbouring symbols at the sampling instant of the present symbol, caused by the limited bandwidth and dispersion of the channel. It causes decision errors even without noise.

Two solutions for zero ISI

  1. Nyquist pulse shaping: use an overall pulse with p(nTb)=0p(nT_b) = 0 for n≠0n \ne 0, e.g. the raised cosine pulse (bandwidth Rb2(1+α)\frac{R_b}{2}(1+\alpha)).
  2. Correlative (partial response) coding: e.g. duobinary signalling, which adds a known, controlled ISI that the receiver removes, allowing the minimum bandwidth Rb/2R_b/2 with practical filters.

(Adaptive equalization is a third common method.)

Duobinary encoding with precoder

Duobinary signalling: each output sample is the sum of the present and previous binary levels:

ck=ak+ak−1,ak=±1c_k = a_k + a_{k-1}, \qquad a_k = \pm 1

The equivalent filter is a delay-and-add followed by an ideal low-pass filter:

H(f)=2cos⁡(πfTb) e−jπfTb,∣f∣≤12TbH(f) = 2\cos(\pi fT_b)\,e^{-j\pi fT_b}, \quad |f| \le \frac{1}{2T_b} h(t)=Tb2 sin⁡(πt/Tb)πt (Tb−t)h(t) = \frac{T_b^2\,\sin(\pi t/T_b)}{\pi t\,(T_b - t)}

H(f)H(f) falls smoothly to zero at f=1/(2Tb)f = 1/(2T_b), so it is realizable. The output has three levels: −2,0,+2-2, 0, +2.

Problem: without precoding, decoding uses a^k=ck−a^k−1\hat a_k = c_k - \hat a_{k-1}, so one error propagates to later bits.

Precoder: form dk=bk⊕dk−1d_k = b_k \oplus d_{k-1} (modulo-2) before level mapping (d=1→+1d = 1 \to +1, d=0→−1d = 0 \to -1). Then

  • ck=±2c_k = \pm 2 when dk=dk−1d_k = d_{k-1}, i.e. bk=0b_k = 0;
  • ck=0c_k = 0 when dk≠dk−1d_k \ne d_{k-1}, i.e. bk=1b_k = 1.

Decision rule: ∣ck∣<1⇒b^k=1|c_k| < 1 \Rightarrow \hat b_k = 1, ∣ck∣>1⇒b^k=0|c_k| > 1 \Rightarrow \hat b_k = 0. Each bit is found from its own sample, so there is no error propagation.

b_k -->(XOR)---+--> level map --> a_k --+------------>(+)--> [ideal LPF] --> c_k
         ^     | d_k                    |              ^
         |     v                        |              |
         +--[Tb delay]                  +--[Tb delay]--+

Example: input bk=1101001b_k = 1101001, initial d0=1d_0 = 1.

k1234567
bkb_k1101001
dkd_k0110001
aka_k−1+1+1−1−1−1+1
ck=ak+ak−1c_k = a_k + a_{k-1}00+20−2−20
b^k\hat b_k1101001

(a0=+1a_0 = +1.) The decoded data equal the input.

✓ Answer checked by Claude Opus 5.5 (high effort)

All Communication Systems chapter 6 questions →