首页 > 解决方案 > Matlab Meanfreq 函数与 Freqrange

问题描述

在此处输入图像描述

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

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

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

TIA

我使用的不带 Freqrange 的代码是:

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

然后用我的Freqrange

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)

标签: matlabsignal-processing

解决方案


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


推荐阅读