MATLAB Answers

dBc/Hz phase noise undefined function error?

3 views (last 30 days)
Jay Vaidya
Jay Vaidya on 10 Oct 2020
Commented: Star Strider on 12 Oct 2020
I am trying to use phaseNoiseMeasure ( function to find dBc/Hz from the time domain data. But it gives me an error as an undefined function.
I also have the FFT data in dB with me, which also probably can be used to fine the dBc/Hz.
In general, I want to find the phase noise in dBc/Hz by any means. But I am lost in how should I get there.


Sign in to comment.

Answers (1)

Star Strider
Star Strider on 11 Oct 2020
In a Comment in how to find fwhm using fwhm()? , you requested that I look at this, so I will do what I can.
I do not have that blockset. However looking at the online documentation for the function, it woud appear that it would be possible to use the Savitzky-Golay filter function sgolayfilt the smooth out the noise in the phase signal. You can then use the differences, absolute differences, or squared differences from the observed phase to get some sort of metric from it. The documentation does not describe its calculations, so I have no idea what the output should be. I have no idea what it does or how it works, since this is the first time I learned of its existence.


Show 1 older comment
Star Strider
Star Strider on 11 Oct 2020
Actually, it’s not from the File Exchange, it’s a MathWorks product. I just don’t have it (and for most of what I do, likely don’t need it).
When I run:
D1 = readmatrix('small_data.csv');
plot(D1(:,1), D1(:,2:end))
xlim([0 1E+4])
the plot appears to be a magnitude plot (as it was previously), not a phase plot.
If you only have decibel values, reconstructing the phase is likely not an option, since the dB calculation loses the real and imaginary information necessary to calculate the phase.
If you have the original data, please post at least the first 150 frequencies (since those will include the first peak only), as well as the real and imaginary data for them. You can attach them as a .mat file (or some other compatible format) here, since that will be a small file.
If you want the data in units of index values instead of frequency, use the UI application (automatically in the plot function) with:
to get them. The ‘x’ values will be in terms of indices rather than frequencies.
Star Strider
Star Strider on 12 Oct 2020
I would llike to help, however I do not have tha blockset and I have no idea how it performs its calculations or what the results mean.

Sign in to comment.





Community Treasure Hunt

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

Start Hunting!