fft関数に使用される窓関数について

조회 수: 253 (최근 30일)
Jo Sasaki
Jo Sasaki 2019년 5월 23일
편집: Kazuya 2019년 5월 23일
fft関数に使用されている窓関数は四角形窓がデフォルトなのでしょうか?
またマトラボではfftにハミング窓を使用されることはできるのでしょうか?

채택된 답변

Toshinobu Shintai
Toshinobu Shintai 2019년 5월 23일
Signal Processing Toolboxが必要になりますが、
「hamming」というコマンドで窓関数をかけることができます。
サンプルを作成し添付しましたのでご確認ください。
  댓글 수: 1
Kazuya
Kazuya 2019년 5월 23일
편집: Kazuya 2019년 5월 23일
横からすいません。サンプル大変参考になりました。ありがとうございます。fft_window.m あとで参考にしやすいよう以下にコピペさせて頂きます。
clear;
Fs = 1000; % Sampling frequency
T = 1/Fs; % Sampling period
L = 1500; % Length of signal
t = (0:L-1)*T; % Time vector
S = 0.7*sin(2*pi*50*t) + sin(2*pi*120*t);
X = S + 2*randn(size(t));
W = (hamming(L))';
X_h = X .* W;
plot(t,X,t,X_h);
figure;
plot(1000*t(1:50),X(1:50));
title('Signal Corrupted with Zero-Mean Random Noise');
xlabel('t (milliseconds)');
ylabel('X(t)');
Y = fft(X);
P2 = abs(Y/L);
P1 = P2(1:L/2+1);
P1(2:end-1) = 2*P1(2:end-1);
Y_h = fft(X_h);
P2_h = abs(Y_h/L);
P1_h = P2_h(1:L/2+1);
P1_h(2:end-1) = 2*P1_h(2:end-1);
f = Fs*(0:(L/2))/L;
figure;
plot(f,P1,f,P1_h) ;
title('Single-Sided Amplitude Spectrum of X(t)');
xlabel('f (Hz)');
ylabel('|P1(f)|');

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Yoshio
Yoshio 2019년 5월 23일
matlab本体のfftは定義のままの変換となりますので、方形窓です。
各種窓については、信号処理ToolBoxに専用の関数があります。以下をご参照ください。

카테고리

Help CenterFile Exchange에서 スペクトル測定에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!