새신랑

FFT 알고리즘 테스트

이번에 컴퓨터구조 숙제가 프로그램을 하나 만들던지 아니면 기존의 프로그램 소스를 이용하던지 해서 프로그램을 분석하는 것인데, 이번을 기회로 삼아서 FFT 알고리즘을 수행하는 프로그램을 만들었다.

JPEG data를 읽어들여서 2-D배열에 저장한 후 Fast Fourier Transform 을 한 후 주파수상에서 LPF(low pass filter)를 수행, 그 후 다시 reverse FFT를 수행한다. 이러한 방법을 하게 되면 고주파 대역의 노이즈나 경계선이 무뎌지는 현상이 발생할 것이다.

일주일정도 프로그래밍을 하여 아래와 같은 결과를 얻었다. 세로의 균일한 노이즈 라인을 생성하였고 두번째 사진이 FFT를 수행한 화면이다. 중앙이 가장 저 주파의 신호 세기이고 멀어질 수록 고주파가 되는데 멀어지는 중간에 일정한 주파수 대역이 강하게 솟아있는 것을 볼 수 있다. 이 부분이 패턴이 일정한 노이즈! 이부분을 삭제 한 후 다시 Reverse한 것이 세번째 그림이다.

보시다 시피 잘 나온다 ㅠ.ㅠ 기쁘다.. 이제 숙제 해야겠다. (클릭하면 크게 볼 수 있다. )

lena_noise lena_fft100 lena_ifft

