Skip to main content

Correlative coding; minimizing error in duobinary

Short answer

Duobinary signaling uses c_k = a_k + a_{k-1}. Transfer function H(f)=2cos(πfTb)e^{-jπfTb} for |f|≤1/(2Tb); impulse response is sum of two sinc pulses. Error propagation is minimized by precoding d_k = b_k XOR d_{k-1}, enabling independent bit decisions using threshold |c_k|=1.

Explain any one type of correlative coding technique with its impulse response and transfer function. Mention how can we minimize error in duo-binary coding.

Correlative (partial response) coding introduces a controlled, known amount of ISI between successive symbols so that the data can be sent at rate RbR_b through the minimum Nyquist bandwidth Rb/2R_b/2 using realizable filters. The receiver removes the known ISI. The most common type is duobinary signalling.

Duobinary signalling

"Duobinary" means doubling the transmission capacity of a straight binary system. The binary input bkb_k is mapped to ak=±1a_k = \pm 1 and passed through a delay-and-add circuit followed by an ideal low-pass filter:

ck=ak+ak−1c_k = a_k + a_{k-1}
a_k ---+------------>(+)--> [ideal LPF  ] --> c(t)
       |              ^     [|f|<1/2Tb  ]
       +--> [delay Tb]+

Transfer function: the delay-and-add has 1+e−j2πfTb1 + e^{-j2\pi fT_b}; with the ideal Nyquist filter HN(f)=1H_N(f) = 1 for ∣f∣≤1/(2Tb)|f| \le 1/(2T_b):

HI(f)=(1+e−j2πfTb)HN(f)=(ejπfTb+e−jπfTb)e−jπfTb=2cos⁡(πfTb) e−jπfTb,∣f∣≤12Tb\begin{aligned} H_I(f) &= \left(1 + e^{-j2\pi fT_b}\right)H_N(f) \\ &= \left(e^{j\pi fT_b} + e^{-j\pi fT_b}\right)e^{-j\pi fT_b} \\ &= 2\cos(\pi fT_b)\,e^{-j\pi fT_b}, \quad |f| \le \frac{1}{2T_b} \end{aligned}

and zero elsewhere. The magnitude is a half cosine that falls smoothly to zero at f=1/(2Tb)f = 1/(2T_b), so it is much easier to approximate than the brick-wall filter.

Impulse response: sum of two sinc pulses one bit apart:

hI(t)=sin⁡(πt/Tb)πt/Tb+sin⁡[π(t−Tb)/Tb]π(t−Tb)/Tb=Tb2 sin⁡(πt/Tb)πt (Tb−t)h_I(t) = \frac{\sin(\pi t/T_b)}{\pi t/T_b} + \frac{\sin[\pi(t-T_b)/T_b]}{\pi(t-T_b)/T_b} = \frac{T_b^2\,\sin(\pi t/T_b)}{\pi t\,(T_b - t)}

hI(t)h_I(t) equals 1 at t=0t = 0 and t=Tbt = T_b and is zero at all other sampling instants; its tails decay as 1/t21/t^2, so it is less sensitive to timing errors.

Output levels: ck∈{−2,0,+2}c_k \in \{-2, 0, +2\}. Detection without precoding: a^k=ck−a^k−1\hat a_k = c_k - \hat a_{k-1}.

 |H(f)|
  2 +---.
    |     '.
    |       '.
    |         '.
  0 +-----------+----> f
    0        1/(2Tb)

Minimizing error in duobinary coding

The main error source is error propagation: since each decision uses the previous decision, one error causes further errors. It is minimized by precoding: dk=bk⊕dk−1d_k = b_k \oplus d_{k-1} at the transmitter. Then ck=0c_k = 0 means bk=1b_k = 1 and ck=±2c_k = \pm 2 means bk=0b_k = 0, so each bit is decoded from its own sample (threshold ∣ck∣=1|c_k| = 1) and an error does not spread. Proper thresholds and noise filtering also help.

✓ Answer checked by Claude Opus 5.5 (high effort)

All Communication Systems chapter 6 questions →