Постановка задачи и способы аппроксимации квадрата АЧХ

Содержание

DSPL-2.0 — свободная библиотека алгоритмов цифровой обработки сигналов

Распространяется под лицензией LGPL v3

Страница проекта на SourceForge libdspl-2.0 on SourceForge

Обнаружили ошибку? Выделите ее мышью и нажмите ctrl+enter
Типы фильтров. Параметры аппроксимации квадрата АЧХ нормированного ФНЧ

По форме амплитудно-частотной характеристики \left| H\left( j\omega  \right) \right| (АЧХ) различают следующие типы фильтров:

Примеры квадрата АЧХ {{\left| H\left( j\omega  \right) \right|}^{2}} для приведенных типов фильтров показаны на рисунке 1.

Примеры квадрта АЧХ различных типов фильтров
Рисунок 1. Примеры квадрта АЧХ различных типов фильтров

Рассмотрим постановку задачи расчета фильтра на примере ФНЧ. Мы бы хотели получить фильтр, который пропускает без искажений все частоты ниже {{\omega }_{p}} и полностью подавляет все частоты выше {{\omega }_{p}}. Такой ФНЧ называют идеальным, и он не реализуем на практике. Реализуемые ФНЧ всегда вносят искажения в полосе пропускания и не до конца подавляет в полосе заграждения. На рисунке 2 показан квадрат АЧХ {{\left| H\left( j\omega  \right) \right|}^{2}} идеального (толстая пунктирная линия) и реального (сплошная линия) ФНЧ.

Квадрт АЧХ идеального и реального фильтра нижних частот
Рисунок 2. Квадрт АЧХ идеального и реального фильтра нижних частот

Полоса частот от 0 до {{\omega }_{p}} называется полосой пропускания ФНЧ, полоса частот выше {{\omega }_{s}} называется полосой подавления или полосой заграждения. Полоса частот между {{\omega }_{p}} и {{\omega }_{s}} называется переходной полосой фильтра. Мы должны научится регулировать искажения сигнала и подавление при использовании ФНЧ.

Параметры

equation 1
(1)
определяют максимальное искажение квадрата АЧХ {{\left| H\left( j\omega  \right) \right|}^{2}} в полосе пропускания и задают требуемое подавление в полосе заграждения соответственно.

Таким образом, получили такой «изогнутый коридор» в который должна поместиться АЧХ нашего фильтра. При этом, чем «коридор уже», тем параметр {{\varepsilon }_{p}} меньше, а параметр {{\varepsilon }_{s}} больше.

Принято искажение в полосе пропускания и требуемое подавление фильтра в полосе заграждения выражать в децибелах, как {{R}_{p}} и {{R}_{s}} соответственно. Тогда:

equation 2
(2)
где \lg(\bullet) – десятичный логарифм.

Из (2) можно выразить:

equation 3
(3)
Для расчета фильтра нижних частот достаточно задать параметры квадрата АЧХ R_p, R_s, \omega_p и \omega_s. Остальные параметры являются вспомогательными. Так нам потребуется еще два параметра {{k}_{\omega }} и {{k}_{\varepsilon }}, которые мы будем использовать в дальнейшем:

equation 4
(4)
Параметр {{k}_{\omega }} определяет переходную полосу фильтра. Если сужать переходную полосу, то {{k}_{\omega }} будет стремиться к единице. С другой стороны параметр {{k}_{\varepsilon }} определяет степень подавления фильтра с учетом вносимых искажений в полосе пропускания. Так, если коэффициент подавления в полосе заграждения {{R}_{s}} растет, то {{k}_{\varepsilon }} стремиться к нулю. Аналогично {{k}_{\varepsilon }} стремиться к нулю если коэффициент неравномерности в полосе пропускания {{R}_{p}} стремится к нулю дБ.

Уравнение порядка фильтра нижних частот

