Подписка на новости

Опрос

Нужны ли комментарии к статьям? Комментировали бы вы?

Реклама

 

2008 №11

Моделирование цифровой обработки сигналов в MATLAB. Часть 1. Синтез оптимальных (по Чебышеву) КИХ-фильтров программными средствами MATLAB

Солонина Алла


Современные тенденции в различных областях науки и техники в значительной мере связаны с разработкой цифровой аппаратуры и программного продукта, и это радикально меняет характер работы инженеров и научных работников: она все больше сводится к компьютерному моделированию. Особенностью устройств цифровой обработки сигналов (ЦОС) является то, что программные части данных устройств создаются непосредственно в процессе компьютерного моделирования, поэтому овладение его современными технологиями выдвигается на первый план. К таким технологиям, безусловно, относится получившая широкое распространение в мире система (программная среда) MATLAB, созданная компанией The Math Works, Inc.

Все статьи цикла:

Предлагаемый читателю цикл статей охватывает базовые методы и алгоритмы ЦОС, инвариантные относительно физической природы сигналов и составляющие ядро фундаментальной теории ЦОС. Термин «базовые» означает, что данные методы и алгоритмы используются в приложениях ЦОС непосредственно или являются основой (базой) для разработки более сложных методов и алгоритмов.

При изложении материала предполагается, что читатель знаком с основами теории ЦОС и основами работы вMATLAB. Для начинающих рекомендуемая литература прилагается.

Проектирование цифровых фильтров

Цифровой фильтр (ЦФ) представляет собой линейную дискретную систему, выполняющую преобразование входной последовательности в выходную по алгоритму, описываемому разностным уравнением. Этот алгоритм отображает заданная структура (структура ЦФ), реализованная аппаратно или программно.

В зависимости от того, являются ли параметры ЦФ неизменными или меняющимися во времени, он будет стационарным или адаптивным. По умолчанию речь пойдет о стационарных ЦФ.

Проектирование ЦФ производят в четыре этапа:

  1. Синтез ЦФ на базе ЛДС, включающий следующие основные шаги:
    1. Выбор типа ЦФ. Двум типам ЛДС — нерекурсивной (КИХ) и рекурсивной (БИХ) — соответствуют два типа ЦФ:
      – КИХ-фильтры (FIR filters);
      – БИХ-фильтры (IIR filters).
    2. Задание требований к характеристикам ЦФ. Требования к характеристикам ЦФ зависят от его типа (КИХ или БИХ) и назначения (частотно-избирательный, преобразователь Гильберта и т. д.). По умолчанию подразумевают частотно-избирательные ЦФ.
    3. Выбор метода синтеза.
    4. Расчет коэффициентов передаточной функции ЦФ.
  2. Выбор структуры ЦФ.
  3. Моделирование структуры ЦФ с учетом эффектов квантования.
  4. Реализация структуры ЦФ.

Структура ЦФ (алгоритм вычисления реакции) преимущественно реализуется программно на базе цифровых процессоров обработки сигналов (ЦПОС) или ПЛИС, поэтому данный этап включает также отладку программной части ЦФ соответствующими аппаратными средствами.

В MATLAB имеются десятки функций, предназначенных для проектирования ЦФ, основная часть которых сосредоточена в пакетах расширения Signal Processing Toolbox, Filter Design Toolbox и Fixed Point Toolbox. На базе этих функций разработаны стандартные программы GUI FDATool и SPTool.

Следует, однако, понимать, что круг задач, решаемых с помощью GUI, ограничен, и для моделирования сложных систем ЦОС необходимо овладеть программными средствами проектирования ЦФ. Кроме того, знакомство с функциями MATLAB обеспечит более глубокое понимание организации GUI.

В этой статье рассмотрен первый этап проектирования для оптимальных (по Чебышеву) КИХ-фильтров.

Свойства КИХ-фильтров

КИХ-фильтр (фильтр с конечной импульсной характеристикой) описывает следующая передаточная функция:

Следовательно, для КИХ-фильтров расчет коэффициентов передаточной функции сводится к расчету импульсной характеристики.

Длиной и порядком КИХ-фильтра называют соответственно число коэффициентов N и порядок R передаточной функции (1), где:

