БИХ фильтры с фиксированной добротностью

Все что касается фильтрации
Ivan Karamazov
Сообщения: 89
Зарегистрирован: 28 окт 2010, 22:31
Откуда: Москва

Re: БИХ фильтры с фиксированной добротностью

Сообщение Ivan Karamazov »

Что значит "полное ДПФ"?
Поскольку ныне каждый волен плодить свою терминологию... "полное ДПФ" в моем исполнении значит, что некий ранее оцифрованный ("длинный" и даже много более чем, если пользоваться терминами Е.В.Дмитриева) сигнал подвергается ДПФ. "В целом". По возможности, чтобы 8 ГБ RAM (совсем недавно было 4 :) ) было достаточно. Т.е. без блоков / окон / перекрытий. Или, если угодно, речь всего лишь о представлении сигнала в частотной области, как бесконечно - периодического с ограниченным по частоте спектром. В отличии от зависящих от задач "мгновенных спектров" и т.п. (Я тоже завишу от задач -- никого не хотел обидеть.)
И, конечно, это не есть "360-град-решение", в частности, анализ спектра при таком подходе практически бессмысленен. Но зато обретают смысл... много чего. Опыт показывает, что на Форуме собрались существенно разные (по классу решаемых задач) люди, о да. :) :)
Ну, в общем, все довольно тривиально с поправкой не не-мою (увы) реализацию ДПФ.
И, конечно, речь была (и, к сожалению, остается) о БИХ-фильрах. Изв.
Если ваши решения вам нравятся -- это хорошие решения. И наоборот.

petrov
Сообщения: 30
Зарегистрирован: 31 янв 2011, 13:02

Re: БИХ фильтры с фиксированной добротностью

Сообщение petrov »

Ivan Karamazov

Сейчас конечно средства ЦОС очень мощные, но не правильно загружать их бессмысленной работой. Скользящее ПФ уже не будет иметь никаких искажений, ещё лучше банк фильтров, вырезайте какие угодно частоты без всяких DSP мифов.

Ivan Karamazov
Сообщения: 89
Зарегистрирован: 28 окт 2010, 22:31
Откуда: Москва

Re: БИХ фильтры с фиксированной добротностью

Сообщение Ivan Karamazov »

petrov
Хорошо. Но есть трудность -- я видел много (3 штуки) блочных "ДПФ-движков", авторы которых декларировали, что уровень артефактов последовательности прямое-обратное ДПФ не превышает -96 дБ. И это было так!! Ровно до тех пор, пока на амплитудный и/или фазовый спектр хоть что-то не накладавалось. Стоило умножить амплитуду на гладкую кривую и/или хоть что-то (п/2, например) прибавить к фазе -- не то что бы развал, но не -96 и даже не -60 дБ; и pre/post echo -- не самое худшее. Т.е. есть море приложений, где это приемлемо, но для звука по мне -- лучше никак, чем ТАК.
(Проблема блочного ДПФ неоднократно описана -- неуд. разрешение по частоте до того, как получено удовлетворительное разрешение во времени и наоборот.)
(В "полном" ДПФ, кстати, есть дополнительная эстетическая прелесть -- избавиться от времени вообще. Хотя бы на время.)
Собственно, изначальной концепцией у меня было вообще исключть ДПФ/ОДПФ из репертуара обработки звука, частично компенсировав некоторые его фичи (типа точной недеструктивной раскладки звука по каналам, например) перебивкой сигнала в комплексную форму -- я потратил довольно много времени для получения более-менее точного комплексного сигнала на КИХ-фильтре -- пока не нарвался на этот сайт и для начала (без всякой надежды на успех) сделал Гильберта на Фурье. Ну а халявная фильтрация -- так, мелкий бонус.

Это никоим образом не отменяет для меня необходимость (если я долго проживу и хватит сил) иметь, в частности, параметрический эквалайзер (блок БИХ-фильтров), минимально-фазовый эквалайзер (блок КИХ-фильров с линейной ФЧХ) -- как мин. для realtime preview; равно как и блочное ДПФ -- последнее только для анализа.

Что до переизбытка использования вычислительной мощи -- время на ДПФ/ОДПФ ноне соизмеримо со временем чтения / записи "широкоформатных" (32 бита) аудиофайлов, причем не на самом крутом процессоре (мой уже снят с производства); лишь бы памяти хватало -- в реале ее, конечно, в большинстве случаев надо меньше 2 ГБ, что вполне демократично.
Вот примерно такой набор концепций. На сегодня.
Если ваши решения вам нравятся -- это хорошие решения. И наоборот.