Порядок фильтра можно определить как максимальное количество нулей и полюсов передаточной функции H\left( s \right) фильтра. Также можно сказать, что порядок фильтра задается максимальной степенью полинома числителя и знаменателя передаточной функции H(s) фильтра. Однако для расчета фильтра мы задаем параметры частотной характеристики, в которые должен укладываться наш фильтр, и мы не знаем какой порядок фильтра для этого потребуется.

Мы неслучайно уделяем особое внимание параметрам фильтров нижних частот. Дело в том, что ФНЧ служат прототипом для фильтров других типов (ФВЧ, ПФ и РФ), передаточные характеристики которых можно получить из передаточной характеристики ФНЧ путем алгебраических частотных преобразований. При этом ФНЧ с различными значениями частоты среза \omega_p также могут быть получены из других ФНЧ путем преобразования частоты.

Поэтому фильтры нижних частот подходят на роль прототипов из которых можно получить все типы фильтров с любыми параметрами квадрата АЧХ. При этом особую роль играют нормированные ФНЧ, у которых частота среза \omega_p = 1 рад/с.

Аппроксимация квадрата АЧХ нормированного фильтра нижних частот представляется в виде:

equation 5
(5)
где {{F}_{N}}\left( \omega  \right) – аппроксимирующая функция порядка N.

Для того чтобы квадрат АЧХ фильтра {{\left| H\left( j\omega  \right) \right|}^{2}} разместился в заданном коридоре необходимо, чтобы выполнялись следующие условия:

equation 6
(6)
Первое условие (6) будет выполнено, если

equation 7
(7)
Чтобы выполнилось второе условие, необходимо обеспечить переходную полосу заданной ширины и с заданным подавлением, т.е.

equation 8
(8)
откуда можно выразить:

equation 9
(9)
Таким образом, мы получили уравнение (9), решая которое относительно N можно рассчитать требуемый порядок фильтра, при котором квадрат АЧХ фильтра удовлетворит заданным параметрам. При этом рассчитанное значение порядка N округляется в бо́льшую сторону до ближайшего целого.

Необходимо отметить, что для сужения переходной полосы необходимо увеличивать порядок фильтра, однако при практической реализации от порядка фильтра зависит количество реактивных элементов (емкостей и индуктивностей) в его схеме. В результате, увеличение порядка фильтра приводит к усложнению самого фильтра, удорожанию и что самое важное, фильтр с увеличением порядка становится очень чувствительным к разбросу номиналов его компонент и требует точной прецизионной настройки.

Аппроксимация по Баттерворту

Аппроксимирующая функция нормированного ФНЧ Баттерворта порядка N равна {{F}_{N}}\left( \omega  \right)={{\omega }^{N}}. Квадрат АЧХ фильтра задается выражением:

equation 10
(10)
На рисунке 3 показаны квадрат аппроксимирующей функции {F}_{N}^{2}\left( \omega  \right) и квадрат АЧХ {{\left| H\left( j\omega  \right) \right|}^{2}} нормированного ФНЧ Баттерворта порядка N=4 при R_p = 0.3 дБ.

Аппроксимирующая функция и квадрат АЧХ нормированного ФНЧ Баттерворта 4-го порядка
Рисунок 3. Аппроксимирующая функция и квадрат АЧХ нормированного ФНЧ Баттерворта 4-го порядка

Ось абсцисс \omega на рисунке 3 показана в логарифмическом масштабе.

Фильтры Баттерворта являются фильтрами с максимально-гладкой АЧХ. Скорость спада квадрата АЧХ составляет 20N дБ/декада. При аппроксимации по Баттервотру, очень часто задают параметр {{\varepsilon }_{p}}=1 , и на частоте {{\omega }_{p}}, квадрат АЧХ {{\left| H\left( j\omega  \right) \right|}^{2}}=0.5 (–3 дБ). Тогда для расчета ФНЧ Баттерворта при {{\varepsilon }_{p}}=1 задается только порядок фильтра. Остальные параметры, такие как неравномерность в полосе пропускания и уровень подавлениия в полосе заграждения не задаются.

