Целочисленное проектирование фильтров

Все что касается фильтрации
INFERION
Сообщения: 34
Зарегистрирован: 20 окт 2015, 13:06
Откуда: Украина

Re: Целочисленное проектирование фильтров

Сообщение INFERION »

Оно?
int IIR_Filtr(int Data) {
int32 temp;
short *COEFF=(short*)IIR16_COEFF; // указатель на коэффициенты
short *D = (short*)DBuffer; // указатель на линию задержки
short *E = (short*)EBuffer;
short Xc, pvalue;
int i;

pvalue = (short)Data;
for(i=0;i<IIR16_NBIQ;i++)
{
Xc = pvalue;
temp = (long)(*COEFF++)*Xc + (long)(*COEFF++)*(*D++) + (long)(*COEFF++)*(*D--) + (long)(*COEFF++)*(*E++) + (long)(*COEFF++)*(*E--);
*D++ = *D;
*E++ = *E;
pvalue = (short)(temp>>*COEFF++);
*D++ = Xc;
*E++ = pvalue;

}
return (int) pvalue;
}
Да, выглядит куда сложнее реализации контура "в лоб". Интересно было бы ещё сравнить шумовые характеристики в целочисленной системе с одинаковой разрядностью. Дело в том, что контур, реализованный "в лоб", автоматом реализует ещё и т.н. noise sharpening. Это подтверждается во-первых спектроанализатором, а во вторых абсолютным отсутствием потерь в таком контуре с бесконечной добротностью (не смотря на присутствие ошибок округления при вычислениях).
Vlad27 писал(а):А что тут не уметь Для проектирования фильтра в z-плоскости надо просто
написать программу расчёта H(z) фильтра для заданной топологии...
Для начала - мне сложно понять что из себя вообще представляет это преобразование. Какие оно отображает параметры и в каком виде. Об этом нигде не пишут - везде язык математики и преподносится так, будто там всё и так само собою разумеющееся и очевидное. Мол держите инструмент и не важно как он работает - умные дяди за вас всё уже подумали. Просто знайте, что полюса должны быть тут и вот такие, а дальше оно само всё как-то получится...
К примеру, преобразованием Фурье можно разложить изображение на два других - т.н. модуль и аргумент комплексного числа. Ну и что это такое и как с ним работать? Ну модуль, я знаю что такое модуль. И что такое аргумент - тоже знаю. Я даже знаю что они представляют из себя на Декартовой системе координат и как их находить. Но какая мне с этого практическая польза, а? Я исказил изображение и получил какой-то мусор... И тут находятся действительно нормальные люди, которые называют эти вещи амплитудой (магнитудой) и фазой, описывая изображения как спектральную характеристику и положение гармоник в пространстве. И показывают наглядно что с этим можно сделать: http://www.imagemagick.org/Usage/fourier/ - ну гораздо же понятнее. Где подобное по Z-преобразованию? Я не находил...
Vlad27 писал(а):Очень рекомендую - почитайте классические книги по ЦОС (Сергиенко, Айфичера и др. - могу выслать вам их в .djvu по эл.почте, если сделаете мне запрос), тогда многое станет понятным.
Буду признателен, однако если там всё описано в таком же стиле как на dsplib - боюсь, моего порога вхождения будет недостаточно...

Vlad27
Сообщения: 86
Зарегистрирован: 06 апр 2015, 10:09
Откуда: г, Нижний Новгород (rif27@bk.ru)

Re: Целочисленное проектирование фильтров

Сообщение Vlad27 »

""Интересно было бы ещё сравнить шумовые характеристики в целочисленной системе с одинаковой разрядностью.""

Да шумы ЦФ с вещественной арифметикой вычислений (ВЦФ) и целочисленного
фильтра (ЦЦФ) весьма существенно различаются (привожу презентацию магистра
по этому вопросу - почитайте).
А книги - это учебники по ЦОС, там всё очень доступно излагается, стоит только
захотеть понять. Вышлю, если буду знать куда (ваш e-mail ?).
У меня pbox27@yandex.ru
P.S. А программа - это для расчёта отклика ЦЦФ по заданному массиву его
коэфф-тов. Можно, естественно, считать любые фильтры, не только режекторные
Вложения
Prezent.rar
(859.39 КБ) 311 скачиваний
Последний раз редактировалось Vlad27 28 авг 2017, 11:57, всего редактировалось 2 раза.

Vlad27
Сообщения: 86
Зарегистрирован: 06 апр 2015, 10:09
Откуда: г, Нижний Новгород (rif27@bk.ru)

Re: Целочисленное проектирование фильтров

Сообщение Vlad27 »

Вот ещё одно методпособие по ЦФ из 4-х лабораторок.
Полезная вещь.
Вложения
practicum_DSP1.rar
(863.98 КБ) 285 скачиваний

