- 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, amplitude normalization and frecuency of samplig
7 views (last 30 days)
Show older comments
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!
0 Comments
Accepted Answer
Sugandhi
on 13 Sep 2024
Edited: Sugandhi
on 13 Sep 2024
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`):
CPSD output scales with the sampling frequency. If you change `fs`, expect the CPSD values to adjust accordingly.
0 Comments
More Answers (0)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!