From: all4dsp on
Hi Everyone,

I've not been able to find this online, but I think it's a fundamental
question perhaps some of you have had to deal with in the past. If I have
an analog signal input (mostly white noise, but I suppose that's irrelevant
to this question) that I capture using a real-time sampling oscilloscope,
how do I process the data (received in Volts by the oscilloscope) to get
data in units of dBV/sqrt(Hz), where I use dBV here to mean "referenced to
1V rms" (e.g. 0dBV = 1Vrms)?

Thanks in advance for any replies
From: dbd on
On Feb 13, 6:56 pm, "all4dsp" <all4...(a)comcast.net> wrote:
> Hi Everyone,
>
> I've not been able to find this online, but I think it's a fundamental
> question perhaps some of you have had to deal with in the past. If I have
> an analog signal input (mostly white noise, but I suppose that's irrelevant
> to this question) that I capture using a real-time sampling oscilloscope,
> how do I process the data (received in Volts by the oscilloscope) to get
> data in units of dBV/sqrt(Hz), where I use dBV here to mean "referenced to
> 1V rms" (e.g. 0dBV = 1Vrms)?
>
> Thanks in advance for any replies

Take a look at:

Bo0438.pdf
Choose your Units! (PWR, PSD, ESD)
www.bksv.com/doc/bo0438.pdf

and

Bv0031.pdf
Technical review No. 3 - 1987
=> p29 Signals and Units
www.bksv.com/doc/Bv0031.pdf

Does you instrument have a user's manual?

Dale B. Dalrymple
From: all4dsp on
Thanks Dale,

I should have mentioned, I need to do all of this post-processing in
Matlab, so even if the instrument shows me the plot in dBV/sqrt(Hz), I need
to understand how to do this manually given the raw time-sampled data list.
Not necessarily looking for a Matlab script, but more looking for the
process to go from time-sampled data to a dBV/sqrt(Hz). Something like:

(1) Take the FFT of the data
(2) Get the Magnitude of the FFT
(3) Square the Magnitude; units are now V^2
(4) Divide each Squared Magnitude data point by 2*ENBW (Effective Noise
Bandwidth); where ENBW = frequency resolution * ENBW multiplier for
selected weighting function... (is this right????); units are now V^2/Hz

(5) Take sqrt of data obtained from (4); units are now V/sqrt(Hz) ????
(6) Take 20*LOG_base10(data obtained in step 5); units are now dBV/sqrt(Hz)
????

Can someone correct me or fill in the details? (e.g. why divide by "2" in
step 4?)

Thanks in advance!
From: Fred Marshall on
all4dsp wrote:
> Thanks Dale,
>
> I should have mentioned, I need to do all of this post-processing in
> Matlab, so even if the instrument shows me the plot in dBV/sqrt(Hz), I need
> to understand how to do this manually given the raw time-sampled data list.
> Not necessarily looking for a Matlab script, but more looking for the
> process to go from time-sampled data to a dBV/sqrt(Hz). Something like:
>
> (1) Take the FFT of the data
> (2) Get the Magnitude of the FFT
> (3) Square the Magnitude; units are now V^2
> (4) Divide each Squared Magnitude data point by 2*ENBW (Effective Noise
> Bandwidth); where ENBW = frequency resolution * ENBW multiplier for
> selected weighting function... (is this right????); units are now V^2/Hz
>
> (5) Take sqrt of data obtained from (4); units are now V/sqrt(Hz) ????
> (6) Take 20*LOG_base10(data obtained in step 5); units are now dBV/sqrt(Hz)
> ????
>
> Can someone correct me or fill in the details? (e.g. why divide by "2" in
> step 4?)
>
> Thanks in advance!

> (1) Take the FFT of the data

OK - no window?
Here's a reference:
http://alpha.science.unitn.it/~bassi/Signal/NInotes/an041.pdf

> (2) Get the Magnitude of the FFT

OK.

> (3) Square the Magnitude; units are now V^2

OK - so now the magnitude of volts measure is converted into a power
measure and, as below, you understand there's a conversion factor of
sample units to volts somewhere. If this is going to end up dbV then
you have to know what number represents a "V". :-)

> (4) Divide each Squared Magnitude data point by 2*ENBW (Effective Noise
> Bandwidth); where ENBW = frequency resolution * ENBW multiplier for
> selected weighting function... (is this right????); units are now
V^2/Hz

*What* "weighting function"?
Presumably the factor of 2 takes into account the negative frequency
components, eh? (i.e. the samples for f>fs/2) If so, I'd multiply
rather than divide by 2 and this would be off by a factor of 4? So, I
guess I don't understand this factor of 2 you're using.
>
> (5) Take sqrt of data obtained from (4); units are now V/sqrt(Hz) ????

That sounds reasonable.

> (6) Take 20*LOG_base10(data obtained in step 5); units are now
dBV/sqrt(Hz)

As long as the reference to 1v is maintained then that sounds OK.
Maybe that's the "weighting function"?

I'm happy to comment but I've not done this quite this way before...

Fred
From: Tim Wescott on
On Sun, 14 Feb 2010 11:12:51 -0600, all4dsp wrote:

> Thanks Dale,
>
> I should have mentioned, I need to do all of this post-processing in
> Matlab, so even if the instrument shows me the plot in dBV/sqrt(Hz), I
> need to understand how to do this manually given the raw time-sampled
> data list. Not necessarily looking for a Matlab script, but more looking
> for the process to go from time-sampled data to a dBV/sqrt(Hz).
> Something like:
>
> (1) Take the FFT of the data
> (2) Get the Magnitude of the FFT
> (3) Square the Magnitude; units are now V^2 (4) Divide each Squared
> Magnitude data point by 2*ENBW (Effective Noise Bandwidth); where ENBW =
> frequency resolution * ENBW multiplier for selected weighting
> function... (is this right????); units are now V^2/Hz
>
> (5) Take sqrt of data obtained from (4); units are now V/sqrt(Hz) ????
> (6) Take 20*LOG_base10(data obtained in step 5); units are now
> dBV/sqrt(Hz) ????
>
> Can someone correct me or fill in the details? (e.g. why divide by "2"
> in step 4?)
>
> Thanks in advance!

This is a USENET newsgroup, it'd be nice if you'd quote prior messages.

Time to ask what you're doing.

If you know the noise bandwidth of the signal you're measuring, then you
can just calculate the RMS signal strength on the scope and divide it by
the square root of the noise bandwidth.

If you _don't_ know the noise bandwidth of the signal, then you'll have
to do the FFT thing, essentially to _find_ that noise bandwidth.

If you _really_ don't know the noise bandwidth, to the point where the
signal may have significant energy above the Nyquist frequency of the
sampling rate of the scope, then you need to change your measuring
instrument so that you're getting enough information.

--
www.wescottdesign.com