Так-ли плоха FFT-свёртка? - Страница 3 - Цифровые кроссоверы и румкоррекция - SoundEX - Клуб любителей хорошего звука Перейти к публикации

Так-ли плоха FFT-свёртка?


Рекомендованные сообщения

2 часа назад, chebum сказал:

STR свёртка: https://drive.google.com/open?id=1HNblSwEnxvsgQZly1fjcOVLgZ1R1mEJG

image.thumb.png.376159a74189a35d5306899933da4b77.png

Последний трек - разница между FFT и STR-свёртками. Послушать эту "разницу" можно здесь: https://drive.google.com/open?id=1q3uhPbxIIsTOGtRlGz40MAyfi9xaMwEM

Можно заключить, что на этой записи FFT- и прямая свертка звучат одинаково. 

Поскольку по словам @sewerin в Дефонике слышна разница между FFT и STR, то можно предположить, что в Дефонике просто-напросто криво реализована FFT-свёртка.

Обе свёртки делались в 32-битных float.

Сделайте обе в 64 float, как сами знаете где. И FFT в Дефонике "Overlap-Аdd". А у Вас?

Ссылка на комментарий
Поделиться на других сайтах

  • Ответы 147
  • Создано
  • Последний ответ

Лучшие авторы в этой теме

Лучшие авторы в этой теме

Опубликованные изображения

3 часа назад, Сергей Жеклов сказал:

Ниже 100 гц импульс? C фазой из за комнаты и так и так обычно полный кошмар на нч, как это корректировать?

Фазокрут никто не отменял. И импульс тоже можно отстроить. Но электротрактом обойтись можно не всегда, к сожалению. 

Ссылка на комментарий
Поделиться на других сайтах

8 минут назад, Маратище сказал:

Фазокрут никто не отменял.

Ты про аналоговый фазокрут?)
Как им сделать +200 градусов на 20 Гц, +100 на 42, +50 на 90, +20 на 180 и т.д.?

Ссылка на комментарий
Поделиться на других сайтах

20 минут назад, sewerin сказал:

Ты про аналоговый фазокрут?)
Как им сделать +200 градусов на 20 Гц, +100 на 42, +50 на 90, +20 на 180 и т.д.?

Это разные полосы. :D 

А вообще существует "зум ногами", к Мурату в ветку заглянь. 

Ссылка на комментарий
Поделиться на других сайтах

1 час назад, sewerin сказал:

И FFT в Дефонике "Overlap-Аdd". А у Вас?

Нет, без Overlap. Сделано "в лоб": fftwf_execute для разложения исходного сигнала на частоты, перемножение с уже разложенным фильтром и fftwf_execute с обратным преобразованием, чтобы получить результат свёртки.

64-битный STR сейчас сделаю.

Ссылка на комментарий
Поделиться на других сайтах

Преобразовал несколько секунд, работая в 64 битном пространстве. 64-битная свертка практически идентична по качеству 32-битной: порядок ошибки на уровне различий FFT и STR.

64 бита выглядит как overkill: даже в 32-битной свёртке дефектов так никто и не смог найти.

Ссылка на комментарий
Поделиться на других сайтах

16 часов назад, igorzep сказал:

Нет. Тут речь вообще о другом.

Ссылка на комментарий
Поделиться на других сайтах

Ок. Начнём понемногу. 

Само про себе FFT преобразование, теоретически совершенно эквивалентно прямой свёртке. Если вы берёте файл целиком, как одно непрерывное окно и делаете свёртку через FFT (не важно какого именно алгоритма), на выходе получится результат эквивалентный прямому преобразованию вплоть до точности вычислений.

Но когда вы работаете не с файлом, а с потоком, этот подход становится невозможен.

Для FFT берётся какое-то ограниченное окно, на него накладывается оконная функция (окно Кайзера например), затем делается FFT свёртка. Условно достоверные отсчёты получаются где-то в середине этого окна. Потом этот набор окон каким-то алгоритмом склеивается.

Почему я говорю о том, что FFT = MP3. Потому что там всё тоже самое. И MP3 ущербен не потому что кто-то выкидывает якобы неслышимые звуки, а потому что сам процессинг PCM->FFT->PCM ущербен.

Ссылка на комментарий
Поделиться на других сайтах

4 минуты назад, olegtern сказал:

Ссылки на исследования будут? Подтверждения хоть одного тезиса экспериментом как выше?

Не будет - очевидные вещи не нуждаются в подтверждении. Эксперименты выше не имеют ни какого отношения к тому что происходит в DSP. А эквивалентность FFT и STR в определённых условиях и так очевидна.