Сложность КИХ-фильтра определяется его длиной N (порядком R). КИХ-фильтры характеризуются следующими особенностями:

  • возможностью обеспечить строго линейную ФЧХ (с точностью до скачков на π);
  • устойчивостью по определению.

    Линейная (с точностью до скачков на π1) ФЧХ (ЛФЧХ) КИХ-фильтра обеспечивается в том и только том случае, если для его ИХ h(n) выполняется одно из двух условий:

  • симметрии:

  • антисимметрии:

По признакам симметрии/антисимметрии ИХ h(n) и нечетности/четности длины N различают четыре типа КИХ-фильтров с линейной ФЧХ (ЛФЧХ), представленные в таблице 1. При синтезе КИХ-фильтров следует быть внимательным к его избирательности (последний столбец таблицы 1).

Таблица 1. Четыре типа КИХ-фильтров с ЛФЧХ
Тип КИХ-фильтра ЛФЧХ (с точностью до скачков на π) ЦФ
Тип 1 (Type-1):
длина N — нечетная;
порядок R — четный;
h(n) — симметричная
φ() = –( R)/2 ФНЧ,
ФВЧ,
ПФ, РФ
Тип 2 (Type-2):
длина N — четная;
порядок R — нечетный;
h(n) — симметричная
φ( ) = –( R)/2 ФНЧ,
ПФ
Тип 3 (Type-3):
длина N — нечетная;
порядок R — четный;
h(n) — антисимметричная,
h(R/2)=0
φ() = (π/2)–((R)/2 ПФ
ЦПГ
ЦД
Тип 4 (Type-4):
длина N — четная;
порядок R — нечетный;
h(n) — антисимметричная
φ() = (π/2)–((R)/2) ФВЧ, ПФ
ЦПГ
ЦД

Помимо частотно-избирательных, в таблицу 1 включены два специальных КИХ-фильтра — цифровой преобразователь Гильберта (ЦПГ) и цифровой дифференциатор (ЦД), с проектированием которых можно познакомиться в [5].

Задание требований к частотным характеристикам КИХ-фильтров

Методы синтеза частотно-избирательных КИХ-фильтров изначально предполагают ЛФЧХ (с точностью до скачков на π), поэтому требования задаются только к АЧХ в основной полосе частот [0; fД/2] и включают в себя2:

  • частоту дискретизации fД;
  • граничные частоты полос пропускания (ПП) и полос задерживания (ПЗ), для которых введены условные обозначения:
  • fχ — граничная частота ПП для ФНЧ и ФВЧ;
  • fk — граничная частота ПЗ для ФНЧ и ФВЧ;
  • f–χ, fχ — левая и правая граничные частоты ПП для ПФ и РФ;
  • f–k, fk — левая и правая граничные частоты ПЗ для ПФ и РФ;
  • максимально допустимые отклонения АЧХ Â(f ), для которых введены условные обозначения:
  • δ1 — от единицы в ПП;
  • δ2 — от нуля в ПЗ.

При синтезе КИХ-фильтров вMATLAB дополнительно задается вектор значений идеальной АЧХ: единица — в ПП и ноль— в ПЗ.

На рис. 1 приведен пример идеальной АЧХ и требований к АЧХ для ФНЧ.



Рис. 1. а) Идеальная АЧХ; б) требования к АЧХ для ФНЧ

Требования могут задаваться к АЧХ в децибелах — к характеристике ослабления:

или к характеристике затухания:

В MATLAB требования задаются к характеристике затухания (6).

В требованиях к характеристике затухания (6) вместо значений δ1 и δ2 задаются:

  • amax [дБ] — максимально допустимое затухание в ПП;
  • amin [дБ] — минимально допустимое затухание в ПЗ.

Взаимосвязь между значениями δ1, δ2 и amax, amin соответственно устанавливается формулами:

Пример 1

Для ФНЧ заданы значения δ1 = 0,05 и δ2 = 0,01 (d1 и d2). Необходимо рассчитать значения amax и amin (amax и amin) по формулам (7, 8):

>> d1=0.05; amax=-20.*log10(1-d1)
amax =
  0.4455
>> d2=0.01; amin=-20.*log10(d2)
amin =
  40

Получили amax = 0,4455 дБ и amin = 40 дБ.

Синтез КИХ-фильтров методом наилучшей равномерной (чебышевской) аппроксимации

