아래 말씀하신 것은 시-주파수 분석법인거 같습니다.
FFT의 단점은 신호가 시간에 대해서 일정할때에 사용하는 것이죠. 따라서 시간에 따라서 바뀌는 신호에 대해서는 맞지 않답니다. (혹시나 자료 찾으실때 참고 하시라구요. )
방법은 시간영역에서 윈도우를 취해서 그 신호의 FFT를 하고 그 시간에 대한 결과를 표시해주고, 다시 또 윈도우를 하고,,,,, 이렇게해서 시간-주파수좌표축에 잘 표시를 해주면 됩니다.
간단하게 설명드렸구요..
http://image.chungbuk.ac.kr/lecture/sound/001snd-m/ppt/김은중-Spectrogram/
를 보시면 Cool Editor를 사용한 것과 비슷하게 구현한 프로그램이 나옵니다.
참조해보세요.
휘리릭~
아더 님이 쓰신 글 :
: 안녕하세요. 이제 막 C++ Builder 에 빠져들기 시작한 아더입니다.
:
: 요즘 취미로 GoldWAve 나 Cool Editor 같은 프로그램을 작성하고 있는데,
: 워낙 배경지식이 없다보니, 여간 힘든게 아닙니다. 그래서 고수님들에게 한수 지도 말씀을
: 부탁 드리게 되었습니다.
:
: Cool Editor에 보면 View 항목에 Spectral View (Matlab의 Spectrogram)라는 것이 있는데,
: 어떤 파형의 시간축상 진폭을 표시 하는 것이 아니라, 어떤 시점에서의 주파수 성분의 크기를
: 표시 하는 것입니다. --> 가로축:시간, 세로축:주파수, 주파수크기:색깔의 농도
: Spectral View가 일반 파형전시나, 주파수 스펙트럼과 다른점은 종속변수가 시간, 또는 주파수
: 어느 하나가 아니라 시간, 주파수 모두가 종속변수가 된다는 것입니다.
:
: 인터넷도 뒤져보고, 책도 찾아봤지만 알고리즘을 시원하게 설명해논 곳도 없고,
: 소스는 아예 전멸이더군요. (FFT 알고리즘과 소스만 무자게 많더라고요...)
:
: 그래서 부탁인데, 소스나 알고리즘(저 같은 무지인도 약간은 감을 잡을 수 있도록 조금은 상세한)
: , 또는 관련 사이트를 알고 계신분은 도움 좀 부탁드리겠습니다.
:
: 그럼 오늘도 내일도 즐거운 하루 되시길 바랍니다.
: