# Simulate BER curves for OFDM with convolutional coding

I am tasked with generating performance curves for an OFDM transmitter/receiver, and I am unsure how to calculate the appropriate AWGN power, and where exactly the apply it.

The transmitted packets contains typical non-payload portions, such as a synchronization marker, short training sequence, long training sequence, cyclic prefix, pilot subcarriers, and guard band subcarriers. The models have quite a bit happening in terms of real-world effects: Carrier Frequency Offset simulation, multipath simulation, channel-specific effects simulation. These are used to exercise the receivers ability to handle these real world effects, using CFO correction as well as Equalization.

Furthermore, the payload bits are applied to a 1/2 convolutional encoder/decoder, so the IQ symbols look like QAM-4 (2-bits per subcarrier), but after the decoding happens, it's an effective 1-bit per subcarrier.

How can I apply noise the transmitted waveform to correctly generate a BER vs EbNo plot?

Look at one OFDM symbol at the point where it is transmitted, i.e. right before it enters the channel. Figure out its average power, $$P$$, or its average energy, $$E = PT$$, where $$T$$ is the symbol's duration. Also, figure out how many information bits, $$I$$, are carried by the symbol.
In your simulation, $$E_b = E/I$$.
To get a desired $$E_b/N_0$$, calculate $$\sigma_n^2 = N_0 / 2$$. Then, add AWGN noise to the symbol right before it enters the receiver; i.e. after all other channel effects such as multipath. The noise should have variance $$\sigma_n^2$$ in each of the I and Q branches.