Ссылка на комментарий
Поделиться на других сайтах

7 минут назад, アントン сказал:

Не будет - очевидные вещи не нуждаются в подтверждении. Эксперименты выше не имеют ни какого отношения к тому что происходит в DSP. А эквивалентность FFT и STR в определённых условиях и так очевидна.

Имеют отношение к DSP. Код FFT свертки взят из equalizer APO, как раз dsp. Он по 65тыс семплов на раз обрабатывает.

STR написал сам - он работает со всем файлом целиком.

Результат работы практически идентичен. Ошибка за границами слышимости.

Ссылка на комментарий
Поделиться на других сайтах

12 минут назад, olegtern сказал:

Ссылки на исследования будут? Подтверждения хоть одного тезиса экспериментом как выше?

Олег, вроде бы АСА у Вас тоже в игноре. Или я что-то перепутал?

Ссылка на комментарий
Поделиться на других сайтах

1 минуту назад, olegtern сказал:

Я игнор прям физический полный не применял еще ни разу, даже не знаю где он включается если честно, поэтому вижу сообщения :( Думаете, надо таки освоить функционал?

Я счастлив.

2018_07_02_11_14_38.png

Ссылка на комментарий
Поделиться на других сайтах

3 часа назад, chebum сказал:

Результат работы практически идентичен.

Если результат идентичен, то можно вычесть из одного результата второй и получить ноль? Всё верно?

Ссылка на комментарий
Поделиться на других сайтах

2 минуты назад, アントン сказал:

Если результат идентичен, то можно вычесть из одного результата второй и получить ноль? Всё верно?

Да, ноль при вычитании двух 32 битных файлов, т.е. минус -192 дб

Ссылка на комментарий
Поделиться на других сайтах

1 час назад, アントン сказал:

Если результат идентичен, то можно вычесть из одного результата второй и получить ноль? Всё верно?

Практически. Разница 0.002%. Можете проверить сами: наверху есть ссылки на оригинал и оба обработанных файла.

Ссылка на комментарий
Поделиться на других сайтах

2 минуты назад, chebum сказал:

Практически. Разница 0.002%.

Мы уже ходили по этим лабиринтам с граблями. И хоть у динамиков искажения - проценты, но тысячные у усилителя и ЦАПа слышны.

Ссылка на комментарий
Поделиться на других сайтах

16 минут назад, chebum сказал:

Практически. Разница 0.002%. Можете проверить сами: наверху есть ссылки на оригинал и оба обработанных файла.

Как выглядит разница? Интегральные 0.002% ни о чём не говорят.

Ссылка на комментарий
Поделиться на других сайтах

5 hours ago, アントン said:

Нет. Тут речь вообще о другом.

Ну как же оно о другом, когда почти дословно совпадает с моим утверждением, подтверждению которому линками вы "требовали"...

 

5 hours ago, アントン said:

Ок. Начнём понемногу.

Лучше б не начинали о том, в чём абсолютно некомпетентны. Так что без обид!

 

5 hours ago, アントン said:

Само про себе FFT преобразование, теоретически совершенно эквивалентно прямой свёртке. Если вы берёте файл целиком, как одно непрерывное окно и делаете свёртку через FFT (не важно какого именно алгоритма), на выходе получится результат эквивалентный прямому преобразованию вплоть до точности вычислений.

Результат эквивалентный не получится, потому как точность представления чисел на железе конечная, операции выполняются в разном порядке, что ведёт к обязательной разнице в точности вычислений. На это есть целый раздел дискретной математики. Вы, конечно могли это всё не знать, и к сути дискуссии оно имеет довольно косвенное отношение, однако именно точность вычислений - это единственное, что может дать какую-то существенную разницу. Но суть, опять же, в том, что она а) тестируема и б) предсказуема. Ну и самое главное, что на этом этапе вы согласны с тем, что FFT полностью эквивалентно STR в данном конкретном случае.

 

5 hours ago, アントン said:

Но когда вы работаете не с файлом, а с потоком, этот подход становится невозможен.

 Для FFT берётся какое-то ограниченное окно, на него накладывается оконная функция (окно Кайзера например), затем делается FFT свёртка. Условно достоверные отсчёты получаются где-то в середине этого окна. Потом этот набор окон каким-то алгоритмом склеивается.