petrov
Сообщения: 30
Зарегистрирован: 31 янв 2011, 13:02

Re: БИХ фильтры с фиксированной добротностью

Сообщение petrov »

Ivan Karamazov

Искажения появляются из-за неправильного использования ДПФ. Если отбросить быстрый алгоритм и блочность и сделать ДПФ в лоб, N синхронных гертеродинов и фильтров с прямоугольной ИХ, никаких искажений после такого анализа нету, теперь оставим одну частоту остальные занулим, насколько можно продецимировать сигнал оставшейся частоты? А ни на сколько для качественной обработки звука, т. к. АЧХ прямоугольной ИХ - синк, лепески очень медленно спадают, и при любой децимации мы будем иметь наложения спектров, те самые искажения от блочности. Используя банк фильтров с хорошим фильтром прототипом, у которого большое подавление за пределами своей полосы, мы можем осуществлять быструю блочную обработку без каких-либо искажений, получим и эквалайзер полностью в частотной области с линейной ФЧХ и качественный анализ по полосам.

Ivan Karamazov
Сообщения: 89
Зарегистрирован: 28 окт 2010, 22:31
Откуда: Москва

Re: БИХ фильтры с фиксированной добротностью

Сообщение Ivan Karamazov »

petrov
удивительный пост, и не все понял. Особенно, насчет децимации. Во всяком случае, узкополосную фильтрацию с ДПФ не пробовал -- очень может быть, что синк свои зубы там и покажет. Т.е. тема начата с моих трудностей с БИХ-фильтрами, от коих (решения) я не отказываюсь, равно как и от КИХ -- тем более. Во всяком случае, облась применимости полного и не деструктивного ("тупого") ДПФ пока (сверх Гильберта) для меня очерчена возможностью "раздергивания" сигнала на достаточно широкие полосы (under construction, и возможно, будет исключено из репертуара). +кажется, мастеринг, позволяющий впихнуть с возможностью адекватного последующего воспроизведения реальной полосы до Fд/2.
Да, а хорошо сделанные (хотя и чужие) фильтры не подводили никогда, что да - то да.
И еще меня греет мысль о том море заведомо ложных решений, предлагаемых коммерческими (и, к сожалению, некоммерческими тоже) производителями соотв. софта и железа тоже, к сожалению. Т.е. всегда остается возможность сказать "а люди еще и не то творят -- и не без коммерческого успеха" :)
Спасибо. Я на какое-то время заткнусь, наверное.
ps: а где и как проявят себя sinc'и -- вопрос для меня неочевидный. После 19+ лет паузы. Зато я точно помню, что ИХ линейной системы -- есть реакция на дельта-функцию, каковая согласно определению не существует -- что ставит под сомнение существование АФЧХ. Т.е все эти термины (и следствия, и свойства, и пр.) висят, строго говоря, на ржавом гвозде, а мне в этой связи надо по-новой "отращивать интуицию". И это очень интересно, особенно, если получаются хорошие резуьтаты, хотя бы иногда.
Если ваши решения вам нравятся -- это хорошие решения. И наоборот.

Ivan Karamazov
Сообщения: 89
Зарегистрирован: 28 окт 2010, 22:31
Откуда: Москва

Re: БИХ фильтры с фиксированной добротностью

Сообщение Ivan Karamazov »

Бахурин Сергей
Огромное Спасибо за http://www.dsplib.ru/content/allpasseq/allpasseq.html!!
Если ваши решения вам нравятся -- это хорошие решения. И наоборот.

Ivan Karamazov
Сообщения: 89
Зарегистрирован: 28 окт 2010, 22:31
Откуда: Москва

Re: БИХ фильтры с фиксированной добротностью

Сообщение Ivan Karamazov »

