본문 바로가기

FFT7

MATLAB Convolution index 계산 신호 처리에서 convolution은 필터링의 기본이 되는 만큼 매우 자주 사용하게 되는데요~ 아래 글에서는 MATLAB conv() 함수를 사용하는 게 아닌 for 문을 사용해서 Convolution 을 수행하는 방법에 대해 소개한 적이 있고~ http://iamaman.tistory.com/317 아래 글에서는 FFT 를 활용하여 convolution 을 하는 방법에 대해 소개한 적이 있습니다. http://iamaman.tistory.com/131 오늘은 convolution 수행 시 인덱스를 계산하는 방법에 대해 소개하려 합니다. 보통 conv() 함수는 convolution을 수행한 결과만 나오게 됩니다. 그런데 신호 및 시스템이나 DSP 등의 과목에서 convolution을 배울 때는 인덱스도.. 2015. 10. 16.
GNU Octave doc 명령어 안 될 때 MATLAB 과 마찬가지로 Octave 도 함수들의 사용방법을 확인 할 때는 Help 또는 Doc 명령어를 사용 합니다. Doc 는 Document 명령어의 약자로 Help 보다 좀더 자세한 내용들을 담고 있어서 정확한 이해가 필요할 때 주로 사용하는데요~ 아래 그림과 같이 Octave 에서 doc 명령이 제대로 동작을 안 할 때가 있습니다. Octave에서 Document 가 제대로 보이게 하기 위해서는 터미널에서 아래 명령어를 통해 Octave Document를 설치해 줘야 합니다. sudo apt-get install octave-info 이제 Octave 터미널에서 doc fft 하면 다음과 같이 정상적으로 동작하는 것을 확인 할 수 있습니다. 2013. 9. 14.
CodeBlock 에서 FFTW 라이브러리를 사용한 FFT 실습 FFT (Fast Fourier transform)는 이산 푸리에 변환(Discrete Fourier transform, DFT) 를 빠르게 하기 위한 알고리즘으로 요즘 세상에 알게 모르게 굉장히 많이 사용되고 있습니다. 그 응용이라고 하면 너무나 광범위 하죠~ 우리가 거의 매일 사용하는 MP3 음악 파일은 DCT(discrete cosine transform) 를 이용한 손실 압축 방식인데 여기도 FFT 가 응용되고~ 요즘 한창 많이들 사용하고 있는 통신 방식인 LTE(Long Term Evolution)나 Wibro 등은 Orthogonal frequency-division multiplexing (OFDM)이라는 기술을 근간으로 하는데~ 이 OFDM 이라는 기술도 FFT 를 통해 구현 됩니다. WI.. 2012. 8. 26.
MATLAB FFT 처리 속도 오늘은 MATLAB FFT () 함수의 처리 속도에 대해 알아보려 합니다. 오늘 포스팅은 아래 책을 참조 한 부분이 있음을 밝힙니다. 책 : MATLAB 을 이용한 디지털 신호처리 MATLAB 의 FFT() 는 아시는 바와 같이 Fast Fourier Transform 을 수행하는 함수입니다. FFT 알고리즘은 그 크기가 2의 거듭제곱 일 때로 한정해서 이용하게 되는데 MATLAB 의 FFT ()함수를 사용해 보면 FFT size 에 관계없이 사용 할 수 있습니다. 이는 FFT() 함수 내부적으로 2의 거듭제곱인 경우에는 FFT 알고리즘을 이용하고, 그렇지 않을 때는 소인수들로 나누어져서 혼합 진수 FFT 알고리즘을 이용하게 된다고 합니다. 그리고 FFT size 가 소수라면 어쩔 수 없이 내부적으로 D.. 2012. 3. 19.
MATLAB FAST convolution using FFT 이번 포스팅에서는 FFT 를 이용한 고속 convolution 에 대해 알아본다. 일반적으로 conv(x, y) 은 filter() 함수로 구현되는 선형 convolution 이다. 선형 convolution 은 x 또는 y 의 길이가 증가할수록 그 복잡도는 급격히 증가하는 특징이 있다. 이러한 선형 convolution 은 순환(Circular) convolution 을 이용하여 구현이 가능하며, 순환 convolution 은 FFT(Fast Fourier Transform) 와 IFFT(Inverse Fast Fourier Transform)를 이용하여 구현이 가능하다. 일단 선형 convolution 을 순환 convolution 으로 변환하는 과정에 대해 살펴 보자. x=[1 2 3 4] y=[1.. 2011. 3. 23.
MATLAB 과 유사한 공학용 프로그램 SCILAB 오늘은 괜찮은 공학용 프로그램 하나 소개해 드리겠습니다. 바로 제목에 있는 SCILAB 이라는 프로그램인데요…… 이 프로그램이 뭐냐 하면 MATLAB 하고 굉장히 유사한 공학용 프로그램 입니다. MATLAB 은 뭐 툴 박스 하나만 해도 몇 백만원씩 하는 고가의 프로그램이라 학교나 회사 등에서 사주지 않는 이상은 개인들이 사기에는 부담스러운 프로그램입니다. 반면에 SCILAB은 완전 공짜의 프로그램 입니다. 공짜라고 해서 허접하거나 하지도 않군요. 익숙해 지기만 하면 MATLAB 대용으로도 써도 괜찮겠다는 생각이 듭니다. 프로그램은 http://www.scilab.org/ 에서 다운 받을 수 있습니다. 현재 5.3.1 버전까지 나와 있군요. 운영 체제는 Linux, Windows, MAC os X 지원하구.. 2011. 3. 11.
MATLAB Zero padding 에 따른 FFT 결과 FFT 가 되는 신호에 대한 zero padding 효과가 어떻게 되는지를 알아보자 다음과 같은 sin() 그래프가 있고 이에 대한 FFT 를 수행해보자pha = linspace(0,2*pi,32)';x=sin(pha);y=fft(x);figure(1), plot(pha,x,'b:.'), grid on 아래 코드와 같이 x 값의 뒤에 0 을 넣어 보자. 이를 zero padding 이라 한다. x 값의 크기 만큼, 이 예에서는 32 만큼의 0을 뒤에 넣어 보자. 그리고 이에 대해 fft 를 해보자 xZero = [x ; zeros(32,1)]; yy=fft(xZero); x 에 대한 fft 결과인 y 값과 zero padding 된 신호에 대한 fft 결과인 yy 를 같이 그리기 위하여 다음과 같이 x .. 2010. 1. 3.