- •Расчет аналоговых и цифровых фильтров
- •Содержание
- •1. Общая теория
- •1.1. Свойства цифровых фильтров
- •1.2. Представление цифрового фильтра в виде разностного уравнения
- •1.3 Аналоговые фильтры-прототипы
- •1.3.1. Фильтры Баттерворта
- •1.3.2. Фильтры Чебышева
- •1.3.3. Эллиптические фильтры
- •1.3.4. Фильтры Бесселя
- •1.4. Преобразования полосы частот для аналоговых фильтров
- •1.5. Преобразование полосы для цифровых фильтров
- •1.6. Методы дискретизации аналогового фильтра
- •1.6.1. Метод инвариантного преобразования импульсной характеристики
- •1.6.2. Метод билинейного преобразования
- •1.7. Методы синтеза ких-фильтров.
- •1.7.1. Прямоугольное окно
- •1.7.2. Обобщенное окно Хэмминга
- •1.7.3. Окно Блэкмана
- •1.7.4. Окно Кайзера
- •1.8. Методы синтеза бих-фильтров.
- •1.9. Методы реализации цифровых фильтров
- •1.9.1. Прямая форма
- •1.9.2. Прямая каноническая форма
- •1.9.3. Каскадная форма
- •1.9.4. Параллельная форма
- •2. Задание на курсовую работу в таблице 2.1. Представлены варианты на курсовую работу. Вариант выбрается в соответсвии с указанием преподавателя.
- •3. Порядок выполнения задания №1. Расчет аналогового фильтра.
- •Порядок фильтра.
- •Аппроксимация ачх фильтров - общие замечания.
- •Аппроксимация по Баттерворту.
- •Аппроксимация по Чебышеву первого рода.
- •Аппроксимация по Чебышеву второго рода.
- •Аппроксимация по Кауэру. Эллиптический фильтр.
- •Сравнение порядков фильтров при различных способах аппроксимации ачх. Решение уравнения порядка фильтра.
- •Порядок расчет первого задания.
- •4. Порядок выполнения задания №2. Расчет цифрового фильтра методом частотной выборки с использованием окон.
- •Порядок расчет второго задания.
- •5. Порядок выполнения задания №3. Реализация цифрового фильтра в среде Simulink.
- •6. Проектирование цифровых фильтров в среде matlab
- •6.1. Анализ фильтров и выполнение
- •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. Преобразования
- •Dftmtx – матрица дискретного преобразования Фурье (дпф):
- •Impinvar – метод инвариантной импульсной характеристики для перевода аналогового фильтра в цифровой:
- •Список литературы
Intfilt – расчет интерполирующего ких-фильтра:
B = INTFILT(R,L,ALPHA) проектирует линейно-фазовый КИХ-фильтр, выполняющий интерполяцию по ненулевым отсчетам последовательности, в которой между каждыми R отсчетами исходной последовательности помещается нулевых отсчетов. Длина результирующего фильтра .
B = INTFILT(R,N,'Lagrange') проектирует КИХ-фильтр, который выполняет полиномиальную интерполяцию Лагранжа -го порядка на последовательности, которая между каждыми отсчетами исходной последовательности помещает нулевых отсчетов Вектор имеет длину для нечетных и – для четных. Если оба, и , четные, то проектируемый фильтр не линейно-фазовый.
C помощью этих функций рассчитываются НЧ-фильтры, которые могут быть использованы при интерполяции и децимации (уменьшение частоты дискретизации в заданное целое число раз).
Смотри также INTERP.
Remez – синтез оптимального fir-фильтра с равномерной (чебышевской) аппроксимацией на основе алгоритма Паркса – Мак-Клелана:
B=REMEZ(N,F,M) возвращает коэффициентов КИХ-фильтра с линейной фазой, который наилучшим образом аппроксимирует желаемую амплитудно-частотную характеристику, задаваемую векторами и . При этом минимизируется максимальное отклонение АЧХ спроектированного фильтра от желаемой АЧХ.
B=REMEZ(N,F,M,W) использует веса W как веса ошибок. B=REMEZ(N, F,M,'Hilbert') и B=REMEZ(N,F,M,W,'Hilbert') проектирует фильтры с нечетной симметрией, т. е. для . 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 – -преобразование по спиральному контуру:
G = CZT(X,M,W,A) возвращает отсчетов -преобразования данных , где , и – скаляры, которые определяют контур в -плоскости, в которой вычисляется z-преобразование: – длина преобразования, – комплексный коэффициент и – комплексная точка начала. Точнее, контур в -плоскости (спираль, или "chirp"-контур) описывается как z = A * W.^(-(0:M-1)).
Параметры , и необязательны; их значения по умолчанию M = length(X), и = 1. При таких установках (по умолчанию) CZT вернет -преобразование на равномерно расположенных точках на единичной окружности, эквивалентное FFT(X).
Если – матрица, то операция спирального -преобразования применяется к каждому ее столбцу.
Смотри также FFT, FREQZ.
DCT – дискретное косинусное преобразование:
Y = DCT(X) возвращает дискретное косинусное от . Вектор того же размера, что и , и содержит коэффициенты дискретного косинусного преобразования.
Y = DCT(X,N) дополняет нулями или удаляет элементы вектора до длины еще до преобразования.
Если – матрица, то операция DCT применяется к каждому ее столбцу. Это преобразование может быть обращено с использованием IDCT.
Смотри также FFT, IFFT и IDCT.
Dftmtx – матрица дискретного преобразования Фурье (дпф):
DFTMTX(N) – комплексная матрица со значениями на единичной окружности, произведение которой на вектор является дискретным преобразованием Фурье для этого вектора: DFTMTX(LENGTH(X))*X – то же, что и FFT(X).
Обратная матрица ДПФ – CONJ(DFTMTX(N))/N.
Смотри также FFT и IFFT.
FFT – дискретное преобразование Фурье:
FFT(X) – ДПФ вектора . Если длина – степень 2, то используется алгоритм БПФ (быстрое ДПФ) – Radix2. Если длина не является степенью 2, то используется более медленный алгоритм, который сходится медленнее, чем БПФ.
FFT(X,N) – -точечное FFT для вектора , дополненного нулями, если размерность меньше, чем , или с удалением элементов, если размерность больше .
Если – матрица, то операция FFT выполняется для каждого столбца.
Смотри также IFFT, FFT2, IFFT2, FFTSHIFT.
FFTSHIFT – перегруппировка выходного массива преобразования Фурье:
Сдвиг FFT. Для векторов FFTSHIFT(X) возвращает вектор, у которого левая и правая половины переставлены местами. В матрицах FFTSHIFT(X) переставляет местами первый и третий, а также второй и четвертый квадранты. FFTSHIFT полезно для FFT-обработки, смещающему запаздывание нуля к середине спектра.
HILBERT – преобразование Гильберта:
HILBERT(X) – преобразование Гильберта для вещественной части вектора . Вещественная часть результата – исходные вещественные данные; мнимая часть – действительная часть преобразования Гильберта.
Если – матрица сигнала, то HILBERT(X) производит преобразование столбцов независимо.
Смотри также FFT и IFFT.
IDCT – обратное дискретное косинусное преобразование:
X = IDCT(Y) обращает DCT-преобразование, возвращает исходный вектор, если был получен с использованием Y = DCT(X).
X = IDCT(Y,N) дополняет или обрезает до еще до преобразования.
Если – матрица, то операция IDCT применяется к ее каждому столбцу.
Смотри также FFT, IFFT и DCT.
IFFT – обратное дискретное преобразование Фурье (ОДПФ):
IFFT(X) – ОДПФ вектора .
IFFT(X,N) – -точечное преобразование.
Смотри также FFT, FFT2, IFFT2, FFTSHIFT.
7.6. Прототипы аналоговых НЧ-фильтров
BESSELAP – прототип аналогового НЧ-фильтра Бесселя:
[Z,P,K] = BESSELAP( ) возвращает нули ( ), полюса ( ), и – коэффициент усиления нормализованного прототипа -го порядка аналогового НЧ-фильтра Бесселя. Полоса пропускания на уровне 3 дБ эквивалентна 1 для = 1 и уменьшается, когда больше.
Смотри также BESSELF, BUTTAP, CHEB1AP и CHEB2AP.
BUTTAP – прототип аналогового НЧ-фильтра Баттерворта:
[Z,P,K] = BUTTAP(N) возвращает нули, полюса и коэффициент усиления для нормализованного прототипа -го порядка аналогового НЧ-фильтра Баттерворта. Результирующий фильтр имеет полюсов вокруг единичной окружности в левой полуплоскости и не имеет нулей.
Смотри также BUTTER, CHEB1AP и CHEB2AP.
CHEB1AP – прототип аналогового НЧ-фильтра Чебышева 1-го типа:
[Z,P,K] = CHEB1AP(N,Rp) возвращает нули, полюса и коэффициент усиления для нормализованного прототипа -го порядка аналогового НЧ-фильтра Чебышева 1-го типа с пульсацией [дБ] в полосе пропускания. Фильтр Чебышева 1-го типа максимально равномерный в полосе пропускания.
Смотри также CHEBY1, CHEB1ORD, BUTTAP, CHEB2AP и ELLIPAP.
CHEB2AP – прототип аналогового НЧ-фильтра Чебышева 2-го типа:
[Z,P,K] = CHEB2AP(N,Rs) возвращает нули, полюса и коэффициент усиления для нормализованного прототипа -го порядка аналогового НЧ-фильтра Чебышева 2-го типа с пульсацией [дБ] в полосе пропускания. Фильтр Чебышева 2-го типа – максимально равномерный в полосе пропускания.
Смотри также CHEBY2, CHEB2ORD, BUTTAP и CHEB1AP.
ELLIPAP – прототип эллиптического аналогового НЧ-фильтра:
[Z,P,K] = ELLIPAP(N,Rp,Rs) возвращает нули, полюса и коэффициент усиления для нормализованного прототипа -го порядка эллиптического аналогового НЧ-фильтра с пульсацией [дБ] в полосе пропускания и затуханием [дБ] в полосе задержек.
7.7. Расчет аналоговых фильтров по аналоговым прототипам
LP2BP – расчет аналогового полосного фильтра по характеристикам прототипа:
[NUMT,DENT]=LP2BP(NUM,DEN,Wo,Bw) перевод прототипа НЧ-фильт-ра NUM(s)/DEN(s) с единичной частотой среза в полосовой фильтр с центральной частотой и шириной полосы . [AT,BT,CT,DT]=LP2BP(A,B,C,D,Wo,Bw) даст те же результаты, если фильтр описан в виде пространства состояний.
LP2BS – расчет аналогового режекторного (подавляющего) фильтра по характеристикам прототипа:
[NUMT,DENT] = LP2BS(NUM,DEN,Wo,Bw) перевод прототипа НЧ-фильтра NUM(s)/DEN(s) с единичной частотой среза в фильтр с полосой подавления с центральной частотой и шириной полосы . [AT,BT,CT,DT] = LP2BS(A,B,C,D,Wo,Bw) даст те же результаты, если фильтр описан в виде пространства состояний.
LP2HP – расчет параметров аналогового ВЧ-фильтра по характеристикам прототипа:
[NUMT,DENT] = LP2HP(NUM,DEN,Wo) перевод прототипа НЧ-фильтра NUM(s)/DEN(s) с единичной частотой среза в ВЧ-фильтр с частотой среза .
[AT,BT,CT,DT]=LP2HP(A,B,C,D,Wo) даст те же результаты, если фильтр описан в виде пространства состояний.
LP2LP – расчет параметров аналогового НЧ-фильтра по характеристикам прототипа:
[NUMT,DENT] = LP2LP(NUM,DEN,Wo) перевод прототипа НЧ-фильтра NUM(s)/DEN(s) с единичной частотой среза в НЧ фильтр с частотой среза .
[AT,BT,CT,DT]=LP2LP(A,B,C,D,Wo) даст те же результаты, если фильтр описан в виде пространства состояний.
7.8. Дискретизация аналоговых фильтров
BILINEAR – билинейное преобразование:
[Zd,Pd,Kd] = BILINEAR(Z,P,K,Fs) преобразует передаточную функцию в -области, определяемую , и , в дискретный эквивалент -преобразования, полученный из билинейного преобразования:
,
где столбцы вектора и определяют нули и полюса, скаляр определяет коэффициент усиления и – частота дискретизации (в герцах). [NUMd,DENd] = ILINEAR(NUM,DEN,Fs), где NUM и DEN – вектора-строки, содержащие коэффициенты числителя и знаменателя передаточной функции NUM(s)/DEN(s) при убывании степени , трансформируется в коэффициенты -преобразования NUMd(z)/DENd(z).
[Ad,Bd,Cd,Dd] = BILINEAR(A,B,C,D,Fs) в версии пространства состояний.
Каждая из перечисленных форм BILINEAR позволяет вводить дополнительные необязательные аргументы, которые определяют предварительную трансформацию частот. Например, [Zd,Pd,Kd] = BILINEAR(Z,P,K,Fs,Fp) позволяет предварительно трансформировать частоты перед билинейным преобразованием так, что частота отклика до и после установки соответствия в точности совпадает с частотой (точка соответствия определяется в герцах).
Смотри также IMPINVAR.