MATLAB: How to specify ‘nsamp’ for an oversampled Orthogonal Frequency Division Multiplexing (OFDM) signal

communications blockset

In the Help Documentation on 'AWGN Channel' in Communication Toolbox, the section 'Describing the Noise Level of an AWGN Channel' mentions that:
SNR = EbNo + 10*log10(k) – 10*log10(nsamp)
I have a system that simulates Orthogonal Frequency Division Multiplexing or OFDM. I am oversampling my input data from [1 -1 1 1] to [1 -1 0 0 0 0 1 1]; how would I specify 'nsamp' in the SNR equation given that there is oversampling in the OFDM modulation.
Should 'nsamp' be 2 in this situation?

Best Answer

In the time domain, four symbols are modulated by four different cosine frequencies (or OFDM tones); they are then added together to make an OFDM signal. This process can be accomplished by using an IFFT since the symbols are essentially the coefficients x(k)'s in the Fourier Transform since they are multiplied times a cosine. In order to "recover" the corresponding time signal, the IFFT is taken of the symbols.
There are a number of considerations such as inserting zeros to make a frequency guard band or reorganizing the symbols to make them symmetric (to produce a real time signal).
In any case, 'nsamp' should be set to Nfft/Np, where Nfft is the number of OFDM tones (e.g., 64) and Np is the number of non-zero tones (usually smaller than Nfft). This assumes that the output of each modulator (before OFDM frame assembly) is not oversampled. Note that this interpretation of nsamp is not the one given in the documentation, but it is the right formulation for OFDM.
Related Question