Vlad27
Сообщения: 86
Зарегистрирован: 06 апр 2015, 10:09
Откуда: г, Нижний Новгород (rif27@bk.ru)

Re: Целочисленное проектирование фильтров

Сообщение Vlad27 »

INFERION писал(а): У меня сейчас много вопросов к ВЧ фильтрам и фазовым фильтрам. Они не дают такую же ГВЗ как НЧ фильтры, не смотря на идентичную аппроксимацию.
Ну почему не дают - вот рекурсивный ФВЧ с практически линейной фазой
(постоянной ГВЗ) в полосе пропускания.
Надо их просто по другому считать, не пользуясь никакой
аппроксимацией требуемых характеристик (АЧХ и ФЧХ).
А какие вам нужны графики АЧХ и ФЧХ (ГВЗ) по линейке ваших фильтров?
Вложения
ФЧХ ФВЧ
ФЧХ ФВЧ
Faza_5zv_Fd=2Gc.gif (6.92 КБ) 5713 просмотров
АЧХ ФВЧ
АЧХ ФВЧ
Gain_R10_red_otn.gif (6.71 КБ) 5724 просмотра
Последний раз редактировалось Vlad27 05 ноя 2015, 12:33, всего редактировалось 1 раз.

INFERION
Сообщения: 34
Зарегистрирован: 20 окт 2015, 13:06
Откуда: Украина

Re: Целочисленное проектирование фильтров

Сообщение INFERION »

Vlad27 писал(а): Надо их просто по другому считать, не пользуясь никакой
аппроксимацией требуемых характеристик (АЧХ и ГВЗ).
Дело в том, что речь идёт скорее о физических фильтрах. Вот имея RLC звено (фильтр 2-го порядка) я не могу получить от него одинаковый ГВЗ в разных вариантах включения компонентов в этой цепи (будь то ФНЧ vs ФВЧ, или полосовой vs режекторный фильтры). Т.к. я реализую прямые аналоги физических фильтров и подход к их проектированию принципиально иной - мне интересно как от физических ФВЧ Бесселя получают ровную ГВЗ в полосе пропускания. Должны же как-то получать?
Vlad27 писал(а): А какие вам нужны графики АЧХ и ГВЗ по линейке ваших фильтров?
Я ещё не определился. Мне нужен кроссовер на акустическую систему. Перестраиваемый и на 3 полосы (раздел на 200Гц и 2000Гц). Важно, чтоб сигнал не разваливался во времени. Вообще. Т.е. была хорошая импульсная характеристика и сигнал на всех полосах был синфазным. Полосы должны максимально мягко друг друга перекрывать, но НЧ канал не должен "встречаться" с ВЧ каналом (подавление хотя бы децибел на 20). Пересчёт коэффициентов должен быть максимально быстрым, т.к. полосы регулируются под нагрузку на головки в реальном времени. Поэтому реализация через колебательные системы выгодна - там только резонансную частоту двигаешь и всё. Теоретически, я могу хоть Баттерворта использовать с фазовыми фильтрами. Ресурсы у меня ограничены, порядка нескольких сотен тактов на ARM Cortex M4.

Vlad27
Сообщения: 86
Зарегистрирован: 06 апр 2015, 10:09
Откуда: г, Нижний Новгород (rif27@bk.ru)

Re: Целочисленное проектирование фильтров

Сообщение Vlad27 »

INFERION писал(а): Дело в том, что речь идёт скорее о физических фильтрах. Вот имея RLC звено (фильтр 2-го порядка) я не могу получить от него одинаковый ГВЗ в разных вариантах включения компонентов в этой цепи (будь то ФНЧ vs ФВЧ, или полосовой vs режекторный фильтры). Т.к. я реализую прямые аналоги физических фильтров и подход к их проектированию принципиально иной - мне интересно как от физических ФВЧ Бесселя получают ровную ГВЗ в полосе пропускания.
Если вы хотите проектировать физически реализуемый ЦФ по аналоговому его
RLC-прототипу, то в таком прототипе нельзя получить линейною фазу у ФВЧ,
а в цифровом - вполне можно. На рис - экспериментальная ФЧХ цифрового ФВЧ,
физически реализованного на ПЛИС.
Вложения
Общая ФЧХ рекурсивного ФВЧ
Общая ФЧХ рекурсивного ФВЧ
Pan_Faza_1line_0.gif (4.32 КБ) 5709 просмотров
ФЧХ в полосе пропускания
ФЧХ в полосе пропускания
Pan_Faza_1line_pol_0.gif (4.22 КБ) 5709 просмотров
Форма выходного сигнала на Fn
Форма выходного сигнала на Fn
Signal_50kHc.gif (5.5 КБ) 5709 просмотров
Последний раз редактировалось Vlad27 05 ноя 2015, 17:34, всего редактировалось 3 раза.