petrov
Здравствуйте, я немножко разбирался (одновременно работая), посему задержка вышла.
Искажения появляются из-за неправильного использования ДПФ. Если отбросить быстрый алгоритм и блочность и сделать ДПФ в лоб, ....
Где неправильно? насчет sinc'ов на узкополосном ДПФ-фильтре я поигрался -- вроде как нет никаких sinc'ов.
Вообще, навернуться здесь очень просто (слишком хорошо это знаю), но, кажется, все что нужно "тупому" фурье -- так это то, чтобы спектр исходного сигнала, доопределенного до бесконечно-периодического, укладывался бы в теорему Котельникова (1), а все возможные подводные камни растут из явных и не очень нарушений перечисленного правила игры.
А N гетеродинов, N эквидистанитных изотропных излучателей, складываемых в пространстве по законам геометрической опитики и т.д. и т.п. -- все есть топики хорошие и физического смысла преисполнены, но уместные, когда уместно. (изв. за грамматику :oops: )
Или я чего-то главного не догоняю? Т.е. я не вполне упертый. И вот так просто не могу не считаться с заявленным тезисом. (с другой стороны я бы не стал, для начала, мешать в одну фразу "быстрый алгоритм" и "блочность".). В общем, если не лень, и есть время и желание (если нет -- не обижусь) -- в личку ли, на форуме ли -- поподробнее о неправильном использовании Фурье. А то у меня с тупым Б/ДПФ пока так все классно, что даже и не верится.
Итак, имеет место парадокс -- ДПФ-фильтр (узкополосный ли нет ли) на "тупом" Фурье, увольняя ненужные частотные компоненты, не порождает заметного переходного процесса, если соблюдены требования (1) хотя бы в инженерно - приближенном смысле.
Если ваши решения вам нравятся -- это хорошие решения. И наоборот.

petrov
Сообщения: 30
Зарегистрирован: 31 янв 2011, 13:02

Re: БИХ фильтры с фиксированной добротностью

Сообщение petrov »

Ivan Karamazov

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

Ivan Karamazov
Сообщения: 89
Зарегистрирован: 28 окт 2010, 22:31
Откуда: Москва

Re: БИХ фильтры с фиксированной добротностью

Сообщение Ivan Karamazov »

petrov

