Многозвенный IIR фильтр корректирующий АС и вопросы FIR фильтров
#21

Можно еще запилить конволюцию с музыкальным файлом и вывести его в обход дсп. Мне не сложно это сделать но помоему будет проще если я покажу как, если есть вопросы.

"Найкраще сало то ковбаса." (с)
Ответ
#22

Не думаю что это именно было причиной, но первое что заметил что конволюция фильтра с чирпом записаным под 0дБ выходит за эти 0дБ. Т.е. возможен клип при некоторых обстоятельствах. в зависимости от того как сделан вывод данных.

Атачу так же чирп на 32к семплов. Если есть возможность записать выход то мне будет что сравнивать.


Файлы вложений Эскизы(ов)
   
.zip chirp_32768_samples.zip Размер: 62.85 KB  Загрузок: 4

"Найкраще сало то ковбаса." (с)
Ответ
#23

При использовании FIR фильтров всегда уменьшаю амплитуду на 10 дБ, чтобы избегать клипинга.
Вечером постараюсь записать выход шарка.
Ответ
#24

Может попробовать из IIR сделать FIR?

"Найкраще сало то ковбаса." (с)
Ответ
#25

Такое пойдет?


Файлы вложений
.rar LR24db100Hz.rar Размер: 11.1 KB  Загрузок: 2
Ответ
#26

Так а как этот LR24db100hz звучит по сравнению с iir имплементацией? На первый взгляд надо удлиннить и наложить окно. Ну или как минимум удлиннить.

"Найкраще сало то ковбаса." (с)
Ответ
#27

БендеровецЪ Написал:Так а как этот LR24db100hz звучит по сравнению с iir имплементацией?
В отрыве от остальных полос сравнение будет неадекватным. Слшуать нотки на басах?
Можно попробовать прогнать свип артой и посмотреть на разницу. Сделал 200Гц удлиненный.
В общем пока 2 задачи:
1) Записать чирп.
2) Записать искажения артой FIR LR 24dB 200 Hz vs IIR LR 24dB 200Hz.

Еще что будем добавлять?


Файлы вложений
.rar LR24dB200hz.rar Размер: 11.71 KB  Загрузок: 0
Ответ
#28

Да пока это. А арте можно скормить wav и посмотреть искажения? Если да, то можно записать ее чирп, пропустить через филтр в матлабе и посмотреть видит ли так искажения.

"Найкраще сало то ковбаса." (с)
Ответ
#29

БендеровецЪ Написал:А арте можно скормить wav и посмотреть искажения?
Вав скормить можно, но будет только АЧХ.
БендеровецЪ Написал:Если да, то можно записать ее чирп, пропустить через филтр в матлабе и посмотреть видит ли так искажения.
По хорошему я видел где-то в интернете ссылку на метод измерения гармоник свипом, арта и все остальные c большой вероятностью его и используют. Нашел -
https://pdfs.semanticscholar.org/abc8/3f...b6cc61.pdf
Если правильно понял, то вгоняется свип, затем применяется инверс FIR для данного свипа, чтобы полученный свип привести к IR. После на импульсной характеристике до основного пика получаем несколько дополнительных, которые и есть гармоники. Чем длиннее свип, тем больше будет времени между импульсом N-ой гармоники и основным пиком, что дает возможность взять большее окно для получения частотки. Как я понимаю затем берем АЧХ основного пика, затем двигаем начало окна на первый пик до основного и берем еще одну АЧХ, которая будет второй гармоникой, второй пик до основного - третья гармоника и т.д.
Дальше автор говорит о каком-то плагине для усреднения User’s interface of the Synchronous-Average plug-in. Может тебе будет проще разобраться.
Ответ
#30

Ну синхронное усреднение то отдельная тема.
Так вроде бы ясно, но подробней уже завтра полистаю.

"Найкраще сало то ковбаса." (с)
Ответ
#31

БендеровецЪ Написал:Ну синхронное усреднение то отдельная тема
Ну так если вы по шумам будете пролазить и гармоники будут видны-оно и не нужно.
Это такая особая полугнилая тема где можно легко наплодить ошибок на реальном сигнале.
В совте для АП2722 наверно штуки 4 разных варианта, и не могу сказать чтоб хоть один
вызывал полное доверие при реальных измерениях. Ну там это почти криминальный
случай, там длина ФФТ буфера всего 32К, в некоторых случаях просто выбора нет.

Nobody Is Perfect
Ответ
#32

Ну впринципе работает. Наложил вторую третью и четвертую гармоники. Вертикальный масштаб сделал логарифмическим для наглядности. Вобщем осталось только наложить окна и сделать fft


Файлы вложений Эскизы(ов)
   

"Найкраще сало то ковбаса." (с)
Ответ
#33

