带有 Freqrange 的 Matlab Meanfreq 函数

Matlab Meanfreq function with Freqrange

使用 matlab 中的内置函数 Meanfreq 来计算我的信号的平均频率,这是用具有上下可靠范围(70kHz 到 500kHz)的传感器记录的。

根据帮助 (https://uk.mathworks.com/help/signal/ref/meanfreq.html#d117e104641) 我应该能够指定这个可靠的范围,但是当我这样做时,值 MeanFreq returns 超出了这个范围 (0.176 kHz),这显然是不正确。

有人知道任何提示或技巧吗?

TIA

我使用的代码 w/o 频率范围是:

Fs = 1e6;
figure()
meanfreq(signal, Fs)

然后用我的频率范围

freqrange = [70,500];
Fs = 1e6;
figure()
meanfreq(signal, Fs, freqrange)

如果我尝试

freqrange = [7e4, 5e5];

我收到错误:

> Error using psdparserange>parseTime (line 103) The frequency range
> must be within the range of F for the specified input.

编辑 - 尝试

Fs = 1e6;
figure()
meanfreq(signal, Fs)

figure()
meanfreq(signal,freqrange)

产生大量错误。

Error using meanfreq
Expected input number 1, Pxx, to be nonnegative.

Error in psdparserange>parsePSD (line 121)
validateattributes(Pxx,{'numeric'},{'2d','nonnegative'}, funcName,'Pxx',1);

Error in psdparserange (line 40)
  [Pxx, F, Frange, rbw] = parsePSD(funcName, varargin{1:min(n,3)});

Error in meanfreq (line 63)
[Pxx, F, Frange, rbw, extraArgs, status] = psdparserange('meanfreq', kaiserBeta, varargin{:});

Error in Main_analysis_Fullsignal (line 30)
meanfreq(signal,freqrange)

我认为这是一个兼容性问题 - 一旦我开始使用 2019b 版本的 matlab 而不是 2017a,我就没有问题了。