Функция Matlab Meanfreq с Freqrange - PullRequest
0 голосов
/ 02 октября 2019

enter image description here

Использование встроенной функции в matlab Meanfreq для расчета средней частоты моего сигнала, который записывается датчиками, имеющими верхний и нижний надежный диапазон (70 кГц)до 500 кГц).

Согласно справке (https://uk.mathworks.com/help/signal/ref/meanfreq.html#d117e104641) я должен быть в состоянии указать этот надежный диапазон, но когда я делаю это, значение MeanFreq возвращает вне этого диапазона (0,176 кГц), чтоявно не правильно.

Кто-нибудь знает какие-либо советы или хитрости?

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)
...