# Does Forward Error Correction (FEC) affect upsampling factor?

Is the redundant data introduced during forward error correction (FEC) counted as upsampling?

I'm taking a binary data stream, doing convolutional encoding of rate 1/2 on it, then making it NRZ signal and then upsampling it. In this page, the relation between $EsN0$ and SNR uses a two variables $T_{sym}$ and $T_{samp}$ as $T_{sym}~/~T_{samp}$ which indicates the upsampling factor. So should I include the rate 1/2 of FEC in $T_{sym}~/~T_{samp}$ calculation or not?

• My immediate answer would be no. But maybe I dont get what you want to ask. Why do you think FEC can/cannot affect upsampling factor ? – AlexTP Dec 6 '17 at 9:14
• Convolutional encoder with a rate 1/2 doubles the number of input data bits. If I take 1bit/symbol and then upsample the data then should I consider that redundant bits as upsampling by a factor of 2, because it increased the overall bits and hence overall number of samples? – anonymous Dec 6 '17 at 10:04
• Convolutional encoder (and other channel coders) add redundant bits. A symbol is a package of several bits and each symbol requires at least one sample to represent its value. Upsampling means that we use several samples to represent the value of symbol. For example, you want to send $k$ information bits, conv encoder encodes them to $n > k$ bits, assuming a symbol can pack $M$ bits per symbol, you have $n/M$ symbols; with upsampling factor $L$, you have finally $L\times n /M$ samples. They are very different notions. – AlexTP Dec 6 '17 at 10:14
• As @AlexTP says (and disagreeing with @A_A), these are completely unrelated notions. Upsampling involves inserting new samples between existing samples. FEC introduces redundancy symbols. They have nothing to do with each other. – MBaz Dec 6 '17 at 14:54

Is the redundant data introduced during forward error correction (FEC) counted as upsampling?

Yes.

BUT, under certain conditions.

The whole point of FEC is to be able to detect and correct an error instead of simply detecting it and asking for re-transmission.

To achieve this, we encode the source symbols in a predictable and reversible way, adding some redundant information that, upon reception, helps us infer the symbol that was transmitted even if what was received was incomplete or "damaged" (but always within reason).

This does not come for free. The code rate expresses the amount of redundancy inserted in the data stream. For example a convolutional 1/3 code adds two redundant code bits for every source bit. Consequently, we now have to send 3 bits down the same line, instead of 1. Therefore, our effective data rate is lowered.

One of the simplest ways to "encode" the source data is to repeat them a number of times. Instead of sending 1, send 11111 (a 1/5 code).

On the receiving side, you decode by majority decoding. If most of the symbols received were 1, it is inferred that what was intended to be transmitted was 1 (and conversely for 0).

Upsampling is composed of two steps: The actual upsampling followed by interpolation which is required to "make up" the values of those in-between samples whose value we don't know because it was never captured.

So:

• if you were to take a data stream, upsample it and use nearest neighbor interpolation (effectively repeating each sample a number of times) and...
• if you were then to send this augmented data stream down a communication channel, and...
• if you were to now use a majority decoder on the other side of the channel to infer which one was the level that was actually sent...

then, yes, THAT could count as upsampling.

Otherwise, FEC and upsampling / interpolation are only somehow related as both operations can modify the data rate and content of the signal in a predictable and reversible way. But they do not overlap so much as to count as the same thing.

Hope this helps.

• In my opinion, upsampling must include "sampling" by definition. But I do agree that we can see things as you have described in this specific configuration. Just be afraid that the OP got confused :D – AlexTP Dec 6 '17 at 10:22
• Thank you for the note, I don't think that we disagree on the key points. From my point of view I could not provide a definite "yes" or "no" as I could see codes as a way of "filling the gaps" between known samples in a way very similar to upsampling, but with not exactly the same end-results. Yes they are similar but each technique has its place. Hence the answer, I did not notice the comment discussion until I had already submit the response. ( @AlexTP ) – A_A Dec 6 '17 at 10:55

The opposite might be true. Upsampling can be a weak form of inserting forward error correction. If a band limited signal can be recreated from a set of N samples, and upsampling (duplication, or perfect Sinc interpolation, etc.) by M creates M sets of N samples, from each of which the original signal can be regenerated, then some redundancy may have been added.