analogdevicesinc / scopy

A software oscilloscope and signal analysis toolset
http://wiki.analog.com/scopy
GNU General Public License v3.0
399 stars 164 forks source link

Uniform Noise Amplitude meaning #339

Open amiclaus opened 6 years ago

amiclaus commented 6 years ago

Scopy version: e9a6c85

For Uniform Noise Type, currently the amplitude is implemented as peak value.

image

Shouldn't it represent the peak-peak value?

damercer commented 6 years ago

Noise with a uniform distribution i.e. equal probability of having any value within the range of the distribution, will have a p-p vale equal to the range ( assuming infinite bandwidth of course ). Other probability distributions like Gaussian ( often used to model thermal noise ) will have different p-p values.

Doug

adisuciu commented 6 years ago

When implementing the noise source, I used the gnuradio noise_source block. https://gnuradio.org/doc/doxygen/classgr_1_1analog_1_1noise__source__f.html#a2165ba3c7cc54a1dcb8260e318976dba

It is mentioned that the amplitude parameter, is actually the standard deviation. In order to make Scopy more user friendly we can scale the amplitude given to the block, so that the noise is within range.

damercer commented 6 years ago

If the function used to generate the noise has a "standard deviation" then it is by definition not uniform ( i.e. most likely Gaussian ). So you need to call it what it is.

Gaussian noise.

If you want Uniform distribution noise then you need to use a pure Random number generator with uniform distribution.

Doug

On 1/16/2018 10:30 AM, Adrian Suciu wrote:

When implementing the noise source, I used the gnuradio noise_source block. https://gnuradio.org/doc/doxygen/classgr_1_1analog_1_1noise__source__f.html#a2165ba3c7cc54a1dcb8260e318976dba

It is mentioned that the amplitude parameter, is actually the standard deviation. In order to make Scopy more user friendly we can scale the amplitude given to the block, so that the noise is within range.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/analogdevicesinc/scopy/issues/339#issuecomment-357998082, or mute the thread https://github.com/notifications/unsubscribe-auth/ALIL6vzAJEhxQmp4_46J-j8NrDSmxy8Wks5tLMCGgaJpZM4RfucR.

adisuciu commented 6 years ago

There are multiple types of noise implemented by gnuradio, you can select them from the dropdown in Scopy. The thing is that if we rename the amplitude to "standard deviation" it might confuse the average user. Do you think it's worth renaming the control based on what kind of noise we are generating ?

Uniform - Amplitude Gaussian/etc - Standard Deviation

damercer commented 6 years ago

That's a good question. Users are probably thinking in terms of the apparent amplitude, noise voltage or noise power (nV/rtHz sort of thing) of the signal not some mathematical construct. So I think the way that would make the most sense from the users perspective would be for them the specify the type of noise ( distribution function or shape ) and the noise spectral density. Does that make sense?

A related question is should there be a BW or frequency spectrum distinction like white noise vs pink noise or 1/F noise etc.

Doug

rgetz commented 6 years ago

a few examples;

https://literature.cdn.keysight.com/litweb/pdf/5991-0692EN.pdf?id=2202606 Variable-bandwidth noise

https://literature.cdn.keysight.com/litweb/pdf/33500-90901.pdf?id=2197440 is described as "Quasi-Gaussian Noise" (p 180). All that is adjusted is bandwidth. (which also effects amplitude).

adisuciu commented 6 years ago

I know it's not 100% correct, but I implemented the following gnuradio flow, to minimize confusion: image

ui_ampl is the set amplitude in the UI value is a value (that was found experimental) that generates noise within the amplitude range. The rail block just makes sure there are no samples outside of range.

A few examples gauss1v impulse1v laplac1v

I know it's not statistically correct, but the question is, is it good enough ?

rgetz commented 6 years ago

For sure - any sort of instrument can not do a true Gaussian distribution, there is zero probability of getting a voltage beyond the instrument’s Vpp setting. I think this makes sense.

It really is determined by if "Amplitude" is peak (which it looks like in the figures), or RMS. The crest factor (peak voltage divided by RMS voltage) should be approximately 4.6 for signals like this.

I guess this brings up two things for me (which may be future feature requests),

adisuciu commented 6 years ago

If we just want to study what happens, we can always create a gnuradio flow with an fft measurement and analyze the characteristics of the noise signal generator.

damercer commented 6 years ago

I don't know anything about what GNU radio is doing when it generates a noise signal but wouldn't the spectrum of the noise just be flat within the bandwidth based on the sample rate? And just some flat noise floor with say a single frequency sinewave superimposed if that's what you are constructing. Not sure how displaying the spectrum of the noise provides any more information.

If the Scope tool already calculates the RMS and p-p ( Max - Min ) values then calculating the crest factor is simple. Does the Scope tool have a way for the user to do simple math on any ( or all ) of these pre-calculated measurements and display the results?

Doug

On 1/22/2018 7:24 AM, Robin Getz wrote:

For sure - any sort of instrument can not do a true Gaussian distribution, there is zero probability of getting a voltage beyond the instrument’s Vpp setting. I think this makes sense.

It really is determined by if "Amplitude" is peak (which it looks like in the figures), or RMS. The crest factor (peak voltage divided by RMS voltage) should be approximately 4.6 for signals like this.

I guess this brings up two things for me (which may be future feature requests),

  • is it possible to see the waveform preview in the frequency domain (in a tab or something?) That might make it easier for people to understand what they are getting.
  • do we measure crest factor in the scope measurements?

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/analogdevicesinc/scopy/issues/339#issuecomment-359408893, or mute the thread https://github.com/notifications/unsubscribe-auth/ALIL6vP_ZQ2UbQyuDOLC8RCiyeHkMRtsks5tNH4YgaJpZM4RfucR.