Comments (23)

  1. 커피 wrote::

    저도 그 코드 받아볼 수 있을까요? 패턴 매칭 쪽인데 도움이 될 것 같아서요..

    금요일, 3월 31, 2006 at 23:45 #
  2. 커피 wrote::

    메일 주소가 안 나타나네요. jcaffe@gmail.com 입니다.

    금요일, 3월 31, 2006 at 23:46 #
  3. GE wrote::

    괜찮으시다면 저도 소스를 한번 보고 싶습니다.
    보내주시면 감사히 보겠습니다.
    generate@empal.com

    토요일, 4월 1, 2006 at 00:55 #
  4. BLACKENGINE wrote::

    커피, GE 님 // 메일 주소로 보내드렸습니다. 워낙 급하게 만든터라 엉망진창 소스인점 양해해주세요 ^^

    토요일, 4월 1, 2006 at 11:01 #
  5. 보고픔 wrote::

    결국 적당한 라이브러리를 못 찾아서
    그냥 막 코딩했어..생각보다 빨리 끝나서 허무하더라구…ㅡ.ㅡ;;;

    화요일, 4월 11, 2006 at 11:24 #
  6. BLACKENGINE wrote::

    보고픔 // -_-;; 대단해요 형.. 저는 버터플라이를 이해하는데 꽤 힘들었는데 ㅡㅡ

    화요일, 4월 11, 2006 at 17:19 #
  7. 박정민 wrote::

    코드를 좀 받아볼수 있을까요?

    사운드 wave에 좀 적용을 해볼까 합니다.

    그럼 부탁드립니다~

    화요일, 5월 23, 2006 at 19:34 #
  8. BLACKENGINE wrote::

    박정민 // 혹시 한양대 생이세요? -_- 같은 수업을 듣는것은 아닌지….

    화요일, 5월 23, 2006 at 23:10 #
  9. 봄날너구리 wrote::

    저 저도 소스좀 부탁드려도 될까요?
    전 PIR 센싱에 적용을 시켜보고 싶어서요…
    그부탁 드립니다…

    lsh8408@naver.com

    토요일, 2월 3, 2007 at 17:29 #
  10. 익명 wrote::

    궁금합니다

    목요일, 4월 10, 2008 at 16:10 #
  11. 익명 wrote::

    안녕하세요.
    필터쪽을 보던중에 발견하게 되었습니다.
    저의 업무에 도움이 되고자하는데 missioncha@korea.com으로 소스를 보내주시면 감사하겠습니다.
    그럼.
    좋은 하루되세요

    목요일, 4월 10, 2008 at 16:39 #
  12. BLACKENGINE wrote::

    아무개 // 보내드렸습니다. 메일 확인해 보세요

    금요일, 4월 11, 2008 at 10:16 #
  13. 익명 wrote::

    저도 부탁드릴수 있을까요?
    막 푸리에변환에 대해 배웠는데 jpeg 압축에 사용된다는 소문을 듣고 찾아 헤매다가 이렇게 왔습니다. 메일 주소는
    winroot@hanafos.com 입니다.
    부탁드립니다..

    일요일, 4월 13, 2008 at 00:48 #
  14. BLACKENGINE wrote::

    아무개 // 보내드렸습니다만, JPEG에서는 DCT(Discrete Cosine Transform)을 사용합니다. FFT와는 조금 다릅니다. ^^

    일요일, 4월 13, 2008 at 19:36 #
  15. 김은혜 wrote::

    저는 FFT에 대해 공부중인 학생인데요 주파수 부분을 공부하는데 이것이 영상쪽에도 적용이 되는지 처음 알았습니다. 소스와 설명을 좀 들을 수 있을까요?? 메일은 loveldg20@hanmail.net입니다. 부탁드릴게요.

    월요일, 4월 21, 2008 at 17:21 #
  16. BLACKENGINE wrote::

    김은혜 // 보내드렸습니다. 확인해 보세요.

    월요일, 4월 21, 2008 at 17:25 #
  17. 김영재 wrote::

    안녕하세요. 저는 광운대에 다니는 영상처라 공부하는 학생입니다. 요즘 퓨리에 변환과 dct변환을 공부하고 있습니다.
    pgm파일을 압축하려고 하는데 잘 안되네요. pgm헤더를 읽은 다음 dct와 idct 출력영상을 얻고 싶은데 넘 어렵네요. 님의 소스와 자세한 코딩설명 부탁드립니다. 참고로 저는 씨언어로 공부하고 있습니다. 부탁드려요

    월요일, 6월 9, 2008 at 03:00 #
  18. 김영재 wrote::

    아 제 멜은 wifeses@naver.com

    월요일, 6월 9, 2008 at 03:00 #
  19. BLACKENGINE wrote::

    김영재 // 메일 보냈습니다 한번 확인해보세요. 다시 이야기하자면 dct와 idct 는 제가 코딩해보지 않았습니다. fft라도 원한다면 보내드리겠습니다.

    월요일, 6월 9, 2008 at 11:19 #
  20. 김영재 wrote::

    fft소스라도 부탁드립니다.

    월요일, 6월 9, 2008 at 12:57 #
  21. 이재갑 wrote::

    안녕하세요 ^^ 글 잘보고 가요. 혹 소스 공유해 주실 수 있으시면.. sj01045666389@nate.com 메일로 좀 부탁드리겠습니다.
    DWT할려는데 FFT부터 공부해야 할 것 같아서요.
    꼭 좀 부탁드리겠습니다 ^^

    목요일, 8월 7, 2008 at 22:51 #
  22. BLACKENGINE wrote::

    http://helpbygrace.com/wp/2008/08/20/fft-source/

    이 주소에 소스를 올렸습니다. 필요하신분은 참고하시면 좋겠습니다.

    수요일, 8월 20, 2008 at 00:21 #
  23. 아무 wrote::

    fft를 공부하는 학생입니다. kuege000@naver.com으로 보내주세요

    화요일, 11월 10, 2009 at 14:21 #

Trackbacks/Pingbacks (2)

  1. Black Engine on 수요일, 8월 20, 2008 at 00:10

    FFT Source…

    FFT 소스를 요청하는 분들이 많이 계셔서 소스코드를 공개합니다. 이게 기본틀은 어디서 코드를 분석한 것이라서 거의 똑같다고 보시면 됩니다. 간단한 주석을 달았구요. 도움이 되시길 빕니….

  2. [...] 많이 방문한 페이지는 FFT를 만들었다는 글입니다. ( 링크 ) … 이 글에 댓글들이 참 많이 소스를 달라고 하셨죠. 네 그렇습니다. [...]