- •Міністерство освіти і науки україни
- •49600, Дніпропетровськ-5, пр. Гагаріна, 4
- •Лабораторная работа №1 Формирование и исследование типовых сигналов
- •1.1 Формирование типовых сигналов
- •1.2 Применение пакета sumulink для формирования и исследования сигналов.
- •Лабораторная работа № 2 Быстрое преобразование Фурье
- •2.1 Получение спектра сигнала
- •2.2 Дискретное преобразование Фурье
- •2.3.1 Прямое одномерное дискретное бпф — fft
- •2.3 Быстрое преобразование Фурье (бпф)
- •2.3.2 Перегруппировка выходного массива преобразования Фурье fftshift
- •2.3.3 Обратное одномерное дискретное бпф –ifft
- •Замечание
- •2.3.4 Матрица дискретного преобразования Фурье — dftmtx
- •Лабораторная работа №3 Свертка и деконволюция
- •3.1 Свертка одномерных сигналов — conv
- •3.2 Операция, обратная свертке — deconv
- •Свертка двумерная и многомерная — conv2 и convn
- •Лабораторная работа №4 Исследование характеристик аналоговых и цифровых фильтров
- •4.1 Теоретические основы
- •Лабораторная работа № 5 Расчет цифровых фильтров в среде matlab
- •5.1 Расчет цифровых фильтров в командном окне
- •5.1.1 Расчет коэффициентов нерекурсивного фильтра с помощью функции fir1.
- •5.1.2 Расчет коэффициентов и рекурсивного фильтра
- •5.1.3 Построение графиков ачх и фчх
- •Построение графика ипх
- •5.1.5 Моделирование процесса цифровой фильтрации
- •5.1.5.1. Моделирование входного процесса и построение его графика
- •Два способа фильтрации в командном окне
- •5.2 Расчет фильтра с помощью пакета sptool
- •5.2.1 Интерактивная оболочка spTool
- •5.2.2 Пример
- •5.3 Расчет фильтра с помощью пакета fdatool
- •Сопоставление способов расчета
Лабораторная работа № 5 Расчет цифровых фильтров в среде matlab
Цель: Изучить возможные способы расчета цифровых фильтров в среде MATLAB.
В среде MATLAB цифровые фильтры можно рассчитать по меньшей мере тремя способами:
в командном окне;
с помощью пакета sptool;
с помощью пакета fdatool.
5.1 Расчет цифровых фильтров в командном окне
5.1.1 Расчет коэффициентов нерекурсивного фильтра с помощью функции fir1.
Функция fir1 реализует вычисления по методу обратного преобразования Фурье с использованием окон:
a=fir1(n,Wn,’ftype’,window,’normalization’)
Здесь:
n – порядок фильтра – целое четное число (кол-во коэффициентов фильтра равно n+1);
Wn – относительная.частота среза (по отношению к частоте Найквиста, равной половине частоты дискретизации Fd) – число в диапазоне (0,1); является вектором из двух чисел, если фильтр полосовой или режекторный;
’ftype’ – тип фильтра (если отсутствует или ‘low’– ФНЧ; ‘high’ – ФВЧ; ‘bandpass’ – полосовой; ‘stop’ – режекторный;
window – вектор-столбец из n+1 элементов (по умолчанию применяется окно Хэмминга hamming(n+1));
‘normalization’ – нормировка АЧХ и ИПХ (по умолчанию значение ‘scale’ – единичное значение АЧХ в центре полосы пропускания; ‘noscale’ – нормировка не производится).
Пример:
window=rectwin(7) % синтез прамоугольного окна из 7 отсчетов
a=fir1(6,0.5,window) % расчет коэфф-в КИХ-фильтра с нормализацией
Результат:
a=[ -0.1148 0.0000 0.3443 0.5409 0.3443 0.0000 -0.1148]
Сравнивая
эти результаты с рассчитанными вручную
коэффициентами, нетрудно видеть разницу.
Например, ручные расчеты дают
,
тогда как в MATLAB мы получили
.
Естественно предположить, что причиной
тому проводимая по умолчанию нормировка
ИПХ. Проверяем это предположение, задавая
в программе значение ’noscale’
для параметра
нормализации:
window=rectwin(7) % синтез прамоугольного окна из 7 отсчетов
a=fir1(6,0.5,window,’noscale’) % расчет коэфф-в КИХ-фильтра без нормализации
Результат:
a=[ -0.1061 0.0000 0.3183 0.5000 0.3183 0.0000 -0.1061]
5.1.2 Расчет коэффициентов и рекурсивного фильтра
Команда генерирования коэффициентов и рекурсивного фильтра Баттерворта:
[a,b] = butter(n,Wn,'ftype')
Смысл обозначений тот же, что и для нерекурсивного фильтра.
Если Wn является двухэлементным вектором, т.е. Wn = [w1 w2], функция butter возвращает коэффициенты полосового фильтр порядка 2n с полосой пропускания (или задерживания – для режекторных фильтров) w1 < w < w2.
5.1.3 Построение графиков ачх и фчх
Осуществляется командой
freqz(a,b)
или
freqz(a,b,N) % N – число отсчетов АЧХ и ФЧХ
Графики АЧХ и ФЧХ строятся в диапазоне 0 – 1 нормированных (по частоте Найквиста Fd/2) значений частоты частот (рисунок 5.1).
Рисунок 5.1 АЧХ и ФЧХ полосового фильтра Баттерворта 2-го порядка для w1=0.25, w2=0.5
Построение графика ипх
Построение графика ИПХ осуществляется парой команд:
[h,t] = impz(a,b);
stem(t,h)
При этом в случае рекурсивного фильтра количество выводимых отсчетов ИПХ выбирается автоматически (рисунок 5.2).
Рисунок 5.2 ИПХ полосового фильтра Баттерворта 2-го порядка для w1=0.25, w2=0.5
Пара команд
[h,t] = impz(a,b,N); % N – число отсчетов ИПХ
stem(t,h)
позволяет вывести на график N отсчетов ИПХ.
