chebum Опубликовано: 1 января 2019 Автор Поделиться Опубликовано: 1 января 2019 Это уже частности. А главное в том что FFT свёртка не только не плоха, а даже лучше чем прямая свёртка (при длине фильтра больше 64-х точек). Это не частности в случае музыкальных фильтров. Например, хай-пас фильтр на 3000 тапсов это 1 тапс со значением 0.95 и 2999 тапсов со значениями меньше 0.001. То есть амплитуда фильтра увеличивается в 950 раз между соседними тапсами. Это как раз те чрезвычайно крутые фильтры, с которыми fir может работать не очень хорошо.Проблема в том, что такие крутые фильтры после преобразования Фурье (FFT= fast Fourier transform) становятся очень большим (и даже бесконечным) количеством частотных компонентов. Проблема в том, что компьютер не может работать с бесконечным количеством чисел. Часть из них будет откинута. То есть свертка с помощью преобразования Фурье может быть менее точной, чем прямая свертка.Насколько это большая проблема я ещё не проверил. На форумах математиков есть обсуждения этой проблемы. Сам в свободное время пишу тест-сравнение. Отпишусь по результатам.Ошибки округления при прямой свёртке точно не являются проблемой. При правильном алгоритме суммирования ошибка не превышает точность переменной, в которой записано значение. 2 Цитата Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
chebum Опубликовано: 1 января 2019 Автор Поделиться Опубликовано: 1 января 2019 " userid="57"] Как разница (при сложении в противофазе) определяется на слух? Что она из себя представляет? Звук трудно описать словами. Там выше есть две ссылки на файлы. Можно самому сравнить. Цитата Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
Max Volobuev Опубликовано: 2 января 2019 Поделиться Опубликовано: 2 января 2019 15 часов назад, chebum сказал: Насколько это большая проблема я ещё не проверил. На форумах математиков есть обсуждения этой проблемы. Сам в свободное время пишу тест-сравнение. Отпишусь по результатам. Да, интересно будет ознакомиться с результатами. Я тоже планирую написать простую программку осуществляющую прямую свертку двух wav файлов (оффлайн, с точностью 64 бит) и сравнить результат с тем что дают доступные конволверы (например Foobar-овский). Сравнить, естественно, математически побитово, а не на слух. 15 часов назад, chebum сказал: Ошибки округления при прямой свёртке точно не являются проблемой. При правильном алгоритме суммирования ошибка не превышает точность переменной, в которой записано значение. Да, это понятно. Проблема там только с производительностью. Насколько помню, ещё лет 5-7 назад у самого современного (на тот момент) компьютерного железа едва хватало производительности что бы выполнять прямую свертку в реалтайм. Сейчас производительность выше, но если свертка через FFT будет давать тот же результат, лишние вычисления ни к чему. Цитата Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
igorzep Опубликовано: 2 января 2019 Поделиться Опубликовано: 2 января 2019 15 hours ago, chebum said: Например, хай-пас фильтр на 3000 тапсов это 1 тапс со значением 0.95 и 2999 тапсов со значениями меньше 0.001. Это не high-pass, это почти identity фильтр, очень слабо влияющий на АЧХ. Реальные фильтры затухают ГОРАЗДО медленнее. Однако качественная необходимость фильтра - как раз таки высокое затухание на краях без мгновенного обрезания отклика, именно поэтому надо много taps. Проблема в том, что такие крутые фильтры после преобразования Фурье (FFT= fast Fourier transform) становятся очень большим (и даже бесконечным) количеством частотных компонентов. Проблема в том, что компьютер не может работать с бесконечным количеством чисел. Часть из них будет откинута. То есть свертка с помощью преобразования Фурье может быть менее точной, чем прямая свертка.Насколько это большая проблема я ещё не проверил. На форумах математиков есть обсуждения этой проблемы. Сам в свободное время пишу тест-сравнение. Отпишусь по результатам. Это вообще не проблема, это неверная информация. Уже обсуждалось - свёртка при помощи DFT (==FFT) - полностью эквивалентна прямой свёртке, на курсе матана это формально доказывают. Разница - исключительно числовые ошибки (накопленные ошибки округления). Ошибки округления при прямой свёртке точно не являются проблемой. При правильном алгоритме суммирования ошибка не превышает точность переменной, в которой записано значение. Так называемый "правильный" алгоритм займёт еще куда больше ресурсов, так как для "обычного" multiply&add есть специальная инструкция, выполняющая это в один такт. Уж куда лучше её делать "в лоб" на специализированном железе, банально, с большим аккумулятором (например FIR ускоритель на SHARC - 80 бит fixed point) - более чем достаточно, чтоб считать вообще БЕЗ числовой ошибки (подразумевая вход в 24 бит и коэффициенты FIR 32 бит... хватит на десятки мегатапсов, а то и больше, учитывая затухание) Цитата Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
chebum Опубликовано: 2 января 2019 Автор Поделиться Опубликовано: 2 января 2019 Это не high-pass, это почти identity фильтр, очень слабо влияющий на АЧХ Это фазолинейный high-pass сгенерированный в rephase. Сверка даёт как раз обрезание низких частот. Я по спектрограмме обработанного сигнала проверял. Цитата Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
Snoc Xua Trom Опубликовано: 2 января 2019 Поделиться Опубликовано: 2 января 2019 26 минут назад, chebum сказал: Это фазолинейный high-pass Привет Иван. Давненько тему не трогали.. Ахтунг, влияние на фазу при использовании -pass-ов в rephase. Линеиныи (зеленыи) дает предзвон, миним ( красныи) его не дает. 1 Цитата Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
igorzep Опубликовано: 2 января 2019 Поделиться Опубликовано: 2 января 2019 1 hour ago, chebum said: Это фазолинейный high-pass сгенерированный в rephase. Сверка даёт как раз обрезание низких частот. Я по спектрограмме обработанного сигнала проверял. Вот фрагмент linear-phase high-pass, с параметрами по умолчанию из Rephase. 0.000209073002471943, 0.000359884493487995, 0.000502389776342962, 0.000633771710820229, 0.00075145656929852, 0.000853164165475838, 0.000936951742212389, 0.00100125077945039, 0.00104489603078712, 0.00106714625776784, 0.00106769630103061, 0.00104668030360852, 0.00100466608041072, 0.000942640805566421, 0.00086198836237749, 0.000764458865648636, 0.000652131019898334, 0.000527368116392313, 0.000392768594384183, 0.000251112195051268, Жирным центральные значения... Где тут затухание в 950 раз за сэмпл? Цитата Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
igorzep Опубликовано: 2 января 2019 Поделиться Опубликовано: 2 января 2019 1 hour ago, MikhailM said: Ахтунг В каком месте ахтунг? Вполне ожидаемые картинки! Цитата Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
Oll740 Опубликовано: 2 января 2019 Поделиться Опубликовано: 2 января 2019 Привет Иван. Давненько тему не трогали..[emoji3] Ахтунг, влияние на фазу при использовании -pass-ов в rephase. Линеиныи (зеленыи) дает предзвон, миним ( красныи) его не дает. А почему на зеленом графике фаза поломана? Цитата Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
igorzep Опубликовано: 2 января 2019 Поделиться Опубликовано: 2 января 2019 27 minutes ago, Oll740 said: А почему на зеленом графике фаза поломана? Это не фаза поломана, а труба, на которой она нарисована разрезана ) 1 Цитата Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
Oll740 Опубликовано: 2 января 2019 Поделиться Опубликовано: 2 января 2019 Но почему? Фаза должна быть линией или нет? Цитата Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
igorzep Опубликовано: 2 января 2019 Поделиться Опубликовано: 2 января 2019 Just now, Oll740 said: Но почему? Фаза должна быть линией или нет? Она и есть линия, но на трубе, а не на плоскости. Поэтому чтобы показать её на плоскости - трубу режут вдоль, и разворачивают. Две точки разрыва - это на самом деле одна точка на трубе в месте её (трубы, а не фазы) разреза. Линия, соединяющая эти две точки - артефакт отрисовки программы. Её быть не должно. 3 Цитата Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
Oll740 Опубликовано: 2 января 2019 Поделиться Опубликовано: 2 января 2019 Т е кручение фаз на линейном FIR фильтре это нормально? Линейный это такая фигура речи Может просто надписи поменяли? Цитата Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
Snoc Xua Trom Опубликовано: 2 января 2019 Поделиться Опубликовано: 2 января 2019 igorzep Интересное вИдение в 3д. Получается спираль...на трубе. Цитата Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
igorzep Опубликовано: 2 января 2019 Поделиться Опубликовано: 2 января 2019 Just now, Oll740 said: Т е кручение фаз на линейном FIR фильтре это нормально? Линейный это такая фигура речи Может просто надписи поменяли? А... нет ничего не поменяли. Просто легенды не видно и это не просто фаза, а избыточная фаза, т.е. разница актуальной и минимальной. Цитата Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
Oll740 Опубликовано: 2 января 2019 Поделиться Опубликовано: 2 января 2019 Ну тады все ОК Народ поделитесь теорией создания в рефейзе apodizing фильтров, pls Цитата Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
chebum Опубликовано: 3 января 2019 Автор Поделиться Опубликовано: 3 января 2019 В 02.01.2019 в 16:25, igorzep сказал: Жирным центральные значения... Где тут затухание в 950 раз за сэмпл? У меня rePhase 1.3.0 по-другому генерирует. Для проверки сделал новый файзолинейный high-pass LR48 на 1000Гц, 3000 тапсов. Центральное значение на два порядка больше соседних: У вас какая версия rephase? Цитата Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
chebum Опубликовано: 3 января 2019 Автор Поделиться Опубликовано: 3 января 2019 Доделал тест. На тестовых данных FFT одинаково корректно работает что с пологим затуханием, что с крутым фильтром. Результат эквивалентен прямой свёртке с точностью не хуже 0.00000001. 4 1 Цитата Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
Max Volobuev Опубликовано: 4 января 2019 Поделиться Опубликовано: 4 января 2019 17 часов назад, chebum сказал: Доделал тест. На тестовых данных FFT одинаково корректно работает что с пологим затуханием, что с крутым фильтром. Результат эквивалентен прямой свёртке с точностью не хуже 0.00000001. Что и требовалось доказать. Спасибо. А чем делалась FFT свертка? (какая программа или плагин). 1 Цитата Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
chebum Опубликовано: 4 января 2019 Автор Поделиться Опубликовано: 4 января 2019 Что и требовалось доказать. Спасибо. А чем делалась FFT свертка? (какая программа или плагин). Для equalizer Apo тест дописал. FFT через FFTW3. Overlap-add от автора equalizer apo. Прямую свертку сделал я.Тест ещё не запушил в репо. Доберусь до дома запушу сюда:https://github.com/chebum/equalizer-apo-64 3 Цитата Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
chebum Опубликовано: 6 апреля 2021 Автор Поделиться Опубликовано: 6 апреля 2021 Народ потихоньку качает мой патч для EqualizerAPO, переводящий обработку в 64 бита. Изредка пишут комменты. Цитата I was using equalizer APO for years but stumbled recently across this! After replacing the DLL, I get a massive boost in clean signal quality/maximum volume/max amplitude without distortion and also the bass-heavy configurations of equalizer APO sound so clean, distortion-free and amazing! I was almost about to buy a hardware amp because I wasn't happy with the quality of equalizer APO's defaults but your patch helped me! Радует, что разницу между 32-битным процессингом и 64-битным не только я слышу.:) 4 1 Цитата Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
chebum Опубликовано: 6 апреля 2021 Автор Поделиться Опубликовано: 6 апреля 2021 Только что, Stump сказал: что за патч? Можно ссылку? Интересует, пользуюсь АРО непрерывно 1 Цитата Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
sewerin Опубликовано: 26 октября 2021 Поделиться Опубликовано: 26 октября 2021 Вчера и сегодня экспериментировал c FFT. Это позволило выкрутить длину свёртки в Дефонике(число таппс) на максимальное значение 128000, т.е. около 3 секунд на 44100. На вав 192000-24 загрузка процессора 17%. В режиме прямой свёртки загрузка проца раньше была 70 %, а таппс можно было поставить 48000 на 44100-16 (чуть больше 1 секунды), 31000 на 96000-24 и 21000 на 192000-24. Начал с т.н. тестовых треков. Впечатления очень неоднозначные. 1. На некоторых треках или фрагментах есть ощущение "стало тише". Посмотрел уровни, перепроверил, всё норм. 2. Везде есть ощущение "стало по-другому", но в своих привычных терминах я описать не могу. Что было чистым - чистым и осталось, что сибилянтило на записи- сибилянтит по-прежнему. 3. На сложных полифонических фрагментах ГМ неожиданно для меня перебрасывает внимание на какие то "побочные" партии - Вторые скрипки, второй кларнет и т.т.. Интегрально есть ощущение "Возникшей подозрительной активности")))) даже в самом тупом аккомпанементе. 4. Есть ощущение "постоянного сарказма". Именно второстепенные партии, акценты, синкопы стали "показывать фигу в кармане". Скерцность (в копилку к вхарьности). Нужны явно другие уши, для расслушивания разницы. 2 Цитата Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.
Примечание: вашему сообщению потребуется утверждение модератора, прежде чем оно станет доступным.