Выравнивание звука

Я разрабатываю аудиоплеер, используя FFmpeg, и я хочу добавить звуковой эквалайзер в свое приложение. Я использую FFmpeg для получения аудиосэмплов и вычисления FFT, но когда я пытаюсь применить один из БИХ-фильтров, я получаю очень шумный звуковой сигнал.
Это мой код:

double Q = 1.0;
double omega = 2.0 * PI * 1000.0 / 44100.0;
double sine = sin(omega);
double alpha = sine / ( 2.0 * Q);
double cosine = cos(omega);

double b0 = (1 + cosine)/2;
double b1 = (-1) * (1 + cosine);
double b2 = (1 + cosine)/2;
double a0 = 1 + alpha;
double a1 = (-2) * cosine;
double a2 = 1 - alpha;

for( int n = 2; n < fftSize; n++ )
{
leftChannel2[n].re = ((b0/a0)*leftChannel[n].re + (b1/a0)*leftChannel[n-1].re + (b2/a0)*leftChannel[n-2].re -
(a1/a0)*leftChannel2[n-1].re - (a2/a0)*leftChannel2[n-2].re);
rightChannel2[n].re = ((b0/a0)*rightChannel[n].re + (b1/a0)*rightChannel[n-1].re + (b2/a0)*rightChannel[n-2].re -
(a1/a0)*rightChannel2[n-1].re - (a2/a0)*rightChannel2[n-2].re);
leftChannel2[n].im = leftChannel[n].im;
rightChannel2[n].im = rightChannel[n].im;
}

Может кто-нибудь сказать мне, что не так с этим кодом?

0

Решение

Этот фильтр работает правильно в Excel или Matlab? На первый взгляд, я не вижу здесь синтаксических или семантических ошибок. Кстати, этот фильтр (разностное уравнение) вычисляет частотную характеристику во временной области. Как насчет мнимой части сигнала? Если он ненулевой, вы должны отфильтровать его таким же образом.

0

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

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

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