DSPRelated.com
Forums

Realistic, computable signal for testing analog-to-digital converter model

Started by Jerry January 29, 2013
I am trying to discover a good signal with which to test a _simulation_ of an analog-to-digital converter. I am especially interested in signal-to-quantization-noise ratios. I stress _simulation_ because the input signal can (must) be computed at arbitrary instants of time. An additional limitation is that due to the computational load of the simulation, it is only practical to work with fairly short signals, perhaps a second or less. Also, the converter that am modeling can't be assumed to have identical quantization quality at various signal levels, thus the importance of having a signal that addresses the various levels at roughly the same relative frequency as real-world signals. And of course the signal should have a spectrum that is roughly like a real-world signal of some sort.

Sine waves have their place (harmonic distortion or intermodulation distortion in the case of two sines) but have a probability density function (pdf) which is radically different than most signals such as voice (which I understand has a Laplacian pdf) or music. Specifically, sine pdfs are heavily weighted at the extremes of the signal range (around +1 and -1 for an actual sine) and are thin in the middle, around zero. This is much different than most natural signals which are lightly represented near the signal extremes but much more dense near zero. Thus, SNR numbers are not to be trusted if performance against actual signals is to be estimated. Varying the sine amplitude over many simulation runs is of course possible but still does not address the problem adequately.

One might consider placing a double-exponential (fast rise, slow decay) envelope over the sine to get a different pdf; that works in a "composite" sense, of course, but is still not like a natural signal in that the various amplitude extremes tend to occur at isolated times, thus really making a kind of time-varying pdf that over a short epoch is much like a sine pdf, with shrinking extremes (and narrowing pdf) over a longer epoch.

I have tried summing _lots_ of sines of various frequencies and amplitudes to some good effect, but with a long computation time and still a dubious relationship to actual signals. Additionally, I have placed frequency-weighting envelope over the sine amplitudes to approximate a speech spectrum.

I have considered an FM synthesis route but haven't yet taken the time to understand how to adjust the FM parameters to get a voice-like pdf. I think Mathematica could be my friend here, at least for rapid experimentation, as it has FM synthesis built in.

I have considered a windowed sinc interpolator on actual voice or music signals; this might be the best answer in spite of the heavy computational load of computing the interpolated values at arbitrary times.

Does anyone have any ideas for a realistic, computable test signal?

On a related note: Does music have a pdf similar to voice, which I understand tends towards a Laplacian distribution?

Jerry
>I am trying to discover a good signal with which to test a _simulation_ of
=
>an analog-to-digital converter. I am especially interested in
signal-to-qua=
>ntization-noise ratios. I stress _simulation_ because the input signal can
=
>(must) be computed at arbitrary instants of time. An additional limitation
=
>is that due to the computational load of the simulation, it is only
practic=
>al to work with fairly short signals, perhaps a second or less. Also, the
c=
>onverter that am modeling can't be assumed to have identical quantization
q=
>uality at various signal levels, thus the importance of having a signal
tha=
>t addresses the various levels at roughly the same relative frequency as
re=
>al-world signals. And of course the signal should have a spectrum that is
r=
>oughly like a real-world signal of some sort. > >Sine waves have their place (harmonic distortion or intermodulation
distort=
>ion in the case of two sines) but have a probability density function
(pdf)=
> which is radically different than most signals such as voice (which I
unde=
>rstand has a Laplacian pdf) or music. Specifically, sine pdfs are heavily
w=
>eighted at the extremes of the signal range (around +1 and -1 for an
actual=
> sine) and are thin in the middle, around zero. This is much different
than=
> most natural signals which are lightly represented near the signal
extreme=
>s but much more dense near zero. Thus, SNR numbers are not to be trusted
if=
> performance against actual signals is to be estimated. Varying the sine
am=
>plitude over many simulation runs is of course possible but still does not
=
>address the problem adequately. > >One might consider placing a double-exponential (fast rise, slow decay)
env=
>elope over the sine to get a different pdf; that works in a "composite"
sen=
>se, of course, but is still not like a natural signal in that the various
a=
>mplitude extremes tend to occur at isolated times, thus really making a
kin=
>d of time-varying pdf that over a short epoch is much like a sine pdf,
with=
> shrinking extremes (and narrowing pdf) over a longer epoch. > >I have tried summing _lots_ of sines of various frequencies and amplitudes
=
>to some good effect, but with a long computation time and still a dubious
r=
>elationship to actual signals. Additionally, I have placed
frequency-weight=
>ing envelope over the sine amplitudes to approximate a speech spectrum. > >I have considered an FM synthesis route but haven't yet taken the time to
u=
>nderstand how to adjust the FM parameters to get a voice-like pdf. I think
=
>Mathematica could be my friend here, at least for rapid experimentation,
as=
> it has FM synthesis built in. > >I have considered a windowed sinc interpolator on actual voice or music
sig=
>nals; this might be the best answer in spite of the heavy computational
loa=
>d of computing the interpolated values at arbitrary times. > >Does anyone have any ideas for a realistic, computable test signal? > >On a related note: Does music have a pdf similar to voice, which I
understa=
>nd tends towards a Laplacian distribution? > >Jerry >
You might start with a random signal then bandlimit it as required. This can be done in Matlab using a couple of statements e.g.: x = randn(1,2^20); y = filter(fir1(90,.35),1,x); %cutoff at .35 of Nyquist y = round(2^14 * y/max(abs(y))); %assuming 15 bits signed You might also search for my post "SNR of quantisation noise" on this forum. kadhiem
On Tuesday, January 29, 2013 4:47:08 PM UTC-7, kaz wrote:
> You might start with a random signal then bandlimit it as required. This > can be done in Matlab using a couple of statements e.g.: > x = randn(1,2^20); > y = filter(fir1(90,.35),1,x); %cutoff at .35 of Nyquist > y = round(2^14 * y/max(abs(y))); %assuming 15 bits signed > > You might also search for my post "SNR of quantisation noise" on this > forum.
> kadhiem
Thanks, kadhiem. Unfortunately, this does not meet my needs since the signal y is already discrete in time and thus can't be computed at arbitrary instants of time. What I need is an inherently _analog_ signal which can actually be sampled at arbitrary times. My simulation is perhaps odd in this respect. I have considered using such a noise-based discrete-time signal as your y (y before quantization) and applying the sinc interpolator to that, just as I indicated as a possibility with an actual already-sampled voice signal. Jerry
On Tuesday, 29 January 2013 23:14:43 UTC, Jerry  wrote:
> I am trying to discover a good signal with which to test a _simulation_ of an analog-to-digital converter. I am especially interested in signal-to-quantization-noise ratios. I stress _simulation_ because the input signal can (must) be computed at arbitrary instants of time. An additional limitation is that due to the computational load of the simulation, it is only practical to work with fairly short signals, perhaps a second or less. Also, the converter that am modeling can't be assumed to have identical quantization quality at various signal levels, thus the importance of having a signal that addresses the various levels at roughly the same relative frequency as real-world signals. And of course the signal should have a spectrum that is roughly like a real-world signal of some sort. > > > > Sine waves have their place (harmonic distortion or intermodulation distortion in the case of two sines) but have a probability density function (pdf) which is radically different than most signals such as voice (which I understand has a Laplacian pdf) or music. Specifically, sine pdfs are heavily weighted at the extremes of the signal range (around +1 and -1 for an actual sine) and are thin in the middle, around zero. This is much different than most natural signals which are lightly represented near the signal extremes but much more dense near zero. Thus, SNR numbers are not to be trusted if performance against actual signals is to be estimated. Varying the sine amplitude over many simulation runs is of course possible but still does not address the problem adequately. > > > > One might consider placing a double-exponential (fast rise, slow decay) envelope over the sine to get a different pdf; that works in a "composite" sense, of course, but is still not like a natural signal in that the various amplitude extremes tend to occur at isolated times, thus really making a kind of time-varying pdf that over a short epoch is much like a sine pdf, with shrinking extremes (and narrowing pdf) over a longer epoch. > > > > I have tried summing _lots_ of sines of various frequencies and amplitudes to some good effect, but with a long computation time and still a dubious relationship to actual signals. Additionally, I have placed frequency-weighting envelope over the sine amplitudes to approximate a speech spectrum. > > > > I have considered an FM synthesis route but haven't yet taken the time to understand how to adjust the FM parameters to get a voice-like pdf. I think Mathematica could be my friend here, at least for rapid experimentation, as it has FM synthesis built in. > > > > I have considered a windowed sinc interpolator on actual voice or music signals; this might be the best answer in spite of the heavy computational load of computing the interpolated values at arbitrary times. > > > > Does anyone have any ideas for a realistic, computable test signal? > > > > On a related note: Does music have a pdf similar to voice, which I understand tends towards a Laplacian distribution? > > > > Jerry
I have only done this in a single specific case: that of a medical ultrasound scanner whose DSP chain I designed recently. There I was able to build a simulation of the expected physical model (outgoing pulse, transducers, reflection, acquisition, beam-forming) quite simplified into an analytical model, which then enabled me to calculate the signal at an arbitrary time. In that case the situation is less general than yours sounds - the target materials, and at least some of their general characteristics, are known at least in crude form. Also, it was possible to build a library of such simulated test signals, and then with the completed actual scanner to compare any part of the simulation against the actual performance (which, needless to say, was entirely different from the expectation from simulation and accepted models). In different situations I usually capture a set of 'real world' signals at high precision and (very) high sample rate, build a database of such test signals for the application, and then downsample using a standard fixed method to get the 'simulated' signal at an arbitrary time. Thus for example with an audio signal I would typically have a set of signals sampled at, say, 500 Ms/s - usually I am able to compromise and simply select the nearest sample to a required arbitrary time, because the timing error allowed is usually quite high compared to the actual sample separation.
On Tuesday, 29 January 2013 23:14:43 UTC, Jerry  wrote:
> I am trying to discover a good signal with which to test a _simulation_ of an analog-to-digital converter. I am especially interested in signal-to-quantization-noise ratios. I stress _simulation_ because the input signal can (must) be computed at arbitrary instants of time. An additional limitation is that due to the computational load of the simulation, it is only practical to work with fairly short signals, perhaps a second or less. Also, the converter that am modeling can't be assumed to have identical quantization quality at various signal levels, thus the importance of having a signal that addresses the various levels at roughly the same relative frequency as real-world signals. And of course the signal should have a spectrum that is roughly like a real-world signal of some sort. > > > > Sine waves have their place (harmonic distortion or intermodulation distortion in the case of two sines) but have a probability density function (pdf) which is radically different than most signals such as voice (which I understand has a Laplacian pdf) or music. Specifically, sine pdfs are heavily weighted at the extremes of the signal range (around +1 and -1 for an actual sine) and are thin in the middle, around zero. This is much different than most natural signals which are lightly represented near the signal extremes but much more dense near zero. Thus, SNR numbers are not to be trusted if performance against actual signals is to be estimated. Varying the sine amplitude over many simulation runs is of course possible but still does not address the problem adequately. > > > > One might consider placing a double-exponential (fast rise, slow decay) envelope over the sine to get a different pdf; that works in a "composite" sense, of course, but is still not like a natural signal in that the various amplitude extremes tend to occur at isolated times, thus really making a kind of time-varying pdf that over a short epoch is much like a sine pdf, with shrinking extremes (and narrowing pdf) over a longer epoch. > > > > I have tried summing _lots_ of sines of various frequencies and amplitudes to some good effect, but with a long computation time and still a dubious relationship to actual signals. Additionally, I have placed frequency-weighting envelope over the sine amplitudes to approximate a speech spectrum. > > > > I have considered an FM synthesis route but haven't yet taken the time to understand how to adjust the FM parameters to get a voice-like pdf. I think Mathematica could be my friend here, at least for rapid experimentation, as it has FM synthesis built in. > > > > I have considered a windowed sinc interpolator on actual voice or music signals; this might be the best answer in spite of the heavy computational load of computing the interpolated values at arbitrary times. > > > > Does anyone have any ideas for a realistic, computable test signal? > > > > On a related note: Does music have a pdf similar to voice, which I understand tends towards a Laplacian distribution? > > > > Jerry
I have only done this in a single specific case: that of a medical ultrasound scanner whose DSP chain I designed recently. There I was able to build a simulation of the expected physical model (outgoing pulse, transducers, reflection, acquisition, beam-forming) quite simplified into an analytical model, which then enabled me to calculate the signal at an arbitrary time. In that case the situation is less general than yours sounds - the target materials, and at least some of their general characteristics, are known at least in crude form. Also, it was possible to build a library of such simulated test signals, and then with the completed actual scanner to compare any part of the simulation against the actual performance (which, needless to say, was entirely different from the expectation from simulation and accepted models). In different situations I usually capture a set of 'real world' signals at high precision and (very) high sample rate, build a database of such test signals for the application, and then downsample using a standard fixed method to get the 'simulated' signal at an arbitrary time. Thus for example with an audio signal I would typically have a set of signals sampled at, say, 500 Ms/s - usually I am able to compromise and simply select the nearest sample to a required arbitrary time, because the timing error allowed is usually quite high compared to the actual sample separation.
On Tuesday, January 29, 2013 5:14:43 PM UTC-6, Jerry wrote:
> I am trying to discover a good signal with which to test a _simulation_ of an analog-to-digital converter. I am especially interested in signal-to-quantization-noise ratios. I stress _simulation_ because the input signal can (must) be computed at arbitrary instants of time. An additional limitation is that due to the computational load of the simulation, it is only practical to work with fairly short signals, perhaps a second or less. Also, the converter that am modeling can't be assumed to have identical quantization quality at various signal levels, thus the importance of having a signal that addresses the various levels at roughly the same relative frequency as real-world signals. And of course the signal should have a spectrum that is roughly like a real-world signal of some sort. Sine waves have their place (harmonic distortion or intermodulation distortion in the case of two sines) but have a probability density function (pdf) which is radically different than most signals such as voice (which I understand has a Laplacian pdf) or music. Specifically, sine pdfs are heavily weighted at the extremes of the signal range (around +1 and -1 for an actual sine) and are thin in the middle, around zero. This is much different than most natural signals which are lightly represented near the signal extremes but much more dense near zero. Thus, SNR numbers are not to be trusted if performance against actual signals is to be estimated. Varying the sine amplitude over many simulation runs is of course possible but still does not address the problem adequately. One might consider placing a double-exponential (fast rise, slow decay) envelope over the sine to get a different pdf; that works in a "composite" sense, of course, but is still not like a natural signal in that the various amplitude extremes tend to occur at isolated times, thus really making a kind of time-varying pdf that over a short epoch is much like a sine pdf, with shrinking extremes (and narrowing pdf) over a longer epoch. I have tried summing _lots_ of sines of various frequencies and amplitudes to some good effect, but with a long computation time and still a dubious relationship to actual signals. Additionally, I have placed frequency-weighting envelope over the sine amplitudes to approximate a speech spectrum. I have considered an FM synthesis route but haven't yet taken the time to understand how to adjust the FM parameters to get a voice-like pdf. I think Mathematica could be my friend here, at least for rapid experimentation, as it has FM synthesis built in. I have considered a windowed sinc interpolator on actual voice or music signals; this might be the best answer in spite of the heavy computational load of computing the interpolated values at arbitrary times. Does anyone have any ideas for a realistic, computable test signal? On a related note: Does music have a pdf similar to voice, which I understand tends towards a Laplacian distribution? Jerry
Jerry, At ITU we were looking for an input signal that mimiced voice to test performance of adaptive systems. Head Acoustics in Germany, came up with the Composite Source Signal (CSS). There used to be an appendix in G.168 explaning the CSS and how to generate it. It might work for you.
"Jerry" <lanceboyle@qwest.net> wrote in message 
news:5e5d732f-81b0-46c7-bd8e-31cf90622ba0@googlegroups.com...
>I am trying to discover a good signal with which to test a _simulation_ of >an analog-to-digital converter. I am especially interested in > >signal-to-quantization-noise ratios.
If the signal is smooth and RMS of the signal much larger then LSB, then quantization error is independent from PDF. (Excluding special pathological cases). The answer is obvoius; simulation doesn't make sense. There was a lot of work on optimal quantization in 60x; optimization is possible only if the number of quantization levels is small. Vladimir Vassilevsky DSP and Mixed Signal Consultant www.abvolt.com
maury <maury001@core.com> writes:

