Текст
                    ГЛАВА 2 Аналоговые
системы
Данная глава, так же как и предыдущая, посвящена не цифровой, а аналоговой
обработке сигналов. Ее цель — дать читателю представление о характеристиках
и способах описания аналоговых систем. Понимание этих вопросов необходимо
для более глубокого восприятия теории дискретных систем, поскольку многие
методы анализа аналоговых и дискретных систем находятся в тесном родстве.
Кроме того, в основе ряда методов проектирования дискретных фильтров лежит
использование аналоговых прототипов, поэтому квалифицированное примене-
ние этих методов также требует знакомства с теорией аналоговых систем.
Итак, данная глава носит обзорный характер, чем и объясняются сжатое изло-
жение и отсутствие конкретных примеров анализа прохождения сигналов через
аналоговые системы.
ЗАМЕЧАНИЕ -----------------------------------------------------------
Положения, приводимые в данной главе, в литературе часто называют теорией линейных
цепей с постоянными параметрами (см., например, [1, 2]). В данной книге используется
термин «система», чтобы подчеркнуть высокоуровневый характер рассмотрения — систе-
ма описывается только своими числовыми и функциональными характеристиками, без
привлечения конкретных принципиальных схем.
Классификация систем
Системы, используемые для преобразования сигналов, имеют самые разнообраз-
ные физические характеристики и могут классифицироваться по различным при-
знакам.
Важнейшим классификационным признаком является линейность или нели-
нейность системы. Линейными называются системы, для которых выполняется
принцип суперпозиции: реакция на сумму сигналов равна сумме реакций на эти
сигналы, поданные на вход по отдельности. Системы, для которых принцип су-
перпозиции не выполняется, называются нелинейными.

