추천 게시물
FFT와 PSD의 차이
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
목차
FFT는 전압과 주파수를 예로 들면, 단위가 Y축이 V, X축이 Hz이다. 반면 PSD는 V^2/Hz로 Y축이 다르다. 만약 V로 바꾸기 위해 root를 취해 rms(root mean squre)로 변경하면 Y축이 Hz^0.5가 된다.
둘의 차이는 FFT는 각 주파수의 신호의 크기를 의미하고 PSD는 1Hz로 환산했을 때 확률 분포를 뜻한다. 엄밀히 말하면
따라서 엄밀히 PSD를 얻기 위해서는 여러번의 FFT를 한 뒤 각 주파수 성분을 사용해 PSD를 구해야 한다. 그러나 반복 측정 시 신호의 크기가 큰 파이가 없가능 가정하에 1개의 FFT만 사용하는 경우도 있다.
아래는 내가 공부하며 정리한 내용이다. 1개의 FFT를 사용한다면 8로 나누지 않고 1로 나누면 될것이다.
아래는 왜 FFT의 신호를 제곱해서 더하면 psd를 적분한 것과 같은지 정리한 그림이다.
아래 FFT 예제를 통해 더 자세히 분석해 볼 수 있다. Sine과 노이즈의 강도를 변경해 가며 파형을 확인해 보자. 주파수 해상도 (fbin=1)일 때 둘은 PSD와 PS는 유사하지만 fbin=1이 아닐때 서로 달라진다.
% 샘플 데이터 생성
N = 2048; % FFT 길이
f_s = 4000; % 샘플링 주파수 (Hz)
fbin = f_s/N;
t = (0:N-1) / f_s;
signal = 100*sin(2 * pi * 500 * t) + 0.5 * randn(size(t)); % 50 Hz 사인파 + 노이즈
% FFT 계산
X = fft(signal);
% 주파수 벡터 계산
f = (0:N-1)*(f_s/N);
% 파워 스펙트럼 계산
FFT_result = abs(X)./N.*2;
P = (FFT_result).^2;
% 파워 스펙트럴 밀도 계산
PSD = P ./ fbin;
% 그래프 그리기
figure;
plot(f(1:N/2), P(1:N/2), 'b', 'LineWidth', 1.5); % 파워 스펙트럼 파란색으로 플롯
hold on;
plot(f(1:N/2), PSD(1:N/2), 'r', 'LineWidth', 1.5); % 파워 스펙트럴 밀도 빨간색으로 플롯
hold off;
% 그래프 레이블과 제목 설정
title('Power Spectrum vs. Power Spectral Density');
xlabel('Frequency (Hz)');
ylabel('Power');
legend('Power Spectrum', 'Power Spectral Density');
grid on;
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
댓글
댓글 쓰기