Синтез и анализ цифровых фильтров с использованием программного, страница 3
Описание файла
PDF-файл из архива "Синтез и анализ цифровых фильтров с использованием программного", который расположен в категории "". Всё это находится в предмете "радиотехнические цепи и сигналы (ртцис)" из 5 семестр, которые можно найти в файловом архиве МАИ. Не смотря на прямую связь этого архива с МАИ, его также можно найти и в других разделах. Архив можно найти в разделе "книги и методические указания", в предмете "ртцис (отц)" в общих файлах.
Просмотр PDF-файла онлайн
Текст 3 страницы из PDF
Возможно ихреализовать и в виде канонических форм:- 14 x[n]v[n]b10w[n]1/z- a11b201/zb11- a21b211/z- a22b22Алгоритм в данном случае содержит три уравнения:v[n] = x[n] – a11 v[n-1]w[n] = b10 v[n]+ b11v[n-1] – a21w[n-1] – a22 w[n-2]y[n] = b20 w[n]+ b21 w[n-1]+ b22 w[n-2]Можно реализовать каскады и в виде транспонированных структур:x[n]b10w[n]b201/zb11y[n]1/zv1[n]-a11u1[n]-a21b211/zb22u2[n]-a22y[n]- 15 Теперь алгоритм включает в себя пять уравнений:w[n]= b10 x[n] +v1[n-1]v1[n]= b11 x[n] – a11 w[n]y[n]= b20 w[n]+u1[n-1]u1[n]= b21 w[n] – a21 y[n]+ u2[n-1]u2[n]= b22 w[n] – a22 y[n]Анализ показывает, что каскадная форма рекурсивного фильтра обладаетменьшей чувствительностью частотной характеристики цифрового фильтра кточности представления коэффициентов фильтра, чем прямая, каноническаяи транспонированная формы. Это означает, что при одинаковой разрядностиокруглённых коэффициентов b и a частотная характеристика фильтра вкаскадной форме будет в меньшей степени отличаться от расчётной, чемхарактеристики некаскадных форм.Для получения коэффициентов передаточных функций для каскадногопредставленияфильтраможноиспользоватьоператорMatLabпреобразования фильтра в соединение секций второго порядка (sos – secondorder sections):>> [sos,g] = tf2sos (b, a);где b,a – векторы-строки коэффициентов передаточной функции цифровогофильтра, sos – шестистолбцовая матрица, каждая строка которойсоответствует одной секции и имеет структуру[ b0 b1 b2 1 a1 a2 ],что соответствует передаточной функции секции вида−1K(z) :=b 0 + b 1⋅z−11 + a 1⋅z−2+ b 2⋅ z−2+ a 2⋅zВ частном случае какая-либо из секций может иметь первый порядок; тогдасоответствующие элементы строки матрицы sos будут нулевыми:[ b0 b1 0 1 a1 0].
Передаточная функция, соответствующая такой строке:−1K(z) :=b 0 + b 1⋅z−11 + a 1⋅z- 16 g – масштабный коэффициент, который реализуется в схеме в видеотдельного умножителя либо учитывается путём умножения на негокоэффициентов b одного из каскадов.При формировании передаточных функции секций группируются парыкомплексно-сопряжённых полюсов с комплексно-сопряжёнными нулями,расположенными наиболее близко к данным полюсам. Действительныеполюсы группируются в пары, в которых значения полюсов наиболее близкипо модулю.
Строки в матрице sos располагаются в порядке приближенияполюсов, реализуемых соответствующими секциями, к единичнойокружности.Для вывода рассчитанной матрицы sos на монитор достаточно не ставитьточку с запятой в конце оператора или набрать имя матрицы после значка >>.Обратное преобразование матрицы sos в коэффициенты b и a фильтраосуществляется оператором:>> [b, a]= sos2tf (sos, g);6.5.
Параллельная структураПредставим передаточную функцию K(z) в виде суммы дробей:K(z) :=r1−11 − p 1⋅z+r2−1+ ....+1 − p 2⋅zrN−1−11 − p N⋅z+ k 0 + k 1⋅z− (M−N)+ ....+ k MN⋅z,(5)где r1 , r2 , …rN - вычеты, p1, p2 , … pN – полюсы, k0, k1, …kMN – константы.Последние появляются в разложении, если M≥N, то есть прямых связей вструктуре фильтра не меньше, чем обратных. Подобное разложениеосуществляется в MatLab с использованием оператора residuez. После вводаили расчёта коэффициентов системной функции, представленных векторамиb и a, нужно задать:>> [r, p, k]= residuez (b, a)Если не ставить точку с запятой в конце строки и нажать клавишу <Enter>,то будут выведены значения вектора вычетов r, вектора полюсов p и векторакоэффициентов k.
При действительных b и a значения вычетов и полюсовмогутобразовыватькомплексно-сопряжённыепарыилибытьдействительными. Дроби с комплексно-сопряжёнными значениями вычетови полюсов нужно объединить в одну дробь второго порядка. Ей будетсоответствовать прямая, каноническая или транспонированная структура- 17 второго порядка. Например, применение оператора residuez привело кследующему результату:>> [r, p, k]= residuez (b, a)r=-0.5000 - 0.1000i-0.5000 + 0.1000i2.1000p=0.4000 - 0.7000i0.4000 + 0.7000i0.6000k=1.5000Для объединения дробей, соответствующих первым двум вычетам и первымдвум полюсам в одну дробь второго порядка нужно задать:>> [b1, a1]= residuez (r(1:2), p(1:2), [ ] )Здесь функция residuez в обратном направлении: объединяет двесуммируемые дроби в одну и вычисляет коэффициенты полиномовчислителя и знаменателя этой дроби.
[ ] – символ пустой матрицы (не задаёмкоэффициент k). Будет выведено:b1=-1.00000.2600a1=1.0000 -0.80000.6500что соответствует дроби−1−1 + 0.26⋅ z−11 − 0.8⋅ z−2.+ 0.65z⋅Покажем теперь, как изображается параллельная структура и как записатьдля неё алгоритм. Пусть, например,K( z) := k 0 +−1b 10−11 + a 11⋅ z+b 20 + b 21⋅ z−11 + a 21⋅ z−2+ a 22⋅ z.- 18 Такому разложению соответствует схемаk0x[n]b10v[n]-a11b20y[n]1/zw[n]1/z1/zb21-a211/z-a22Алгоритм:v[n]= b10 x[n] – a11 v[n-1]w[n]= b20 x[n]+b21 x[n-1] – a21 w[n-1] – a22 w[n-2]y[n]= k0 x[n]+v[n]+w[n]Разумеется, отдельные части схемы можно реализовывать в видеканонических или транспонированных структур (см.
подраздел 6.4 ). Так жекак и каскадная форма, параллельная обеспечивает меньшуючувствительность частотных и временных характеристик фильтра к точностипредставления коэффициентов по сравнению с прямой, канонической итранспонированной структурами. Это позволяет при реализации цифровогофильтра в виде специализированного вычислительного устройстваобеспечивать заданные допуски на отклонение характеристик от расчётныхпри меньшем количестве двоичных разрядов, используемых дляпредставления коэффициентов фильтра.- 19 6.6. Нерекурсивный фильтрСтруктура нерекурсивного не содержит обратных связей.
Значит, всекоэффициенты ak равны нулю, кроме a0=1. Передаточная функция такогофильтраK(z)=b0 + b1z –1 + b2z –2 +…+bMz –MСхема:x[n]1/zb01/zb11/zb2bMy[n]Алгоритм цифровой фильтрации:y[n]= b0x[n]+b1x[n-1]+b2x[n-2]+…+bMx[n-M].7. Просмотр характеристик синтезированного цифровогофильтра.Для просмотра частотных и временных характеристик синтезированногоцифрового фильтра используют оператор>> fvtool (b, a)После задания функции fvtool (filter visualization tool) нужно нажатьклавишу <Enter>. Аргументы функции – коэффициенты числителя изнаменателя передаточной функции, расположенные в порядке возрастанияотрицательных степеней z (см.
выражение (3)). Для просмотра характеристикнескольких фильтров одновременно нужно указать несколько пар векторов всписке входных параметров функции fvtool:>> fvtool (b1, a1, b2, a2, b3, a3)- 20 После вызова функции fvtool откроется графическое окно. На панелиинструментов в верхней части этого окна имеются значки характеристикфильтра.
Подводя курсор к одному из значков и нажимая левую кнопкумыши, можно вывести на экран график желаемой характеристики. Можнопросмотреть• амплитудно-частотную характеристику (АЧХ, magnitude response),• фазочастотную характеристику (ФЧХ, phase response),• АЧХ и ФЧХ совместно,• xарактеристику группового времени запаздывания (group delay),• импульсную характеристику (impulse response),• переходную характеристику (step response),• диаграмму полюсов и нулей (pole/zero plot),• коэффициенты фильтра (filter coefficients).Для детального просмотра участков графика используется кнопка zoom inпанели инструментов. Щёлкнув по этой кнопке, нужно затем подвестикурсор мыши к той точке графика, которая должна оказаться в центреувеличенного изображения и нажать левую кнопку мыши.
Можно щёлкатьлевой кнопкой мыши многократно, что будет приводить ко всё большемуувеличению. Возврат к исходному состоянию осуществляется щелчком поправой кнопке мыши, что соответствует нажатию кнопки zoom out панелиинструментов.8. Синтез цифрового фильтра с использованием программыfdatoolРасчёт коэффициентов передаточной функции цифрового фильтра призаданных требованиях к частотной характеристике может быть произведён сиспользованием тех же самых функций, которые применяются для расчётааналоговых фильтров (см. раздел 4).
Отличие заключается в том, чтостроковый параметр ‘s’ вводить не нужно. Кроме того, все частоты (w0, wn,wp, ws) указываются в долях от частоты Найквиста (Fs/2), то есть лежат винтервале от 0 до 1. Есть и специальный пакет программ, где собраны многиеиз функций, рассмотренных нами по отдельности. Он носит название fdatool(filter design & analysis tool). Этот пакет содержит удобный пользовательскийинтерфейс и позволяет производить расчёт передаточной функциирекурсивных и нерекурсивных фильтров разнообразными методами синтеза,просматривать характеристики фильтра, анализировать изменениехарактеристик при квантовании коэффициентов фильтра, отсчётов входногосигнала и результатов промежуточных вычислений.
Возможна работа сразличными структурами фильтра. Вызов пакета осуществляется путём вводаего имени в командном окне MatLab:>> fdatool- 21 После ввода имени с клавиатуры следует нажать клавишу <Enter>.На экране монитора появится окно программы fdatool. Кроме основногоменю и панели инструментов здесь содержится текущая информация оструктуре фильтра, его порядке, устойчивости (Current Filter Information);график допусков для АЧХ (в дБ) (Filter Specifications), а также вкладка DesignFilter для задания типа фильтра, его класса, метода синтеза, порядка фильтра,частоты дискретизации, граничных частот полос пропускания изадерживания и допустимых затуханий в этих полосах.