• LF몰 이벤트
  • 파일시티 이벤트
  • 서울좀비 이벤트
  • 탑툰 이벤트
  • 닥터피엘 이벤트
  • 아이템베이 이벤트
  • 아이템매니아 이벤트

Matlab을 이용한 lowpass filter를 C로 구현하여 Wave file filtering & downsampling(디지털 신호 처리)

*성*
개인인증판매자스토어
최초 등록일
2008.12.27
최종 저작일
2008.12
13페이지/파일확장자 압축파일
가격 3,000원 할인쿠폰받기
다운로드
장바구니

소개글

matlab의 filter design tool을 이용하여 8kHz lowpass filter의 coefficient를 얻고, 이를 C로 넘겨 C언어를 활용하여 wave file을 8kHz filtering을 한 것입니다. 그리고 더불이 1/3 downsampling 한 코드입니다. c언어 코드 포함, 보고서도 있습니다.

목차

Project - 18kHz Filtering
1. 목 적
2. 구현방법
3. 소스코드
4. 프로그램 결과
5. 음감의 차이

Project - 2 Down Sampling
1. 목 적
2. 구현방법
3. 소스코드
4. 프로그램 결과
5. 음감의 차이

본문내용

1. 목 적
본 프로젝트는 48kHz의 wave 파일을 읽어 들여, matlab으로 구현한 cutoff frequency가 8kHz인 lowpass filter에 거르고, 걸러진 데이터를 다시 wave 파일로 만드는 것이다.
2. 구현방법
사용한 wave 파일은 sapling rate가 48kHz가 되도록 골드 웨이브 프로그램을 사용하여 직접 녹음하여 만들었다. 아래 그램은 wave 파일의 속성을 나타낸 것이다.
이 때, 녹음된 wave파일은 10초로 녹음하였으며, C 프로젝트 파일에서 printf("%d",Nsamp) 명령어를 추가시켜 sample의 수를 확인한 결과 479709개가 있음을 알 수 있었다. 예상했던 결과는, 48kHz로 녹음하였기 때문에 480000개의 sample이었지만, 정확히 10초가 아닌 그 보다 짧게 녹음되었던 듯 하다.
다음으로 Low pass filter의 coefficient를 얻기 위해 matlab의 filter design tool box를 사용하였다. 아래 그림은 filter design tool box를 이용하여 만든 lowpass filter를 나타내고 있다.
Fs는 sampling frequency를 의미하는 것이므로 48000 으로 입력하였고, Fstop은 stopband의 frequency를 입력하는 것인데, 이 값을 8kHz보다 큰 값인 9kHz를 입력하였다. Fstop을 9kHz로 정해놓고 Fpass의 값을 줄이고 늘려서 위의 Frequency Response에서 체크해 놓은 곳과 같이 -3dB가 8kHz로 정확히 떨어지는 lowpass filter를 얻을 수 있었다.
Fpass는 passband의 frequency를 입력하는 것인데, 위의 과정에서 구한 값은 7810Hz가 되었다. 이 때, -3dB cutoff frequency가 8kHz가 나오게 되었다.
좌측의 density factor는 그 값에 큰 변화가 없는 option 값이어서 프로그램에서 처음 정해진 16을 그대로 사용하였다. 그리고 우측 끝에 있는 Apass는 gain이 1이 되도록 1로 설정하였고, Astop은 stopband에서 아무 값이 출력되지 않도록 80으로 설정하였다.

참고 자료

없음

압축파일 내 파일목록

