DSPRelated.com
Forums

Generating Scalar Data from Complex Data

Started by John E. Hadstate January 24, 2008
"Andor" <andor.bariska@gmail.com> wrote in message 
news:6bfdbaec-9f3a-427f-954e-4ae3881658f6@1g2000hsl.googlegroups.com...

After drawing a picture of what happens in the time domain 
during the conversion from scalar to complex, I 
"reverse-engineered" the process to produce exactly the 
sequences you proposed.  However, when I did some spectral 
analysis of the resulting scalar signal, I found that it was 
composed of the sum of two spectra, one reversed along the 
frequency domain with respect to the other.


"Jerry Avins" <jya@ieee.org> wrote in message 
news:waGdnfml8pqbZwTanZ2dnUVZ_gidnZ2d@rcn.net...
> > Do you know for a fact that they didn't simply call even > sample "real" and odd samples "imaginary"? Some complex > sampling can be done that way, and a fondness for ignorant > cleverness might have led them there. > > Jerry > -- > Engineering is the art of making what you want from things > you can get. >
I checked this out but it didn't lead anywhere.
"Rick Lyons" <R.Lyons@_BOGUS_ieee.org> wrote in message 
news:8dshu3th75k1hr6kfjrtrhfm11t5k51km5@4ax.com...
> > Hi John, > I'm thinkin' out loud here (which usually gets me into > trouble): > Maybe you could interpolate your orignal complex time > samples by a factor of two, then multiply the > interpolated sequence by e^(+j*pi/4) to have a > positive-frequency-only complex signal. (That last > step is merely upward freq translation.) Then just > take the real part of that freq-translated signal. >
Rick, Even though this method works well, I have some concerns. Upsampling involves the generation of high-order images which have to be filtered out before frequency translation. Filtering is a somewhat inexact process that is subject to several "engineering approximations", not the least of which is selection of the filter. Therefore, we must be somewhat altering the generated scalar data so that it isn't exactly the same as the complex data from which it originated. Should we conclude from this that conversion between scalar and quadrature data representations will always involve some loss of information? Regards, John Hadstate
On Jan 24, 1:27 pm, "John E. Hadstate" <jh113...@hotmail.com> wrote:

> Is it possible to generate a scalar sampled data stream from a > sampled complex data stream without losing information? >
> For example, can I take complex data that was sampled at 100 > Hz. with a bandwidth of +/- 50 Hz around 0 Hz. and convert it > to a scalar data stream that is sampled (effectively) at 200 Hz > and preserve all the information between 0 and 100 Hz?
Take your complex data array: real0, imag0, real1, imag1, real2, imag2, real3, imag3, ... Multiply alternate pairs by -1: real0, imag0, -real1, -imag1, real2, imag2, -real3, -imag3, ... Interpret that array as reals: real0, real1, real2, real3, real4, real5, real6, real7, ... Since this is reversible, barring errors due to multiplying by -1, no information is destroyed. It is equivalent to upsampling by 2 by duplicating each complex sample and complex demodulating by Fs/2 where Fs is the original complex sampling frequency, and taking the real part. (Or inserting zeros and filtering by [1,1] then demodulating, etc.) You have stated no requirement about location, number or shape of images. If the original complex sequence consists of a real spectral component, the converted sequence will contain symmetric images of the spectrum centered at Fsnew/4. But then, an original real spectrum would have consisted of symmetric images of the spectrum, only centered at DC. Dale B. Dalrymple http://dbdimages.com http;//stores.lulu.com/dbd
John E. Hadstate wrote:
> > "Rick Lyons" <R.Lyons@_BOGUS_ieee.org> wrote in message > news:8dshu3th75k1hr6kfjrtrhfm11t5k51km5@4ax.com... >> >> Hi John, >> I'm thinkin' out loud here (which usually gets me into trouble): >> Maybe you could interpolate your orignal complex time >> samples by a factor of two, then multiply the >> interpolated sequence by e^(+j*pi/4) to have a >> positive-frequency-only complex signal. (That last >> step is merely upward freq translation.) Then just >> take the real part of that freq-translated signal. >> > > Rick, > > Even though this method works well, I have some concerns. Upsampling > involves the generation of high-order images which have to be filtered > out before frequency translation. Filtering is a somewhat inexact > process that is subject to several "engineering approximations", not the > least of which is selection of the filter. Therefore, we must be > somewhat altering the generated scalar data so that it isn't exactly the > same as the complex data from which it originated. > > Should we conclude from this that conversion between scalar and > quadrature data representations will always involve some loss of > information?
The sampled information is not exact; quantization error limits it. You don't say how many bits are used, Let's in any case assume that the converter is perfectly linear, so that the maximum error is +/- 1/2 LSB. With 16-bit data, that amounts to about 8 ppm. It won't be easy, but you can filter the images that well (-100 dB). Jerry -- Engineering is the art of making what you want from things you can get. &#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;
"Jerry Avins" <jya@ieee.org> wrote in message 
news:HLidnVdruvDfvgHanZ2dnUVZ_h6hnZ2d@rcn.net...
> John E. Hadstate wrote: >> >> Even though this method works well, I have some concerns. >> Upsampling involves the generation of high-order images >> which have to be filtered out before frequency translation. >> Filtering is a somewhat inexact process that is subject to >> several "engineering approximations", not the least of which >> is selection of the filter. Therefore, we must be somewhat >> altering the generated scalar data so that it isn't exactly >> the same as the complex data from which it originated. >> >> Should we conclude from this that conversion between scalar >> and quadrature data representations will always involve some >> loss of information? > > The sampled information is not exact; quantization error > limits it. You don't say how many bits are used, Let's in any > case assume that the converter is perfectly linear, so that > the maximum error is +/- 1/2 LSB. With 16-bit data, that > amounts to about 8 ppm. It won't be easy, but you can filter > the images that well (-100 dB). >
I don't think quantization or sampling enters this picture. I'm talking about a stream of digital information being represented in scalar or complex form, irrespective of where it came from or by what process, and about converting from one representation to another.
On Sat, 26 Jan 2008 17:20:32 -0500, "John E. Hadstate"
<jh113355@hotmail.com> wrote:

