MATLAB Answers

푸리에 변환 및 푸리에 역변환

15 views (last 30 days)
haeyeon JI
haeyeon JI on 21 Mar 2020
Answered: Shubh Sahu on 27 Mar 2020
지진파의 시간이력을 통해 푸리에 변환에 성공하였습니다.
코드는 다음과 같이 입력하였습니다.
Time = [0, 0.01, 0.02, 0.03, .... 99.99] % 0초 에서 99.99 까지의 시간. 간략하게 ....로 표현하였고 실제로는 값을 입력하였습니다.
Acceleration = [0.000024, 0.000325, .... 0.00068] %위의 시간time 에 해당하는 지진파 가속도
n = length(Acceleration);
Ts = Time(2)-Time(1);
Fs = 1/Ts;
NFFT = 2^nextpow2(n);
Y = fft(Acceleration,NFFT)/n;
f = Fs/2*linspace(0,1,NFFT/2+1);
Iv = 1:length(f);
figure;
semilogx(f,abs(Y(Iv)));
xlabel('Frequency (Hz)');
ylabel('Amplitude (m)');
title('Fourier spectrum')
여기서 푸리에 변환을 하여 얻은 푸리에 amplitude에 어떠한 값(필터)을 곱해줍니다. (고주파 진폭을 감소시키기 위한 필터:exp(-pi*0.011.*f))
test1=abs(Y(Iv)).*exp(-pi*0.011.*f);
그래프를 그려보니 푸리에 스펙트럼에서 고주파 진폭이 감소했음을 알 수 있었습니다.
문제는 다음과 같습니다.
필터를 곱해준 후 time 도메인으로 역변환을 시도하려고 하였으나 도출되지 않았습니다.
test1re=ifft(test1)
제 질문의 요약은 다음과 같습니다.
필터를 곱해준 후 다시 time domain(지진파 형상이 나오도록) 으로 역변환을 하고 싶습니다.
어떤 점에서 문제가 발생한걸까요?

Community Treasure Hunt

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

Start Hunting!