DSPRelated.com
Forums

power spectral density

Started by ayodei March 29, 2009
I plotted the power spectrum density of a signal and I am trying to get a
conversion scale that will give the magnitude(amplitude) of the original
signal in time domain. I am entirely new to this.
On 29 Mar, 22:19, "ayodei" <olufem...@yahoo.com> wrote:
> I plotted the power spectrum density of a signal and I am trying to get a > conversion scale that will give the magnitude(amplitude) of the original > signal in time domain. I am entirely new to this.
What makes you think that's possible? Rune
On Mar 30, 9:19&#4294967295;am, "ayodei" <olufem...@yahoo.com> wrote:
> I plotted the power spectrum density of a signal and I am trying to get a > conversion scale that will give the magnitude(amplitude) of the original > signal in time domain. I am entirely new to this.
Calibrate it with a sine wave of known amplitude. You are better with amplitude ie magnitude of an FFT rather than periodogram. Hardy
>On Mar 30, 9:19=A0am, "ayodei" <olufem...@yahoo.com> wrote: >> I plotted the power spectrum density of a signal and I am trying to get
a
>> conversion scale that will give the magnitude(amplitude) of the
original
>> signal in time domain. I am entirely new to this. > >Calibrate it with a sine wave of known amplitude. You are better with >amplitude ie magnitude of an FFT rather than periodogram. > > >Hardy > please can you confirm if this code is ok.
N=1024; Fs=8000; T=0:1/Fs:N; [T, signal1, signal2, signal3] = signalGen2; figure(2); subplot(1,3,1); plot(signal1(1:2000)); subplot(1,3,2); plot(signal2(1:2000)); subplot(1,3,3); plot(signal3(1:2000)); x1=signal1; x2=signal2; x3=signal3; X1=fft(x1,N); X2=fft(x2,N); X3=fft(x3,N); F=Fs*(0:N-1)/N; figure(3); subplot(1,3,1);plot(F,abs(X1)); subplot(1,3,2);plot(F,abs(X2)); subplot(1,3,3);plot(F,abs(X3)); Thanks
On Mar 30, 6:29&#4294967295;am, "ayodei" <olufem...@yahoo.com> wrote:
> >On Mar 30, 9:19=A0am, "ayodei" <olufem...@yahoo.com> wrote: > >> I plotted the power spectrum density of a signal and I am trying to get > a > >> conversion scale that will give the magnitude(amplitude) of the > original > >> signal in time domain. I am entirely new to this. > > >Calibrate it with a sine wave of known amplitude. You are better with > >amplitude ie magnitude of an FFT rather than periodogram. > > >Hardy > > please can you confirm if this code is ok. > > N=1024; > Fs=8000; > T=0:1/Fs:N; > [T, signal1, signal2, signal3] = signalGen2; > figure(2); > subplot(1,3,1); &#4294967295;plot(signal1(1:2000)); > subplot(1,3,2); &#4294967295;plot(signal2(1:2000)); > subplot(1,3,3); &#4294967295;plot(signal3(1:2000)); > x1=signal1; > x2=signal2; > x3=signal3; > X1=fft(x1,N); > X2=fft(x2,N); > X3=fft(x3,N); > F=Fs*(0:N-1)/N; > figure(3); > subplot(1,3,1);plot(F,abs(X1)); > subplot(1,3,2);plot(F,abs(X2)); > subplot(1,3,3);plot(F,abs(X3)); > Thanks
No glaring errors. However, you still can't deduce the magnitude of the time signals. However, you can use Plancheral (or is it Parseval's) theorem to calulate the power in the time signal. See my comp.soft-sys.matlab post on Power Spectrum Scaling Hope this helps. Greg
I sill have a problem as the power spectrum scaling I did only works for
simple sinusoidal signals unlike my signal that has attenuation and
dispersion coefficients built into it. The result of the magnitudes I get
is different for different fft size but this was not the case for a simple
sinusoidal signal. Still need help.  
>On Mar 30, 6:29=A0am, "ayodei" <olufem...@yahoo.com> wrote: >> >On Mar 30, 9:19=3DA0am, "ayodei" <olufem...@yahoo.com> wrote: >> >> I plotted the power spectrum density of a signal and I am trying to
ge=
>t >> a >> >> conversion scale that will give the magnitude(amplitude) of the >> original >> >> signal in time domain. I am entirely new to this. >> >> >Calibrate it with a sine wave of known amplitude. You are better with >> >amplitude ie magnitude of an FFT rather than periodogram. >> >> >Hardy >> > please can you confirm if this code is ok. >> >> N=3D1024; >> Fs=3D8000; >> T=3D0:1/Fs:N; >> [T, signal1, signal2, signal3] =3D signalGen2; >> figure(2); >> subplot(1,3,1); =A0plot(signal1(1:2000)); >> subplot(1,3,2); =A0plot(signal2(1:2000)); >> subplot(1,3,3); =A0plot(signal3(1:2000)); >> x1=3Dsignal1; >> x2=3Dsignal2; >> x3=3Dsignal3; >> X1=3Dfft(x1,N); >> X2=3Dfft(x2,N); >> X3=3Dfft(x3,N); >> F=3DFs*(0:N-1)/N; >> figure(3); >> subplot(1,3,1);plot(F,abs(X1)); >> subplot(1,3,2);plot(F,abs(X2)); >> subplot(1,3,3);plot(F,abs(X3)); >> Thanks > >No glaring errors. However, you still can't deduce >the magnitude of the time signals. > >However, you can use Plancheral (or is it >Parseval's) theorem to calulate the power >in the time signal. > >See my comp.soft-sys.matlab post on >Power Spectrum Scaling > >Hope this helps. > >Greg >
On Apr 1, 7:58 am, "ayodei" <olufem...@yahoo.com> wrote:
> I sill have a problem as the power spectrum scaling I did only works for > simple sinusoidal signals unlike my signal that has attenuation and > dispersion coefficients built into it. The result of the magnitudes I get > is different for different fft size but this was not the case for a simple > sinusoidal signal. Still need help. >
Traditional scalings for power spectrum and power spectral density are defined for stationary signals. Your signal is non-stationary. An N sample section of your signal is statistically different from a 2N sample section of your signal. Take a look at algorithms for damped sinusoidal estimation. A simple Google on: damped sinusoidal estimation gives: http://www.ele.uri.edu/~gopi/report.pdf and many other examples. Don't expect a convenient answer to be on the first page of results. Be patient and thougough, the are 261,000 results. Good luck Dale B. Dalrymple
On Mar 29, 4:19&#4294967295;pm, "ayodei" <olufem...@yahoo.com> wrote:
> I plotted the power spectrum density of a signal and I am trying to get a > conversion scale that will give the magnitude(amplitude) of the original > signal in time domain. I am entirely new to this.
In general, the height of the spectrum at any freqency has contributions from the each value of the time signal. For example, the height at f = 0 is just the average value. In general, it is not possible to estimate time peaks by looking at the spectrum. The formula for the ifft just differs by a phase reflection e(+jwt) vs e(-jwt). Can you tell the height of a spectrum peak by looking at a plot of the time-signal? I can only do it for sinusoids. Hope this helps. Greg
Dear Greg,
I will appreciate if you can give me ideas on how I can achieve this.
Thanks.
>On Mar 29, 4:19=A0pm, "ayodei" <olufem...@yahoo.com> wrote: >> I plotted the power spectrum density of a signal and I am trying to get
a
>> conversion scale that will give the magnitude(amplitude) of the
original
>> signal in time domain. I am entirely new to this. > >In general, the height of the spectrum at any freqency >has contributions from the each value of the time signal. >For example, the height at f =3D 0 is just the average >value. In general, it is not possible to estimate time peaks by >looking at the spectrum. > >The formula for the ifft just differs by a phase reflection >e(+jwt) vs e(-jwt). Can you tell the height of a spectrum peak by >looking at a plot of the time-signal? > >I can only do it for sinusoids. > >Hope this helps. > >Greg > >
On 2 Apr, 19:26, "ayodei" <olufem...@yahoo.com> wrote:

> I will appreciate if you can give me ideas on how I can achieve this. > Thanks.
> >I can only do it for sinusoids.
First of all, don't top-post. Second, Greg are hinting, in a very polite (too polite?) way, that what you want can not be done, except for the special case of sinusoidals. Rune