Аппроксимация полиномами Чебышева первого рода

Аппроксимирующая функция нормированного ФНЧ Чебышева первого рода, {{F}_{N}}\left( \omega  \right)={{C}_{N}}\left( \omega  \right), где {{C}_{N}}\left( \omega  \right)=\cos \big( N\arccos \left( \omega  \right) \big) – многочлен Чебышева первого рода порядка N. Тогда квадрат АЧХ {{\left| H\left( j\omega  \right) \right|}^{2}} нормированного ФНЧ Чебышева первого рода можно записать:

equation 11
(11)
Параметр {{\varepsilon }_{p}} задает уровень пульсаций в полосе пропускания фильтра и рассчитывается исходя из заданной неравномерности АЧХ в полосе пропускания согласно выражению (3).

На рисунке 4 показаны аппроксимирующая функция и квадрат АЧХ нормированного ФНЧ Чебышева первого рода порядка N=4 при {\varepsilon }_{p}^{2}=0.0715 (неравномерность АЧХ фильтра в полосе пропускания {{R}_{p}}=0.3 дБ).

Аппроксимирующая функция и квадрат АЧХ фильтра Чебышева первого рода 4-го порядка
Рисунок 4. Аппроксимирующая функция и квадрат АЧХ фильтра Чебышева первого рода 4-го порядка

Хорошо видно, что в полосе пропускания квадрат АЧХ {{\left| H\left( j\omega  \right) \right|}^{2}} фильтра Чебышева первого рода совершает равноволновые колебания, в отличии от фильтра Баттерворта. При этом скорость спада АЧХ фильтра Чебышева первого рода за пределами полосы пропускания, выше чем у фильтра Баттерворта.

Инверсный фильтр Чебышева

Ранее при аппроксимации АЧХ многочленами Чебышева задавалась допустимая неравномерность АЧХ фильтров в полосе пропускания при помощи параметра {{\varepsilon }_{p}}. Однако можно также задать требуемый уровень подавления в полосе заграждения при помощи параметра {{\varepsilon }_{s}}. Тогда получим фильтры Чебышева второго рода или как их еще называют инверсные фильтры Чебышева. Аппроксимирующая функция в этом случае задается выражением {{F}_{N}}\left( \omega  \right)=\frac{1}{{{C}_{N}}\left( {1}/{\omega }\; \right)}, а квадрат АЧХ нормированного ФНЧ Чебышева второго рода представляется в виде:

equation 12
(12)
Как уже было сказано, {{\varepsilon }_{s}} задает уровень подавления {{R}_{s}} в полосе заграждения фильтра согласно (3). На рисунке 5 показаны аппроксимирующая функция {F}_{N}^{2}\left( \omega  \right) и квадрат АЧХ {{\left| H\left( j\omega  \right) \right|}^{2}} нормированного ФНЧ Чебышева второго рода порядка N = 4 при уровне подавления в полосе заграждения {{R}_{s}}=10 дБ.

Аппроксимирующая функция и квадрат АЧХ фильтра Чебышева второго рода 4-го порядка
Рисунок 5. Аппроксимирующая функция и квадрат АЧХ фильтра Чебышева второго рода 4-го порядка

Нормированный ФНЧ Чебышева первого рода на частоте \omega =1 рад/c «пропускает» сигнал, т.к. {{\left| H\left( j\cdot 1 \right) \right|}^{2}}={G}_{p}^{2} близко к единице (0 дБ). Однако, нормированный ФНЧ Чебышева второго рода на частоте \omega =1 рад/c «подавляет» сигнал, т.к. {{\left| H\left( j\cdot 1 \right) \right|}^{2}}={G}_{s}^{2}. Фильтры Чебышева второго рода целесообразно использовать для расчета режекторных (полосозаграждающих) фильтров с заданным коэффициентом подавления.

