По аналогии с колебательным контуром определяется добротность полосового фильтра:
. (5.69)
Тогда выражение (5.68) можно записать в виде
. (5.70)
Подстановка выражения (5.66) в (5.64) приводит к описанию полосовых фильтров четвертого порядка:

(5.71)
, (5.72)
где
;
;
;
;
;
.
После подстановки выражений (5.57), (5.58) в выражение (5.72) получим передаточную функцию цифрового полосового фильтра четвертого порядка:
, (5.73)
где
;
;
;
;
;
;
.
По передаточной функции фильтра можно определить его амплитудно-частотную и фазочастотную характеристики. Для этого в выражение (5.58) делается подстановка
. (5.74)
Тогда получим






. (5.75)
Выражение (5.75) представляется в следующем виде:
, (5.76)
где
;
;
;
;
.
Амплитудно-частотная и фазочастотные характеристики фильтра, которыя является, соответственно, модулем и аргументом выражения (5.76), определяется как
![]()
(5.77)
и
(5.78)

Если
- последовательность дискретных отсчетов, которая должна быть подвергнута цифровой рекурсивной фильтрации, а передаточная функция цифрового фильтра описывается выражением (5.58), то последовательность на выходе цифрового фильтра
связана со входной следующим преобразованием:
, (5.79)
;
;
;
;
.
Для фильтра, состоящего из нескольких звеньев, дискретная последовательность на выходе первого звена является входной последовательностью для второго звена и т. д. .
Если после выполнения фильтрации определяются значения фазовые параметры сигнала, то необходимо вводить соответствующую фазовую поправку, вычисляемую по формуле (5.78).
Однако во многих случаях для обработки принимается ограниченная дискретная последовательность исходных данных
. А при подаче последовательности на вход фильтра на его выходе наблюдается переходной процесс. Для того, чтобы не принимать для обработки удлиненную последовательность, представляется возможным реализовать рекурсивную цифровую фильтрацию путем двойного прохождения исходной последовательности через фильтр. Первый проход приводит к завершению переходного процесса, а второй обеспечивает выполнение цифровой фильтрации. Для устранения точки разрыва между первым и последним отсчетами дискретной последовательности применяется линейная аппроксимация для двух первых и двух последних точек.
Функция, реализующая предложенный способ выполнения рекурсивной фильтрации может иметь такой вид:
// x - массив входных данных
// y - массив выходных данных
// d - массив коэффициентов D цифрового фильтра
// c - массив коэффициентов C цифрового фильтра
// N - размер массива
fn_Rek_Filtr(float *x, float *y, float *d, float * c, int N)
{
int i;
for (i=0; i<N; i++)
{
y[i]=0;
f_Ar[i]=0; // Вспомогательный массив
}
for (i=0; i<N; i++)
{
f_Ar[i]=x[i];
}
x[N-2]=f_Ar[N-2]=x[N-3]+( ( (x[2]-x[N-3]) *1.0)/5.0);
x[N-1]=f_Ar[N-1]=x[N-3]+( ( (x[2]-x[N-3]) *2.0)/5.0);
x[0]=f_Ar[0]=x[N-3]+( ( (x[2]-x[N-3]) *3.0)/5.0);
x[1]=f_Ar[1]=x[N-3]+( ( (x[2]-x[N-3]) *4.0)/5.0);
// Первый проход
y[0]=d[0]*f_Ar[0];
y[1]=d[0]*f_Ar[1] + d[1]*f_Ar[0]-c[1]*f_Ar[0];
for (i=2; i<N; i++)
y[i]=d[0]*f_Ar[i] + d[1]*f_Ar[i-1] + d[2]*f_Ar[i-2]- c[1]*y[i-1] - c[2]*y[i-2];
// Второй проход
y[0]=d[0]*x[0] + d[1]*x[N-1] + d[2]*x[N-2]-c[1]*y[N-1] - c[2]*y[N-2];
y[1]=d[0]*x[1] + d[1]*x[0] + d[2]*x[N-1]-c[1]*y[0] - c[2]*y[N-1];
for (i=2; i<N; i++)
y[i]=d[0]*x[i] + d[1]*x[i-1] + d[2]*x[i-2]-c[1]*y[i-1] - c[2]*y[i-2];
}
5.4 Цифровые фильтры с конечной импульсной характеристикой
5.4.1 Введение
Нерекурсивные фильтры реализуют алгоритм свертки двух функций:
,
где
– массив входных данных фильтра;
– импульсная характеристика фильтра;
Если диапазон отсчетов импульсной характеристики фильтра
, то значения выходных отсчетов свертки
для любого аргумента
определяются текущим и "прошлыми" (до
) значениями входных отсчетов
. Такой фильтр называется нерекурсивным цифровым фильтром (НЦФ). Интервал [
] получил название "окна" фильтра. Окно фильтра составляет
отсчет. Фильтр является односторонним каузальным, т. е. причинно обусловленным текущим и "прошлыми" значениями входного сигнала, и выходной сигнал не опережает входного. В общем случае, каузальный фильтр меняет в спектре сигнала состав гармоник, их амплитуды и фазы.
Каузальный фильтр может быть реализован физически в реальном масштабе времени. Начало фильтрации возможно только при задании определенных начальных значений отсчетов
до общего количества отсчетов
для точек
при
. Как правило, в качестве начальных условий принимаются нулевые значения, тренд сигнала или значения отсчета
, т. е. продление отсчета
назад по аргументу.
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |


