Как записать в .wav с микрофона после применения быстрого преобразования Фурье и фильтра верхних частот на нем?
Вопрос
Я получаю вход от микрофона и применяю к нему fft. После этого я установил частоты выше 1 кГц на ноль (фильтр верхних частот).
Я хочу знать, как я могу записать вход с микрофона после того, как я передал его в fft и после применения фильтра верхних частот.
Я работаю с c #, что мне нужно делать? : P р>
Решение
После вашего БПФ и фильтра вам нужно сделать обратное БПФ, чтобы вернуть данные во временную область. Затем вы хотите добавить этот набор образцов в ваш файл .WAV.
Что касается создания самого файла, формат широко задокументирован (поиск в Google для «.WAV-формата» должен давать больше результатов, чем вы когда-либо использовали), и довольно простой. По сути, это простой заголовок (называемый «чанком»), который говорит, что это файл .WAV (или фактически «RIFF»). Тогда есть " fmt " блок, который сообщает о формате сэмплов (биты на сэмпл, сэмплы в секунду, количество каналов и т. д.). Затем есть «данные»; кусок, который содержит сами образцы.
Поскольку звучит так, будто вы собираетесь делать это в режиме реального времени, я бы посоветовал вам забыть о выполнении ваших FFT, фильтра и iFFT. КИХ-фильтр даст практически те же результаты, но, как правило, намного быстрее. Основная идея КИХ-фильтра заключается в том, что вместо преобразования ваших данных в частотную область, их фильтрации, а затем обратного преобразования во временную область вы преобразуете свои коэффициенты фильтра во временную область и применяете их (справедливо) непосредственно к входным данным. Здесь DSP зарабатывают на себе: почти все из них имеют инструкции с многократным накоплением, которые могут реализовать большую часть КИХ-фильтра в одной инструкции. Однако даже без этого получение FIR-фильтра, работающего в режиме реального времени на современном процессоре, не потребует никаких реальных уловок, если вы не выполните действительно быструю выборку. В любом случае гораздо проще заставить FFT / filter / iFFT работать с той же скоростью.