Modified Duobinary Signaling is an extension of duobinary signaling. Modified Duobinary signaling has the advantage of zero PSD at low frequencies (especially at DC ) which is suitable for channels with poor DC response. It correlates two symbols that are 2T time instants apart, whereas in duobinary signaling, symbols that are 1T apart are correlated.

The general condition to achieve zero ISI is given by

$$ p(nT)=\left\{\begin{matrix} 1,\; n=0\\ 0,\; n\neq 0 \end{matrix}\right. $$

As discussed in a previous article, in correlative coding , the requirement of zero ISI condition is relaxed as a controlled amount of ISI is introduced in the transmitted signal and is counteracted in the receiver side

In the case of modified duobinary signaling, the above equation is modified as

$$ p(nT)=\left\{\begin{matrix} 1,\; n=0,2\\ 0,\; otherwise \end{matrix}\right. $$

which states that the ISI is limited to two alternate samples. Here a controlled or “deterministic” amount of ISI is introduced and hence its effect can be removed upon signal detection at the receiver.

### Modified Duobinary Signaling:

The following figure shows the modified duobinary signaling scheme (click to enlarge).

### Encoding Process:

1) a_{n} = binary input bit; a_{n} ∈ {0,1}.

2) b_{n} = NRZ polar output of Level converter in the precoder and is given by,

$$ b_{n}=\left\{\begin{matrix} -d,\; if\;a_{k}=0\\ +d,\; if\; a_{k}=1 \end{matrix}\right. $$

where a_{k} is the precoded output (before level converter).

3) y_{n} can be represented as

$$ y_{n}=b_{n}+b_{n-2}=\left\{\begin{matrix} 2d , \; \; \; \; if \;a_{k}=a_{k-2}=1\\ 0 , \; \; if \; a_{k}\neq a_{k-2}\\ -2d , \; if \; a_{k}=a_{k-2}=0 \end{matrix}\right. $$

Note that the samples b_{n} are uncorrelated ( i.e either +d for “1” or -d for “0” input). On the other-hand,the samples y_{n} are correlated ( i.e. there are three possible values +2d,0,-2d depending on ak and a_{k-2}). Meaning that the modified duobinary encoding correlates present sample a_{k} and the previous input sample a_{k-2.}

4) From the diagram,impulse response of the modified duobinary encoder is computed as

$$ h(t)=sinc \left( \frac{t}{T} \right )-sinc \left( \frac{t-2T}{T} \right) $$

### Decoding Process:

5) The receiver consists of a modified duobinary decoder and a postcoder (inverse of precoder).The modified duobinary decoder implements the following equation (which can be deduced from the equation given under step 3 (see above))

$$ \hat{b}_{n}=y_{n}-\hat{b}_{n-2} $$

This equation indicates that the decoding process is prone to error propagation as the estimate of present sample relies on the estimate of previous sample. This error propagation is avoided by using a precoder before modified-duobinary encoder at the transmitter and a postcoder after the modified-duobinary decoder. The precoder ties the present sample and the sample that precedes the previous sample ( correlates these two samples) and the postcoder does the reverse process.

6) The entire process of modified-duobinary decoding and the postcoding can be combined together as one algorithm. The following decision rule is used for detecting the original modified-duobinary signal samples {a_{n}} from {y_{n}}

$$ \begin{matrix} if \; y_{n} < d , \;\; then \; \hat{a}_{n}=0\\ if \; y_{n} > d , \;\; then \; \hat{a}_{n}=1\\ if \; y_{n}=0 , \;\; randomly \; guess \; \hat{a}_{n} \end{matrix} $$

### Matlab code:

Check this book for full Matlab code.

Simulation of Digital Communication Systems Using Matlab – by Mathuranathan Viswanathan

### Simulation Results:

### See also :

[1] Correlative Coding – Duobinary Signaling

[2] Introduction to Inter Symbol Interference

Pingback: Introduction to Digital Communication | GaussianWaves()

Pingback: Channel Capacity | GaussianWaves()

Pingback: Nyquist and Shannon Theorem | GaussianWaves()

Pingback: Types of Channel Codes | GaussianWaves()

Pingback: Derivation of expression for a Gaussian Filter with 3 dB bandwidth | GaussianWaves()

Pingback: Introduction to controlled ISI (Inter Symbol Interference) | GaussianWaves()

Pingback: Square Root Raised Cosine Filter (Matched/split filter implementation) | GaussianWaves()

Pingback: Correlative coding – Duobinary Signaling | GaussianWaves()