I am implementing OFDM PHY for Visible Light Communication in FPGA. (I am quite new to communication system and signal processing, so please understand my lack of background knowledge.)

The FFT size is 64 and it use Hermitian symmetry. The preamble symbol (64 sample) is added in front of the data symbol for synchronization, so for one OFDM symbol consists of 128 time domain samples. This sample is sent to DAC every 200ns (DAC clock is 5 MHz). The DAC maximum update rate is 125 MSPS and the output is connected to the LPF that has 50 MHz bandwidth (-3dB). The DAC output is shown in the following figure.

DAC output

As shown in the figure, the OFDM signal is ringing on every transition. I think this ringing is caused by sharp transition that is filtered by LPF, so the high frequency harmonics is removed. In the receiver, the ADC sampling clock is 125 MHz, so I have to undersampling it by a factor of 25. The undersampling process is done by pick up one sample in every 25 samples. The OFDM signal after undersampling is shown in the following figure.

OFDM signal after undersampling

As shown in the figure, I think because of the ringing, and the ringing signal is picked up in the undersampling process, then the signal amplitude is decreased or increased.

Question 1: Is the DAC implementation correct, or I need to add oversampling and pulse shaping before DAC? so the output is not ringing?

Question 2: Is there any solution how to remove this ringing in the receiver?


1 Answer 1


You're running a DAC at 5 MS/s and have a reconstruction filter of 50 MHz bandwidth.

There's your error: You're not doing proper reconstruction filtering! Reduce the filter bandwidth to reflect your sample rate.

You can of course also interpolate your signal 10× and set your DAC clock to 50 MS/s. Interpolating an OFDM signal is potentially very easy: Just add enough unused carriers to the side (note: you might need to adjust your CP length and synchronization algorithms).


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.