- •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
Intfilt – расчет интерполирующего ких-фильтра:
B = INTFILT(R,L,ALPHA) проектирует линейно-фазовый КИХ-фильтр, выполняющий интерполяцию по 2L ненулевым отсчетам последовательности, в которой между каждыми R отсчетами исходной последовательности помещается R–1 нулевых отсчетов. Длина результирующего фильтра 2RL–1.
B = INTFILT(R,N,'Lagrange') проектирует КИХ-фильтр, который выполняет полиномиальную интерполяцию Лагранжа N-го порядка на последовательности, которая между каждыми R отсчетами исходной последовательности помещает R–1 нулевых отсчетов Вектор B имеет длину (N + 1)R–1 для N нечетных и (N + 1)R – для N четных. Если оба, N и R, четные, то проектируемый фильтр не линейно-фазовый.
C помощью этих функций рассчитываются НЧ-фильтры, которые могут быть использованы при интерполяции и децимации (уменьшение частоты дискретизации в заданное целое число раз).
Смотри также INTERP.
Remez – синтез оптимального fir-фильтра с равномерной (чебышевской) аппроксимацией на основе алгоритма Паркса – Мак-Клелана:
B=REMEZ(N,F,M) возвращает N + 1 коэффициентов КИХ-фильтра с линейной фазой, который наилучшим образом аппроксимирует желаемую амплитудно-частотную характеристику, задаваемую векторами F и M. При этом минимизируется максимальное отклонение АЧХ спроектированного фильтра от желаемой АЧХ.
B=REMEZ(N,F,M,W) использует веса W как веса ошибок. B=REMEZ(N, F,M,'Hilbert') и B=REMEZ(N,F,M,W,'Hilbert') проектирует фильтры с нечетной симметрией, т. е. B(k) = –B(N + 2 – k) для k = 1, ..., N + 1. B=REMEZ(N,F,M,'differentiator') и B=REMEZ(N,F,M,W,'differentiator') также проектируют фильтры с нечетной симметрией, но со специальной весовой схемой для полос с ненулевой амплитудой, используются для проектирования дифферециаторов.
Смотри также FIRLS, FIR1, FIR2, BUTTER, CHEBY1, CHEBY2, ELLIP, FREQZ и FILTER.
7.5. Преобразования czt–z-преобразование по спиральному контуру:
G = CZT(X,M,W,A) возвращает M отсчетов z-преобразования данных X, где M, W и A – скаляры, которые определяют контур в z-плоскости, в которой вычисляетсяz-преобразование: M – длина преобразования, W – комплексный коэффициент и A – комплексная точка начала. Точнее, контур в z-плоскости (спираль, или "chirp"-контур) описывается как z = A * W.^(-(0:M-1)).
Параметры M, W и A необязательны; их значения по умолчанию M = length(X), W = exp(–j2/M) иA= 1.При таких установках (по умолчанию) CZT вернет z-преобразование X на равномерно расположенных точках на единичной окружности, эквивалентное FFT(X).
Если X – матрица, то операция спирального z-преобразования применяется к каждому ее столбцу.
Смотри также FFT, FREQZ.
Dct– дискретное косинусное преобразование:
Y = DCT(X) возвращает дискретное косинусное от X. Вектор Y того же размера, что и X, и содержит коэффициенты дискретного косинусного преобразования.
Y = DCT(X,N) дополняет нулями или удаляет элементы вектора X до длины N еще до преобразования.
Если X – матрица, то операция DCT применяется к каждому ее столбцу. Это преобразование может быть обращено с использованием IDCT.
Смотри также FFT, IFFT и IDCT.
DFTMTX – матрица дискретного преобразования Фурье (ДПФ):
DFTMTX(N) – комплексная матрица NN со значениями на единичной окружности, произведение которой на вектор X является дискретным преобразованием Фурье для этого вектора: DFTMTX(LENGTH(X))*X – то же, что и FFT(X).
Обратная матрица ДПФ – CONJ(DFTMTX(N))/N.
Смотри также FFT и IFFT.
FFT–дискретное преобразование Фурье:
FFT(X) – ДПФ вектора X. Если длина X – степень 2, то используется алгоритм БПФ (быстрое ДПФ) – Radix2. Если длина X не является степенью 2, то используется более медленный алгоритм, который сходится медленнее, чем БПФ.
FFT(X,N) – N-точечное FFT для вектора X, дополненного нулями, если размерность X меньше, чем N, или с удалением элементов, если размерность больше N.
Если X – матрица, то операция FFT выполняется для каждого столбца.
Смотри также IFFT, FFT2, IFFT2, FFTSHIFT.
FFTSHIFT – перегруппировка выходного массива преобразования Фурье:
Сдвиг FFT. Для векторов FFTSHIFT(X) возвращает вектор, у которого левая и правая половины переставлены местами. В матрицах FFTSHIFT(X) переставляет местами первый и третий, а также второй и четвертый квадранты. FFTSHIFT полезно для FFT-обработки, смещающему запаздывание нуля к середине спектра.
HILBERT – преобразование Гильберта:
HILBERT(X) – преобразование Гильберта для вещественной части вектора X. Вещественная часть результата – исходные вещественные данные; мнимая часть – действительная часть преобразования Гильберта.
Если X – матрица сигнала, то HILBERT(X) производит преобразование столбцов X независимо.
Смотри также FFT и IFFT.
IDCT – обратное дискретное косинусное преобразование:
X = IDCT(Y) обращает DCT-преобразование, возвращает исходный вектор, если Y был получен с использованием Y = DCT(X).
X = IDCT(Y,N) дополняет или обрезает Y до N еще до преобразования.
Если Y – матрица, то операция IDCT применяется к ее каждому столбцу.
Смотри также FFT, IFFT и DCT.
IFFT – обратное дискретное преобразование Фурье (ОДПФ):
IFFT(X) – ОДПФ вектора X.
IFFT(X,N) – N-точечное преобразование.
Смотри также FFT, FFT2, IFFT2, FFTSHIFT.
7.6. Прототипы аналоговых НЧ-фильтров
BESSELAP – прототип аналогового НЧ-фильтра Бесселя:
[Z,P,K] = BESSELAP(N) возвращает нули (Z), полюса (P), и К – коэффициент усиления нормализованного прототипа N-го порядка аналогового НЧ-фильтра Бесселя. Полоса пропускания на уровне 3 дБ эквивалентна 1 для N = 1 и уменьшается, когда N больше.
Смотри также BESSELF, BUTTAP, CHEB1AP и CHEB2AP.
BUTTAP – прототип аналогового НЧ-фильтра Баттерворта:
[Z,P,K] = BUTTAP(N) возвращает нули, полюса и коэффициент усиления для нормализованного прототипа N-го порядка аналогового НЧ-фильтра Баттерворта. Результирующий фильтр имеет N полюсов вокруг единичной окружности в левой полуплоскости и не имеет нулей.
Смотри также BUTTER, CHEB1AP и CHEB2AP.
CHEB1AP – прототип аналогового НЧ-фильтра Чебышева 1-го типа:
[Z,P,K] = CHEB1AP(N,Rp) возвращает нули, полюса и коэффициент усиления для нормализованного прототипа N-го порядка аналогового НЧ-фильтра Чебышева 1-го типа с пульсацией Rp [дБ] в полосе пропускания. Фильтр Чебышева 1-го типа максимально равномерный в полосе пропускания.
Смотри также CHEBY1, CHEB1ORD, BUTTAP, CHEB2AP и ELLIPAP.
CHEB2AP – прототип аналогового НЧ-фильтра Чебышева 2-го типа:
[Z,P,K] = CHEB2AP(N,Rs) возвращает нули, полюса и коэффициент усиления для нормализованного прототипа N-го порядка аналогового НЧ-фильтра Чебышева 2-го типа с пульсацией Rp [дБ] в полосе пропускания. Фильтр Чебышева 2-го типа – максимально равномерный в полосе пропускания.
Смотри также CHEBY2, CHEB2ORD, BUTTAP и CHEB1AP.
ELLIPAP – прототип эллиптического аналогового НЧ-фильтра:
[Z,P,K] = ELLIPAP(N,Rp,Rs) возвращает нули, полюса и коэффициент усиления для нормализованного прототипа N-го порядка эллиптического аналогового НЧ-фильтра с пульсацией Rp [дБ] в полосе пропускания и затуханием Rs [дБ] в полосе задержек.
7.7. Расчет аналоговых фильтров по аналоговым прототипам
LP2BP – расчет аналогового полосного фильтра по характеристикам прототипа:
[NUMT,DENT]=LP2BP(NUM,DEN,Wo,Bw) перевод прототипа НЧ-фильт-ра NUM(s)/DEN(s) с единичной частотой среза в полосовой фильтр с центральной частотой Wo и шириной полосы Bw. [AT,BT,CT,DT]=LP2BP(A,B,C,D,Wo,Bw) даст те же результаты, если фильтр описан в виде пространства состояний.
LP2BS – расчет аналогового режекторного (подавляющего) фильтра по характеристикам прототипа:
[NUMT,DENT] = LP2BS(NUM,DEN,Wo,Bw) перевод прототипа НЧ-фильтра NUM(s)/DEN(s) с единичной частотой среза в фильтр с полосой подавления с центральной частотой Wo и шириной полосы Bw. [AT,BT,CT,DT] = LP2BS(A,B,C,D,Wo,Bw) даст те же результаты, если фильтр описан в виде пространства состояний.
LP2HP – расчет параметров аналогового ВЧ-фильтра по характеристикам прототипа:
[NUMT,DENT] = LP2HP(NUM,DEN,Wo) перевод прототипа НЧ-фильтра NUM(s)/DEN(s) с единичной частотой среза в ВЧ-фильтр с частотой среза Wo.
[AT,BT,CT,DT]=LP2HP(A,B,C,D,Wo) даст те же результаты, если фильтр описан в виде пространства состояний.
LP2LP – расчет параметров аналогового НЧ-фильтра по характеристикам прототипа:
[NUMT,DENT] = LP2LP(NUM,DEN,Wo) перевод прототипа НЧ-фильтра NUM(s)/DEN(s) с единичной частотой среза в НЧ фильтр с частотой среза Wo.
[AT,BT,CT,DT]=LP2LP(A,B,C,D,Wo) даст те же результаты, если фильтр описан в виде пространства состояний.
7.8. Дискретизация аналоговых фильтров
BILINEAR – билинейное преобразование:
[Zd,Pd,Kd] = BILINEAR(Z,P,K,Fs) преобразует передаточную функцию в s-области, определяемую Z, P и K, в дискретный эквивалент z-преобразования, полученный из билинейного преобразования:
,
где столбцы вектора Z и P определяют нули и полюса, скаляр K определяет коэффициент усиления и Fs – частота дискретизации (в герцах). [NUMd,DENd] = ILINEAR(NUM,DEN,Fs), где NUM и DEN – вектора-строки, содержащие коэффициенты числителя и знаменателя передаточной функции NUM(s)/DEN(s) при убывании степени s, трансформируется в коэффициенты z-преобразования NUMd(z)/DENd(z).
[Ad,Bd,Cd,Dd] = BILINEAR(A,B,C,D,Fs) в версии пространства состояний.
Каждая из перечисленных форм BILINEAR позволяет вводить дополнительные необязательные аргументы, которые определяют предварительную трансформацию частот. Например, [Zd,Pd,Kd] = BILINEAR(Z,P,K,Fs,Fp) позволяет предварительно трансформировать частоты перед билинейным преобразованием так, что частота отклика до и после установки соответствия в точности совпадает с частотой Fp (точка соответствия Fp определяется в герцах).
Смотри также IMPINVAR.