Hello all, I'm an RF engineer trying to deal with some data which was taken by sampling in the frequency domain and I don't have any expedience dealing with this type of data… I've run into a bit of a rut. I have a set of radar data sampled in the frequency domain (an I and Q pair is collected at specified range-delay positions). This was done in order to overcome several hardware limitations of getting high resolution data via time domain sampling. However, I'm faced with the following dilemma: I only have I and Q data for positive frequencies in 2GHz of bandwidth in the K band, and I need the full spectrum (including negative frequencies) in order to get an accurate result from the inverse Fourier transform. Additionally, I do not have access to any time domain data whatsoever; these samples are all I have to play with. Since my time domain signal should be all real, I've assumed that the spectrum should be conjugate symmetric ( F(-w) = F*(w)) and replicated, flipped, and scaled the I and Q arrays appropriately. This seems to work, as I get the time(range) domain results that I was anticipating. However, 'Seems to work' and 'is mathematically valid' are two very different things. Is what I'm doing mathematically valid? I know that sampling in the frequency domain is used in other applications; does anyone know of any 'standard' ways of overcoming only having half of the full complex spectrum? Thanks! _____________________________ Posted through www.DSPRelated.com
Reconstruction of time domain data using half of the frequency domain
Started by ●July 2, 2014
Reply by ●July 3, 20142014-07-03
Hi, what you're doing sounds correct. A real-valued signal has a conjugate (Hermitian) spectrum. The frequency domain coefficients scale "exp(i omega t)" terms. For a real-valued signal it is known that "exp(i omega t)" and "exp(-i omega t") come in pairs, according to the exponential definition of cosine and sine. It's easy to show if I state that the imaginary part of the time-domain function is zero, there is no other way,.because terms with differing omega are independent of each other. Where you need to pay attention is 0 Hz(at least theoretically - the last time I checked, DC-radar wasn't invented yet) _____________________________ Posted through www.DSPRelated.com
Reply by ●July 3, 20142014-07-03
On Wed, 02 Jul 2014 19:14:48 -0500, "Shan9492" <100758@dsprelated> wrote:>Hello all, >[Snipped by Lyons]> >Since my time domain signal should be all real, I've assumed that the >spectrum should be conjugate symmetric ( F(-w) = F*(w)) and replicated, >flipped, and scaled the I and Q arrays appropriately. This seems to work, >as I get the time(range) domain results that I was anticipating. However, >'Seems to work' and 'is mathematically valid' are two very different >things. Is what I'm doing mathematically valid? I know that sampling in >the frequency domain is used in other applications; does anyone know of any >'standard' ways of overcoming only having half of the full complex >spectrum? > > >Thanks!Hi, If your freq-domain samples are obtained by performing a discrete Fourier transform (DFT), which includes the fast Fourier transform (FFT), on real-valued time samples, then the freq-domain symmetry you cited will always be true. For example, if you're performing an 8-point DFT on eight x(n) time samples, your eight complex-valued freq-domain samples will be (the '*' symbol means conjugate): X(0) [real-only] X(1) = X*(7) X(2) = X*(6) X(3) = X*(5) X(4) [real only] X(5) = X*(3) X(6) = X*(2) X(7) = X*(1) So the two real values, X(0) & X(4), plus the three complex values, X(1), X(2), & X(3), contain *ALL* the freq-domain information. Let's look at a simple 8-point DFT of the x(n) samples of x(n) = 1,2,0,0,0,0,0,0, and show that X*(7) = X(1). Writing the standard DFT summation equation for X(m),'m' is the freq-domain index (0 -to- 7). Because there are only two non-zero x(n) samples, the DFT summation becomes: X(m) = x(0)*exp(-j2p0m/8) + x(1)*exp(-j2p1m/8) = 1 + 2exp(-j2pm/8). (1) ('p' = pi.) The 1st term in Eq. (1) is the n = 0 term, and the 2nd term in Eq. (1) is the n = 1 term. So let's show that X(1) = X*(7). From Eq. (1) with m=1, X(1) is: X(1) = 1 + 2exp(-j2p/8) = 1 + cos(-2p/8) -jsin(-2p/8) And from Eq. (1) with m=7, X(7) is: X(7) = 1 + 2exp(-j2p7/8) = 1 + cos(-2p7/8) -jsin(-2p7/8) Because cos(-2p7/8) = cos(-2p/8), we can rewrite X(7) as: X(7) = 1 + cos(-2p/8) -jsin(-2p7/8) The conjugate of X(7) is: X*(7) = 1 + cos(-2p/8) + jsin(-2p7/8). Because sin(-2p7/8) = -sin(-2p/8), we can rewrite X*(7) as: X*(7) = 1 + cos(-2p/8) -jsin(-2p/8) = X(1). Which is what we set out to show. [-Rick-]
Reply by ●July 3, 20142014-07-03
Thank you both very much!!>On Wed, 02 Jul 2014 19:14:48 -0500, "Shan9492" <100758@dsprelated> >wrote: > >>Hello all, >> > [Snipped by Lyons] >> >>Since my time domain signal should be all real, I've assumed that the >>spectrum should be conjugate symmetric ( F(-w) = F*(w)) and replicated, >>flipped, and scaled the I and Q arrays appropriately. This seems towork,>>as I get the time(range) domain results that I was anticipating.However,>>'Seems to work' and 'is mathematically valid' are two very different >>things. Is what I'm doing mathematically valid? I know that samplingin>>the frequency domain is used in other applications; does anyone know ofany>>'standard' ways of overcoming only having half of the full complex >>spectrum? >> >> >>Thanks! > >Hi, > If your freq-domain samples are obtained by >performing a discrete Fourier transform (DFT), >which includes the fast Fourier transform (FFT), >on real-valued time samples, then the freq-domain >symmetry you cited will always be true. > >For example, if you're performing an 8-point DFT >on eight x(n) time samples, your eight >complex-valued freq-domain samples will be >(the '*' symbol means conjugate): > > X(0) [real-only] > X(1) = X*(7) > X(2) = X*(6) > X(3) = X*(5) > X(4) [real only] > X(5) = X*(3) > X(6) = X*(2) > X(7) = X*(1) > >So the two real values, X(0) & X(4), plus the >three complex values, X(1), X(2), & X(3), >contain *ALL* the freq-domain information. > >Let's look at a simple 8-point DFT of the >x(n) samples of x(n) = 1,2,0,0,0,0,0,0, >and show that X*(7) = X(1). > >Writing the standard DFT summation equation >for X(m),'m' is the freq-domain index >(0 -to- 7). > >Because there are only two non-zero x(n) >samples, the DFT summation becomes: > > X(m) = x(0)*exp(-j2p0m/8) > + x(1)*exp(-j2p1m/8) > > = 1 + 2exp(-j2pm/8). (1) > >('p' = pi.) The 1st term in Eq. (1) is the >n = 0 term, and the 2nd term in Eq. (1) is >the n = 1 term. > >So let's show that X(1) = X*(7). From >Eq. (1) with m=1, X(1) is: > > X(1) = 1 + 2exp(-j2p/8) > = 1 + cos(-2p/8) -jsin(-2p/8) > >And from Eq. (1) with m=7, X(7) is: > > > X(7) = 1 + 2exp(-j2p7/8) > = 1 + cos(-2p7/8) -jsin(-2p7/8) > >Because cos(-2p7/8) = cos(-2p/8), we can >rewrite X(7) as: > > X(7) = 1 + cos(-2p/8) -jsin(-2p7/8) > >The conjugate of X(7) is: > > X*(7) = 1 + cos(-2p/8) + jsin(-2p7/8). > >Because sin(-2p7/8) = -sin(-2p/8), we can >rewrite X*(7) as: > > X*(7) = 1 + cos(-2p/8) -jsin(-2p/8) > > = X(1). > >Which is what we set out to show. > >[-Rick-] > >_____________________________ Posted through www.DSPRelated.com