Наложил тот самый первый фильтр на чирп. Вполне ожидаемо нет никаких искажений. Форма h(t) и есть сам фильтр, только с лог масштабе.
Надо таки сделать с наложением окон для выделения гармоник. Там все просто - формула типа взять логарифм поделить/помножить. Но щаз просто немного лень :)

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


Файлы вложений Эскизы(ов)
       

"Найкраще сало то ковбаса." (с)
Ответ
#34

Для референса сам фильтр (свеже вычитаный из файла) в лог масштабе. Вроде-бы все совпадает.


Файлы вложений Эскизы(ов)
   

"Найкраще сало то ковбаса." (с)
Ответ
#35

Переизмерил все. Что-то еще больше становится непонятным :).
Гармоники 100Гц лезут из-за соединения гальванического соединения развязанных между собой компа-usb-DSP====ЦАП.
Похоже причина мелкого баса связана с его простым отсутствием в точке прослушивания. Т.к. по акустике есть шум помещения, а амплитуда методом свип падает, то наверное гармоники начинают определяться шумом, поэтому идет рост к НЧ по мере падения.
Получается лишних гармоник гармоник процессор не создает, но тогда возникает следующий закономерный вопрос почему при стандартных свиповских измерениях мы имеем завал, а если восстанавливать АЧХ комплексно - завала нет. По ощущениям при прослушке ушами завал все же был.
Где-то здесь зарыт какой-то простой технический нюанс. Помнится мне dee-jan тоже когда делал FIR фильтры в рефэйз пришел к выводу, что оно не звучит и остановился на простых FIR кроссах не трогающих ГВЗ в обратную сторону.
Что-то нутро мне подсказывает, что уши не ощущают мнимую часть, т.е. предвоздействие без амплитуды.
Цитата:В линейной фазовой системе отклик появляется намного позже начального воздействия. Причиной чего является задержка низкочастотных компонентов в дополнительной фазолинеаризующей системе, чтобы согласовать их со временем прохождения ВЧ-компонентов.
Цитата:Реакция минимальной фазовой системы следует немедленно после начального воздействия. Минимальная фазовая система имеет отклик, следующий сразу же за начальным воздействием. То есть данная система имеет минимальную задержку во времени реакции для формирования амплитудного отклика на входное воздействие. Поэтому минимальная фазовая система также является системой с минимальной задержкой.

Итого мой вывод - систему надо делать минимально-фазовой, а не фазолинейной.
Отсюда вытекает следующий постулат - а зачем тогда нужны FIR фильтры, если минимальную фазу можно сделать и в IIR?

До кучи в следующем посте прицеплю записанный твой чирп и чирпы с арта.


Файлы вложений Эскизы(ов)
                                   
Ответ
#36

Нарисовал скриптик чтобы фильтровать wav. Фильтр подгружается тоже как wav, но можно и в любой другой форму (txt например).
Пока-что сделал так что даже если входной wav целочисленный то выводит все равно как float32 и нормализует так что-бы запись была ~-1dBFs
Может содержать ошибки или неточности, но я не програмизд, если че :)


Файлы вложений
.zip Wav_filtering.zip Размер: 73.14 KB  Загрузок: 4

"Найкраще сало то ковбаса." (с)
Ответ
#37

Похоже Артовские чирпы оставил на рабочем столе домашнего компьютера. Если нужны - вечером выложу.
Здесь прицепил запись твоего чирпа с FIR фильтрацией, выложенным вначале 2048 таповым фильтром изменяющим ГВЗ.


Файлы вложений
.rar chirp_32768 with gd correction.rar Размер: 2.61 MB  Загрузок: 2
Ответ
#38

Я дето на diyaudio, еще года четыре назад читал что кто-то делал сравнение с корекцией фазы до линейной и без, и что-то тоже говорилось типа было гониво с басом при корекции фазы.
И впринципе согласен что выглядит как-будто коректировать надо только не мин фазовые дела.

Файл просмотрю попожже, щаз дела всякие.

"Найкраще сало то ковбаса." (с)
Ответ
#39

БендеровецЪ Написал:Нарисовал скриптик чтобы фильтровать wav. Фильтр подгружается тоже как wav, но можно и в любой другой форму (txt например).
Пока-что сделал так что даже если входной wav целочисленный то выводит все равно как float32 и нормализует так что-бы запись была ~-1dBFs
Может содержать ошибки или неточности, но я не програмизд, если че :)
А это в какой программе смотреть, открывать и вообще какой софт используешь для преобразований?
Ответ
#40

Использую numpy. МОжно пользоваться любым диструбутивом, но я использую этот - https://www.continuum.io/downloads (Python 2.7)

потом из желаемой дериктории выполнить jupyter.exe notebook

Откроется в браузере, кликать на файле, исполнять ячейки шифт+ентер

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

"Найкраще сало то ковбаса." (с)
Ответ


Возможно похожие темы ...
Тема / Автор Ответы Просмотры Последний пост

Перейти к форуму:


Пользователи, просматривающие эту тему: 1 Гость(ей)