обработка сигналов — C ++ Частотная характеристика & lt; — & gt; Импульсивный ответ

Я пытаюсь вычислить фактическую частотную характеристику из желаемой частотной характеристики.

fftSize = 128;
fs = 8000;

У меня есть 2 входных массива: f [] и aDesired [], оба из которых являются вещественными и имеют длину fftSize + 1 (включая DC + Найквиста). Массив f [] линейно расположен между 0 и fs / 2 (0: 4000). Массив aDesired [] имеет либо усиление в дБ, либо линейные значения.

Я могу легко изменить длину f [] и aDesired [], так как у меня есть функция интерполяции, которая дает выходные данные любого размера, но я подумал, что это хорошее число.

Я хотел бы взять IFFT из ADesired [], чтобы сгенерировать коэффициенты (с настраиваемой длиной), окном и усечь коэффициенты, а затем FFT, чтобы показать, каким будет реальный ответ, aActual [].

Как я могу получить IFFT / FFT этих данных, когда оба входа являются реальными? Или как мне подготовить данные больше?

Может быть, есть библиотека, которая может быть полезна с моими входными данными?

Резюме:

Input: f[129] : linearly spaced fc's
aDesired[129] : Real values of linearly spaced gains at fc's (either in lin or log),

Processing:
coeffs = IFFT(f, aDesired)
coeff_new Truncate(window * coeff)
aActual = FFT(f, coeff_new)

Output: aActual[]

Большое спасибо

0

Решение

Попробуйте IT ++, который предназначен для моделирования на физическом уровне.

http://itpp.sourceforge.net/4.3.0/

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]