88 Глава 2. Аналоговые системы Следующим критерием классификации систем является постоянство или непо- стоянство их характеристик во времени. Если произвольная задержка подавае- мого на вход сигнала приводит лишь к такой же задержке выходного сигнала, не меняя его формы, система называется стационарной, или системой с постоянны- ми параметрами. В противном случае система называется нестационарной, па- раметрической или системой с переменными параметрами. Два указанных способа классификации делят системы на четыре класса. В дан- ной книге речь пойдет только о линейных стационарных системах. Характеристики линейных систем Для рассматриваемых в этой главе линейных систем с постоянными параметра- ми справедливы принципы суперпозиции и стационарности. Это сильно упро- щает анализ прохождения сигналов через такие системы, позволяя использовать для этого различные характеристики, речь о которых пойдет в данном разделе. Импульсная характеристика Линейность и стационарность позволяют легко найти реакцию системы на лю- бой входной сигнал, зная всего одну функцию — реакцию системы на поданную на вход дельта-функцию. Эта реакция называется импульсной характеристикой системы и обозначается h(t). Любой сигнал может быть представлен в виде свертки самого себя с дельта- функцией (см. фильтрующее свойство дельта-функции (1.1) в разделе «Класси- фикация сигналов» главы 1): 00 5пх(0= рвх(О8(£-Не- линейная система преобразует относительно переменной t все функции, входя- щие в это выражение. Входной сигнал sBX(t) при этом превращается в выходной сигнал sBUX(t), а дельта-функция 8(Г - Г') — в импульсную характеристику h(t -t'). Функция звх(Г') от t не зависит и поэтому остается без изменений. В результате получается формула, показывающая, что выходной сигнал линейной системы с постоянными параметрами равен свертке выходного сигнала и импульсной ха- рактеристики системы: *вых(0= JsBX(t')/2(t-i')dt'- (2.1) ЗАМЕЧАНИЕ —------------------------------------------------------------ Если входной и выходной сигналы системы имеют одинаковую размерность, то импульс- ная характеристика, как и дельта-функция времени, имеет размерность частоты. Формирование выходного сигнала можно пояснить следующим образом. Беско- нечно малый «кусочек» входного сигнала звх (Г ) шириной dt' порождает на выхо-
Характеристики линейных систем 89 де отклик, представляющий собой импульсную характеристику, умноженную на sBX(t')dt’ и задержанную по времени на t', то есть s^ft'yhft(рис. 2.1). Чтобы получить значение выходного сигнала в момент времени t, нужно сло- жить вклады от всех этих бесконечно малых «кусочков», то есть выполнить ин- тегрирование по t', что и дает приведенную выше формулу свертки (2.1) Рис. 2.1. Формирование выходной реакции цепи Переходная характеристика Переходной характеристикой называют реакцию системы на поданную на вход функцию единичного скачка. Обозначается переходная характеристика как g(t). Поскольку дельта-функция — это производная от единичного скачка, импульс- ная и переходная характеристики связаны друг с другом операциями дифферен- цирования и интегрирования: at g(t)= jh(t'ydt’. Условие физической реализуемости Любая физически реализуемая система обладает свойством причинности — вы- ходная реакция не может возникнуть раньше входного сигала. Отсюда следует, что для физически реализуемой системы импульсная и переходная характери- стики должны быть равны нулю при t < 0. ЗАМЕЧАНИЕ -------------------------------------------------- Под физической реализуемостью здесь понимается только выполнение свойства причин- ности, а не возможность создать систему в каком-нибудь конкретном виде. Дополнитель- ные требования, которым должны удовлетворять характеристики систем, реализуемых в виде цепей с сосредоточенными параметрами, будут рассмотрены в этой главе далее, в раз- деле «Способы описания линейных систем». Комплексный коэффициент передачи Выходной сигнал линейной системы, как было показано выше, представляет со- бой свертку входного сигнала и импульсной характеристики. Преобразование Фурье от свертки дает произведение спектров сворачиваемых сигналов, так что
90 Глава 2. Аналоговые системы в частотной области прохождение сигнала через линейную систему описывается очень просто: \„1Х(ю) = 5вх(®)Х(®). Здесь Х(®) — преобразование Фурье импульсной характеристики системы: К(®)= -00 Эта функция называется комплексным коэффициентом передачи системы, а ее модуль и фаза — соответственно амплитудно-частотной (АЧХ) и фазочастотной (ФЧХ) характеристиками системы. Значение Х(®) показывает, как изменяется при прохождении через систему комп- лексная амплитуда синусоиды с частотой го. АЧХ показывает, во сколько раз изменится амплитуда синусоиды, а ФЧХ — каков будет полученный ею фазо- вый сдвиг. Коэффициент передачи по мощности Мощность гармонического сигнала пропорциональна квадрату его амплитуды и не зависит от его фазы. Поэтому коэффициент передачи по мощности равен квадрату модуля комплексного коэффициента передачи, то есть квадрату АЧХ: А'_ш(со) = К(ш)2<’(со)=|К(ш)|2. Фазовая и групповая задержка При преобразовании сигнала линейной системой различают два вида задержки. Фазовая задержка (phase delay) на частоте ® — это задержка гармонического ко- лебания с частотой ®, проходящего через систему. Значение фазовой задержки равно фазовому сдвигу, вносимому системой, деленному на частоту гармониче- ского колебания, с обратным знаком: тф(®) = -<рк(®)/®- Групповая задержка (group delay) на частоте го — это задержка огибающей узко- полосного сигнала со средней частотой ®. Групповая задержка равна производ- ной от ФЧХ системы с обратным знаком: тгр - -d<pK(o>)/d®. (2.2) Пример, поясняющий разницу между фазовой и групповой задержкой, будет при- веден применительно к дискретным системам (см. далее раздел «Расчет группо- вой задержки дискретной системы» главы 4). Взаимный спектр выходного и входного сигналов Взаимный спектр выходного и входного сигналов линейной системы легко най- ти, исходя из определения взаимного спектра (1.22) (см. раздел «Связь между корреляционными функциями и спектрами сигналов» главы 1):
Преобразование случайного процесса в линейной системе 91 . 5ВЬКВХ(®>= 5и,и(<о)5*га(<о) = 5bx(co)K(co)5;x(<d) = |5их((о)|2к(Ю). (2.3) Отсюда следует, что комплексный коэффициент передачи системы равен отно- шению взаимного спектра выходного и входного сигналов к энергетическому спектру входного сигнала: ч ^вых вх К(со) = 1—=—12" • ЗАМЕЧАНИЕ ------------------------------------------------------- Аналогичная формула, связывающая коэффициент передачи со спектрами случайных сиг- налов, имеет большое значение для идентификации систем, то есть оценки комплексного коэффициента передачи по результатам совместного наблюдения входного и выходного сигналов. Взаимная корреляция между входом и выходом Применив обратное преобразование Фурье к формуле (2.3), получим выражение для ВКФ выходного и входного, сигналов (используем при этом формулу (1.23) из раздела «Связь между корреляционными функциями и спектрами сигналов» главы 1): Ввых_вх (т) = f Ввх (*' Ж* - Т' )с?т'. -Q0 Итак, ВКФ выходного и входного сигналов линейной системы представляет со- бой свертку КФ входного сигнала с импульсной характеристикой системы. Преобразование случайного процесса в линейной системе Как говорилось в главе 1, случайный процесс представляет собой ансамбль реа- лизаций. Каждая отдельная реализация является детерминированным сигналом, и ее преобразование линейной системой анализируется с помощью формул, при- веденных в этой главе ранее. В данном же разделе будет рассмотрено именно преобразование статистических характеристик случайного процесса. При этом подразумевается стационарный случайный процесс с нулевым математическим ожиданием. Спектральная плотность мощности Поскольку спектром случайного процесса считается спектр его мощности, он преобразуется в линейной системе пропорционально коэффициенту передачи по мощности: ^вых(ю) = 1УВ!(ю)Кмми(®) = W„x(co) |k(co)|2. (2.4)
92 Глава 2. Аналоговые системы Корреляционная функция Согласно теореме Винера—Хинчина, корреляционная функция случайного про- цесса связана с его спектром преобразованием Фурье (см. раздел «Теорема Ви- нера—Хинчина» главы 1). Применение преобразования Фурье к формуле (2.4) дает свертку: ЯВЫхО)= рвДт')ВДт-т')йт'. (2.5) —00 Здесь ВЛ(т) — результат обратного преобразования Фурье от коэффициента пе- редачи по мощности | К((о)|2. Согласно разделу «Связь между корреляционными функциями и спектрами сигналов» главы 1, это преобразование дает корреляци- онную функцию импульсной характеристики системы: (т) = J h{t)h(t - x)dt. Дисперсия Дисперсия случайного процесса равна значению его корреляционной функции при т - 0. Подстановка этой величины в формулу (2.5) для выходной корреляци- онной функции дает Дь,х = ^вых(О) = f КВх(т' )ВА(т' )Л'. (2.6) -00 Можно рассчитать дисперсию и в частотной области (см. формулу (1.46) в раз- деле «Спектральные характеристики случайных процессов» главы 1). Восполь- зовавшись приведенной выше формулой (2.4) для выходного спектра, получаем: £Bux=^fWBx(co)|K(co)| Jco. (2.7) — 00 Плотность вероятности В общем случае плотность вероятности случайного процесса на выходе линей- ной системы не поддается расчету простыми средствами. Исключение состав- ляет частный случай нормального случайного процесса, поскольку нормальное распределение остается нормальным при любых линейных преобразованиях. Поэтому нормальный случайный процесс с нулевым средним значением после прохождения через линейную систему сохранит свою нормальность и нулевое математическое ожидание, а его дисперсия может быть рассчитана по одной из формул (2.6), (2.7) предыдущего раздела. Частный случай белого шума Если входной случайный процесс является белым шумом (см. раздел «Теорема Винера—Хинчина» главы 1), все приведенные ранее формулы существенно упро- щаются:
Способы описания линейных систем 93 ^0|ад|2, яВЫх (т) = w0Bh (т)=w() J h(t)Kt - T)dt, Щ 001 .2 Ц,ь,х = ВД(0)=Wo Jh^tydt=-i f|K(co)| fa. —сп ^‘*'r —<x> Способы описания линейных систем В данном разделе рассматриваются различные эквивалентные способы пред- ставления характеристик линейных систем, реализуемых в виде цепей с сосредо- точенными параметрами. Понимание сущности этих вариантов представления и способов перехода от одного представления к другому важно для правильного использования соответствующих функций MATLAB. Дифференциальное уравнение Связь между входным и выходным сигналами линейной цепи с сосредоточенны- ми параметрами может быть выражена в виде дифференциального уравнения (ДУ) вида d"y dn-ly d"-2y a„ —- + 1-----, + a„-2------г- + dt” dt"'1 dt”2 , dmx , dm~lx , — ------p £) . ----<— m dtm dt”-1 dy -...+ a,-£ + а0г/(О = at dm~2x > о------ -2 , Дг , / j.\ +bi — + bBx(t). at (2-8) Здесь x(t) — входной сигнал, y(t) — выходной сигнал, а, и bt — постоянные коэффициенты. Таким образом, цепь описывается наборами коэффициентов {а,} и {Ьф Должно выполняться неравенство т < п, то есть максимальный порядок про- изводной входного сигнала не может превышать максимального порядка произ- водной выходного сигнала. Это связано с невозможностью реализации операции «чистого» дифференцирования аналоговой цепью. Значение п называется по- рядком цепи. Если задать конкретный вид входного сигнала x(t), получится линейное неодно- родное дифференциальное уравнение с постоянными коэффициентами. Решение этого ДУ дает выходной сигнал y(t). Функция передачи Если применить к обеим частям приведенного в предыдущем разделе ДУ (2.8) преобразование Лапласа, получится выражение для операторного коэффициен- та передачи, или функции передачи цепи (transfer function):
94 Глава 2. Аналоговые системы H(s) = Ь^з™ + bm_lsm~i + bm_2sm~2 +...+ blS + bB ansn +an_ts”~l + a„_2s"~2 +...+ ats + a0 (2-9) Здесь at и b, — те же постоянные коэффициенты, что и в приведенном ранее ДУ. ЗАМЕЧАНИЕ -------------------------------------------------------- Преобразование Лапласа [1-3] можно рассматривать как обобщение преобразования Фу- рье, при котором частота может принимать комплексные значения. Рассчитывается пря- мое преобразование Лапласа как F(s) = !^rcf(Oe~scdt (сравните эту формулу с формулой прямого преобразования Фурье (1.11)). В этой главе для нас важно только то, что преоб- разование Лапласа является линейным и при дифференцировании сигнала во времени его преобразование Лапласа умножается па комплексную частоту s. Комплексный коэффициент передачи получается из функций передачи (2.9) пу- тем подстановки s = Jco: K((o) = + ^-i(»'"~‘ + УгОЛ" +...+ bl(jm)+b0 a„(ja>)n +а„-1О«)и'1 +«я-2(»и‘2 +...+ a1(»+a0 Нули и полюсы Разложив числитель и знаменатель функции передачи (2.9) на множители, мы получим функцию передачи в следующем виде: 1 H(s) = А ~^т ~J-m-l)(^ )-"(^ ~~Н ) . (« - Р„ )(* “ Ри-1 )(* “ Рп-2 )• • (S - Pl ) ' Здесь k - bm/an — коэффициент усиления (gain), z,- — нули функции передачи (zero), Pi — полюсы функции передачи (pole). В точках нулей H(zj) “ 0, а в точках полюсов H(Pt) -> 00. В данном случае цепь описывается набором параметров {zj, {pj, k. Нули функции передачи могут быть вещественными либо составлять комплекс- но-сопряженные пары. То же относится и к полюсам. Коэффициент усиления всегда вещественный. Полюсы и вычеты Еще одним способом преобразования дробно-рациональной функции передачи (2.9) является ее представление в виде суммы простых дробей. При отсутствии кратных корней у знаменателя такое представление имеет следующий вид: H(s) = -^—+ + Г”~2 +...+-^— + С0. (2.10) S~P„ S-p^ s — p„_2 S-Pl Здесь pi — полюсы функции передачи, а числа г, называются вычетами. Со — це- лая часть функции передачи, отличная от нуля только в случае равенства степе- ней полиномов числителя и знаменателя. В данном случае цепь описывается набором параметров {rj, {pj, Со.
Способы описания линейных систем 95 Полюсы функции передачи могут быть вещественными либо составлять комп- лексно-сопряженные пары. Вычеты, соответствующие комплексно-сопряжен- ным полюсам, также являются комплексно-сопряженными. При наличии кратных полюсов функции передачи разложение на простые дроби становится сложнее. Каждый m-кратный полюс р, дает т слагаемых следующего вида: +---------------------- (2.11) s-p, (s-pf)2 (s-p;)3 (s-p,)m Расчет импульсной характеристики Представление функции передачи в виде суммы простых дробей позволяет вы- числить импульсную характеристику системы, поскольку каждое слагаемое функции передачи вида /(.$ - р;) соответствует слагаемому импульсной харак- теристики вида riep‘c,t>0. Пара комплексно-сопряженных полюсов дает пару слагаемых импульсной ха- рактеристики в виде комплексно-сопряженных экспонент. Сумма таких слагае- мых представляет собой синусоиду с экспоненциально меняющейся амплитудой: г( ехр(р(£) + г- = 2Re[ri exp(pfi)] = = 2 Re [| rj exp(j arg(rf)) exp(Re(p; )t) exp(jlm(pf )i)] = = 2| rj exp(Re(p,- )t) cos (lm(p,) t + arg(rf)). Здесь arg(r;) — фаза комплексного числа г,-. Что касается кратных полюсов, то т-кратный полюс р, даст в выражении для им- пульсной характеристики т слагаемых следующего вида: f'1 raePit + ri2tePlt + ri3 — ePi‘ +...+ rim —-ep‘‘. 11 12 13 2 (m-1)! Устойчивость линейных систем Система называется устойчивой, если при нулевом входном сигнале выходной сигнал затухает при любых начальных условиях: limSBb.x(O = 0 ПРИ SBx(O “ 0. Г-»ОО Это требование равносильно требованию затухания импульсной характеристики: Iim/z(i) - 0. Г—>сс В предыдущем разделе было показано, что импульсная характеристика системы в общем случае содержит слагаемые вида Г;—ер‘‘, ' kl где pi — полюсы функции передачи системы, г, — соответствующие им вычеты, k — целые числа в диапазоне от нуля до значения, на единицу меньшего кратно- сти полюса р^
96 Глава 2. Аналоговые системы Такие слагаемые при t -> оо затухают, если вещественная часть полюса р, являет- ся отрицательной: Re(p, ) < 0. Отсюда получаем общее условие: линейная система является устойчивой тогда и только тогда, когда полюсы ее функции передачи лежат в левой комплексной по- луплоскости. Пространство состояний Еще одним способом описания линейной цепи является ее представление в про- странстве состояний (state space). При этом состояние цепи описывается векто- ром состояния s(t). а собственные колебания цепи и ее реакция на входной сиг- нал x(t) характеризуются следующим образом: s'(£) = As(t) + Bx(i). (212) y(t) = Cs(t)+Dx(t). Если размерность вектора состояния s(£) равна N (s(t) — вектор-столбец), а вход- ной .r(t) и выходной y(t) сигналы являются скалярными, то размерность пара- метров в этих формулах будет следующей: А — матрица N х N, В — столбец N х 1, С — строка 1 х N, D — скаляр. Если входной и/йли выходной сигналы являются векторными, размерность параметров соответствующим образом изменяется. Описанием цепи в данном случае является набор параметров А, В, С, D. От представления цепи в пространстве состояний можно легко перейти к функ- ции передачи цепи. Если применить преобразование Лапласа к уравнениям состояния (2.12), а затем выразить из них операторный коэффициент передачи, получится следующее: H(s) - D - С(А - sI)-‘B. (2.13) Здесь I — единичная матрица N х N. Обратное преобразование выполняется следующим образом. Прежде всего, если степени числителя и знаменателя функции передачи совпадают, из дроби выде- ляется целая часть, которая становится значением параметра D (если степень числителя меньше степени знаменателя, то D = 0). Далее оставшаяся после выделения целой части дробь, степень числителя кото- рой (т) гарантированно меньше степени знаменателя (и), преобразуется в пара- метры А, В и С следующим образом: ай/ап 0 0 . в = т 0 0 > А = ~a«-Jan 1 0 ап-2 !ап 0 1 -• ~ajan 0 0 0 0 1 0 0 С = [0 ... 0 Ьт . • М- (2.14)
Функции MATLAB для расчета линейных цепей 97 Функции MATLAB для расчета линейных цепей MATLAB и его пакеты расширения ориентированы прежде всего на цифровую обработку сигналов, поэтому функции, связанные с расчетом аналоговых цепей, рассматриваются как вспомогательные. В основном они предназначены для вы- зова из других функций, использующих аналоговые прототипы при синтезе циф- ровых фильтров. Однако и сами по себе эти функции могут быть весьма полезны. Большая часть рассматриваемых в данном разделе функций относится к пакету Signal Processing. Расчет частотных характеристик Как уже говорилось, для расчета комплексного коэффициента передачи необхо- димо подставить в функцию передачи мнимый аргумент: s = ja. Соответствую- щие расчеты выполняются с помощью функции freqs. В простейшем виде она имеет следующий синтаксис: freqs(Ь. а): Здесь b и а — векторы коэффициентов полиномов, соответственно числителя и знаменателя функции передачи. Коэффициенты следуют в порядке убывания степеней, заканчивая постоянным слагаемым. Для расчета характеристики по умолчанию выбирается 200 частот, логарифми- чески равномерно распределенных в диапазоне от 0,1 до 10. При отсутствии выходных параметров функция freqs строит графики АЧХ и ФЧХ. АЧХ выводится в логарифмическом масштабе (но без пересчета в деци- белы), ФЧХ — в градусах. Пусть анализируемая цепь имеет функцию передачи гг/ . S3 4- 3s2 + 3s + 1 H(s) = ~1---5----5------• s4 -3s3 +4s2 -2s + l Строим ее АЧХ и ФЧХ (рис. 2.2): » b = С1 3 3 1]; » а = [1 -3 4 -2 1]: » freqs(b. а) Чтобы вместо построения графика получить вектор рассчитанных значений комплексного коэффициента передачи, нужно присвоить результат, возвращае- мый функцией freqs, какой-либо переменной: h = freqs(b. а); При этом не стоит забывать про точку с запятой в конце строки, которая позво- лит подавить вывод рассчитанного вектора на экран. Если использовать второй выходной параметр, то в нем функция возвратит век- тор частот, для которых рассчитаны значения импульсной характеристики: [h. w] = freqs(b. а):
98 Глава 2, Аналоговые системы Рис. 2.2. Частотные характеристики, построенные функцией freqs Рассчитаем вектор значений частотной характеристики цепи из нашего приме- ра и построим график ее АЧХ в линейном, а не логарифмическом масштабе (рис. 2.3): » [h. w] - freqs(b. а); » plot(w, abs(h)) » grid on Рис. 2.3. АЧХ цепи в линейном масштабе Можно принудительно задать количество частотных точек для анализа, исполь- зуя третий входной параметр п (при этом частоты по-прежнему логарифмически распределены от 0,1 до 10): Th. wl - freqsCb. а. п);
Функции MATLAB для расчета линейных цепей 99 Наконец, можно принудительно задать частоты для анализа — также с помощью третьего входного параметра, которым в данном случае является вектор круго- вых частот w. Признаком, отличающим данную ситуацию от предыдущей, явля- ется векторный характер третьего выходного параметра. Возвращать значения частот в данном случае не имеет смысла: h - freqs(b. a, w): ЗАМЕЧАНИЕ ------------------------------------------------------------ Для дискретных линейных систем, функция передачи которых задана в виде отношения полиномов в z-области, аналогичные расчеты и построения выполняются функцией freqz (см. главу 4). Построение графиков фазочастотных характеристик Как видно из рис. 2.2, ФЧХ цепи содержит большое количество разрывов (скач- ков). Те из них, величины которых равны 180°, действительно являются скач- ками ФЧХ, а остальные, величина которых составляет 360°, являются «фиктив- ными». Они возникают только из-за того, что результаты вычисления фазы комплексного числа всегда лежат в диапазоне ±180°. Наличие этих многочислен- ных скачков затрудняет восприятие истинной формы ФЧХ и маскирует скачки «настоящие». Избавиться от лишних разрывов позволяет функция unwrap, которая ищет в пе- реданном ей векторе скачки между соседними элементами, превышающие задан- ную пороговую величину (по умолчанию равную л), и сдвигает соответствую- щие фрагменты вектора на ±2л нужное число раз. Продемонстрируем действие функции unwrap, построив график ФЧХ для цепи из примера предыдущего раздела (рис. 2.4): » [h, w] = freqs(b. а); » X ФЧХ » phi - angle(h); » Ж устранение скачков • » phi - unwrap(phi); » Ж отображаем в градусах » plot(w. phi*180/pi) » grid'on Сравнение графиков ФЧХ на рис. 2.2 и 2.4 наглядно демонстрирует сущность функции unwrap. При необходимости можно задать порог обнаружения скачков, указав его в каче- стве второго аргумента функции unwrap: у - unwrap(x, threshold):
100 Глава 2. Аналоговые системы Преобразование способов описания линейных цепей В теоретической части данной главы было рассмотрено несколько эквивалент- ных способов описания линейных цепей. В пакете Signal Processing имеется ряд функций, предназначенных для преобразования описаний из одной формы в другую. Имена этих функций имеют вид хх2уу, где хх — обозначение исходной формы описания, а уу — обозначение целевой формы описания цепи. ЗАМЕЧАНИЕ ---------------------------------------------------------- По-английски цифра «2» (two) произносится сходно с частицей «to», служащей, среди прочего, для указания на конечную цель или результат какого-либо процесса. Поэтому цифра «2» традиционно используется в середине идентификаторов функций, осуществ- ляющих различные преобразования. Формы описания цепей в именах функций обозначаются следующим образом: □ tf — коэффициенты полиномов числителя и знаменателя функции передачи (transfer function); □ zp — нули и полюсы (zeros and poles); □ ss — описание в пространстве состояний (state-space). Необходимость в преобразовании описаний часто возникает из-за того, что функ- ции расчета цепей (такие как рассматриваемые далее функции расчета фильт- ров-прототипов) дают результат в одной форме, а функция, например, построения частотной характеристики требует задания входных параметров в другой форме. Далее кратко рассматриваются конкретные функции преобразования описаний це- пей. Для входных и выходных параметров используются следующие обозначения: □ функция передачи: О b — вектор-строка коэффициентов (в порядке убывания степеней) числи- трпя rhvwKUHH пеоедачи;
Функции MATLAB для расчета линейных цепей 101 Q а - вектор-строка коэффициентов (в порядке убывания степеней) знаме- нателя функции передачи; □ нули и полюсы: О z — вектор нулей (столбец); О р — вектор полюсов (столбец); О к — коэффициент усиления (скаляр); □ пространство состояний: О А — квадратная матрица связи вектора состояния и его производной; О В — вектор-столбец связи входного сигнала и производной вектора состояния; О С — вектор-строка связи выходного сигнала и вектора состояния; О D — скалярный коэффициент связи выходного и входного сигналов. ЗАМЕЧАНИЕ --------------------------------------------------------------- Размерности параметров указаны для случая цепи с одним входом и одним выходом. Функции преобразования могут обрабатывать описания цепей с несколькими выходными сигналами (с векторным выходом). В этом случае размерности параметров соответствую- щим образом изменяются. Функция tf2zp Функция tf2zp преобразует наборы коэффициентов полиномов числителя и зна- менателя функции передачи в векторы нулей и полюсов, рассчитывая также зна- чение общего коэффициента усиления: [z. р. k] = tf2zp(b. а): Преобразование производится путем вычисления корней полиномов числителя и знаменателя функции передачи с помощью функции roots. Коэффициент уси- ления к рассчитывается как отношение Ь(1)/а(1). Функция zp2tf Функция zp2tf является обратной по отношению к функции tf2zp: она осущест- вляет преобразование коэффициента усиления, а также векторов нулей и полю- сов функции передачи в коэффициенты полиномов ее числителя и знаменателя: [b. а] - zp2tf(z. р. к): Преобразование производится с помощью функции poly, предназначенной для вычисления коэффициентов полинома по заданным его корням. В завершение вектор коэффициентов числителя умножается на к. Функция tf2ss Функция tf2ss преобразует наборы коэффициентов полиномов числителя и зна- менателя функции передачи в параметры представления цепи в пространстве со- стояний: [А. В. С. В] = tf2ss(b. а): Преобразование производится согласно формулам (2.14), приведенным в этой главе ранее, в разделе «Пространство состояний».
102 Глава 2. Аналоговые системы Функция ss2tf Функция ss2tf является обратной по отношению к функции tf2ss: она преобра- зует параметры пространства состояний в коэффициенты полиномов функции передачи цепи: [b. а] - ss2tf(A. В. С, D): Преобразование производится согласно формуле (2.13), приведенной в этой гла- ве ранее, в разделе «Пространство состояний». Функция zp2ss Функция zp2ss преобразует нули, полюсы и коэффициент усиления цепи в ее параметры пространства состояний: [А. В. С, D] - zp2ss(z. р, к): Преобразование производится путем последовательного вызова функций zp2tf и tf2ss. Функция ss2zp Функция ss2zp является обратной по отношению к функции zp2ss, преобразуя параметры пространства состояний в нули, полюсы и коэффициент усиления цепи: [z. р. k] - ss2zp(A, В. С. D); Полюсы системы являются собственными числами матрицы А и вычисляются с помощью функции eig. Нули являются конечными решениями обобщенной за- дачи нахождения собственных чисел и рассчитываются следующим образом: z - eig([A В:С D]. diag([ones(l,n) 0])): Функция residue Идентификатор последней функции, позволяющей преобразовывать описания линейных цепей, выпадает из общего ряда. Это связано с тем, что данное преоб- разование не является специфическим для обработки сигналов — оно сводится к разложению дробно-рациональной функции на простейшие дроби и часто при- меняется в математике. По этой же причине данная функция относится не к па- кету Signal Processing, а к базовой библиотеке MATLAB. Преобразование функции передачи, заданной в виде коэффициентов полиномов числителя и знаменателя, в сумму простых дробей производится с помощью функ- ции residue. Она же осуществляет и обратное преобразование; нужное направле- ние преобразования выбирается в зависимости от числа входных параметров. При двух входных параметрах производится разложение функции передачи на простые дроби: [г. р, k] - residueCb, а) Здесь b и а — коэффициенты полиномов числителя и знаменателя функции пе- редачи соответственно. Выходные параметры — векторы-столбцы полюсов (р) и соответствующих им вычетов (г), а также строка коэффициентов целой части к.
Функции MATLAB для расчета линейных цепей 103 H(s) = » b = » a = » [r. Разложение производится согласно формулам (2.10) и (2.11), приведенным ра- нее в разделе «Полюсы и вычеты», включая случай наличия кратных полюсов. При использовании трех входных параметров функция residue производит пре- образование вычетов, полюсов и коэффициентов целой части в коэффициенты числителя и знаменателя функции передачи, то есть осуществляет суммирова- ние простых дробей: [b. а] - residue(r. р. к) В качестве примера разложим на простые дроби функцию передачи вида s2-2s + 2 s4 + 4s3 + 7s2 +6s + 2 [1 -2 2]: [1 4 7 6 2]: p, k] = residue(b. a) r = 2.0000 + 2.00001 2.0000 - 2.0000т -4.0000 5.0000 P = -1.0000 + 1.00001 -1.0000 - 1.00001 -1.0000 -1.0000 k - [] Результаты преобразования показывают, что данная система имеет двукратный полюс, равный -1, и пару комплексно-сопряженных полюсов, равных -1 ±j. По- скольку степень полинома числителя меньше, чем степень полинома знаменате- ля, целая часть их отношения равна нулю, и в параметре к функция возвращает пустую матрицу. Рассчитанные значения вычетов позволяют записать представ- ление функции передачи в виде суммы простых дробей (с учетом наличия крат- ного полюса): . 2 + ;2 2-j2 4 5 H(s) =-------— +---------------+------5- . s + l-j s + l + j s + 1 (s + 1)2 Произведем с помощью функции residue обратное преобразование вычетов и по- люсов в коэффициенты полиномов числителя и знаменателя функции передачи: [bl. al] = residue(r, р. к) М - -0.0000 1.0000 -2.0000 2.0000 al = 1.0000 4.0000 7.0000 6.0000 2.0000 Полученные значения совпадают с исходными. Знак «минус» при нулевом зна- чении bid) обусловлен вычислительными погрешностями — после обратного
104 Глава 2. Аналоговые системы преобразования получается не ровно нуль, а малое отрицательное число (при- мерно -4-Ю*15). ВНИМАНИЕ ------------------------------------------------------------- Вычислительная задача разложения дробно-рациональной функции на простые дроби плохо обусловлена. Это означает, что если функция передачи имеет полюсы, близкие к кратным, то малые вариации исходных данных могут приводить к большим погрешно- стям вычисления полюсов и вычетов. В таких случаях документация MATLAB рекомен- дует использовать описание системы в виде нулей и полюсов либо в пространстве состояний. Расчет аналоговых фильтров-прототипов Одной из часто возникающих на практике задач является создание фильтров, пропускающих сигналы в определенной полосе частот и задерживающих осталь- ные частоты. При этом различают: □ фильтры нижних частот (ФНЧ; английский термин — low-pass filter), про- пускающие частоты, меньшие некоторой частоты среза ад; □ фильтры верхних частот (ФВЧ; английский термин — high-pass filter), про- пускающие частоты, большие некоторой частоты среза ад □ полосовые фильтры (ПФ; английский термин — band-pass filter), пропускаю- щие частоты в некотором диапазоне соj... а>2 (они могут также характеризо- ваться средней частотой ад = (сщ + ад)/2 и шириной полосы пропускания Дю = ад - coi); □ режекторные фильтры (другие возможные названия — заграждающий фильтр, фильтр-пробка, полосно-задерживающий фильтр; английский термин — band- stop filter), пропускающие на выход все частоты, кроме лежащих в некотором диапазоне ад ...ад (они тоже могут характеризоваться средней частотой ад “ - (ад + ад)/2 и шириной полосы задерживания Дю = ю? - coi). Идеальная форма АЧХ фильтров этих четырех типов показана на рис. 2.5. Однако такая идеальная (прямоугольная) форма АЧХ не может быть физически реализована. Поэтому в теории аналоговых фильтров разработан ряд методов аппроксимации прямоугольных АЧХ. Функции, реализующие эти методы, будут рассмотрены ниже. Кроме того, рассчитав ФНЧ, можно несложными преобразованиями изменить его частоту среза, превратить его в ФВЧ, полосовой либо режекторный фильтр с заданными параметрами. Поэтому расчет аналогового фильтра начинается с рас- чета так называемого фильтра-прототипа, представляющего собой ФНЧ с час- тотой среза, равной 1 рад/с. Далее применяются функции преобразования часто- ты среза и преобразования типов фильтров, которые также будут рассмотрены ниже. Все функции MATLAB для расчета аналоговых прототипов возвращают векто- ры-столбцы нулей и полюсов функции передачи, а также значение коэффициен- та усиления.
Функции MATLAB для расчета линейных цепей тио я/Ч к(/)4 О COq <0 0 <Сд со ФНЧ .. ФВЧ Полосовой фильтр Режекторный фильтр Рис. 2.5. АЧХ фильтров различного типа ВНИМАНИЕ ----------------------------------------------------------- При сравнении результатов использования фильтров различного типа в какой-либо сис- теме обработки сигналов следует помнить о том, что частота среза для разных фильтров определяется по-разному. Подробная информация об этом приводится в следующих раз- делах, посвященных конкретным фильтрам. Немного забегая вперед, скажем, что для фильтра Баттерворта частота среза определяется ио уровню 1Д/2, для фильтра Чебышева первого рода и эллиптического фильтра — по уровню пульсаций в полосе пропускания, для фильтра Чебышева второго рода — по уровню пульсаций в полосе задерживания. На- конец, для фильтра Бесселя само понятие частоты среза является весьма условным. Фильтр Баттерворта Функция передачи фильтра-прототипа Баттерворта (Butterworth filter) не имеет нулей, а ее полюсы равномерно расположены на s-плоскости в левой половине окружности единичного радиуса (см. далее рис. 2.6, «). Благодаря такому размещению полюсов формула для АЧХ фильтра Баттерворта оказывается очень простой: К(Ю) = где соо частота среза (для фильтра-прототипа она равна 1 рад/с), п — порядок фильтра.
106 Глава 2. Аналоговые системы Рис. 2.6. Характеристики фильтра Баттерворта 5-го порядка: а — расположение полюсов на комплексной плоскости, б — АЧХ, в — ФЧХ
Функции matlab для расчета линейных цепей 1U7 Коэффициент передачи на нулевой частоте равен 1, а на частоте среза независи- мо от порядка фильтра составляет 1/72 » 0,707 » -3 дБ. При со -> АЧХ стре- мится к нулю. АЧХ фильтра Баттерворта (см. рис. 2.6, б) является максимально плоской при со - 0 и со -> со. Это означает, что в данных точках равны нулю 2п - 1 производ- ных АЧХ по частоте. В целом АЧХ монотонно спадает от единицы до нуля при изменении частоты от нуля до бесконечности. В MATLAB расчет аналогового фильтра-прототипа Баттерворта производится с помощью функции buttap: [z. р. k] - buttap(n); Входной целочисленный параметр п — это порядок фильтра. На рис. 2.6 показано расположение полюсов фильтра Баттерворта 5-го порядка на комплексной плоскости, а также его АЧХ и ФЧХ: » [z. р. k] - buttap(5); X нули и полюсы прототипа » plotCp. 'х') % график расположения полюсов » axis equal » axis([-1.5 1.5 -1.5 1.5]) » w - 0:0.01:5; » [b. a] - zp2tf(z. p. k): % коэффициенты функции передачи » h = freqs(b, a. w): % комплексный коэффициент передачи » figure » plot(w. abs(h)). grid % график АЧХ » figure » plot(w. unwrap(angle(h))). grid % график ФЧХ ВНИМАНИЕ -------------------------------------------------------------------- Прописная буква «Я» в одном из комментариев только что приведенного листинга — не опечатка. К сожалению, шестая версия MATLAB не позволяет использовать строчную русскую букву «я» в комментариях и строковых константах (см. также раздел «MATLAB и русский язык» приложения А). Фильтр Чебышева первого рода Функция передачи фильтра Чебышева первого рода (Chebyshev type I filter) также не имеет нулей, а ее полюсы расположены в левой половине эллипса на s-плос- кости (см. далее рис. 2.7, а). АЧХ фильтра Чебышева первого рода описывается следующим образом: К(со) = + е27’„2(со/юо) Здесь со0 — частота среза, Т„(х) — полином Чебышева n-го порядка, п — порядок фильтра, е — параметр, определяющий величину пульсаций АЧХ в полосе про- пускания.
108 Глава 2. Аналоговые системы Полином Чебышева Тп(х) при |х| < 1 колеблется в диапазоне -1 а при |х| > 1 неограниченно возрастает по абсолютной величине. Поэтому АЧХ фильтра Че- бышева первого рода в полосе пропускания (при ]со| < ю0) колеблется между зна- чениями 1/^1 + е2 и 1, а вне полосы пропускания (при |со[ > соо) монотонно зату- хает до нуля (см. далее рис. 2.7, б). Коэффициент передачи на нулевой частоте равен 1 при нечетном порядке фильтра и 1/V1 + £2 — при четном. На частоте среза коэффициент передачи фильтра равен 1 /71 + е2, то есть уровню пульсаций АЧХ в полосе пропускания. При со -> оо АЧХ стремится к нулю. По сравнению с фильтром Баттерворта того же порядка фильтр Чебышева обес- печивает более крутой спад АЧХ в области перехода от полосы пропускания к полосе задерживания. Значение параметра е и уровень пульсаций Rp (в децибелах) связаны следую- щим образом: И„ - 20 lgb/l + 81) - 10 lg( 1 + s’) дБ, s=7to'w”-1. При со -> оо АЧХ фильтра Чебышева первого рода является максимально пло- ской. В MATLAB фильтр-прототип Чебышева первого рода рассчитывается с помо- щью функции cheblap: [z. р. k] = cheblap(n. Rp) Здесь п — порядок фильтра, Rp — уровень пульсаций в полосе пропускания (в де- цибелах). На рис. 2.7 показано расположение на комплексной плоскости полюсов фильтра Чебышева первого рода 5-го порядка с уровнем пульсаций 0,5 дБ, а также его АЧХ и ФЧХ: » [z. р. k] = cheblap(5. 0.5): X нули и полюсы прототипа » plot(p. ’х’) % график расположений полюсов » axis equal » axis([-1.5 1.5 -1.5 1.5]) » w = 0:0.01:5: » [b. a] = zp2tf(z. p. k); X коэффициенты функции передачи » h - freqs(b. a. w): X комплексный коэффициент передачи » figure » % график АЧХ » plot(w, abs(h)), grid » figure » % график ФЧХ » plot(w. unwrap(angle(h))). grid
Функции MATLAB для расчета линейных цепей 109 Рис. 1.5 1 0.5 0 -0.5 -1 -1.5 -1.5 -1 -0.5 0 0.5 1 1.5 а 2.7. Характеристики фильтра Чебышева первого рода 5-го порядка с уровнем пульсаций в полосе пропускания 0,5 дБ: а — расположение полюсов на комплексной плоскости, б — АЧХ, в — ФЧХ
110 Глава 2. Аналоговые системы Фильтр Чебышева второго рода Функция передачи фильтра Чебышева второго рода (Chebyshev type II filter), в отличие от предыдущих случаев, имеет и нули, и полюсы (рис. 2.8, а). Она связана с функцией передачи фильтра Чебышева первого рода следующим обра- зом: Я2(5) - 1 - Здесь Hi(s) и H2(s) — функции передачи фильтров-прототипов Чебышева перво- го и второго рода соответственно. Полюсы функции передачи фильтров-прототипов Чебышева первого и второго рода (ру и p2i соответственно) связаны друг с другом соотношением 1 Ри =— • Рм По этой причине фильтры Чебышева второго рода называют еще инверсными фильтрами Чебышева (inverse Chebyshev filter). АЧХ фильтра Чебышева второго рода описывается следующим образом: *(<») = , 1 г • L | £ У + Т2(со0/со) Здесь со0 — частота среза, Т„(х) — полином Чебышева n-го порядка, п — порядок фильтра, £ — параметр, определяющий величину пульсаций АЧХ в полосе задер- живания. В результате указанного выше преобразования функции передачи АЧХ фильтра Чебышева второго рода ведет себя следующим образом: в полосе пропускания она монотонно затухает, а в полосе задерживания колеблется между нулем и значением 1Д/1 + £2 (рис. 2.8, б). ВНИМАНИЕ ------------------------------------------------------------ Частотой среза фильтра Чебышева второго рода считается не конец полосы пропускания, а начало полосы задерживания. Коэффициент передачи фильтра на нулевой частоте равен 1, на частоте среза — заданному уровню пульсаций в полосе задерживания. При со -> со коэффициент передачи равен нулю при нечетном порядке фильтра и уровню пульсаций — при четном. Значение параметра £ и уровень пульсаций Rs (в децибелах) связаны следующим образом: Rs - 20 lg(Vl + £2) - Ю lg( 1 + £2) дБ, £=V10«»/,(l -1. При co - 0 АЧХ фильтра Чебышева второго рода является максимально плоской.
Функции MATLAB для расчета линейных цепей 2 1.S 1 0.S о -0.5 -1 -1.5 Рис. 2.8. Характеристики фильтра Чебышева второго рода 5-го порядка с уровнем пульсаций в полосе задерживания 20 дБ: а — расположение нулей и полюсоа на комплексной плоскости, б — АЧХ, а — ФЧХ
112 Глава 2. Аналоговые системы В MATLAB фильтр-прототип Чебышева второго рода рассчитывается с помо- щью функции cheb2ap: [z. р. k] = cheb2ap(n, Rs) Здесь п — порядок фильтра, Rs — уровень пульсаций в полосе задерживания (в де- цибелах). На рис. 2.8 показано расположение на комплексной плоскости полюсов фильтра Чебышева второго рода 5-го порядка с уровнем пульсаций 20 дБ, а также его АЧХ и ФЧХ: * » [z. р. k] = cheb2ap(5. 20): X нули и полюсы прототипа » plot(p, 'х') % график расположения полюсов » hold on » plot(z. ’o') % график расположения нулей » hold off » axis equal » axis([-2 2 -2 2]) » w - 0:0.01:5: » [b. a] = zp2tf(z. p. k); X коэффициенты функции передачи » h = freqs(b. a. w); % комплексный коэффициент передачи » figure » plot(w. abs(h)). grid % график АЧХ » figure » plot(w, unwrap(angle(h))), grid % график ФЧХ Эллиптический фильтр Эллиптические фильтры (фильтры Кауэра; английские термины — elliptic filter, Cauer filter) в некотором смысле объединяют в себе свойства фильтров Чебыше- ва первого и второго рода, поскольку АЧХ эллиптического фильтра имеет пуль- сации заданной величины как в полосе пропускания, так и в полосе задержи- вания (рис. 2.9, б). За счет этого удается обеспечить максимально возможную (при фиксированном порядке фильтра) крутизну ската АЧХ, то есть переходной зоны между полосами пропускания и задерживания. Функция передачи эллиптического фильтра имеет как полюсы, так и нули. Нули, как и в случае фильтра Чебышева второго рода, являются чисто мнимыми и об- разуют комплексно-сопряженные пары (рис. 2.9, а). Количество нулей функ- ции передачи равно максимальному четному числу, не превосходящему порядка фильтра. АЧХ эллиптического фильтра описывается следующей формулой: К(со) = -==L==. Vl + e2^(co/co0,Z) Здесь tOg — частота среза, п — порядок фильтра, R„(—) — рациональная функция Чебышева n-го порядка, е и L — параметры, определяющие величину пульсаций в полосах пропускания и задерживания.
Функции MATLAB для расчета линейных цепей 113 в Рис. 2.9. Характеристики эллиптического фильтра 5-го порядка с уровнем пульсаций в полосе пропускания 0,5 дБ и в полосе задерживания 20 дБ: а — расположение нулей и полюсов на комплексной плоскости, б — АЧХ, а — ФЧХ
114 Глава 2. Аналоговые системы В MATLAB эллиптический фильтр-прототип рассчитывается с помощью функ- ции ellipap: [z. р, k] - ellipap(n. Rp. Rs) Здесь n — порядок фильтра, Rp — уровень пульсаций в полосе пропускания, Rs — уровень пульсаций в полосе задерживания. Уровни пульсаций указываются в де- цибелах. На рис. 2.9 показано расположение на комплексной плоскости нулей и полюсов эллиптического фильтра 5-го порядка с уровнем пульсаций 0,5 дБ в полосе про- пускания и 20 дБ в полосе задерживания, а также его АЧХ и ФЧХ: » [z. р. k] - ellipap(5. 0.5. 20): % нули и полюсы прототипа » plot(p. *х‘) % график расположения полюсов » hold on » plot(z. ’o') % график расположения нулей » hold off » axis equal » axis([-1.5 1.5 -1.5 1.5]) » W = 0:0.01:5; » [b. a] = zp2tf(z, p, k); % коэффициенты функции передачи » h - freqsCb. a. w): % комплексный коэффициент передачи » figure » plot(w. abs(h)). grid % график АЧХ » figure » plot(w. unwrap(angle(h))). grid % график ФЧХ Фильтр Бесселя В отличие от фильтров предыдущих типов, фильтры Бесселя (Bessel filter) не аппроксимируют прямоугольную АЧХ — их АЧХ (рис. 2.10, б) по форме близка к гауссовой кривой (точнее, стремится к ней с ростом порядка фильтра). Прак- тическая ценность фильтров Бесселя определяется тем, что для них зависимость группового времени задержки от частоты является максимально гладкой в точке и “ 0 и групповая задержка очень мало меняется в полосе пропускания. Функция передачи фильтра Бесселя имеет только полюсы, лежащие на окруж- ности с центром в положительной области вещественной оси (рис. 2.10, а). Сама функция передачи имеет следующий вид: H(s) = -^- LAsk л=о Коэффициенты полинома знаменателя рассчитываются по следующей формуле: (2п-Л)! 2"-*Л!(п-Л)!’
Функции MATLAB для расчета линейных цепей 115 1 0.8 0.6 0.4 0.2 0 0.2 -0.4 -0.6 -0.8 •1 -1 -0.5 0 0.5 1 Рис. 2.10. Характеристики фильтра Бесселя 5-го порядка: а — расположение полюсов на комплексной плоскости, б — АЧХ, в — ФЧХ
116 Глава 2. Аналоговые системы В MATLAB фильтр-прототип Бесселя рассчитывается с помощью функции bessel ар: [z. р. k] = besselap(n) Здесь п — порядок фильтра. На рис. 2.10 показано расположение на комплексной плоскости нулей и полюсов фильтра Бесселя 5-го порядка, а также его АЧХ и ФЧХ: » [z. р, к] = bes.se!ар(5): X нули и полюсы прототипа » plot(p. 'х') % график расположения нулей » axis equal » axis([-l 1 -1 1]) » w = 0:0.01:5: » [b. a] = zp2tf(z. p. k): % коэффициенты функции передачи » h = freqs(b. a. w): % комплексный коэффициент передачи » figure » plot(w, abs(h)), grid % график АЧХ » figure » plot(w. unwrap(angle(h))). grid % график ФЧХ Преобразования фильтров-прототипов Следующий этап после расчета фильтра-прототипа — его преобразование с це- лью получения фильтра заданного вида с требуемыми частотами среза. Для этого используются приведенные ниже четыре функции MATLAB. Принцип составле- ния их имен следующий: сначала идет сокращение 1 р, означающее, что исходным фильтром является ФНЧ (low-pass), потом следует символ преобразования 2 и в конце стоит обозначение типа результирующего фильтра: □ 1 р21 р — изменение частоты среза ФНЧ (low-pass); □ 1 p2hp — преобразование ФНЧ в ФВЧ (high-pass); □ 1 p2bp — преобразование ФНЧ в полосовой фильтр (band-pass); □ 1 p2bs — преобразование ФНЧ в режекторный фильтр (band-stop). Все эти функции могут преобразовывать фильтры, заданные двумя способами — в виде коэффициентов полиномов числителя и знаменателя функции передачи либо в пространстве состояний. Различаются эти два варианта по числу входных и выходных параметров. Изменение частоты среза ФНЧ Изменение частоты среза ФНЧ-прототипа сводится к простому масштабирова- нию частотной оси и выполняется путем следующей замены переменной s в вы- ражении для функции передачи: со0 ’
Функции MATLAB для расчета линейных цепей 117 где <о0 — требуемая частота среза ФНЧ. Такое преобразование производится функцией 1р21р: [bl. al] = 1р21р(Ь. а. иО) [Al, Bl. Cl. D1] = 1р21р(А. В. С. D. wO) Входными параметрами функции являются описание фильтра (в виде коэффи- циентов полиномов числителя и знаменателя функции передачи — Ь, а, или в пространстве состояний — А, В, С, D) и требуемая частота среза wO. Возвращаемый результат — пёресчитанные параметры фильтра. Преобразование ФНЧ в ФВЧ Преобразование ФНЧ-прототипа в ФВЧ требует инверсии частотной оси и вы- полняется путем следующей замены переменной s в выражении для функции пе- редачи: где о>о — требуемая частота среза ФВЧ. Такое преобразование производится функцией lp2hp: [bl. al] = lp2hp(b. a. wO) [Al. Bl. Cl. DI] - lp2hp(A. В, C. D. wO) Входными параметрами функции являются описание фильтра (в виде коэффи- циентов полиномов числителя и знаменателя функции передачи — Ь, а или в пространстве состояний — А, В, С, D) и требуемая частота среза wO. Возвращаемый результат — пересчитанные параметры фильтра. Преобразование ФНЧ в полосовой фильтр Преобразование ФНЧ-прототипа в полосовой фильтр требует более сложной трансформации частотной оси, чем в предыдущих случаях. Так, нулевая и беско- нечная частоты должны преобразовываться в бесконечное значение на частот- ной оси ФНЧ-прототипа (там, где его коэффициент передачи стремится к нулю). Частоты, соответствующие краям требуемой полосы пропускания, долж- ны после преобразования давать значения ±1, равные частоте среза ФНЧ-прото- типа. Наконец, преобразование должно выполняться с помощью дробно-рацио- нальной функции, чтобы сохранить дробно-рациональную структуру функции передачи. Перечисленным требованиям удовлетворяет следующая замена переменной з: ^q(s/M2+1, s/<o0 где o0 = > Q = юо/(ю2 - <Oi)> «1 и со2 — соответственно нижняя и верхняя границы полосы пропускания фильтра.
118 Глава 2. Аналоговые системы Такое преобразование выполняется функцией 1 р2Ьр: [bl. al] - lp2bp(b. a. wO. Bw) [Al. Bl. Cl. DI] - lp2bp(A. В. C. D, wO, Bw) Входными параметрами функции являются описание фильтра (в виде коэффи- циентов полиномов числителя и знаменателя функции передачи — Ь, а или в пространстве состояний — А, В, С, D), средняя частота wO и ширина Bw полосы про- пускания фильтра (в радианах в секунду). ВНИМАНИЕ ------------------------------------------------------------------ Обратите внимание на то, что средняя частота полосы пропускания — это среднее геомет- рическое, а не среднее арифметическое частот среза: w0-sqrt(wl*w2). Полоса пропускания рассчитывается без особенностей: Bw=w2-wl. Возвращаемый результат — пересчитанные параметры фильтра. Рассчитаем в качестве примера полосовой фильтр Чебышева первого рода 5-го порядка с полосой пропускания от 1 кГц до 9 кГц и уровнем пульсаций в полосе пропускания 3 дБ: » [z. р. k] = cheblap(5. 3); Ж ФНЧ-прототип » [b. а] - zp2tf(z. р. к): Ж функция передачи » fl - 1еЗ: ' Ж нижнЯЯ частота среза » f2 - 9еЗ: % верхняя частота среза » wO = 2 * pi * sqrt(fl * f2): Ж средняя частота » Bw - 2 * pi * (f2 - fl): Ж полоса пропускания » [b. а] = lp2bp(b. a, wO, Bw); Ж полосовой фильтр » f = 0:1:20еЗ; % вектор частот длЯ расчета » h = freqs(b. a. 2*pi*f): Ж частотная характеристика » plot(f/1000. abs(h)). grid Ж график АЧХ » axis tight » figure » plottf/ЮОО, unwrap(angle(h))), grid Ж график ФЧХ Построенные графики АЧХ и ФЧХ приведены на рис. 2.11. Обратите внимание на то, что характеристики фильтра несимметричны — они сжаты слева и растя- нуты справа. Если проанализировать формулу замены переменной, использо- ванную для преобразования ФНЧ в полосовой фильтр, окажется, что частоты, на которых коэффициент передачи имеет одинаковые значения, связаны соотно- шением cOjOj = <о^. Поэтому графики станут симметричными, если использовать логарифмический масштаб по оси частот. Асимметрия частотных характеристик проявляется тем сильнее, чем больше от- ношение граничных частот полосы пропускания фильтра. Именно по этой при- чине в рассмотренном примере специально использованы столь сильно (в 9 раз) различающиеся частоты среза.
Функции MATLAB для расчета линейных цепей 11У Рис. 2.11. При большом отношении граничных частот полосы пропускания полосового фильтра отчетливо наблюдается асимметрия частотных характеристик (сверху — АЧХ, снизу — ФЧХ) Преобразование ФНЧ в режекторный фильтр Для преобразования ФНЧ-прототипа в режекторный фильтр трансформация частотной оси должна быть обратной по отношению к предыдущему случаю. Ну- левая и бесконечная частоты должны преобразовываться в нулевое значение на частотной оси ФНЧ-прототипа (там, где коэффициент передачи велик). Часто- ты, соответствующие краям требуемой полосы задерживания, должны после преобразования давать значения ±1, равные частоте среза ФНЧ-прототипа. Кро- ме того, некоторое значение частоты в полосе задерживания должно преобра- зовываться в бесконечность (там, где коэффициент передачи ФНЧ-прототипа стремится к нулю). Наконец, преобразование должно выполняться с помощью дробно-рациональной функции, чтобы сохранить дробно-рациональную струк- туру функции передачи.
120 Глава 2. Аналоговые системы Перечисленным требованиям удовлетворяет следующая замена переменной $: s/w0 5 —>-----—Н------ Q((s/®0 )2 + 1) ’ где <d0 = Л/со1со2, Q = соо/(сс>2 - cot), а>1 и со2 — соответственно нижняя и верхняя границы полосы задерживания фильтра. Такое преобразование выполняется функцией 1 p2bs: [bl. al] = lp2bs(b. a, wO, Bw) [Al, Bl. Cl. DI] = lp2bs(A, В, C. D. wO. Bw) Входными параметрами функции являются описание фильтра (в виде коэффи- циентов полиномов числителя и знаменателя функции передачи — Ь, а или в пространстве состояний — А, В, С, D), средняя частота wO и ширина Bw полосы за- держивания фильтра (в радианах в секунду). Возвращаемый результат — пересчитанные параметры фильтра. Все сказанное выше применительно к полосовым фильтрам о связи средней час- тоты с частотами среза и об асимметрии характеристик справедливо и для ре- жекторных фильтров. Расчет аналоговых фильтров Как уже говорилось, для расчета аналогового фильтра необходимо выполнить две основные операции: рассчитать ФНЧ-прототип и преобразовать его к нуж- ному типу фильтра с заданными частотами среза. Требуемая последовательность действий оформлена в виде следующих функций MATLAB: □ butter(n, wO, type, 's')—расчет фильтров Баттерворта; □ chebyl(n, Rp, wO. type, ’s') — расчет фильтров Чебышева первого рода; □ cheby2(n, Rs, wO, type, 's') —расчет фильтров Чебышева второго рода; □ ellip(n, Rp, Rs. wO, type, ’s') — расчет эллиптических фильтров; □ besself(n, wO, type) — расчет фильтров Бесселя. Параметры всех функций задаются одинаково, поэтому обсуждать функции по отдельности не будем. Перечисленные функции, за исключением функции besself, позволяют рассчи- тывать как аналоговые, так и дискретные фильтры. Признаком аналогового рас- чета служит строка 's', использованная в качестве последнего входного парамет- ра. Об использовании этих функций для расчета дискретных фильтров речь пойдет в главе 6. Параметры n, Rp, Rs (их состав зависит от типа фильтра) — это параметры фильт- ра-прототипа: п — порядок фильтра, Rp — уровень пульсаций в полосе пропуска- ния (в децибелах), Rs — уровень пульсаций в полосе задерживания (в децибелах) Более подробное описание этих параметров было приведено ранее, в разделах посвященных фильтрам-прототипам.
Функции MATLAB для расчета линейных цепей 121 Параметры wO и type используются совместно для задания типа фильтра и значе- ний его частот среза (в радианах в секунду): □ ФНЧ: wO — скаляр, параметр type отсутствует; □ ФВЧ: wO — скаляр, type='high'; □ полосовой фильтр: wO — двухэлементный вектор частот среза [wl w2], пара- метр type отсутствует; □ режекторный фильтр: wO — двухэлементный вектор частот среза [wl w2], type='stop'. ВНИМАНИЕ ---------------------------------------------------------------- Следует подчеркнуть, что в данных функциях при разработке полосовых и режекторных фильтров в качестве параметров задаются именно частоты среза, а не средняя частота и полоса пропускания, как в функциях преобразования фильтров-прототипов. В зависимости от того, сколько выходных параметров указано при вызове, функ- ции могут возвращать результаты расчета в виде коэффициентов полиномов числителя и знаменателя функции передачи (два выходных параметра), нулей и полюсов (три выходных параметра) либо параметров пространства состояний (четыре выходных параметра): [Ь. а] = ... [z. р. к] - ... [А. В. С. D] = ... С учетом всего сказанного перечислим действия, выполняемые функциями рас- чета аналоговых фильтров: 1. Производится расчет фильтра-прототипа с заданными параметрами АЧХ. 2. Полученные нули и полюсы преобразуются в параметры пространства со- стояний. 3. Производится преобразование фильтра-прототипа к требуемому типу с за- данными частотами среза. 4. Выполняется преобразование описания фильтра к заданному при вызове виду. Выбор порядка фильтра Рассмотренные выше функции расчета фильтров требуют задания в качестве входных параметров порядка фильтра и его частоты среза. При этом понятие частоты среза для фильтров разных типов определяется по-разному. Однако ис- ходными данными при разработке фильтров, как правило, являются другие па- раметры: частотные границы полос пропускания (сор) и задерживания (<os), а так- же допустимая неравномерность АЧХ в полосе пропускания (/?р) и минимально необходимое затухание в полосе задерживания (7?Л) (рис. 2.12). Серые области на рисунке демонстрируют допуски, в которые должна укладываться АЧХ фильтра в полосах пропускания и задерживания.
122 Глава 2. Аналоговые системы K(/)f О Wp <0j со 0 <os <»р <» Рис. 2.12. Задание исходных параметров для расчета ФНЧ, ФВЧ, полосовых и режекторных фильтров Выбрать минимально необходимый порядок фильтра позволяют следующие од- нотипные функции пакета Signal Processing: [n. Wn] = buttord (Wp. Ws. Rp, Rs. ’s') [n. Wn] = cheblord (Wp. Ws. Rp. Rs. ’s') [n, Wn] - cheb2ord (Wp. Ws. Rp. Rs. 's') [щ Wn] = ellipord (Wp. Ws. Rp. Rs. 's') ЗАМЕЧАНИЕ ---------------------------------------------------------- Данные функции позволяют выбирать порядок как для аналоговых, так и для дискретных фильтров. Последний параметр 's' является признаком аналогового расчета. Использова- ние этих функций для определения требуемого порядка дискретных фильтров обсуждает- ся в разделе «Функции выбора порядка фильтров» главы 6. Входной параметр Rp — допустимый уровень пульсаций в полосе пропускания (в децибелах), Rs — минимально необходимое затухание в полосе задерживания (в децибелах). Параметры Wp и Ws задают границы полос пропускания и задержи- вания, способ задания этих параметров зависит от типа проектируемого фильтра: □ ФНЧ: Wp и Ws — числа, при этом должно выполняться неравенство Wp < Ws; □ ФВЧ: Wp и Ws — числа, при этом должно выполняться неравенство Wp > Ws; □ полосовой фильтр: Wp и Ws — двухэлементные векторы, при этом должны вы- полняться неравенства Ws(l) < Wp(l) < Wp(2) < Ws(2); □ режекторный фильтр: Wp и Ws — двухэлементные векторы, при этом должны выполняться неравенства Wp(l) < Ws(l) < Ws(2) < Wp(2).
Функции MATLAB для расчета линейных цепей 123 Значения параметров Ыр и Ws были обозначены на рис. 2.12 как сор и со, соответст- венно. Выходными параметрами являются минимально необходимый для выполне- ния заданных требований порядок фильтра п и частота среза фильтра Wn. Эти па- раметры должны затем использоваться при вызове функции расчета фильтра. Возврат значения Wn избавляет пользователя от забот, связанных с тем, что при расчете разных фильтров понятие частоты среза имеет разный смысл. Для эл- липтических фильтров и фильтров Чебышева первого рода Wn = Wp, для фильт- ров Чебышева второго рода Wn = Ws, а для фильтров Баттерворта значение Wn (на- помним, что оно определяет частоту среза по уровню 3 дБ) зависит от заданного уровня пульсаций Rp следующим образом: Поскольку порядок фильтра — величина целочисленная, то обычно оказывается, что фильтр минимально необходимого порядка обеспечивает некоторый запас по исходным параметрам. Этот запас можно использовать по-разному — либо сделать пульсации в полосе пропускания точно равными заданным, но увели- чить затухание в полосе задерживания, либо точно выдержать заданное затуха- ние в полосе задерживания, уменьшив при этом пульсации в полосе пропус- кания. Для эллиптических фильтров возможен еще один вариант — сужение переходной зоны за счет расширения полосы задерживания. Поведение функций выбора порядка фильтра в этом аспекте определяется тем, что при расчете фильтра должны будут использоваться те же параметры пульсаций Rp и Rs, что и при выборе порядка фильтра. Поэтому для фильтров Баттерворта и Чебышева первого рода будет увеличиваться затухание в полосе задерживания, для фильт- ров Чебышева второго рода — уменьшаться пульсации в полосе пропускания, а для эллиптических фильтров — расширяться полоса задерживания. Расчет групповой задержки В MATLAB нет функции, позволяющей вычислять групповую задержку для ана- логовых систем (функция grpdelay предназначена только для дискретных сис- тем; речь о ней пойдет в разделе «Расчет групповой задержки дискретной систе- мы» главы 4). Поэтому в качестве небольшого примера рассмотрим возможную реализацию такой функции. Назовем ее, скажем, grp_del. Прежде всего следует определиться с входными и выходными параметрами. Пусть функция получает векторы коэффициентов b и а полиномов числителя и знаме- нателя функции передачи, а также вектор значений круговой частоты w для рас- чета групповой задержки. Возвращаемый результат tau — вектор рассчитанных значений групповой задержки. Итак, функция будет использоваться следующим образом: tau - grp_del(b. a. w) Теперь нужно разобраться с алгоритмом работы функции, то есть получить фор- мулы, по которым будут выполняться вычисления. Для этого вспомним, что функция передачи выражается в виде отношения двух полиномов и что при
124 Глава 2. Аналоговые системы делении комплексных чисел их фазы вычитаются. Если все это учесть в опреде- лении групповой задержки (см. формулу (2.2) в разделе «Фазовая и групповая задержка»), получим следующее: , . d Ajco) d ... . d n/.. T rp (= T- arg —— = — arg Л(усо) - — arg B( ja). dco B(j(£>) do dco Фаза комплексного числа равна арктангенсу отношения мнимой и веществен- ной частей (добавление константы ±л не имеет значения, так как оно не повлия- ет на результат дифференцирования по о): . . d 1тЛ(?о) d do Re Ajar) do ReB(jco) Наконец, дифференцирование арктангенса дроби дает следующее: Re А( jo) Im Л( jo) - Im Л( jo) Re Ajo) , ч do do *rp(®) =--------------Г.. 77[2-------------- Re В( jo) Im В( jo) - Im B( jo) Re B(J&) __________do________________do_________ |B(jo)|2 (2.15) Поскольку числитель и знаменатель функции передачи являются полиномами относительно переменной s = jo, выделение вещественной и мнимой частей, так же как и дифференцирование, сводится к простым манипуляциям с векторами коэффициентов полиномов. Комментарии на этот счет приводятся непосредст- венно в листинге функции: function tau = grp_del(b. a. w) Ж размещаем коэффициенты в порядке возрастания степеней b = fliplr(b): а - fliplr(a); Ж выравниваем длины векторов [b, а] - eqtflength(b. а); % выделяем вещественную часть числителя Вг - Ь: Br(2:2:end) =0; Ж только четные степени Br(3:4:end) - -Br(3:4:end); % через раз - знак "минус" % выделЯем мнимую часть числителя Bi = Ь: Вт(1:2:end) - 0: Ж только нечетные степени Bi(4:4:end) = -Bi(4:4:end); % через раз - знак "минус" % выделяем вещественную часть знаменателя Аг - а: Аг(2:2:end) = 0; Ж только четные степени Ar(3:4:end) - -Ar(3:4:end); Ж через раз - знак "минус" Ж выделЯем мнимую часть знаменателя
Функции MATLAB для расчета линейных цепей 125 Ai - а: Ai(l:2:end) =0: Ж только нечетные степени Ai(4:4:end) - -A1(4:4:end): Ж через раз - знак "минус" % размещаем коэффициенты в порЯдке убывания степеней Ar=fliplr(Ar): Ai=f11 plr(Ai); Br=fliplr(Br): B1=fliplr(Bi): Ж вычисляем знаменатели слагаемых den_B - conv(Br. Br) + conv(Bj, Bl); den_A - conv(Ar, Ar) + conv(Ai, At): Ж вычисляем числители слагаемых [num_B. tmp] - polyder(Bi. Br): [num_A. tmp] - polyder(Ai. Ar): Ж вычисляем групповую задержку tau = -polyval(num_B. w)./polyval(den_B, w) + ... polyval(num_A. w)./polyval(den_A. w): Этот программный код в точности реализует формулу (2.15). Приведем ряд до- полнительных комментариев. Переворачивание векторов-строк «задом наперед» с помощью функции fl т pl г производится исключительно для удобства выделения вещественных и мнимых частей — отсчитывать коэффициенты при этом проще от начала вектора, чем от конца. Функция eqtflength выравнивает длины пере- данных ей векторов, дополняя более короткий из них нулями в конце. Функция polyder, вызванная с двумя входными и выходными параметрами, вычисляет производную отношения двух полиномов, возвращая коэффициенты числителя и знаменателя результата. Нас в данном случае интересует только первый вы- ходной параметр, поскольку числители слагаемых в (2.15) совпадают с числите- лями производных от дробей Im B(jco)/Re B(jco) и Im Л(у<о)/Ке Л(усо). Умноже- ние полиномов эквивалентно свертке векторов их коэффициентов, выполняемой с помощью функции conv (см. раздел «Дискретная свертка» главы 4). Для вычис- ления значений полиномов в заданных точках используется функция polyval. Мы реализовали лишь простейший вариант — вычисление групповой задержки в заданных частотных точках. В принципе функцию можно расширить, реализо- вав возможности, аналогичные тем, которыми обладает функция freqs: вывод графика при отсутствии выходных параметров, задание вектора частот,по умол- чанию и т. д. Заинтересованный читатель может сделать это, изучив исходный код функции freqs (файл MATLABR12\Toolbox\Signal\Signal\freqs.m). В качестве примера применения разработанной функции (не забудьте сохранить ее в виде файла с именем grp_del.m) построим с ее помощью графики зависимо- сти групповой задержки от частоты для двух рассмотренных ранее фильтров- прототипов — Чебышева первого рода и Бесселя (рис. 2.13): » % фильтр Чебышева первого рода » [z. р. k] = cheblap(5. 0.5): X нули и полюсы прототипа » [b. а] = zp2tf(z. р. к); Ж коэффициенты функции передачи » w - 0:0.01:5: » tau = grp_del(b. a. w): % групповая задержка
26 Гпава 2. Аналоговые системы » plot(w, tau). grid Ж график групповой задержки » Ж фильтр Бесселя » [z, р. k] - besselap(5); Ж нули и полюсы прототипа » [b. а] = zp2tf(z. р, к): Ж коэффициенты функции передачи » W = 0:0.01:5: » tau - grp_del(b, a, w): % групповая задержка » figure Рис. 2.13. Частотная зависимость групповой задержки для фильтров Чебышева первого рода (сверху) и Бесселя (снизу) Результаты расчетов показывают, что частотная зависимость групповой задерж- ки для фильтра Чебышева первого рода имеет весьма изрезанный вид, а анало- гичный параметр для фильтра Бесселя, как и было отмечено при рассмотрении соответствующего фильтра-прототипа, в полосе пропускания практически не меняется.