Метод частотной выборки: резюме



 

1) Задать идеальную или желаемую частотную характеристику, затухание в полосе подавления и границы полос целевого фильтра.

2) Исходя из спецификации выбрать фильтр частотной выборки первого (выборки берутся с интервалом kFs/N) или второго типа (выборки берутся с интервалом (K + 1/2)Fs/N).

3) Использовать спецификацию (этап 1) и таблицы разработки для определения N, числа частотных выборок идеальной частотной характеристики, М, числа выборок в полосе перехода, ширины полосы перехода, числа частотных выборок в полосе пропускания и Ti, значений выборок в полосе перехода (i = 1,2,..., М).

4) Использовать подходящее уравнение для расчета коэффициентов фильтра.

Вместо этапов 2 и 4 можно использовать компьютерную программу с реализацией генетического алгоритма.

Сравнение метода взвешивания, оптимального метода и метода частотной выборки

Оптимизационные методы – это простой и эффективный путь вычисления коэф­фициентов КИХ–фильтра. Хотя метод позволяет полностью контролировать спецификацию фильтра, необходимым требованием является наличие программной поддержки разработки фильтра. Для большинства приложений оптимальный метод дает фильтры с хорошими амплитудными характеристиками при разумных значениях N. Метод особенно хорош при разработке трансформаторов и дифференциаторов Гильберта. При использовании для разработки названных устройств других методов будут получены большие ошибки аппроксимации.

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

Только метод частотной выборки допускает и рекурсивную, и нерекурсивную реализацию КИХ–фильтра, и этот метод стоит использовать, когда предвидится, что такие реализации, как рекурсивный подход, будут вычислительно экономными. Фильтр с целыми коэффициентами следует применять, только если обязательна примитивная арифметика и простота программирования (например, программирование на ассемблере на стандартном микропроцессоре). В таких случаях всегда следует проверять, приемлема ли получающаяся в результате плохая амплитудная характеристика. Метод частотной выборки позволяет легко разрабатывать фильтры с произвольными амплитудно–частотными характеристиками. В то же время этот метод не позволяет строго контролировать положение граничных частот или неравномерность в полосе пропускания и зависит от наличия таблиц разработки, подобных приведенной выше, хотя еще можно использовать компьютерную программу поддержки разработки.

Дискретная фильтрация в MATLAB

Дискретная свертка– основа алгоритма дискретной фильтрации. В MATLAB вычисляется с помощью функции conv.

z=conv(x,y)

Обращение свертки – зная результат свертки и один из сворачиваемых векторов, можно найти второй.

[q,r]=deconv(b,a)

Здесь b – результат свертки, a – один из сворачиваемых векторов, q – искомый второй вектор свертки, r – остаток (если вектор b действительно является сверткой вектора a с чем-нибудь, остаток будет нулевым).

Функция дискретной фильтрации.Основная функция, реализующая дискретную фильтрацию в MATLAB, носит имя filter. В простейшем виде имеет следующий синтаксис:

y=filter(b,a,x)

Здесь b – вектор нерекурсивной части фильтра (числителя функции передачи), a – вектор коэффициентов рекурсивной части фильтра (знаменателя функции передачи), x – входной сигнал. Возвращаемой величиной является вектор отсчетов выходного сигнала фильтра.

Если первый элемент вектора а не равен 1, значения векторов b и а нормируются – делятся на а(1).

Между функциями filter и conv есть два основных различия. Во-первых, функция conv требует задания импульсной характеристики фильтра в виде вектора, поэтому данная импульсная характеристика должна иметь конечную длину. Фактически это означает, что с помощью функции conv можно реализовать только нерекурсивный фильтр. Функция filter позволяет задавать как нерекурсивные, так и рекурсивные фильтры, реализуя в том числе и бесконечные импульсные характеристики. Во-вторых, функция filter возвращает результат, длина которого равна длине входного сигнала

Расчет импульсной характеристики–выполняется функцией impz.

h=impz(b, a, n)

Здесь b – вектор нерекурсивной части фильтра (числителя функции передачи), a – вектор коэффициентов рекурсивной части фильтра (знаменателя функции передачи), n – число отсчетов импульсной характеристики (необязательный параметр)

Расчет частотной характеристики – выполняется функцией freqz.

freqz (b,a,n)

Здесь b – вектор нерекурсивной части фильтра (числителя функции передачи), a – вектор коэффициентов рекурсивной части фильтра (знаменателя функции передачи), n – число точек для расчета (необязательный параметр).

Расчет групповой задержки дискретной системы –выполняется функцией grpdelay.

grpdelay(b,a)

Здесь b – вектор нерекурсивной части фильтра (числителя функции передачи), a – вектор коэффициентов рекурсивной части фильтра (знаменателя функции передачи).

Отображение нулей и полюсов фильтра.Для отображения нулей и полюсов функции передачи фильтра на комплексной плоскости предназначена функция zplane.

zplane(z, p)

zplane(b,a)

Входными параметрами являются векторы-столбцы нулей и полюсов (z,p) либо векторы-строки коэффициентов полиномов числителя и знаменателя функции передачи (b,a). Различение этих двух случаев производится именно по ориентации передаваемых функции векторов.

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

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

 

tf2zp – преобразование коэффициентов полиномов функции передачи в нули и полюсы функции передачи;

zp2tf — преобразование нулей, полюсов и коэффициента усиления системы в коэффициенты полиномов функции передачи;

tf2ss — преобразование коэффициентов полиномов функции передачи в параметры пространства состояний;

ss2tf — преобразование параметров пространства состояний в коэффициенты полиномов функции передачи;

ss2zp — преобразование параметров пространства состояний в нули и полюсы функции передачи;

zp2ss — преобразование нулей, полюсов и коэффициента усиления системы в параметры пространства состояний;

[z, p, k]=tf2zp(b,a);

[b, a]=zp2tf(z, p, k);

[A, B, C, D]=tf2ss(b,a);

[b, a]=ss2tf(A, B, C, D);

[z, p, k]=ss2zp(A, B, C, D);

[A, B, C, D]=zp2ss(z, p, k);

Единственная особенность их использования в дискретном случае состоит в том, что векторы b и a, содержащие коэффициенты полиномов числителя и знаменателя функции передачи, должны иметь одинаковую длину. Поэтому для удобства преобразования описаний дискретных фильтров служит функция eqtflength, дополняющая нулями в конце более короткий из переданных ей двух векторов:

[b1, a1]= eqtflength(b,a);

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

[r, p, k]=residuez(b, a)

[b, a]=residuez(r, p, k)

Здесь b – вектор числителя функции передачи, a – вектор знаменателя функции передачи, r – вектор вычетов, p – вектор полюсов, k – вектор коэффициентов целой части функции передачи.

 


Дата добавления: 2018-04-05; просмотров: 604; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!