I have a samples prerecorded by a radio device. Samples are not in baseband, contain large DC component and include only one channel (written in int32 format). My goal is to move it to the baseband, remove the DC spike and perform Hilbert transform to make it complex for further processing. My question is, what is the correct order of performing mentioned computations? Or it doesn't matter? I assume that first I need to remove DC by calculating mean (DC component) and correct each sample. Then go with Hilbert transform to get complex representation of the signal. After that I need to multiply the signal by a complex waveform to move it to the baseband. Can anyone confirm that my way of thinking is right or correct me if I am wrong.

  • $\begingroup$ How can it have a large DC offset if it's not in the baseband? $\endgroup$
    – Hilmar
    Apr 27, 2021 at 12:03
  • $\begingroup$ Ah, yes sorry for my confusion. By saying DC I mean that the mean of the signal in not zero while analyzing prerecorded signal. Signal is BPSK modulated. $\endgroup$ Apr 27, 2021 at 12:25
  • 1
    $\begingroup$ I understand what DC is. But if it's not a baseband signal I assume it's a bandpass signal and those can't have and DC unless it's a data capture or noise problem $\endgroup$
    – Hilmar
    Apr 27, 2021 at 13:09

1 Answer 1


Order of operations can be changed but will change where the processing is applied and that may be simplified in certain conditions which will be very obvious once the actual signal is processed if the goals of each step are understood. For example, if the OP means by DC a non-zero carrier (which will appear at DC after moving the signal completely to baseband), this is much easier to remove after moving to baseband by simply subtracting the mean. However in actual applications, the carrier may not initially be perfectly estimated, in which case a tone close to DC will occur and subtracting the mean will be ineffective (but the tone can be used to continue to refine the carrier estimate). If the OP meant the waveform itself as received prior to any processing has a large DC offset, this too can be removed prior to any processing with a simple subtraction of the mean (since the samples are pre-recorded this would be simplest) assuming the DC offset is not desired for some reason, otherwise the tone it becomes will be filtered out regardless in the subsequent processing below. (There can of course be advantages to removing the DC signal first in terms of dynamic range available but that would all be clear in the specicic procssing done and precision of the operations.

No Hilbert transform is necessarily needed, if the frequency initially is at a carrier sufficiently higher than its bandwidth, simply frequency translate the real signal to baseband using using $e^{-j\omega_c t}$ which means feed the signal into to multipliers and multiply one with $\cos(\omega_c t)$ and multiply the other with $\sin(\omega_c t)$ to get a complex I and Q output and filter the remaining higher frequency component that will reside at $e^{-j 2\omega_c t}$ (this is a typical Digital Downconverter (DDC) architecture).

For further details of this approach, please see:



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.