> >"Rick Lyons" <R.Lyons@_BOGUS_ieee.org> wrote in message >news:8dshu3th75k1hr6kfjrtrhfm11t5k51km5@4ax.com... >> >> Hi John, >> I'm thinkin' out loud here (which usually gets me into >> trouble): >> Maybe you could interpolate your orignal complex time >> samples by a factor of two, then multiply the >> interpolated sequence by e^(+j*pi/4) to have a >> positive-frequency-only complex signal. (That last >> step is merely upward freq translation.) Then just >> take the real part of that freq-translated signal. >> > >Rick, > >Even though this method works well, I have some concerns. >Upsampling involves the generation of high-order images which >have to be filtered out before frequency translation. >Filtering is a somewhat inexact process that is subject to >several "engineering approximations", not the least of which is >selection of the filter. Therefore, we must be somewhat >altering the generated scalar data so that it isn't exactly the >same as the complex data from which it originated. > >Should we conclude from this that conversion between scalar and >quadrature data representations will always involve some loss >of information? > >Regards, >John Hadstate
Hi John, you're certainly right about the accuracy of the interpolation being proportional to the quality of the filtering. Because we cannot build time-domain filters that are perfect (infinite attenuation in the stopband), then I suppose we could say that time-domain interpolation will never be perfect. [-Rick-]
John E. Hadstate wrote:
> > "Jerry Avins" <jya@ieee.org> wrote in message > news:HLidnVdruvDfvgHanZ2dnUVZ_h6hnZ2d@rcn.net... >> John E. Hadstate wrote: >>> >>> Even though this method works well, I have some concerns. Upsampling >>> involves the generation of high-order images which have to be >>> filtered out before frequency translation. Filtering is a somewhat >>> inexact process that is subject to several "engineering >>> approximations", not the least of which is selection of the filter. >>> Therefore, we must be somewhat altering the generated scalar data so >>> that it isn't exactly the same as the complex data from which it >>> originated. >>> >>> Should we conclude from this that conversion between scalar and >>> quadrature data representations will always involve some loss of >>> information? >> >> The sampled information is not exact; quantization error limits it. >> You don't say how many bits are used, Let's in any case assume that >> the converter is perfectly linear, so that the maximum error is +/- >> 1/2 LSB. With 16-bit data, that amounts to about 8 ppm. It won't be >> easy, but you can filter the images that well (-100 dB). >> > > I don't think quantization or sampling enters this picture. I'm talking > about a stream of digital information being represented in scalar or > complex form, irrespective of where it came from or by what process, and > about converting from one representation to another.
You had concern that image vestiges would corrupt the data. I tried to point out that also corrupts the data, and if the effect of quantization exceeds the effect that images have, nothing of substance is lost. It's understandable to mourn a loss of perfection. Recognizing that the original data were imperfect ought to ease the pain. Jerry -- Engineering is the art of making what you want from things you can get. &#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;&#4294967295;
On Sat, 26 Jan 2008 21:30:32 -0800 (PST), dbd <dbd@ieee.org> wrote:

>On Jan 24, 1:27 pm, "John E. Hadstate" <jh113...@hotmail.com> wrote: > >> Is it possible to generate a scalar sampled data stream from a >> sampled complex data stream without losing information? >> > >> For example, can I take complex data that was sampled at 100 >> Hz. with a bandwidth of +/- 50 Hz around 0 Hz. and convert it >> to a scalar data stream that is sampled (effectively) at 200 Hz >> and preserve all the information between 0 and 100 Hz? > >Take your complex data array: >real0, imag0, real1, imag1, real2, imag2, real3, imag3, ... >Multiply alternate pairs by -1: >real0, imag0, -real1, -imag1, real2, imag2, -real3, -imag3, ... >Interpret that array as reals: >real0, real1, real2, real3, real4, real5, real6, real7, ... > >Since this is reversible, barring errors due to multiplying by -1, no >information is destroyed. It is equivalent to upsampling by 2 by >duplicating each complex sample and complex demodulating by Fs/2 >where Fs is the original complex sampling frequency, and taking the >real part. (Or inserting zeros and filtering by [1,1] then >demodulating, etc.) >
(snipped by Lyons)
> >Dale B. Dalrymple >http://dbdimages.com >http;//stores.lulu.com/dbd
Hi Dale, your scheme is interesting. I don't recall seeing this notion, this process, before. (I'm gonna study this, as time allows.) Dale will you tell me what you mean by the words "complex demodulating"? Thanks. [-Rick-]
Hi Dale,
  your scheme looks like the inverse of a complex 
down-conversion technique that fred harris discussed 
on page 131 of his "Multirate DSP" textbook.

harris discusses turning a real-valued signal 
(centered at Fs/4 Hz) into a 
complex-valued signal centered at zero Hz. 
And your scheme appears to do the opposite.

Anyway I hope, as time allows, to investigate 
your suggestion Dale 

See Ya',
[-Rick-]