DSP.hwp
downsamping/bin/test.wav
downsamping/bin/Test_out.wav
downsamping/bin/waveIO_test.exe
downsamping/bin/waveIO_test.ilk
downsamping/interface/Debug/
downsamping/interface/myIWave.h
downsamping/interface/myMessage.h
downsamping/src/Debug/
downsamping/src/myFIO.c
downsamping/src/myFIO.h
downsamping/src/myMemory.c
downsamping/src/myMemory.h
downsamping/src/MyMessage.c
downsamping/src/myWaveHead.c
downsamping/src/myWaveHead.h
downsamping/src/myWaveHeadWR.c
downsamping/src/myWavePar.h
downsamping/src/myWaveRead.c
downsamping/src/myWaveWrite.c
downsamping/waveIO_test/console_io.c
downsamping/waveIO_test/lowpass.h
downsamping/waveIO_test/test.c
downsamping/waveIO_test/test.cpp
downsamping/waveIO_test/waveIO_test.dsp
downsamping/waveIO_test/waveIO_test.dsw
downsamping/waveIO_test/waveIO_test.ncb
downsamping/waveIO_test/waveIO_test.opt
downsamping/waveIO_test/waveIO_test.plg
downsamping/waveIO_test/Debug/console_io.obj
downsamping/waveIO_test/Debug/myFIO.obj
downsamping/waveIO_test/Debug/myMemory.obj
downsamping/waveIO_test/Debug/MyMessage.obj
downsamping/waveIO_test/Debug/myWaveHead.obj
downsamping/waveIO_test/Debug/myWaveHeadWR.obj
downsamping/waveIO_test/Debug/myWaveRead.obj
downsamping/waveIO_test/Debug/myWaveWrite.obj
downsamping/waveIO_test/Debug/test.obj
downsamping/waveIO_test/Debug/vc60.idb
downsamping/waveIO_test/Debug/vc60.pdb
downsamping/waveIO_test/Debug/waveIO_test.pch
downsamping/waveIO_test/Debug/waveIO_test.pdb
lowpass_filtering/bin/test.wav
lowpass_filtering/bin/Test_out.wav
lowpass_filtering/bin/waveIO_test.exe
lowpass_filtering/bin/waveIO_test.ilk
lowpass_filtering/interface/Debug/
lowpass_filtering/interface/myIWave.h
lowpass_filtering/interface/myMessage.h
lowpass_filtering/src/Debug/
lowpass_filtering/src/myFIO.c
lowpass_filtering/src/myFIO.h
lowpass_filtering/src/myMemory.c
lowpass_filtering/src/myMemory.h
lowpass_filtering/src/MyMessage.c
lowpass_filtering/src/myWaveHead.c
lowpass_filtering/src/myWaveHead.h
lowpass_filtering/src/myWaveHeadWR.c
lowpass_filtering/src/myWavePar.h
lowpass_filtering/src/myWaveRead.c
lowpass_filtering/src/myWaveWrite.c
lowpass_filtering/waveIO_test/console_io.c
lowpass_filtering/waveIO_test/lowpass.h
lowpass_filtering/waveIO_test/test.c
lowpass_filtering/waveIO_test/test.cpp
lowpass_filtering/waveIO_test/waveIO_test.dsp
lowpass_filtering/waveIO_test/waveIO_test.dsw
lowpass_filtering/waveIO_test/waveIO_test.ncb
lowpass_filtering/waveIO_test/waveIO_test.opt
lowpass_filtering/waveIO_test/waveIO_test.plg
lowpass_filtering/waveIO_test/Debug/console_io.obj
lowpass_filtering/waveIO_test/Debug/myFIO.obj
lowpass_filtering/waveIO_test/Debug/myMemory.obj
lowpass_filtering/waveIO_test/Debug/MyMessage.obj
lowpass_filtering/waveIO_test/Debug/myWaveHead.obj
lowpass_filtering/waveIO_test/Debug/myWaveHeadWR.obj
lowpass_filtering/waveIO_test/Debug/myWaveRead.obj
lowpass_filtering/waveIO_test/Debug/myWaveWrite.obj
lowpass_filtering/waveIO_test/Debug/test.obj
lowpass_filtering/waveIO_test/Debug/vc60.idb
lowpass_filtering/waveIO_test/Debug/vc60.pdb
lowpass_filtering/waveIO_test/Debug/waveIO_test.pch
lowpass_filtering/waveIO_test/Debug/waveIO_test.pdb
*성*
판매자 유형Bronze개인인증

주의사항

저작권 자료의 정보 및 내용의 진실성에 대하여 해피캠퍼스는 보증하지 않으며, 해당 정보 및 게시물 저작권과 기타 법적 책임은 자료 등록자에게 있습니다.
자료 및 게시물 내용의 불법적 이용, 무단 전재∙배포는 금지되어 있습니다.
저작권침해, 명예훼손 등 분쟁 요소 발견 시 고객센터의 저작권침해 신고센터를 이용해 주시기 바랍니다.
환불정책

해피캠퍼스는 구매자와 판매자 모두가 만족하는 서비스가 되도록 노력하고 있으며, 아래의 4가지 자료환불 조건을 꼭 확인해주시기 바랍니다.

파일오류 중복자료 저작권 없음 설명과 실제 내용 불일치
파일의 다운로드가 제대로 되지 않거나 파일형식에 맞는 프로그램으로 정상 작동하지 않는 경우 다른 자료와 70% 이상 내용이 일치하는 경우 (중복임을 확인할 수 있는 근거 필요함) 인터넷의 다른 사이트, 연구기관, 학교, 서적 등의 자료를 도용한 경우 자료의 설명과 실제 자료의 내용이 일치하지 않는 경우

이런 노하우도 있어요!더보기

최근 본 자료더보기
탑툰 이벤트
Matlab을 이용한 lowpass filter를 C로 구현하여 Wave file filtering & downsampling(디지털 신호 처리)
  • 레이어 팝업
  • 레이어 팝업
  • 레이어 팝업