А вот тут начинаются исключительно ваши фантазии и инсинуации о том, как работает линейная свёртка на основе FFT. Она работает СОВЕРШЕННО не так, с чем можно ознакомиться хотя бы на той же Википедии -алгоритмы Overlap&Add и Overlap&Save. Где буквально "на пальцах" объясняется / математически доказывается эквивалентность этих алгоритмов поточному STR. "условно" достоверные остчёты являются абсолютно достоверными в середине блока на удалении более длины ядра FIR (это крайне простое и очевидное свойство, проистекающее из факта что цикличный STR==цикличному FFT, и конечности длины ядра). А далее, в этом алгоритме, "условно недостоверные" отсчёты просто выкидываются, используются только абсолютно достоверные. В Overlap&Add ошибки "условно-достоверной" части (которая не случайна, а вполне точно определена) элементарно вычитаются следующим блоком, опять же, приводя к абсолютно точной сумме.

Ссылка на комментарий
Поделиться на других сайтах

3 минуты назад, igorzep сказал:

Ну как же оно о другом, когда почти дословно совпадает с моим утверждением, подтверждению которому линками вы "требовали"...

Там речь о маскировке одних звуков другими, а не о пред и пост звонах.

Ссылка на комментарий
Поделиться на других сайтах

4 минуты назад, igorzep сказал:

Результат эквивалентный не получится, потому как точность представления чисел на железе конечная, операции выполняются в разном порядке, что ведёт к обязательной разнице в точности вычислений.

Проблемы вообще не в точности вычислений, а в оконном характере FFT преобразования. 

Если бы мы обрабатывали стационарные сигналы - была бы эквивалентность. Но музыка не является набором стационарных сигналов.

Ссылка на комментарий
Поделиться на других сайтах

5 hours ago, アントン said:

Почему я говорю о том, что FFT = MP3. Потому что там всё тоже самое. И MP3 ущербен не потому что кто-то выкидывает якобы неслышимые звуки, а потому что сам процессинг PCM->FFT->PCM ущербен.

MP3 "ущербен" потому, что в каждом блоке выкидываются бОльшая часть отсчётов, что приводит к невозможности точного восстановления исходного сигнала, откуда и "блочные" артефакты. А ваши высказывания ущербны потому, что это это то же самое, что сказать "WAV = MP3" потому, что и то, и другое обрабатывается процессором. Демагогия в чистом виде

Ссылка на комментарий
Поделиться на других сайтах

6 минут назад, igorzep сказал:

А вот тут начинаются исключительно ваши фантазии и инсинуации о том, как работает линейная свёртка на основе FFT. Она работает СОВЕРШЕННО не так, с чем можно ознакомиться хотя бы на той же Википедии -алгоритмы Overlap&Add и Overlap&Save. Где буквально "на пальцах" объясняется / математически доказывается эквивалентность этих алгоритмов поточному STR. "условно" достоверные остчёты являются абсолютно достоверными в середине блока на удалении более длины ядра FIR (это крайне простое и очевидное свойство, проистекающее из факта что цикличный STR==цикличному FFT, и конечности длины ядра). А далее, в этом алгоритме, "условно недостоверные" отсчёты просто выкидываются, используются только абсолютно достоверные. В Overlap&Add ошибки "условно-достоверной" части (которая не случайна, а вполне точно определена) элементарно вычитаются следующим блоком, опять же, приводя к абсолютно точной сумме.

Я об этом уже писал. Получение на FFT результатов эквивалентных STR требует тех же ресурсов. 

Ссылка на комментарий
Поделиться на других сайтах

Только что, igorzep сказал:

MP3 "ущербен" потому, что в каждом блоке выкидываются бОльшая часть отсчётов, что приводит к невозможности точного восстановления исходного сигнала, откуда и "блочные" артефакты. А ваши высказывания ущербны потому, что это это то же самое, что сказать "WAV = MP3" потому, что и то, и другое обрабатывается процессором. Демагогия в чистом виде

Возьмите MP3 без компрессии (без выкидывания "замаскированных" звуков) - артефакты все на месте.

Ссылка на комментарий
Поделиться на других сайтах

5 minutes ago, アントン said:

Там речь о маскировке одних звуков другими, а не о пред и пост звонах.

Пред- и пост-звоны являются подмножествами звуков коль скоро они находятся в звуковом диапазоне.

Ссылка на комментарий
Поделиться на других сайтах

Только что, igorzep сказал:

Пред- и пост-звоны являются подмножествами звуков коль скоро они находятся в звуковом диапазоне.

Пред и пост звоны являются частью сигнала и имеют тот же спектр. В вашей ссылке речь идёт о сигналах разнородных.

Ссылка на комментарий
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.
Примечание: вашему сообщению потребуется утверждение модератора, прежде чем оно станет доступным.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в теме...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

 Поделиться

  • Сейчас на странице   0 пользователей

    • Нет пользователей, просматривающих эту страницу.
×
×
  • Создать...