Синтез и анализ цифровых фильтров с использованием программного, страница 2
Описание файла
PDF-файл из архива "Синтез и анализ цифровых фильтров с использованием программного", который расположен в категории "". Всё это находится в предмете "радиотехнические цепи и сигналы (ртцис)" из 5 семестр, которые можно найти в файловом архиве МАИ. Не смотря на прямую связь этого архива с МАИ, его также можно найти и в других разделах. Архив можно найти в разделе "книги и методические указания", в предмете "ртцис (отц)" в общих файлах.
Просмотр PDF-файла онлайн
Текст 2 страницы из PDF
Пусть требуется найти коэффициенты передаточнойфункции эллиптического полосно-пропускающего фильтра, для которогоRp=1 дБ, Rs=40 дБ, wp1=1000 рад/с, wp2=1100 рад/с, ws1=900 рад/с,ws2=1250 рад/с. Вводим операторы:>> [n, wn]=ellipord([1e3 1.1e3], [0.9e3 1.25e3], 1, 40, ‘s’);>> [b,a]=ellip(n, 1, 40, [1e3 1.1e3], ‘s’);-6Если требуется определить полюсы и нули, то вместо последнегооператора вводят:>> [z,p,k]= ellip (n, 1, 40, [1e3 1.1e3], ‘s’);Альтернатива: использование функции преобразования:>> [z,p,k]= tf2zp (b,a);5. Нахождение передаточной функции цифрового фильтра поаналоговому прототипу методом билинейногоz-преобразования и методом инвариантной импульснойхарактеристики5.1.
Билинейное z-преобразованиеЭто преобразование задаётся путём замены переменных:2 z−1p := ⋅T z+ 1 ,(2)где p – комплексная частота аналогового фильтра-прототипа, z –комплексная переменная, от которой зависит передаточная функцияцифрового фильтра, Т – интервал дискретизации (Т=1/Fs, где Fs – частотадискретизации). Достаточно в передаточной функции аналогового прототипасделать подстановку (2), и будет найдена передаточная функция цифровогофильтра К(z):−1K(z) :=b 0 + b 1⋅z−1a 0 + a 1⋅z−2+ b 2⋅z−2+ a 2⋅z−M....+ b M⋅z+ ....−N+ .... + a N⋅z(3)Если а0 ≠1, то нужно разделить все коэффициенты числителя изнаменателя на а0, чтобы знаменатель записывался в виде:−1−2−N1 + a 1⋅z + a 2⋅z + ....+ a N⋅z-7Альтернативным способом нахождения передаточной функции K(z) методомбилинейного z-преобразования является пересчёт полюсов и нулейаналогового прототипа в полюсы и нули цифрового фильтра по формуле:2z :=T2T+p−pЗатем осуществляется преобразование нулей и полюсов в коэффициентыфильтра (см.
разд.3; функции MatLab, описанные здесь для аналоговыхфильтров, годятся и для цифровых фильтров). Если количество полюсованалогового ФНЧ-прототипа превышает количество его нулей, то возникаюттакже дополнительные нули, так что общее количество нулей и полюсовцифрового фильтра, синтезированного по методу билинейного zпреобразования, оказывается равным (об этом см.
в специальной литературе).Указанные преобразования применимы, если аналоговый фильтр-прототип ицифровой фильтр – это фильтры одинакового типа (оба ФНЧ или оба ФВЧ ит.д.). Значит, если задан ФНЧ-прототип, а его нужно преобразовать вцифровой фильтр другого типа (ФВЧ, ППФ, ПЗФ), то нужно прежде найтипередаточную функцию аналогового фильтра этого типа, а затем применитьбилинейное z-преобразование.
Соответствующее преобразование типовфильтра осуществляется в MatLab операторами:>> [b1,a1]=lp2hp (b, a, w0);- преобразование ФНЧ в ФВЧ; w0 – граничная частота ФВЧ (рад/с).>> [b1,a1]=lp2bp (b, a, w0, Bw);- преобразование ФНЧ в ППФ; w0 – средняя геометрическая частотаполосы пропускания (рад/с) (w0=√w1*w2); Bw – полоса пропускания (рад/с)(Bw=w1-w2).>> [b1,a1]=lp2bs (b, a, w0, Bw);- преобразование ФНЧ в ПЗФ; w0 – средняя геометрическая частота полосызадерживания (рад/с) (w0=√w1*w2 ); Bw – ширина полосы задерживания(рад/с) (Bw=w1-w2).Само билинейное преобразование в MatLab осуществляется следующимиоператорами:>> [bz, az]= bilinear (b, a, Fs);-8или>> [zz, pz, kz]= bilinear (z, p, k, Fs);Здесь b, a, z, p, k – коэффициенты передаточной функции, нули, полюсы имасштабный коэффициент передаточной функции аналогового фильтрапрототипа.
bz, az, zz, pz, kz – соответствующие параметры цифровогофильтра. Векторы b и a должны задаваться как векторы-строки, z и p – каквекторы-столбцы. Преобразование строки в столбец и наоборотосуществляется путём постановки символа ‘ (апостроф) после именивектора. Например, операция>> d=d’;приводит к транспонированию вектора d.Параметр Fs – это частота дискретизации [Гц].Отобразить диаграмму полюсов и нулей можно командой>> zplane (z, p)или>> zplane (b, a)В первом случае z и p – вектор-столбцы , во втором случае b и a – векторстроки.
Полюсы отображаются крестиками, нули – кружками. Отображаетсятакже окружность единичного радиуса. Указанную команду можноприменять как для цифровых, так и для аналоговых фильтров.5.2. Метод инвариантной импульсной характеристикиЭтот метод предполагает, что импульсная характеристика цифровогофильтра совпадает с точностью до постоянного множителя с импульснойхарактеристикой аналогового прототипа в точках t=nT, где n=0, 1, 2,…,Т=1/Fs – интервал дискретизации. Иначе говоря, gц(n)=αgа(nT) , где αнекоторый коэффициент.
Передаточная функция цифрового фильтразаписывается в виде:NK( z) := α ⋅∑k =1 1−erkp k⋅ T − 1⋅z,(4)где rk =Res K(p) – вычет передаточной функции аналогового прототипа вp=pkполюсе pk. Общее количество полюсов pk равно N (предполагается, что всеполюсы простые).Вычеты rk и полюсы pk можно найти, используя следующий операторMatLab:>> [r, p, k]= residue(b, a)-9Если не ставить в конце строки точку с запятой и нажать клавишу <Enter>, тона экран монитора будут выведены вектор вычетов r, вектор полюсов p ивектор коэффициентов целой части k. Полюсы и вычеты могут бытьдействительными или образовыватькомплексно-сопряжённые пары.Масштабирующий коэффициент α подбирается таким, чтобы значение gц(0)было порядка единицы.
При этом значения величин αrk по модулю тожепорядка единицы. Если далее сумму дробей (4) привести к одной дроби, томожно получить передаточную функцию в стандартном виде (3). Полюсыцифрового фильтра в методе инвариантной импульсной характеристикисвязаны с полюсами аналогового прототипа стандартным z-преобразованием:zk=exp(pkT).Синтез цифрового фильтра по методу инвариантной импульснойхарактеристики осуществляется в MatLab путём ввода оператора:>> [bz, az]= impinvar (b, a, Fs);где bz, az – коэффициенты числителя и знаменателя передаточной функциицифрового фильтра (см. (3)); b, a – коэффициенты числителя и знаменателяпередаточной функции аналогового прототипа (см.
(1)); Fs – частотадискретизации (в Гц).6. Структуры цифровых фильтров и соответствующие ималгоритмы цифровой фильтрацииОдной и той же передаточной функции K(z) цифрового фильтрасоответствуют различные формы реализации и разные алгоритмыпреобразования отсчётов входного сигнала в отсчёты выходного. Выбор тойили иной структуры цифрового фильтра имеет смысл при учёте эффектовконечной разрядности представления коэффициентов фильтра и отсчётовсигнала на входе, в промежуточных точках и на выходе.
Дело в том, чтодисперсия шума квантования на выходе устройства, чувствительностьхарактеристик к точности представления коэффициентов, быстродействие,необходимый объём памяти и другие характеристики качества цифровогофильтра зависят от алгоритма работы и структуры. Естественно, чтопредпочтительнее та структура, которая обеспечивает наилучшиехарактеристики качества при заданных ограничениях.
При реализациицифровых фильтров в виде специализированных вычислительных устройствимеет также значение, в какой последовательности выполняются операции,есть ли возможность производить несколько операций параллельно, чтопозволяет повысить быстродействие; каковы аппаратурные затраты приреализации того или иного алгоритма.- 10 6.1. Прямая структура рекурсивного фильтраПередаточной функции−1K( z) :=−2b 0 + b 1⋅ z+ b 2⋅ z−1a 0 + a 1⋅ z−2+ a 2⋅ z−M+ ....
+ b M ⋅ z−N+ .... + a N⋅ zсоответствует структура видаx[n]b0y[n]1/z1/zb1- a1x[n-1]y[n-1]1/z1/zb2- a2x[n-2]y[n-2]1/zx[n-M]bM-aN1/zy[n-N]Алгоритм (разностное уравнение) записывается следующим образом:y[n]= b0 x[n]+b1 x[n-1]+b2 x[n-2]+…+bM x[n-M]- a1 y[n-1]-a2 y[n-2]-…-aN y[n-N]6.2. Каноническая структура рекурсивного фильтраКаноническая структура получается из прямой путём разделениясумматора на две части (одна для прямых связей, другая – для обратныхсвязей) с последующей перестановкой левой и правой частей схемы идальнейшим слиянием параллельных цепочек элементов памяти в одну.- 11 x[n]v[n]- a1b01/zy[n]b1v[n-1]1/z- a2v[n-2]b21/z- aNv[n-N] bN1/zv[n-M]bMНа данной схеме показано, что М>N, однако это не обязательно;возможны случаи M=N или M<N.
Наибольшее из чисел M и N являетсяпорядком фильтра. Алгоритм для канонической структуры записывается ввиде двух рекуррентных соотношений:v[n]= x[n] - a1 v[n - 1] – a2 v[n - 2] - …-aN v[n - N]y[n]= b0 v[n]+b1 v[n - 1]+b2 v[n - 2]+…+bM v[n - M]Сначала производится вычисление отсчёта сигнала v[n] в промежуточнойточке (на выходе первого сумматора), а затем уже с его использованием –отсчёта выходного сигнала y[n]. Каноническая форма интересна тем, что вней, в отличие от прямой структуры, представлена одна последовательностьэлементов памяти, а не две. Это позволяет экономить память. Однакоабсолютные значения отсчётов промежуточного сигнала v[n] могутпревосходить значения отсчётов входного и выходного сигналов, так чтоможет потребоваться увеличенная разрядность ячеек памяти по сравнению сразрядностью регистров для ввода и вывода отсчётов входного и выходногосигналов соответственно.- 12 6.3.
Транспонированная структура рекурсивного фильтраПреобразование прямой структуры, связанное с изменением порядкаопераций задержки и суммирования, приводит к транспонированнойструктуре.x[n]b0b1+b2+1/z-a1+1/zv1[n]bNv2[n]-a21/zbM-1+vN[n]bM+1/zvM-1[n]1/zvM[n-1]-aNy[n]Алгоритм для транспонированной структуры:y[n]= b0 x[n]+v1[n-1]v1[n]= b1 x[n] – a1 y[n]+v2[n-1]v2[n]= b2 x[n] – a2 y[n]+v3[n-1]••vN[n]= bN x[n] – aN y[n]+vN+1[n-1]••vM-1[n]= bM-1 x[n]+vM[n-1]vM[n]= bM x[n]Разумеется, возможны случаи М=N или M<N.
Тогда алгоритмсоответствующим образом изменяется. Транспонированная форма имеет топреимущество, что в ней операции умножения отсчётов входного ивыходного сигналов, а также операции суммирования можно производитьпараллельно; при этом повышается быстродействие алгоритма, хотяувеличиваются аппаратурные затраты (нужно иметь несколько одновременноработающих перемножителей и сумматоров).- 13 6.4.
Каскадная (последовательная) структураПередаточную функцию K(z) можно представить в виде произведенияпередаточных функций (обычно отдельные функции имеют порядок не вышевторого):K(z) = K1(z) K2(z) …KL(z).Такое представление передаточной функции соответствует каскадномувключению цифровых звеньев первого и второго порядка. Пусть, например,−1K( z) :=b 10 + b 11⋅ z−11 + a 11⋅ z−1⋅b 20 + b 21⋅ z−11 + a 21⋅ z−2+ b 22⋅ z−2+ a 22⋅ zКаскадная структура изображается следующим образом:x[n]b10v[n]1/zb20y[n]1/zb11- a111/zb21- a211/z1/zb22- a22Алгоритм:v[n]= b10 x[n]+ b11 x[n-1] – a11 v[n-1]y[n]= b20 v[n]+ b21 v[n-1]+ b22 v[n-2] – a21 y[n-1] – a22 y[n-2]В данной схеме каскады выполнены в виде прямых структур.