Аппроксимация по Кауэру. Эллиптический фильтр

Можно заметить, что АЧХ фильтра Чебышева первого рода носит колебательный характер в полосе пропускания и максимально-гладкая в полосе заграждения, в то время как АЧХ фильтра Чебышева второго рода наоборот колеблется в полосе заграждения и максимально-гладкая в полосе пропускания. Однако есть еще один класс фильтров АЧХ которых носит колебательный характер как в полосе пропускания, так и в полосе подавления. Это эллиптические фильтры Кауэра.

Аппроксимирующая функция нормированного эллиптического ФНЧ представляет собой эллиптическую дробно-рациональную функцию {{F}_{N}}\left( \omega  \right)={{R}_{N}}\left( \omega ,{{k}_{\varepsilon }} \right), зависящую от параметра {{k}_{\varepsilon }}, рассмотренного выше. Квадрат модуля АЧХ фильтра Кауэра представляет собой:

equation 13
(13)
Квадрат аппроксимирующей функции {F}_{N}^{2}\left( \omega  \right)={R}_{N}^{2}\left( \omega ,{{k}_{\varepsilon }} \right) эллиптического фильтра 4-го порядка и квадрат АЧХ {{\left| H\left( j\omega  \right) \right|}^{2}} показаны на рисунке 6.

Аппроксимирующая функция и квадрат АЧХ эллиптического фильтра 4-го порядка
Рисунок 6. Аппроксимирующая функция и квадрат АЧХ эллиптического фильтра 4-го порядка

Параметр {\varepsilon }_{p}^{2}=0.0715 (неравномерность АЧХ фильтра в полосе пропускания {{R}_{p}}=0.3 дБ), а параметр {{k}_{\varepsilon }}=0.956 задает уровень подавления в полосе заграждения равный {{R}_{s}}=10 дБ. Обратите внимание, что квадрат аппроксимирующей функция {F}_{N}^{2}\left( \omega  \right) эллиптического фильтра показан показан на двух графиках. На верхнем графике {F}_{N}^{2}\left( \omega  \right) показан в масштабе от 0 до 400. Из верхнего графика видно, что {F}_{N}^{2}\left( \omega  \right) имеет полюсы при \omega > 1 рад/c, что приводит к пульсация квадрата АЧХ фильтра в полосе заграждения. На нижнем графике {F}_{N}^{2}\left( \omega  \right) показаны колебания аппроксимирующей функции в полосе пропускания.

Решение уравнения порядка фильтра

Фильтр Баттерворта обладает самой широкой переходной полосой среди всех фильтров, но у него максимально-гладкая АЧХ. Внесение в АЧХ фильтра Баттерворта колебаний приводит к фильтрам Чебышева, переходная полоса которых у́же чем у фильтра Баттерворта. Равноволновые колебания в полосе пропускания приводят к фильтрам Чебышева первого рода, а равноволновые колебания в полосе заграждения к фильтрам Чебышева второго рода. Внесение равноволновых колебаний как в полосу пропускания, так и в полосу заграждения АЧХ приводит к эллиптическому фильтру с минимальной переходной полосой.

Полученное ранее выражение (9) связывает параметры квадрата АЧХ с порядком фильтра N. В данном параграфе мы решим уравнение (9) относительно N для рассмотренных выше аппроксимаций квадрата АЧХ нормированных ФНЧ.

Порядок нормированного ФНЧ Баттерворта рассчитывается из уравнения:

equation 14
(14)
Прологарифмируем правую и левую части уравнения и получим:

equation 15
(15)
Порядок нормированного ФНЧ Чебышева первого и второго рода рассчитывается из уравнения:

equation 16
(16)
Откуда можно выразить:

equation 17
(17)
Обратите внимание, что аргументы арккосинуса больше единицы, тогда арккосинус аргумента больше единицы возвращает комплексное значение. Известно, что арккосинус любого комплексного аргумента z равен:

