cw3 (557387), страница 3
Текст из файла (страница 3)
Передаточная функция, соответствующая такой строке:−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 для задания типа фильтра, его класса, метода синтеза, порядка фильтра,частоты дискретизации, граничных частот полос пропускания изадерживания и допустимых затуханий в этих полосах.
Кроме того, имеетсявкладкадля исследования эффектов квантования (Set QuantizationParameters).8.1. Задание требований к АЧХ и расчёт фильтраНа вкладке Design Filter в нижней части окна установите переключательFilter Type в одно из следующих положений: Lowpass (ФНЧ), Highpass(ФВЧ),Bandpass (ППФ) или Bandstop (ПЗФ).
Затем используйтепереключатель Design Method. Если выбрать рекурсивный фильтр, иначеБИХ-фильтр (IIR – Infinite Impulse Response), то далее в раскрывающемсясписке нужно указать класс фильтра (Batterworth (Баттерворта), ChebyshevType I (Чебышёва), Chebyshev Type II (инверсный Чебышёва), Elliptic(эллиптический)). При синтезе этих фильтров используется методбилинейного z-преобразования. В случае синтеза нерекурсивного фильтра(КИХ-фильтра, FIR – Finite Impulse Response) возможны методы: Equiripple(метод Ремеза, обеспечивающий равномерные пульсации АЧХ), LeastSquares (обеспечение минимума среднего квадратического отклонения АЧХот заданной), Window (использование окон в качестве весовых функций присинтезе фильтра) и др.В разделе Filter Order укажите требуемый порядок фильтра илиустановите переключатель в положение Minimum order (наименьшийвозможный порядок).Далее перейдите к разделам Filter Specifications и MagnitudeSpecifications.
Последовательно подводите курсор мыши к полям вводапараметров и вводите желаемые значения с клавиатуры. Смысл параметровможно понять из расположенного в верхней части окна графика допусков(Filter Specifications). Следует ввести частоту дискретизации Fs, граничныечастоты полосы пропускания и полосы задерживания (Fpass и Fstop),допустимые затухания в полосе пропускания и в полосе задерживания (Apassи Astop).После задания всех параметров щёлкните по кнопке Design Filter,расположенной в самом низу.
Будет произведён расчёт, после чего можнопросмотреть характеристики синтезированного фильтра.- 22 8.2 Просмотр характеристик фильтраВывести на экран частотные и временные характеристики фильтра,диаграмму полюсов и нулей, коэффициенты фильтра можно точно так же,как это делается в программе fvtool (см. раздел 7).