Спасибо, я обязательно попробую -- дня через 3, выч. мощности заняты, а сам я впервые за много-много лет взял больничный (доорался на службе по вопросам, в которых я, к сожалению, не вполне делитант).
Априори же -- мы кажется, все же немного о разном -- "чистый синус" -- за иключением строго "отмеренного" случая, когда он точно стыкуется по фазе со своим продолжением -- я совсем не уверен, поскольку давление огромное и голова не работает -- что такой сигнал с частотой "ровно между частотными отсчетами" ДПФ вообще можно нарисовать.
Блочное Фурье же с перекрытием -- игрушка для обработки звука абс. бесполезная (какие бы навороты авторы конкретных реализаций не делали) -- это одна из немногих вещей, в которой я уверен. Я говорю только о тупом Фурье, и только для аккуратно оцифрованного (без ограничений, заметной нелинейности и "заворотов" аналоговых паразитов выше Fд/2) сигнала, начинающегося и заканчивающегося более-менее длинными фейдами -- опыт показывает, что это более-менее хороший кандидат на соблюдения требований Котельникова.
Я по прежнему не собераюсь делать из ДПФ эквалайзер, разумеестся. На самом деле ограниченный интерес представляет раздергивание сигнала на полосы под последующую раздельную огбработку с последующим сведением. Возможно это тупик / маразм / etc но -- сколько же можно следовать старинной "Modern Audio Tech.", автора не помню? Это -- "Проект-X" и наилучший результат -- не создание конкретного продукта, а возможность, хотя бы потенциальная, вернуться к своей изначальной специальности.
Кстати, а Гильберт через Фурье реально дает возможность управления стереообразом, которого, нет пока ни у кого, кажется (либо вообще нет, либо соизмеримого по качеству). [Прим. -- последний(ии) WaveLab(ы) не смотрел. И, честно говоря, не интересно.]
Добавлено:
Дествительно, если число отсчетов N, то непрерывность синусоиды будет соблюдена только для частотных отсчетов ДПФ, причем только для тех номеров k, где выполняется условие N mod k == 0. Для любых других частот, мы говоря по простому, получим щелчок с богатым спектром. (Говоря пафосно, мы столкнемся либо с явлением Гиббса, либо (в очень частном случае) с перескоком фазы на п -- эффект тот же) -- поправьте, если я не прав. Ежели мы начнем "заделывать" концы тестовой синусоиды, то по-любому поимеем сигнал с более-менее широким спектром. Но я все равно еще попрыгаю вокруг узкополоных (порядка нескольких частотных отсчетов) фильтров -- просто, чтобы закрыть тему для себя. Спасибо еще раз.
еще добавлено:
Вся эта казуистика -- отнюдь не от любви к философии. Просто я со всем этим (с несколько другими условиями экспиремента) реально наигрался, строя тестовые сигналы для тестирования ош. окр. сверхдлинных БПФ и пытаясь интерпретировать результаты, т.е. впервые 3-4 месяца назад -- до того у меня и мыслей таких не было -- все эти измышления выросли как раз из практики и попыток ее понять :( .
Если ваши решения вам нравятся -- это хорошие решения. И наоборот.

Ivan Karamazov
Сообщения: 89
Зарегистрирован: 28 окт 2010, 22:31
Откуда: Москва

Re: БИХ фильтры с фиксированной добротностью

Сообщение Ivan Karamazov »

petrov
Еще раз спасибо за задачку.
Итак, руки добрались до того, что будет, если попытаться вычислить спектр синусоиды, лежащей посередине между частотными отсчетами, т.е. с частотой (k/N + (k+1)/N)/2 == (2k+1)/2N (N -- число отсчетов). Таковая синусоида плавно размазывается практически по всем гармоникам с не слишком острым максимумом вокруг самое себя.
Принципиально то, что полученный спектр собирается назад ОДПФ с точностью до младшего бита при, по кр. мере, 16-битном представлении сигнала, что более чем приемлемо (точнее +-1 в младшем разряде). (доб. -- при 24-битном - те же +-1 ед. мл. разряда.) Точно такие же результаты дает любой "нормальный" реальный сигнал.

По поводу "один бин занулите": -- и не сомневался, что будет лажа. Но такой не ожидал:
curve.png
curve.png (8.53 КБ) 9708 просмотров
Сверху -- огибающая сигнала с зануленым отсчетом, прилегающим к (2k+1)/2N, снизу -- то же, но исходная частота k/N (контрольный). Вроде как ничего неожиданного, но в спектре верхнего сигнала не видно никаких особых "лишних" частот, что меня насторожило, посему вычел исходный сигнал их показанного и получил вот что:
delta.png
delta.png (7.71 КБ) 9708 просмотров
Нижние сигналы естественным образом вычлись (они исходно точные), полученный верхний -- отличается от исходного фазой [вроде бы] и уровнем примерно на -3 дБ. Забавно, что после вычитания исчезла огибающая, вызванная удалением частотного отсчета.
--
Я немножко поразбирался подробнее, и выяснил, что сигнал "с огибающей" -- "не просто так" -- левая половина отстает по фазе от исходного сигнала (в начале -- менее чем на п/2), правая -- опережает исходный (в конце -- менее, чем на п/2); в центральной части фазы исходного и преобразованного сигналов примерно равны. Т.е. имеет место (примерно линейный) фазовый сдвиг и очень медленная амплитудная модуляция (доб. -- на самом деле, конечно, скорее "переходной процесс"), каковой на спектре рассмотреть практически невозможно, и оно дает такой забавный эффект (при вычитании). (На нижнем рисунке по прежнему имеет место [практически линейный] фазовый сдвиг, а "амплитудная компонента переходного процесса" -- по "счастливой случайности" снята.) Возможно, я что-то просыпал, но, вроде бы, негде; тем более, что 2 раза перепроверял.
Кстати, слово "бин" я услышал впервые. Что бы оно значило на самом деле? И еще -- эксперимент, конечно, вырожденный, т.е. для полноты надо бы поиграться с "реальными" сигналами в том же духе. Во всяком случае, считаю, что Ваш тезис, petrov, не то чтобы не подтвердился, но пока не вполне (с точностью до моего понимания "бин" == "частотный отсчет").
доб. -- конечно, узкополосная фильтрация при помощи ДФТ (т.е. "в суе") -- решение неадекватное. Т.е.свято веря в ДПФ-фильтрацию получить по морде (абстрактно :D ) много легче, чем работая с фильтрами. И самое страшное -- не заметить получения по морде -- т.е. в конечном счете представить никуда не годное изделие. А вот [например] обрезать спектр сигнала из-под АЦП полосовым фильтром [например -- 2п*0.001..2п*0.499, или даже уже], при условии, что сигнал все равно переводить в комплексную форму в нереальном времени -- во многих случаях допустимо, кажется. Поправьте, пожалуйста, если я неправ.
И, конечно, тему пора переносить в ДПФ-обработку. А то от БИХ фильтра -- совсем ничего уже.
Если ваши решения вам нравятся -- это хорошие решения. И наоборот.

Ответить