MATLAB: Setting PeriodLimits with wcoherence

periodlimitswaveletswcoherence

Hello,
I am using MATLAB 2019a, and I have a problem with the wcoherence function. I want to restrict my model to certain periods, so I have the following:
wcoherence(x,y,seconds(8),'PeriodLimits',[seconds(30) seconds(100)])
Where x and y are my vectors, 8 is the sampling period, and I want to just look at periods between 30 and 100. I get an error:
"Error using wcoherence
Expected PhaseDisplayThreshold to be one of these types:
numeric
Instead its type was duration.
Error in wcoherence>parseinputs (line 275)
validateattributes(params.mincoherence,{'numeric'},{'scalar','>=',0,…
Error in wcoherence (line 96)
params = parseinputs(numel(x),varargin{:});"
But when I include the 'PhaseDisplayThreshold' argument with a arbirary value of 0.1, the function ignores the 'PeriodLimits' argument and reverts to displaying Frequency on the y axis. I don't want to simply trim the axis to the periods I want to display, because I don't want the periods outside of my region of interest to saturate the powers of the other periods. (Also, I should mention I've thoroughly read the help topics and have been playing around with this for some time now!)
Any help is greatly appreciated!

Best Answer

Hi
I am assuming that you are working with MATLAB 2019a general release.
The reason behind the above error is :The name value pair "Period Limits" which you are using in your code is not supported in 2019a.
Refer to the below documentation on "wcoherence" to get more details on the list of name value pairs supported for 2019a:
And If you want to use "Period Limits" update your MATLAB.
Hope this helps!