#include <stdio.h>
#include <string.h>
#include <math.h>
#include "dspl.h"
#define N 2000
#define ORD 5
int main(int argc, char* argv[])
{
double w[N], h[N];
double bn[ORD+1], an[ORD+1];
double bt[2*ORD+1], at[2*ORD+1];
int k;
void* handle; /* DSPL handle */
handle = dspl_load(); /* Load DSPL function */
ellip_ap(1, 40, ORD, bn, an);
for(k = 0; k < ORD+1; k++)
printf("bn[%d] = %9.3f an[%d] = %9.3f\n",k,bn[k],k,an[k]);
logspace(-2, 3,N, DSPL_SYMMETRIC, w);
filter_freq_resp(bn, an, ORD, w, N, DSPL_FLAG_ANALOG|DSPL_FLAG_LOGMAG,
h, NULL, NULL);
writetxt(w, h, N, "dat/low2bp_mag_norm.txt");
low2bp(bn, an, ORD, 1.0, 5.0, 15.0, bt, at);
logspace(0, 2,N, DSPL_SYMMETRIC, w);
filter_freq_resp(bt, at, 2*ORD, w, N, DSPL_FLAG_ANALOG|DSPL_FLAG_LOGMAG,
h, NULL, NULL);
for(k = 0; k < 2*ORD+1; k++)
printf("bt[%d] = %9.3e at[%d] = %9.3e\n",k, bt[k],k,at[k]);
writetxt(w, h, N, "dat/low2bp_mag_tr.txt");
dspl_free(handle); /* free dspl handle */
return 0;
}
Преобразование ФНЧ–ПФ
DSPL-2.0 — свободная библиотека алгоритмов цифровой обработки сигналов Распространяется под лицензией LGPL v3 Страница проекта на SourceForge |
В предыдущих параграфах мы рассмотрели вопросы частотного преобразования передаточных характеристик нормированных ФНЧ в ФНЧ с произвольной частотой среза, а также в фильтры верхних частот.
В данном разделе мы рассмотрим частотное преобразование ФНЧ–ПФ передаточной характеристики нормированного ФНЧ в передаточную характеристику полосового фильтра (ПФ).
Параметры квадрата АЧХ полосового фильтра представлены на рисунке 1.
В отличии от рассмотренных выше фильтров нижних и верхних частот, полосовой фильтр пропускает некоторую полосу и имеет две частоты среза: — нижняя частота среза и — верхняя частота среза. Кроме того имеется нижняя и верхняя частоты заграждения, также показанные на рисунке 1.
Для частотного преобразования ФНЧ–ПФ применяют следующую рациональную композицию:
При частотном преобразовании ФНЧ–ПФ нулевая частота нормированного ФНЧ переносится на частоты , при этом вся ось частот нормированного ФНЧ дважды преобразуется для положительной и отрицательной полуосей полосового фильтра.
Важно отметить, что при рациональной композиции (1) наличие квадратичного члена приводит к удвоению порядка полосового фильтра относительно порядка нормированного ФНЧ.
Рассмотрим некоторые свойства частотного преобразования ФНЧ–ПФ. Пусть некоторая частота комплексного коэффициента передачи нормированного ФНЧ преобразуется согласно (3) в частоту , частота преобразуется в некоторую частоту . Тогда из (3) можно записать равенство:
Геометрическая симметрия (6) частот полученного ПФ относительно позволяет произвести пересчет частоты заграждения нормированного ФНЧ таким образом, что при нелинейном преобразовании оси частот согласно выражению (1), квадрат АЧХ полученного ПФ полностью удовлетворял заданным параметрам.
В случае с ФНЧ и ФВЧ задача сводилать к пересчету переходной полосы результирующего фильтра, в частоту заграждения нормированного ФНЧ. Полосовой фильтр имеет две переходные полосы, и нужно произвести пересчет частоты заграждения нормированного ФНЧ таким образом, чтобы удовлетворить обоим переходным полосам одновременно. Поэтому прежде мы должны выработать правило выбора переходной полосы на основе которой мы будем производить пересчет частоты заграждения нормированного ФНЧ.
Параметры квадрата АЧХ полосового фильтра задаются частотами (смотри рисунок 1), а также уровнями неравномерности в полосе пропускания и уровнем минимального подавления в полосе заграждения .
На первом шаге рассчитывается частота симметрии , согласно (1).
Теперь воспользовавшись правилом геометрической симметрии, мы можем проверить куда относительно нижней частоты заграждения попадает частота симметричная, относительно верхней частоты заграждения :
Второй вариант рисунок 3б говорит о том, что выбрав нижнюю переходную полосу мы одновременно удовлетворим и верхней переходной полосе, поскольку в силу свойств симметрии меньше .
Таким образом, мы можем выбрать по какой переходной полосе вести пересчет частоты заграждения нормированного ФНЧ:
Пример 1. Пусть рад/с, рад/с, рад/с и рад/с. Пересчитаем :
Пример 2. Пусть рад/с, рад/с, рад/с и рад/с. Пересчитаем :
Таким образом, мы рассмотрели вопрос пересчета частоты заграждения нормированного ФНЧ для удовлетворения заданных параметров квадрата АЧХ полосового фильтра. Нам осталось лишь рассмотреть пример расчета полосового фильтра по заданным параметрам.
Требуется рассчитать полосовой эллиптический фильтр, квадрат АЧХ которого задан следующими параметрами:
Как можно заметить из рисунка 4, квадрат АЧХ полученного полосового фильтра полностью укладывается в заданные параметры, ограниченные наклонной штриховкой.
Пребразование ФНЧ–ПФ реализовано в библиотке DSPL-2.0 в виде функции low2bp .
Исходный код программы, реализующий рассчет приведенного в разделе примера
преобразования ФНЧ–ПФ приведен в следующем листинге:
Таким образом, мы рассмотрели как преобразовать нормированный ФНЧ в полосовой с заданными параметрами квадрата АЧХ.
Преобразование ФНЧ–ПФ удваивает количество коэффициентов полосового фильтра относительно количества коэффициентов ФНЧ. При этом полученная АЧХ обладает свойством геометрической симметрии относительно центральной частоты.