Показано с 1 по 1 из 1

Тема: Сравнение FIR фильтрации методами линейной свёртки и БПФ

  1. #1
    Завсегдатай
    Автор темы
    Аватар для E.Sokol
    Регистрация
    17.01.2015
    Адрес
    Урал
    Сообщений
    1,298

    По умолчанию Сравнение FIR фильтрации методами линейной свёртки и БПФ

    Процессор: Intel® Core™ i3-3220 3.30GHz
    Длина входного массива – 192000 семпла, белый шум, нормированный к -1..1

    Длина FIR – от 128 до 131072 taps, белый шум, нормированный к -1..1

    Свёртка через БПФ осуществлялась методом overlap-add при помощи библиотеки FFTW

    Точность числа с плавающей точкой - 64 бита

    В архиве FirTest.zip – сама программа, исходный код, исходные данные. Для запуска программы может потребоваться Распространяемый пакет Visual C++ для Visual Studio 2012
    Входные данные находятся в файле input.txt
    FIR фильтр находится в файле fir.txt

    Результаты замеров:

    время, мс погрешность, отклонение
    taps линейная свёртка БПФ отношение среднеквадратическое абсолютное
    128 19.73 2.87 6.89 3.79E-16 3.11E-15
    256 37.23 2.90 12.83 6.61E-16 5.77E-15
    512 72.04 2.88 24.99 1.35E-15 1.51E-14
    1024 141.83 2.86 49.57 2.06E-15 2.40E-14
    2048 282.63 3.41 82.82 4.00E-15 3.55E-14
    4096 573.50 4.26 134.75 5.95E-15 5.51E-14
    8192 1220.53 4.84 252.15 1.42E-14 1.42E-13
    16384 2293.25 5.30 432.51 2.20E-14 2.59E-13
    32768 4899.92 6.49 755.29 4.60E-14 4.51E-13
    65536 9762.71 8.53 1144.71 7.85E-14 1.03E-12
    131072 19671.20 13.02 1510.69 1.43E-13 1.81E-12


    В наихудшем случае максимальная пиковая погрешность составила 1.81E-12 = 0.00000000000181
    Это примерно -230 дБ
    Чтобы она отразилась на цифро-аналоговом преобразовании, необходимо как минимум 40 бит (без дизеринга)
    Последний раз редактировалось E.Sokol; 25.11.2015 в 21:21.

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •