Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КСД-12 ОСИ / Лр_8_copy.doc
Скачиваний:
30
Добавлен:
03.03.2016
Размер:
238.59 Кб
Скачать

2. Функции синтеза нерекурсивных фильтров

Рассмотрим три функции синтеза нерекурсивных фильтров fiz1, fiz2, kaiserord.

Функция fiz1 позволяет рассчитывать нерекурсивные полосно-пропускающие фильтры с линейной ФЧХ, в том числе многополосные, методом обратного преобразования Фурье с использованием окон. Синтаксис вызова функции:

b=fiz1(n,n,’ftype’,window,’normalization’)

Здесь n – порядок рассчитываемого фильтра (егоимпульсная характеристика будет содержать n+1 ненулевых отсчетов). Параметра n и ‘ftype’ совместно определяют тип синтезируемого фильтра и его частоту (частоты) среза, частоты среза задаются нормированными к частоте Найквиста (0…1), причем 1 соответствует половине частоты дискретизации. Значения этих параметров зависят от типа фильтра:

- ФНЧ: n – частота среза, параметр ‘ftype’ отсутствует;

- ФВЧ: n – частота среза, параметр ‘ftype’=’ftype’;

- полосовой фильтр: n=[1 2], где 1 и 2 границы полосы пропускания, параметр ‘ftype’ отсутствует.

- режекторный фильтр: n=[1 2], где 1 и 2 границы полосы задерживания, ‘ftype’=’Stop’;

- многополосный фильтр, пропускающий низкие частоты:

n=[12…n], где i - границы полос пропускания, упорядоченные по возростанию, ‘ftype’=’DC-1’. Такой фильтр будет иметь полосы пропускания 0…1, 2…3 и т.д.;

- многополосный фильтр, задерживающий низкие чатоты n=[12…n], где i - границы полос пропускания, упорядоченные по возростанию, ‘ftype’=’DC-0’. Такой фильтр будет иметь полосы пропускания 1…2, 3…4 и т.д.;

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

Параметр Window задает используемое при синтезе окно. Это должен быть вектор столбец, содержащий n+1 элементов. По умолчанию используется окно Хэмминга, рассчтываемое путем вызова функции hamming(n+1).

Строковый парпметр ‘normalization’ управляет масштабированием рассчитанной импульсной характеристики фильтра.

Результатом работы функции fiz1 является вектор в коэффициентов нерекурсивного фильтра. Рассчитанный фильтр имеет линейную ФЧХ и вносит групповую задержку, не зависимо от чатоты равную n/2 отсчетов.

Функция fiz2 предназначена так же для синтеза нерекурсивных фильтров с линейным ФЧХ методом обратного преобразования Фурье с использованием окон. Отличие заключатся в том, что при синтезе можно задать произвольную кусочно-линейную АЧХ.

Синтаксис вызова функции:

b=fiz2(n,f,m,Npt,lap,window)

здесь n - порядок рассчитываемого фильтра, f и m – векторы одинаковой длины, они совместно определяют желаемую АЧХ. Вектор f содержит значения частот, нормированные к частоте Найквиста, а вектор m – соответствующие этим частотам значения АЧХ. Частоты f должны образовывать неубывающую последовательность, примем f(1)=0 и f(end)=1.

Остальные параметры функции являются не обязательными. Параметр Npt задает число точек, используемое при интерполяции заданной АЧХ, по умолчанию Npt = 512. Параметр lap задает ширину переходов зон вокруг скачков. При интерполяции АЧХ в этих зонах вместо скачка будет сформирован линейный переход. Ширина измеряется в точках, по умолчанию равна 25.

Параметр window задает используемое при синтезе окно. По умолчанию используется окно Хэтминга. Результатом работы функции fiz2 является вектор в коэффициентов нерекурсивного фильтра.

Функция kaiserord предназначена для определения порядка фильтра, удовлетворяющего заданным требованиям, при синтезе функцией fiz1 с использованием окна Кайзера. Функция имеет два варианта синтаксиса:

[n,n,beta,ftype]=kaiserord(f,a,dev,)

C= kaiserord(f,a,dev,,’cell’)

Во втором варианте ситаксиса возвращаемый массив ячеек С содержит полный набор параметров для вызова функции fiz1.

Параметры f и a совместно задают кусочно-постоянную АЧХ. В векторе f должна содержаться возростающая последовательность значений частот. Вектор а задает постоянное значение АЧХ для полос, ограниченных парами частот из вектора f, при этом первая полоса начинается от нулевой частоты, а последняя заканчивается на частоте Найквиста:

- в полосе от нуля до f(1) АЧХ равна a(1);

- в полосе от f(1) до f(2) АЧХ не определена;

- в полосе от f(2) до f(3) АЧХ равна a(2);

- в полосе от f(end-1) до f(end) АЧХ не определена;

- в полосе от f(end) до АЧХ равна a(end).

Таким образом длина вектора f должна быть равна

length(a)*2-2

в вектора а могут содержаться только значения 0 и 1. Параметр dev должен быть вектором тойже длины, что и а, содержащим вещественные положительные числа. Он задает максимально допустимую ошибку воспроизведения кусочно-постоянную АЧХ для отдельных частотных полос. Ошибка задается как обсалютная погрешность АЧХ.

Параметр задает частоту дискретизации. По умолчанию =2, так что частота Найквиста равна еденице.

Результатом работы функции kaiserord является порядок фильтра n, вектор нормированных частот среза n , параметр окна кайзера beta и указатель тпа фильтра ftype. Эти параметры затем должныдолжны использоваться при вызовефункции fiz1 следующим образом:

b=fiz1(n,n,Kaiser(n+1,beta),ftype,’noscale’)

Если использовать второй вариант вызова функии Kaiserord, то функцию fiz1 следует вызывать так:

b=fiz1(C{1},C{2},C{3},C{4},C{5})

Соседние файлы в папке КСД-12 ОСИ