> Jerry, > At ITU we were looking for an input signal that mimiced voice to test > performance of adaptive systems. Head Acoustics in Germany, came up > with the Composite Source Signal (CSS). There used to be an appendix > in G.168 explaning the CSS and how to generate it. It might work for > you.
I think I may have heard this signal at the acoustics lab at Sony Ericsson. It was a VERY strange sounding thing - like voice, but nothing intelligible. -- Randy Yates Digital Signal Labs http://www.digitalsignallabs.com
One test that works well is to use a sum of harmonically related sine waves with random phases, but leave out the fundamental. Then you can see how much fundamental is present after going through the device under test.

Bob
On Wednesday, January 30, 2013 2:45:42 AM UTC-7, Chris Bore wrote:
> I have only done this in a single specific case: that of a medical ultrasound scanner whose DSP chain I designed recently. There I was able to build a simulation of the expected physical model (outgoing pulse, transducers, reflection, acquisition, beam-forming) quite simplified into an analytical model, which then enabled me to calculate the signal at an arbitrary time. In that case the situation is less general than yours sounds - the target materials, and at least some of their general characteristics, are known at least in crude form. Also, it was possible to build a library of such simulated test signals, and then with the completed actual scanner to compare any part of the simulation against the actual performance (which, needless to say, was entirely different from the expectation from simulation and accepted models). > > In different situations I usually capture a set of 'real world' signals at high precision and (very) high sample rate, build a database of such test signals for the application, and then downsample using a standard fixed method to get the 'simulated' signal at an arbitrary time. Thus for example with an audio signal I would typically have a set of signals sampled at, say, 500 Ms/s - usually I am able to compromise and simply select the nearest sample to a required arbitrary time, because the timing error allowed is usually quite high compared to the actual sample separation.
This is sort of interesting (sorry!) but for my application, the key word in your note is "compromise." Even if I were able to take such high-rate samples (I'm not sure how to gather the hardware) I'm pretty sure that taking the nearest sample would not be good enough, or at least good enough to separate out that approximation from the other non-ideal parts of the simulated device. But the high-rate signal would surely simplify the interpolation! For the sake of argument and to perhaps clear up why I need the fine-grained arbitrary sampling of a computable signal and why I am concerned with computation time, let's assume that I am studying clock jitter and that my computer is very slow. Jerry