前提・実現したいこと
matlabにてあるデータをFFTしたのち周波数平均, 周波数中央値を求めたいです。
matlabにはそれぞれ求めるmeanfreq, medfreqがあるのですが, それを用いても欲しい値が出ません。
引数に問題があるのか, 使い方に問題があるのかご教授いただきたいです。よろしくお願いします。
ソースコード
function [MeanFreq, MedFreq] = FFT(X, num) %X:FFTしたいデータ(●行1列の行列), num:Xのデータ数 Fs = 1000; % Sampling frequency L = num; % Length of signal Y = fft(X); p2 = abs(Y/L); p1 = p2(1:L/2+1); p1(2:end-1) = 2*p1(2:end-1); f = Fs*(0:(L/2))/L; plot(f,p1); title('振幅スペクトル') xlabel('f(Hz)') ylabel('|p1(t)|') MeanFreq = meanfreq(p1,Fs); % 平均周波数 MedFreq = medfreq(p1,Fs); % 中央周波数 end
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/11/13 18:24
2020/11/13 22:23
2020/11/14 01:52