Метод наилучшей равномерной (чебышевской) аппроксимации поясним после знакомства с терминологией и обозначениями (табл. 2).

Таблица 2. Термины чебышевской аппроксимации
Обозначение Наименование Смысл
Ω Интервал аппроксимации Совокупность ПП и ПЗ в основной полосе частот
ξ() Идеальная АЧХ Аппроксимируемая функция — непрерывная функция на интервале Ω:
единица — в ПП,
ноль — в ПЗ с линейной интерполяцией в переходных полосах
B(, ) Тригонометрический полином Аппроксимирующая функция — тригонометрический полином порядка M
с вектором неизвестных коэффициентов — амплитудная функция
КИХ-фильтра с ЛФЧХ
α Веса Веса (весовые коэффициенты) в ПП и ПЗ на интервале Ω — вектор
|δ()| Модуль взвешенной ошибки
аппроксимации
Модуль взвешенной ошибки аппроксимации на интервале Ω:
|δ()| = α|B(, )–ξ( )|
δmax Максимум модуля взвешенной ошибки
аппроксимации
Максимальное значение |δ()| на интервале Ω:
δmax = max|δ()| = αmax|B(, )–ξ()|
δmin max Минимум максимума модуля взвешенной
ошибки аппроксимации
Минимальное значение δmax на интервале Ω для тригонометрического полинома
наилучшего приближения B(, ) по критерию Чебышева3:
αmax|B(, )–ξ( )| = min,
вектор коэффициентов которого находится в результате решения
оптимизационной задачи

Используя приведенную в таблице 2 терминологию, поясним суть метода чебышевской аппроксимации в приложении к синтезу оптимальных (по Чебышеву) КИХ-фильтров:

  1. АЧХ КИХ-фильтра A() связана с его амплитудной функцией (тригонометрическим полиномом B(, )) соотношением:

    v

    При этом вектор коэффициентов связан линейно с импульсной характеристикой h(n), а порядок полинома M — линейно с порядком R передаточной функции. Следовательно, расчет ИХ h(n) КИХ-фильтра методом чебышевской аппроксимации сводится к расчету вектора коэффициентов .

  2. Согласно теореме Чебышева, существует единственный полином B(, ) наилучшего равномерного приближения (единственный вектор ) функции ξ() на интервале Ω заданного порядка M, обеспечивающий δmin max.
  3. Наоборот, существует единственный полином B(, ) наилучшего равномерного приближения (единственный вектор ) функции ξ() на интервале Ω при заданном значении δmin max обеспечивающий минимальный порядок полинома Mmin. Следовательно, при заданных требованиях к АЧХ, полагая:

    можно синтезировать КИХ-фильтр минимального порядка — оптимальный (по Чебышеву) КИХ-фильтр. Во избежание путаницы с порядком полинома Rmin, при котором требования к АЧХ также выполняются (но с другими векторами ), введем обозначение Ropt, где: Ropt < Rmin.

  4. Согласно теореме Чебышева, полином наилучшего приближения B(, ) функции ξ() на интервале Ω имеет равноволновый характер. Частоты, на которых модуль |δ()| достигает значения δmin max, называют частотами альтернанса, так как значения δmin max на этих частотах чередуются по знаку4.
  5. Для того чтобы обеспечить одинаковое значение δmin max на интервале Ω при различных заданных максимально допустимых отклонениях АЧХ δ1 и δ2, соответственно в ПП и ПЗ, вводят веса (весовые коэффициенты), рассчитываемые следующим образом:
    – вес, равный единице, присваивается полосе с наибольшим максимально допустимым отклонением;
    – веса в остальных полосах рассчитываются как отношение наибольшего максимально допустимого отклонения к максимально допустимому отклонению в данной полосе.

Поэтому веса — всегда числа, большие единицы.

Процедура синтеза КИХ-фильтра

Процедура синтеза КИХ-фильтров методом чебышевской аппроксимации включает в себя:

  1. Задание требований к АЧХ.
  2. Оценку порядка фильтра R. Оценку порядка фильтра R производят по эмпирическим формулам на основании требований к АЧХ.
  3. Расчет импульсной характеристики фильтра h(n) в (1).

    Импульсную характеристику рассчитывают по алгоритму Паркса-Мак-Клиллена, разработанному на основе метода аппроксимации Чебышева и обменного алгоритма Ремеза.

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

  4. Проверку выполнения требований к АЧХ.

