빠른 푸리에 변환과 고지대 필터를 적용한 후 마이크에서 .wav로 기록하는 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/1640638

  •  08-07-2019
  •  | 
  •  

문제

마이크에서 입력을 받고 FFT를 적용합니다. 그 후, 나는 주파수를 0으로 1kHz보다 높았습니다 (고속 패스 필터).

FFT에 전달한 후 및 고지대 필터를 적용한 후 마이크에서 입력을 기록 할 수있는 방법을 알고 싶습니다.

C#으로 작업하고 있습니다. 어떻게해야합니까? :피

도움이 되었습니까?

해결책

FFT 및 필터 후에는 데이터를 시간 도메인으로 되돌려 놓으려면 역 FFT를 수행해야합니다. 그런 다음 해당 샘플 세트를 .wav 파일에 추가하려고합니다.

파일 자체를 생성하는 한 형식은 넓게 문서화 된 ( ".wav 형식"에 대한 인터넷 검색은 당신이 사용하는 것보다 더 많은 결과를 얻을 수 있습니다), 매우 간단합니다. 기본적으로 간단한 헤더 ( "청크"라고 함)입니다. 그런 다음 샘플의 형식 (샘플 당 비트, 초당 샘플, 채널 수 등)에 대해 알려주는 "FMT"청크가 있습니다.

실시간 으로이 작업을 수행 할 것 같으므로 FFT, 필터 및 IFFT를 수행하는 것을 잊어 버리는 것입니다. FIR 필터는 본질적으로 동일한 결과를 제공하지만 일반적으로 훨씬 더 빠릅니다. FIR 필터의 기본 아이디어는 데이터를 주파수 도메인으로 변환하여 필터링 한 다음 시간 도메인으로 다시 변환하여 필터 계수를 시간 도메인으로 변환하고 입력 데이터에 직접 적용한다는 것입니다. 이것은 DSP가 유지를 얻는 곳입니다. 거의 모든 사람들이 곱하기 인증 지침을 가지고 있으며, 이는 대부분의 FIR 필터를 하나의 명령으로 구현할 수 있습니다. 그러나 그렇지 않더라도 FIR 필터를 최신 프로세서에서 실시간으로 실행하는 것은 당신이하지 않는 한 실제 트릭을 취하지 않습니다. 진짜 빠른 샘플링. 어쨌든 FFT/필터/IFFT를 동일한 속도로 작동시키는 것이 훨씬 쉽습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top