Обратное БПФ, когда требуется всего несколько временных точек

Я хочу сделать некоторое моделирование, которое будет неоднократно называть iFFT. Это будет принимать в качестве входных данных параметрическую модель комплексной частотной характеристики (амплитуды, фазы) и создавать в качестве выходной импульсной характеристики. Я хотел бы сравнить это с "оконным" импульсным откликом, который я измерил для громкоговорителя в комнате. Измеряемый импульс может характеризоваться начальной частью, которая соответствует звуку, распространяющемуся непосредственно через воздух к микрофону, который длится несколько миллисекунд, после чего звуки, отражающиеся от поверхностей в комнате (пол, стены и т. Д.), Загрязняют сигнал. Незагрязненная часть может составлять 5% от общего измеренного импульса. Я хочу сравнить импульсную характеристику, которую iFFT генерирует из частотной характеристики, ТОЛЬКО в незагрязненную часть измеренного импульса.

При необходимости я могу рассчитать полную импульсную характеристику по частотной характеристике, а затем просто отбросить 95% результата, но это кажется очень неэффективным. IFFT будет рассчитываться много, много раз (вероятно, тысячи), пока моя модель оптимизируется, поэтому я хочу убедиться, что смогу сделать ее максимально эффективной. На данный момент мой единственный вариант - использовать FFTW, а затем просто отбрасывать ненужные данные (из-за отсутствия лучшей идеи).

Существует ли быстрый способ вычисления обратного БПФ только для тех моментов времени, например, не для всего промежутка времени, к которому может получить доступ БПФ? Например, мне может понадобиться только 5% времени. Я не очень хорошо знаком с вычислениями FFT и iFFT, поэтому у меня нет понимания ответа на этот вопрос.

Редактировать: я перепроверил, и если я записываю импульс в 16 кГц на частоте 96 кГц, остается только около 475 выборок "хороших данных" до того, как отражения загрязнят сигнал. Это чуть менее 3% от общего записанного сигнала. Как я могу эффективно рассчитать только эти 200 точек из моей частотной характеристики???

1 ответ

Все зависит от времени и разрешения по частоте.

Если ваш исходный (измеренный) импульсный отклик меньше 512 выборок, вы можете просто использовать эти 512 выборок и рассчитать 512 точечных БПФ. Это даст вам плохое разрешение по частоте, но вы можете интерпретировать спектр, если хотите.

В другом направлении, просто "уменьшите" ваш длинный спектр до некоторого 512 частотного бин-спектра (например, возьмите каждую 4-ю строку) и выполните обратное БПФ, это приведет к короткой 512 выборке импульсного отклика.

Другие вопросы по тегам