В методе чебышевской аппроксимации проверка выполнения требований заключается в сравнении максимального по модулю отклонения АЧХ от идеальной с δmin max (9). Требования выполняются, если максимальное по модулю отклонение АЧХ не превосходит δmin max.

Возможны две ситуации.

  • Требования не выполняются. В этом случае следует увеличить порядок R и вернуться к пп. 3–4. Процедуру повторять до тех пор, пока не будет найден минимальный порядок Ropt = Rmin, при котором выполняются требования к АЧХ.
  • Требования выполняются.

    В этом случае следует уменьшить порядок R и вернуться к пп. 3–4.

Процедуру повторять до тех пор, пока не будет найден минимальный порядок Ropt = Rmin, при котором выполняются требования к АЧХ.

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

Таким образом, процедура синтеза КИХ-фильтра методом чебышевской аппроксимации является итерационной.

Синтез КИХ-фильтров методом чебышевской аппроксимации можно выполнить с помощью функции:

[b,error,opt]=firpm(R,f0,m0,weight,ftype,{lgrid})

где

  • R — порядок фильтра R (2);
  • f0 — вектор-столбец нормированных частот f = f/(fд/2), в основной полосе частот [0;1], включающий: левую границу основной полосы частот f0 = 0; граничные частоты ПП и ПЗ в порядке их следования слева направо; правую границу основной полосы f0 = 1;
  • m0 — вектор-столбец значений идеальной АЧХ на частотах вектора f0; длины векторов m0 и f0 совпадают;
  • weight — вектор-столбец весов в ПП и ПЗ в порядке следования слева направо;
  • ftype — параметр, указывающий тип КИХ-фильтра и принимающий значения (табл. 1):
    'hilbert' — для 3-го и 4-го типов и цифровых преобразователей Гильберта;
    'differentiator' — для 3-го и 4-го типов и цифровых дифференциаторов;
  • по умолчанию (если значение параметра не задано явно) — для 1-го и 2-го типов;
  • lgrid — коэффициент плотности сетки частот (Density Factor); указывается элементом массива ячеек в фигурных скобках и равен целому числу C≥16 (16 — по умолчанию); значение lgrid используется для автоматического расчета числа точек на густой сетке частот интервала Ω; с ростом lgrid возрастает точность вычисления коэффициентов b;
  • b — вектор коэффициентов передаточной функции (1) длины N = R+1;
  • opt — массив записей со следующими полями:
    opt.fgrid — сетка нормированных частот (вектор) на интервале аппроксимации Ω (совокупности ПП и ПЗ) в шкале нормированных частот f; правая граница основной полосы частот, равная единице, не выводится;
    opt.H — вектор значений комплексной частотной характеристики на сетке частот opt.fgrid;
    opt.error — вектор отклонений АЧХ от идеальной на сетке частот opt.fgrid;
    opt.des — вектор значений идеальной АЧХ на сетке частот opt.fgrid;
    opt.wt — вектор весов на сетке частот opt.fgrid;
    opt.iextr — вектор номеров элементов вектора opt.fgrid, соответствующих частотам альтернанса;
    opt.fextr — вектор нормированных частот альтернанса;
    error — максимальное отклонение АЧХ от идеальной на интервале Ω; error=max(abs(opt.error)).

Оценку порядка R КИХ-фильтра для функции firpm, а также вычисление параметров f0, m0, weight производят по требованиям к АЧХ с помощью функции:

[R,f0,m0,weight]=firpmord(f,m,ripple,Fs)

Здесь f — вектор граничных абсолютных частот (Гц) в порядке их следования слева направо; m— вектор значений идеальной АЧХ в порядке их следования слева направо; соблюдается условие length(f)=2*length(m)-2; ripple — вектор максимально допустимых отклонений АЧХ в порядке их следования слева направо; Fs — частота дискретизации fд (Гц).

Остальные параметры были определены ранее для функции firpm.

Приведем примеры синтеза оптимальных КИХ-фильтров ФНЧ и ПФ с помощью функции firpm.

Пример 2

Заданы требования к АЧХ ФНЧ (рис. 1, табл. 3).

