Как записать в .wav с микрофона после применения быстрого преобразования Фурье и фильтра верхних частот на нем?

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

  •  08-07-2019
  •  | 
  •  

Вопрос

Я получаю вход от микрофона и применяю к нему fft. После этого я установил частоты выше 1 кГц на ноль (фильтр верхних частот).

Я хочу знать, как я могу записать вход с микрофона после того, как я передал его в fft и после применения фильтра верхних частот.

Я работаю с c #, что мне нужно делать? : P

Это было полезно?

Решение

После вашего БПФ и фильтра вам нужно сделать обратное БПФ, чтобы вернуть данные во временную область. Затем вы хотите добавить этот набор образцов в ваш файл .WAV.

Что касается создания самого файла, формат широко задокументирован (поиск в Google для «.WAV-формата» должен давать больше результатов, чем вы когда-либо использовали), и довольно простой. По сути, это простой заголовок (называемый «чанком»), который говорит, что это файл .WAV (или фактически «RIFF»). Тогда есть " fmt " блок, который сообщает о формате сэмплов (биты на сэмпл, сэмплы в секунду, количество каналов и т. д.). Затем есть «данные»; кусок, который содержит сами образцы.

Поскольку звучит так, будто вы собираетесь делать это в режиме реального времени, я бы посоветовал вам забыть о выполнении ваших FFT, фильтра и iFFT. КИХ-фильтр даст практически те же результаты, но, как правило, намного быстрее. Основная идея КИХ-фильтра заключается в том, что вместо преобразования ваших данных в частотную область, их фильтрации, а затем обратного преобразования во временную область вы преобразуете свои коэффициенты фильтра во временную область и применяете их (справедливо) непосредственно к входным данным. Здесь DSP зарабатывают на себе: почти все из них имеют инструкции с многократным накоплением, которые могут реализовать большую часть КИХ-фильтра в одной инструкции. Однако даже без этого получение FIR-фильтра, работающего в режиме реального времени на современном процессоре, не потребует никаких реальных уловок, если вы не выполните действительно быструю выборку. В любом случае гораздо проще заставить FFT / filter / iFFT работать с той же скоростью.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top