- •1. Общая характеристика цифровых фильтров
- •1.1. Свойства цифровых фильтров
- •1.2. Представление цифрового фильтра в виде разностного уравнения
- •2. Ких-фильтры. Методы синтеза
- •2.1. Прямоугольное окно
- •2.2. Обобщенное окно Хэмминга
- •2.3. Окно Блэкмана
- •2.4. Окно Кайзера
- •3. Бих-фильтры. Методы синтеза
- •3.1. Аналоговые фильтры-прототипы
- •3.1.1. Фильтры Баттерворта
- •3.1.2. Фильтры Чебышева
- •3.1.3. Эллиптические фильтры
- •3.1.4. Фильтры Бесселя
- •3.2. Методы дискретизации аналогового фильтра
- •3.2.1. Метод инвариантного преобразования импульсной характеристики
- •3.2.2. Метод билинейного преобразования
- •3.3. Преобразования полосы частот для аналоговых фильтров
- •3.4. Преобразование полосы для цифровых фильтров
- •4. Методы реализации цифровых фильтров
- •4.1. Прямая форма
- •4.2. Прямая каноническая форма
- •4.3. Каскадная форма
- •4.4. Параллельная форма
- •5. Работа в среде matlab
- •5.1. Ввод матриц
- •5.2. Матричные операции
- •5.3. Операторы, выражения и переменные
- •5.4. Функции построения матриц
- •5.5. Операторы for, while, if
- •5.6. Скалярные функции
- •5.7. Векторные функции
- •5.8. Mатричные функции
- •5.9. Подматрицы и форма записи с двоеточием
- •5.10. M-файлы
- •5.11. Текстовые строки, сообщения об ошибках, ввод данных
- •5.12. Сравнение эффективности алгоритмов
- •5.13. Формат вывода
- •5.14. Протокол
- •5.15. Графика
- •6. Записная книжка matlab для Microsoft Word
- •6.1. Начало работы
- •6.2. Краткий пример использования Записной книжки
- •7. Проектирование цифровых фильтров в среде matlab
- •Filtic – cоздание начального состояния для функции filter:
- •Freqs – частотная характеристика аналогового фильтра:
- •Freqspace – формирование последовательности отсчетов частоты:
- •Freqz – частотная характеристика цифрового фильтра.
- •Grpdelay – групповая задержка цифрового фильтра:
- •Impz – импульсный отклик цифрового фильтра:
- •Unwrap – корректировка фазовых углов:
- •Zplane – отображение нулей и полюсов цифрового фильтра:
- •7.2. Проектирование цифровых бих-фильтров besself – проектирование аналогового фильтра Бесселя:
- •Butter – проектирование цифрового и аналогового фильтров Баттерворта:
- •Cheby1 – проектирование цифрового и аналогового фильтров Чебышева – первого типа:
- •Cheby2 – проектирование цифрового и аналогового фильтров Чебышева второго типа:
- •Ellip – проектирование эллиптического цифрового и аналогового фильтров:
- •Yulewalk – проектирование рекурсивного фильтра с использованием метода наименьших квадратов по заданной амплитудно-частотной характеристике:
- •7.3. Выбор порядка бих-фильтра buttord – выбор порядка фильтра Баттерворта:
- •Cheb1ord – выбор порядка для фильтра Чебышева первого порядка:
- •Cheb2ord– выбор порядка для фильтра Чебышева первого порядка:
- •Ellipord – выбор порядка эллиптического фильтра:
- •7.4. Проектирование ких-фильтров fir1 – фильтр fir проектируется с использованием метода окна:
- •Fir2– проектирование фильтра fir с использованием оконного метода для произвольной формы фильтра:
- •Firls – проектирование ких-фильтра с использованием минимизации ошибок методом наименьших квадратов (мнк):
- •Intfilt – расчет интерполирующего ких-фильтра:
- •Remez – синтез оптимального fir-фильтра с равномерной (чебышевской) аппроксимацией на основе алгоритма Паркса – Мак-Клелана:
- •7.5. Преобразования czt–z-преобразование по спиральному контуру:
- •Dct– дискретное косинусное преобразование:
- •Impinvar – метод инвариантной импульсной характеристики для перевода аналогового фильтра в цифровой:
- •8. Примеры проектирования цифровых фильтров
- •8.1. Генерация входной последовательности сигнала
- •8.2. Реализация спектрального анализа с использованием бпф
- •8.3. Синтез цифрового ких-фильтра
- •8.4. Реализация цифровой фильтрации
- •Список литературы
- •Содержание
- •197376, С.-Петербург, ул. Проф. Попова, 5
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.