INFERION
Сообщения: 34
Зарегистрирован: 20 окт 2015, 13:06
Откуда: Украина

Re: Целочисленное проектирование фильтров

Сообщение INFERION »

Вот, уже теплее. Т.е. я никак не могу изменить свойства реактивных компонентов до не реализуемых физически, но работающих в цифровом варианте? Вместо этого мне необходимо использовать классический метод с Z-преобразованием и линиями задержки, верно? Построить корректирующий фазовый фильтр, по его аналогу на ОУ, я тоже не смогу, так? Тогда я не понимаю, как в аналоговых микшерных пультах используют многополосные эквалайзеры на таких фильтрах. Внутри - пачка ОУ...

Vlad27
Сообщения: 86
Зарегистрирован: 06 апр 2015, 10:09
Откуда: г, Нижний Новгород (rif27@bk.ru)

Re: Целочисленное проектирование фильтров

Сообщение Vlad27 »

INFERION писал(а): Построить корректирующий фазовый фильтр, по его аналогу на ОУ, я тоже не смогу, так? Тогда я не понимаю, как в аналоговых микшерных пультах используют многополосные эквалайзеры на таких фильтрах.
В аналоговых многополосных эквалайзерах невозможно обеспечить фазовую
линейность, как и в аналоговых прототипах ФВЧ и ФНЧ. А в цифровых - можно
обеспечить требуемую коррекцию АЧХ при линейности фазы в полосе
пропускания.

Kit_nn
Сообщения: 5
Зарегистрирован: 01 ноя 2015, 22:31
Откуда: Нижний Новгород

Re: Целочисленное проектирование фильтров

Сообщение Kit_nn »

INFERION писал(а): Тогда я не понимаю, как в аналоговых микшерных пультах используют многополосные эквалайзеры на таких фильтрах. Внутри - пачка ОУ...
Легко :D Используют только для корректировки АЧХ. А ФЧХ на пульте регулируется только одним способом - кнопка "Invert Phase" на каждом канале. Основную работу за пультом выполняют уши звукорежиссера, хорошие звукачи определяют провалы из-за противофазных сигналов и чаще всего давят эту частоту у одного из источников. Хороших звукачей мало.

Кстати, современные цифровые микшерные пульты в этом плане гораздо гибче и удобнее. Во всех крупных (или небольших, но новых) концертных залах у нас в городе уже стоят цифровые. Испортить звук на них гораздо сложнее, но тоже можно.

Кстати, в АС с разделением частот по разным динамикам помимо аналоговых фильтров используют акустические фазовращатели для компенсации. Чаще всего именно по этой причине внутри колонок динамики разделены перегородками с демпферами.

INFERION
Сообщения: 34
Зарегистрирован: 20 окт 2015, 13:06
Откуда: Украина

Re: Целочисленное проектирование фильтров

Сообщение INFERION »

Vlad27 писал(а): В аналоговых многополосных эквалайзерах невозможно обеспечить фазовую
линейность, как и в аналоговых прототипах ФВЧ и ФНЧ
ФНЧ Бесселя то как раз и даёт минимально-фазовую характеристику, за которую и любят этот фильтр в аудио приложениях. Линейная фаза и не нужна, она только с КИХ фильтрами возможна. В общем, поизучаю тему и потом уже буду задавать вопросы. Меня именно целочисленные фильтры интересуют. Цифровые RLC аналоги позволяют контролировать ошибки квантования и вытеснять их в ВЧ область, повышая эффективную разрядность системы. А вот что творится в классическом фильтре с остатком от деления (умножения на дробный множитель, не суть) - я пока не понимаю...
Kit_nn писал(а): Кстати, современные цифровые микшерные пульты в этом плане гораздо гибче и удобнее.
У них предлагается выбор между типами фильтров? Можно отказаться от горячо любимой программистами (не звукачами) симметричной импульсной характеристики, которая даёт пре-эхо? Как в таком случае там обстоят дела с фазой?
Kit_nn писал(а): Кстати, в АС с разделением частот по разным динамикам помимо аналоговых фильтров используют акустические фазовращатели для компенсации. Чаще всего именно по этой причине внутри колонок динамики разделены перегородками с демпферами.
Ничего не понял. Акустические фазовращатели это фазоинверторы что-ли? Которые ставят просто для расширения диапазона в области НЧ (портя этим импульсную характеристику и обеспечивая перегрузку головки на частотах ниже резонанса "трубы" на пару с резким спадом в области НЧ)? Под перегородками имеются ввиду отдельные камеры для СЧ звена? Ну так это нормально, что у каждого звена в АС должно быть своё акустическое оформление и своя полоса. Демпферы - в смысле наполнители? У них задача - уменьшить адиабатический процесс, в сторону изотермического. Повысив тем самым эффективный объём. Тут уже термодинамика работает (как бы странно это не звучало - акустика является ещё и тепловой машиной).

Ответить