Таблица 3. Требования к АЧХ ФНЧ
Частоты (Гц)
и их обозначения в MATLAB
Максимально допустимые
отклонения АЧХ
и их обозначения в MATLAB
Частота
дискретизации
fд
Fs
8000
Граничная
частота ПП
fχ
ft
1000 В полосе
пропускания (ПП)
δ1
d1
0,05
Граничная
частота ПЗ
fk
fk
1500 В полосе
задерживания (ПЗ)
δ2
d2
0,01

Синтезировать КИХ-фильтр методом чебышевской аппроксимации можно с помощью функции firpm:

>> Fs=8000;
>> ft=1000;
>> m=[1 0];
>> d1=0.05;
 
fk=1500;

d2=0.01;
 
f=[ft fk];

ripple=[d1 d2];
>> [R,f0,m0,weight]=firpmord(f,m,ripple,Fs);
>> [R weight']
ans =    
23 1 5
>> [b,error,opt]=firpm(R,f0,m0,weight);

В MATLAB при синтезе КИХ-фильтров с помощью функции firpm порядок фильтра R определяется с точностью до ±2, и для его уточнения необходима проверка выполнения требований к АЧХ.

Проверим выполнение требований к АЧХ. Выведем значение error:

>> error
error =
  0.0675

Сравнивая error с δmin max (9), в данном случае с δ1 = d1 = 0,05, видим, что требования не выполняются. Следует увеличить порядок R. ФНЧ можно синтезировать на базе КИХ- фильтров 1-го и 2-го типов (табл. 1), поэтому порядок R может быть как четным, так и нечетным:

>> R=R+1;
>> [R error]
ans =
[b,error,opt]=firpm(R,f0,m0,weight);
24.0000 0.0553

Требования не выполняются. Выполним еще одну итерацию:

>> R=R+1;
>> [R error]
ans =
[b,error,opt]=firpm(R,f0,m0,weight);
25.0000 0.0435

Требования к АЧХ выполняются. Синтезирован оптимальный ФНЧ с ЛФЧХ порядка Ropt = 25 на базе КИХ-фильтра 2-го типа.

Для построения графиков ИХ, АЧХ и ФЧХ КИХ-фильтра можно создать внешнюю функцию plot_fir5:

function plot_fir(R,b,Fs)
% Построение графиков характеристик КИХ-фильтра
% R— порядок КИХ-фильтра
% b— вектор коэффициентов передаточной функции
% a=[1] — коэффициент знаменателя передаточной функции
% Fs — частота дискретизации (Гц)
a=[1]; n=0:R;
subplot(3,1,1), stem(n,b,'fill','MarkerSize',3), xlabel('n'),...
title('Impulse Response'), grid
f=0:((Fs/2)/1000):Fs/2;
H=freqz(b,a,f,Fs); MAG=abs(H); PHASE=angle(H);
subplot(3,1,2),plot(f,MAG),xlabel('f(Hz)'),title('MAGNITUDE'),grid
subplot(3,1,3),plot(f,PHASE),xlabel('f(Hz)'),title('PHASE'),grid

Построим графики ИХ, АЧХ и ФЧХ оптимального ФНЧ с помощью внешней функции plot_fir (рис. 2):



Рис. 2. Характеристики оптимального КИХ-фильтра ФНЧ: а) импульсная характеристика; б) АЧХ; в) ФЧХ

>> plot_fir(R,b,Fs)

Поля массива записей opt выводятся по его имени:

>> opt

Пример 3

Заданы требования к АЧХ ПФ (табл. 4).

Таблица 4. Требования к АЧХ ПФ
Частоты (Гц)
и их обозначения в MATLAB
Максимально допустимые
отклонения АЧХ
и их обозначения в MATLAB
Частота
дискретизации
fд
Fs
8000
Граничная
частота ПЗ1
f–k
fk1
1000 В полосе
задерживания (ПЗ1)
δ2
d2
0,01
Левая граничная
частота ПП
f–χ
ft1
1400 В полосе
пропускания (ПП)
δ1
d1
0,05
Правая граничная
частота ПП
fχ
ft2
2000      
Граничная частота
ПЗ2
fk
fk2
2400 В полосе
задерживания (ПЗ2)
δ2
d2
0,01

Синтезировать КИХ-фильтр методом чебышевской аппроксимации можно с помощью функции firpm:

