前提・実現したいこと
MATLABにてあるデータをFFTしたあとプロットした。
しかしながら, 60Hz, 180Hz, 300Hzにノイズが出た。
実データを計算すると60Hzに一番反応が出ているわけではなかった。
こういうとき, 60Hz,180Hzなどのノイズを削除したグラフを描くにはどうすればよろしいでしょうか。詳しい方ご教授よろしくお願いします。
該当のソースコード
function [MeanFreq, MedFreq] = FFT(X, num)
Fs = 1000; % Sampling frequency
T = 1/Fs; % Sampling period
Y = fft(X,num);
p2 = abs(Y/num);
p1 = p2(1:num/2+1);
p1(2:end-1) = 2*p1(2:end-1);
f = Fs*(0:(num/2))/num;
plot(f,p1);
title('振幅スペクトル')
xlabel('f(Hz)')
ylabel('|p1(t)|')
MeanFreq = meanfreq(X,Fs); % 平均周波数
MedFreq = medfreq(X,Fs); % 中央周波数
dim = [0.7 0.3 1.0 0.5];
str = {'meanfreq:', MeanFreq,'medfreq:',MedFreq};
annotation('textbox',dim,'String',str,'FitBoxToText','on');
end
実行コマンド
>> M=readmatrix('data_1.csv'); >> num=M(1,3); >> X=M(:,2); >> figure(); FFT(X, num);
補足情報(FW/ツールのバージョンなど)
MATLAB_R2020b
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。