equation 18
(18)
тогда (17) с учетом (18) можно представить как:

equation 19
(19)
где \operatorname{arch}(\bullet) – арккосинус гиперболический.

Порядок эллиптического фильтра можно рассчитать из уравнения:

equation 20
(20)
где K\left( \bullet \right) и T\left( \bullet \right) – полный и комплиментарный эллиптические интегралы, а {{k}_{\omega }} и {{k}_{\varepsilon }} рассчитываются согласно (4).

В таблице 1 приведены порядки нормированных ФНЧ Баттерворта, Чебышева и эллиптического для некоторых значения параметров квадрата АЧХ.

Порядки фильтров Баттерворта, Чебышева и Кауэра для некоторых параметров коридора АЧХ
Таблица 1. Порядки фильтров Баттерворта, Чебышева и Кауэра для некоторых параметров коридора АЧХ

Из таблицы 1 видно, что сужение переходной полосы, когда {{\omega }_{s}} приближается к {{\omega }_{p}} и уменьшение неравномерности в полосе пропускания {G}_{p}^{2} с одновременным ростом подавления {G}_{s}^{2} в полосе заграждения, приводит к очень резкому росту требуемого порядка фильтра Баттерворта. При этом порядок фильтра Чебышева растет медленнее, однако и ему далеко до эллиптического фильтра, который обеспечивает минимальный порядок при заданном коридоре АЧХ.

Переход от фильтра Баттерворта к фильтру Чебышева позволяет сократить порядок фильтра более чем в 5 раз, а использование эллиптического фильтра более чем в 10 раз. В результате, вместо фильтра Баттерворта 118 порядка можно поставить эллиптический фильтр всего 8-го порядка без ухудшения характеристик фильтра. Но это потребует более точной настройки параметров емкостей и индуктивностей при реализации фильтра.

Выводы

В данном разделе мы рассмотрели постановку задачи расчета аналогового нормированного ФНЧ и произвели анализ различных способов аппроксимации АЧХ фильтра: аппроксимация по Баттерворту, по Чебышеву и по Кауэру. Получили решения уравнения порядка фильтра при заданном коридоре АЧХ для всех перечисленных способов аппроксимации фильтра. Произведен сравнительный анализ порядоков фильтров Баттерворта, по Чебышева и по Кауэра (эллиптического) для некоторых коридоров АЧХ.

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

Программная реализация в библиотеке DSPL

Данные для построения рисунков данного раздела были просчитаны при использовании библиотеки DSPL-2.0

Ниже приведён исходный код программы расчета данных для построения рисунков данного раздела:


#include <stdio.h>
#include <string.h>
#include <math.h>
#include "dspl.h"

#define N  8000



void r2hdb(double* r, double* h, double* hdb, double ep2, int n)
{
  int k;
  for(k = 0; k < n; k++)
  {
    r[k] *= r[k];
    h[k] = 1.0/(1.0 + ep2 * r[k]);
    hdb[k] = 10.0*log10(h[k]);
  }  
}




