Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
достаточно произвести преобразование только для 960 частотЕсли я правильно понял условия задачи — нет, недостаточно, так как нужно делать не преобразование 960 частот, а преобразование 960 частотных полос. А иначе получится не усреднение, а прореживание — и такой прореженный спектр будет сильно зашумлен.
Если я правильно понял условия задачи
Делают так
4) над каждым диапазоном выполняется обратное преобразование Фурье, причём минимального размера (если в диапазон попало 8 частот, то и размер FFT также будет 8),
5) с получившего комплексного сигнала считается модуль (квадратный корень суммы квадратов действительной и мнимой части)





Мне кажется, сложность FFT можно сильно уменьшить в случае, когда предполагается представление результатов с логарифмической осью частот. Я попытался загуглить, но не смог найти по этой теме никакой информации.Попробуйте погуглить "Constant-Q transform".
y[k]=C*sum(x[j]*Wn^(j*k),j=0..n-1)
x[j]=C*sum(y[k]*Wn^(-k*j),k=0..n-1)
C=1/sqrt(n)
Wn=exp(-2*pi*i/n)
Один из способов вычисления FFT разделяет семплы на четные и нечетные, рекурсивно вычисляет для них FFT и объединяет результаты.
Поэтому ваше решение может не сработать.
Преобразование Фурье. The Fast and the Furious