가이의 다락방

MatLab을 이용한 FFT 본문

Study

MatLab을 이용한 FFT

gaiserne 2010. 8. 24. 13:02

MatLab을 이용한 FFT


※ 이 문서는 MatLab의 도움말 문서를 참고 하였다. 단순한 사용설명이므로 자세한 내용을 원한다면 MatLab의 도움말에서 ‘FFT’를 키워드로 검색하여 Function부분을 보면 된다.


표 1. 사인파형 만들기.

Amp = 2;

tempValue = zeros(1, 1000);

 

for j = 1 : 1000;

    tempValue(j) = Amp * sin(2 * pi * 10 * j/100) + 4 * sin(2 * pi * 7 * j/100);

end


표 1.의 소스에서 for ~ end 로 기록된 부분이 파형을 만드는 부분이다. tempValue이 변수가 FFT를 하여 분석해야할 소스가 된다. 파형은 Sin 파형으로 10Hz주파수대의 진폭이 2, 7Hz가 4의 진폭을 가지고 각각 초당 100샘플링을 가지고 생성된다.


표 2. FFT 수행.

Fs = 100; % 100hz 샘플링

Length = 1000; % 파일 길이

NFFT = 2^nextpow2(Length);

fftValue = fft(tempValue, NFFT) / Length;

f = Fs/2* linspace(0, 1, NFFT/2+1);


FFT를 위하여 표 2.와 같이 샘플링과 연산할 길이를 정하고 FFT함수를 이용해 FFT를 수행한다.

Plot에 표현하기 위해서는 표 3.과 같이 영역을 지정한다.


표 3. plot에 FFT결과 표현하기.

subplot(3,1,2);

plot(f,2* abs(fftValue(1:NFFT/2+1)));

grid on;


그림 1. FFT 결과.


그림 1.에서 보듯이 실제 진폭과는 다르지만 주파수 분석은 훌륭하게 되었음을 알 수 있다.





□이 문서는 미완성이므로 내용이 바뀔 수 있습니다.