Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СИНТЕЗ ЦИФРОВЫХ ФИЛЬТРОВ С ИСПОЛЬЗОВАНИЕМ ПАКЕТА ПРОГРАММ MATLAB.DOC
Скачиваний:
212
Добавлен:
01.05.2014
Размер:
1.41 Mб
Скачать

7. Проектирование цифровых фильтров в среде matlab

В данном разделе кратко описываются базовые функции MATLAB, используемые в задачах расчета цифровых фильтров.

7.1. Анализ фильтров и выполнение

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

ABS – абсолютное значение и перевод строки в число:

ABS(X) – абсолютное значение элементов X. Когда X комплексное, то ABS(X) – комплексные модули (величина) элементов X.

Смотри также ANGLE, UNWRAP.

ABS(S), где S – строковая переменная MATLAB, возвращает числовое значение, записанное в ASCII-символах строки.

Смотри также SETSTR.

ANGLE – угол фазы:

ANGLE(H) возвращает углы фазы (в радианах) матрицы с комплексными элементами.

Смотри также ABS, UNWRAP.

CONV – свертка и умножение многочленов:

C = CONV(A, B) свертывает вектора A и B. Результат – вектор длины LENGTH(A) + LENGTH(B) – 1.

Если A и B – вектора с полиномиальными коэффициентами, то свертывание их эквивалентно умножению двух многочленов.

Смотри также XCORR, DECONV, CONV2.

FFTFILT – метод overlap/add (перекрыть/добавить) фильтрации с использо-ванием FFT:

Y = FFTFILT(B,X) фильтрует вектор X с FIR-фильтром B, используя метод перекрыть/добавить;

Y = FFTFILT(B,X,N) использует метод перекрыть/добавить для фильтрования X с B, используя N-точечный метод FFT.

Смотри также FILTER.

FILTER – цифровой фильтр:

Y = FILTER(B, A, X) фильтрует данные вектора X с фильтром, описанным векторами A и B для создания фильтрованных данных Y. Фильтр – реализация прямой формы 2 стандартного разностного уравнения

y(n) = b(1)*x(n) + b(2)*x(n–1) + ... + b(nb+1)*x(n–nb)

– a(2)*y(n–1) – ... – a(na+1)*y(n–na);

[Y, Zf] = FILTER(B,A,X,Zi) дает доступ к начальному и конечному состояниям задержек Zi и Zf.

Смотри также FILTFILT.

FILTFILT – прямая и обратная цифровая фильтрация с нулевой фазой:

Y = FILTFILT(B,A,X) фильтрует данные в векторе X с фильтром, описанным векторами A и B для создания фильтрованных данных Y. Фильтр описывается разностным уравнением:

y(n)=b(1)*x(n)+ b(2)*x(n–1)+…+ b(nb+1)*x(n–nb)–

a(2)*y(n–1)–…–a(na+1)*y(n–na).

После прямой фильтрации отфильтрованная последовательность разворачивается и вновь пропускается через фильтр. В результирующей последовательности отсутствуют фазовые искажения, при этом фильтр имеет двойной порядок. Длина входного X должна быть больше, чем мах(length(b)–1,length(a)–1).

Смотри также FILTER.

Filtic – cоздание начального состояния для функции filter:

Z = filtic(B,A,Y,X) конвертирует пришедший входной вектор X и выходной Y в начальное значение реализованной в прямой форме 2 переменной Z, необходимое в структуре фильтра. Вектора X и Y содержат входную и выходную последовательности в таком порядке:

X = [ x[–1], x[–2], x[–3] , ..., x[–nb], ... ]

Y = [ y[–1], y[–2], y[–3], ..., y[–na], ... ],

где nb = length(B)–1 и na = length(A)–1. Короткие входные вектора X и Y дополняются нулями до длины nb и na соответственно. Если X или Y длиннее, чем nb или na, то значения, превосходящие длины, не подходят для инициализации фильтра, а потому игнорируются.

Z = filtic(B,A,Y ) предполагает, что X = 0 в прошлом.

Смотри также FILTER.