cpsd, amplitude normalization and frecuency of samplig

6 次查看(过去 30 天)
I would extract from cpsd the amplitude of a signal, i.e. the variance of a noise or in other cases the amplitude of sinusoidal wave.
I'm using as a sample a white noise. I would obtain from the mean performed over cpsd power spectrum sigma=1 (the original value of the signal).
Which is the right normalization of the output?
cpsd(S(:),S(:),w'*l_tot/sum(w),1,2*floor(l_tot/2)+1)'
possible options:
mean( sqrt(S(:)) );
sqrt( mean(S(:)) );
sqrt( mean(S(:))/length(S(:)) );
I am a bit confused. Moreover I notice that introducing the frecuency samplig fs in the arguments of the function, output changes, and I cannot find the proportional constant among
cpsd(S(:),S(:),w'*l_tot/sum(w),1,2*floor(l_tot/2)+1)
cpsd(S(:),S(:),w'*l_tot/sum(w),1,2*floor(l_tot/2)+1,1/64)
which in principle has to be proportional to 1/64, but I cannot find this relationship.
Thanks in advance!

采纳的回答

Sugandhi
Sugandhi 2024-9-13
编辑:Sugandhi 2024-9-13
Hello Sebastiano,
To extract the amplitude or variance from the CPSD of a white noise signal, you should use the normalization:
sqrt(mean(S(:))/length(S(:)))
This helps you get the average power per sample, which is what you need to reflect the original variance of the signal.
This approach helps you relate the CPSD output to the original variance of the signal.
Regarding the sampling frequency (`fs`):
  • The CPSD output changes with `fs` because it affects the frequency resolution and scaling. If you use `fs = 1/64`, the output should scale proportionally to this factor. The output should scale inversely with the sampling frequency.
CPSD output scales with the sampling frequency. If you change `fs`, expect the CPSD values to adjust accordingly.

更多回答(0 个)

产品


版本

R2024a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by