int main(int argc, char* argv[]) 
{
  double w[N];     
  double r[N];    
  double h[N], hdb[N];
  double ep2, Rp, Rs, es2, m;
  int ord, k;
  
  void* handle;           /* DSPL handle        */
  handle = dspl_load();   /* Load DSPL function */
  
  /* заполняю массив частот в логарифмическом формате от 0.01 до 100 */
  logspace(-2, 2,  N, DSPL_PERIODIC, w); 
  
  
  ord = 4;    /* порядок фильтра                              */
  Rp = 0.3;   /* Неравномерность в полосе пропускания (дБ)    */
  Rs = 10.0;  /* Уровень подавления в полосе заграждения (дБ) */
  
  /* Параметры ep^2 и es^2 */
  ep2 = pow(10.0, Rp*0.1) - 1.0;
  es2 = pow(10.0, Rs*0.1) - 1.0;
  
  /* вывод на печать параметров ep^2 и es^2 */
  printf("ep^2 = %.4f\n", ep2);
  printf("es^2 = %.4f\n", es2);
  
  
  
  
  /**********************************************************************
   Расчет F_N^2(w) и |H(jw)|^2 фильтра Баттерворта
  **********************************************************************/
  for(k = 0; k < N; k++)
  {
    r[k] = pow(w[k], (double)(ord));
  }
  r2hdb(r, h, hdb, ep2, N);
  
  /* сохранение в файлы результатов расчета фильтра Баттерворта        */
  writetxt(w, r,   N, "dat/butter_r.txt");
  writetxt(w, h,   N, "dat/butter_h.txt");
  writetxt(w, hdb, N, "dat/butter_hdb.txt");
  


  
  
  /**********************************************************************
   Расчет F_N^2(w) и |H(jw)|^2 фильтра Чебышева 1-го рода
  **********************************************************************/
  cheby_poly1(w, N, ord, r);
  r2hdb(r, h, hdb, ep2, N);
  
  /* сохранение в файлы результатов расчета фильтра Чебышева 1-го рода */    
  writetxt(w, r,   N, "dat/cheby1_r.txt");
  writetxt(w, h,   N, "dat/cheby1_h.txt");
  writetxt(w, hdb, N, "dat/cheby1_hdb.txt");
  
  
  
  
  
  /***********************************************************************
    Расчет F_N^2(w) и |H(jw)|^2 фильтра Чебышева 2-го рода
   **********************************************************************/
  for(k = 0; k < N; k++)
  {
    w[k] = 1.0 / w[k];
  }
  cheby_poly1(w, N, ord, r);
  for(k = 0; k < N; k++)
  {
    r[k]    =1.0 / (r[k] *r[k]);
    h[k]   = 1.0/(1.0 + es2*r[k]);
    hdb[k] = 10.0*log10(h[k]);
  }
  
  logspace(-2, 2,  N, DSPL_PERIODIC, w);
  
  /* сохранение в файлы результатов расчета фильтра Чебышева 1-го рода  */
  writetxt(w, r,   N, "dat/cheby2_r.txt");
  writetxt(w, h,   N, "dat/cheby2_h.txt");
  writetxt(w, hdb, N, "dat/cheby2_hdb.txt");
  
  
  
  
  
  /**********************************************************************
   Расчет F_N^2(w) и |H(jw)|^2 эллиптического фильтра
   *********************************************************************/
  ellip_modulareq(Rp, Rs, ord, &m);  /* пересчет эллиптического модуля*/
  printf("modular m = %.3f\n", m);   /* вывод на печать               */
  
  /* расчет эллиптической рациональной функции */
  ellip_rat(w, N, ord, m, r);
  r2hdb(r, h, hdb, ep2, N);
  
  /* сохранение в файлы результатов расчета эллиптического фильтра    */  
  writetxt(w, r, N, "dat/ellip_r.txt");
  writetxt(w, h, N, "dat/ellip_h.txt");
  writetxt(w, hdb, N, "dat/ellip_hdb.txt");
  
  dspl_free(handle);      /* free dspl handle */
  return 0;
}




Список литературы
[1] Лэм Г. Аналоговые и цифровые фильтры. Москва, Мир, 1982, 592 с.

[2] Orfanidis S.J. Lecture notes on elliptic filter design. Rutgers University, 2006. [PDF]

[3] Orfanidis S.J. Introduction to Signal Processing. Rutgers University, 2010. [PDF]

[4] Оппенгейм А., Шаффер Р. Цифровая обработка сигналов. Москва, Техносфера, 2012. 1048 с. ISBN 978-5-94836-329-5

[5] Сергиенко А.Б. Цифровая обработка сигналов СПб, Питер, 2002.

Последнее изменение страницы: 20.01.2024 (19:22:17)
Страница создана Latex to HTML translator ver. 5.20.11.14