>> Fs=8000;
>> fk1=1000; ft1=1400; ft2=2000; fk2=2400; f=[fk1 ft1 ft2 fk2];
>> m=[0 1 0];
>> d2=0.01; d1=0.05; ripple=[d2 d1 d2];
>> [R,f0,m0,weight]=firpmord(f,m,ripple,Fs);
>> [R weight']
ans =
  29 5 1 5
>> [b,error,opt]=firpm(R,f0,m0,weight);

Проверим выполнение требований к АЧХ. Выведем значение error:

>> error
error =
  0.0663

Сравнивая error с δmin max (9), в данном случае с δ1 = d1 = 0,05, видим, что требования не выполняются. Следует увеличить порядок R. ПФ можно синтезировать на базе КИХ-фильтров любого из 4 типов (табл. 1), поэтому порядок R может быть как четным, так и нечетным:

>> R=R+1; [b,error,opt]=firpm(R,f0,m0,weight);
>> [R error]
ans =
  30.0000 0.0666

Требования не выполняются. Выполним следующую итерацию, изменив тип КИХ-фильтра на 3-й. Выбирая КИХ-фильтр 3-го или 4-го типа, параметру ftype в функции firpm следует присваивать значение 'hilbert':

>> [b,error,opt]=firpm(R,f0,m0,weight,'hilbert');
>> [R error]
ans =
  30.0000 0.0582

Требования не выполняются, но значение максимальной ошибки уменьшилось. Увеличим порядок R и синтезируем ПФ, например, на базе КИХ-фильтра 4-го типа:

>> R=R+1; [b,error,opt]=firpm(R,f0,m0,weight,'hilbert');
>> [R error]
ans =
  31.0000 0.0412

Требования к АЧХ выполняются. Синтезирован оптимальный ПФ с ЛФЧХ порядка Ropt = 31 на базе КИХ-фильтра 4-го типа.



Рис. 3. Импульсная характеристика (а), АЧХ (б) и ФЧХ (в) оптимального КИХ-фильтра ПФ

Построим графики ИХ (антисимметричной), АЧХ и ФЧХ синтезированного ПФ с помощью функции plot_fir, созданной в примере 2 (рис. 3):

>> plot_fir(R,b,Fs)

В пакете Filter Design Toolbox имеется функция firgr с форматом:

[b,error,opt]=firgr(R,f0,m0,weight,ftype,{lgrid},'check')

которая по существу дублирует функцию firpm, с той разницей, что массив записей opt содержит дополнительные поля [5].

Представляет интерес формат функции firgr, позволяющий автоматически синтезировать оптимальный КИХ-фильтр:

[b,err,opt]=firgr({m,R},f0,m0,ripple,ftype,{lgrid},'check')

где

  • {m,R} — двухэлементный массив ячеек, в котором R — оценка порядка (может отсутствовать), а m — параметр, контролирующий выбор минимального порядка и принимающий значения:
    'minorder' — выбирается минимальный порядок среди четных и нечетных значений;
    'mineven' — выбирается минимальный четный порядок;
    'minodd' — выбирается минимальный нечетный порядок;
  • err — параметр, который не следует путать с параметром error вфункции firpm; при синтезе частотно-избирательных КИХ-фильтров он практического интереса не представляет. Модуль максимального отклонения АЧХ определяется как max(abs(opt.error)).

Все остальные параметры были определены ранее.

Параметры f0, m0, ripple, R по-прежнему вычисляются с помощью функции firpmord по требованиям к АЧХ.

Приведем примеры синтеза оптимальных КИХ-фильтров ФНЧ и ПФ с помощью функции firgr.

Пример 4

Заданы требования к АЧХ ФНЧ (рис. 1, табл. 3). Необходимо синтезировать оптимальный ФНЧ методом чебышевской аппроксимации с помощью функции firgr. Сохранить коэффициенты b на диске для использования в дальнейшем:

>> [b,err,opt]=firgr({'minorder',R},f0,m0,ripple);
>> save b
>> opt.order
ans =
  25

Убедимся в выполнении требований к АЧХ:

>> error=max(abs(opt.error))
error=
  0.0436

Требования к АЧХ выполняются. Синтезирован оптимальный ФНЧ с ЛФЧХ порядка Ropt = 25 на базе КИХ-фильтра 2-го типа, такой же, как в примере 2.

Пример 5

Заданы требования к АЧХ ПФ (табл. 4). Необходимо синтезировать оптимальный ПФ методом чебышевской аппроксимации с помощью функции firgr.

ПФ может быть синтезирован на базе КИХ-фильтров всех 4 типов. В данном случае выбор параметра m, равного 'minorder', также не приведет к успеху (проверьте самостоятельно), поэтому выполним следующую последовательность действий:

  1. Синтезируем фильтр на базе КИХ-фильтра 1-го типа с параметром m, равным 'mineven'. Порядок КИХ-фильтра (параметр opt.order) обозначим как R1.
  2. Синтезируем фильтр на базе КИХ-фильтра 2-го типа с параметром m, равным 'minodd'. Порядок КИХ-фильтра (параметр opt.order) обозначим как R2.
  3. Синтезируем фильтр на базе КИХ-фильтра 3-го типа ('hilbert') с параметром m, равным 'mineven'. Порядок КИХ-фильтра обозначим как R3.
  4. Синтезируем фильтр на базе КИХ-фильтра 4-го типа ('hilbert') с параметром m, равным 'minodd'. Порядок КИХ-фильтра обозначим как R4.
  5. Выберем из них фильтр минимального порядка — min(R1, R2, R3, R4).
>> Fs=8000;
>> fk1=1000; ft1=1400; ft2=2000; fk2=2400; f=[fk1 ft1 ft2 fk2];
>> m=[0 1 0];
>> d2=0.01; d1=0.05; ripple=[d2 d1 d2];
>> [R,f0,m0,weight]=firpmord(f,m,ripple,Fs);
>> [b,err,opt]=firgr({'mineven',R},f0,m0,ripple); R1=opt.order;
>>[b,err,opt]=firgr({'minodd',R},f0,m0,ripple); R2=opt.order;
>> [b,err,opt]=firgr({'mineven',R},f0,m0,ripple,'hilbert');
>>R3=opt.order;
>> [b,err,opt]=firgr({'minodd',R},f0,m0,ripple,'hilbert');
>>R4=opt.order;
>> [R1 R2 R3 R4]
ans =
  32 33 32 31

Синтезирован оптимальный ПФ с ЛФЧХ порядка Ropt = 31 на базе КИХ-фильтра 4-го типа, такой же, как в примере 3. Убедимся в выполнении требований к АЧХ:

>> error=max(abs(opt.error))
error =
  0.0413

Анализ КИХ-фильтра

В состав MATLAB входит программа GUI FVTool (Filter Visualization Tool — средства визуализации фильтра), предназначенная для анализа характеристик синтезированных ЦФ в окне Figure...: Filter Visualization Tool, обращение к которому производится с помощью функции fvtool:

fvtool(b,a)

Здесь b, a — векторы коэффициентов передаточной функции КИХ-фильтра, где a = [1].

Часть 2. Синтез оптимальных цифровых БИХ-фильтров программными средствами MATLAB

Литература

  1. Ingle V., Proakis J. Digital Signal Processing Using MATLAB. Second Edition — Thomson-Engineering. 2006.
  2. Оппенгейм А., Шафер Р. Цифровая обработка сигналов. М.: Техносфера, 2006.
  3. Сергиенко А. Б. Цифровая обработка сигналов, 2-е изд. СПб.: Питер, 2006.
  4. Солонина А. И., Улахович Д. А., Арбузов С. М., Соловьева Е. Б. Основы цифровой обработки сигналов. 2-е изд. СПб.: БХВ-Петербург, 2005.
  5. Солонина А. И., Арбузов С. М. Цифровая обработка сигналов. Моделирование в MATLAB. СПб.: БХВ-Петербург, 2008.

1 Скачок ФЧХ на π имеет место в тех точках, где АЧХ равна нулю.К тексту
2 Если на ФЧХ не налагается требование строгой линейности, то при тех же требованиях к АЧХ БИХ-фильтр может оказаться более простым.К тексту
3 Этот критерий называют также наилучшим равномерным или минимаксным критерием.К тексту
4 Альтернанс — чередование противоположных.К тексту
5 Для полного анализа характеристик синтезированного ЦФ следует обратиться к GUI FVTool (см. последний раздел статьи).К тексту

Скачать статью в формате PDF  Скачать статью Компоненты и технологии PDF

 


Другие статьи по данной теме:

Сообщить об ошибке