Uploaded by Yurii Yurchyk

ca82e09ea36597e07ef904e26f847e9bDigital-signal-processing

advertisement
МІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ
НАЦІОНАЛЬНА МЕТАЛУРГІЙНА АКАДЕМІЯ УКРАЇНИ
O.I. Михальов, Вікторія В. Гнатушенко,
Володимир В. Гнатушенко
МЕТОДИЧНІ ВКАЗІВКИ
до виконання лабораторних робіт з дисципліни
«Цифрова обробка сигналів»
для студентів напряму 0501 01 – «Комп’ютерні науки»
Дніпропетровськ НМетАУ - 2012
Михальов О. І., Гнатушенко Вікторія В., Гнатушенко Володимир В.
"Цифрова обробка сигналів"
УДК 681.3.06+519.68
Методичні вказівки до виконання лабораторних робіт з дисципліні «Цифрова
обробка сигналів». Для студентів напряму 0501 01 – «Комп’ютерні науки» /
Укл.: О.I. Михальов, В.В. Гнатушенко, В.В. Гнатушенко. Пiд ред.
О.I. Михальова. – Дніпропетровськ: НМетАУ, 2012. – 76 с.
Методичні вказівки є практичною частиною комплексу навчальнометодичних матеріалів з дисципліні «Цифрова обробка сигналів», в якій
наведені теоретичні матеріали та розглянуті приклади по застосуванню
середовища MATLAB для цифрової обробки даних. Розглянуті загальні
принципи і математичні моделі перетворення сигналів при цифровій обробці,
базові алгоритми цифрової фільтрації сигналів, методи синтезу, програмної
реалізації і моделювання цифрових фільтрів, оцінки і забезпечення їх точності.
Також розглянуті методи спектрального аналізу сигналів на основі дискретного
перетворення Фур’є та математичного апарату вейвлетів, алгоритми швидкого
перетворення Фур’є, методи формування і обробки дискретних сигналів, а також
реалізації систем цифрової обробки сигналів на основі апаратних і апаратнопрограмних засобів.
Методичні вказівки призначені для студентів напряму підготовки 0501 01
– «Комп’ютерні науки», а також для слухачів курсів підвищення кваліфікації,
студентів і аспірантів інших спеціальностей.
Укладачі:
О.I. Михальов, доктор технічних наук, професор,
Вікторія В. Гнатушенко, кандидат технічних наук, доцент,
Володимир В. Гнатушенко, доктор технічних наук, професор,
Відповідальний за випуск: О.І. Михальов, д-р техн. наук, проф.
Рецензент: В.І. Корсун, доктор технічних наук, професор (НГУ)
Друкується за авторською редакцією.
Затверджено на засіданні кафедри інформаційних технологій і систем,
протокол № 1 від 31.08.2012.
Підписано до друку 03.09.2012. Формат 60х84 1/16. Папір типогр.
Друк різограф. Облік.-вид. арк 4,75. Умов. друк. арк. 3,40.
Тираж 100 пр. Замовл. № 19/12.
Національна металургійна академія України.
49600, Дніпропетровськ-5, пр. Гагаріна, 4
ДНВП «Системні технології»
2
Михальов О. І., Гнатушенко Вікторія В., Гнатушенко Володимир В.
"Цифрова обробка сигналів"
СОДЕРЖАНИЕ
Лабораторная работа №1
ФОРМИРОВАНИЕ И ИССЛЕДОВАНИЕ ТИПОВЫХ СИГНАЛОВ
4
Лабораторная работа №2
15
БЫСТРОЕ ПРЕОБРАЗОВАНИЕ ФУРЬЕ
Лабораторная работа №3
СВЕРТКА И ДЕКОНВОЛЮЦИЯ
24
Лабораторная работа №4
ИССЛЕДОВАНИЕ ХАРАКТЕРИСТИК АНАЛОГОВЫХ И
ЦИФРОВЫХ ФИЛЬТРОВ
27
Лабораторная работа №5
РАСЧЕТ ЦИФРОВЫХ ФИЛЬТРОВ В СРЕДЕ MATLAB
41
Лабораторная работа №6
ПРЕОБРАЗОВАНИЕ СПОСОБОВ ОПИСАНИЯ
АНАЛОГОВЫХ ЛИНЕЙНЫХ ФИЛЬТРОВ
51
Лабораторная работа №7
ПРОЕКТИРОВАНИЕ ЦИФРОВЫХ ФИЛЬТРОВ ПО
АНАЛОГОВОМУ ПРОТОТИПУ
56
Лабораторная работа №8
68
ВЕЙВЛЕТ-АНАЛИЗ
3
Михальов О. І., Гнатушенко Вікторія В., Гнатушенко Володимир В.,
"Цифрова обробка сигналів"
Лабораторная работа №1
ФОРМИРОВАНИЕ И ИССЛЕДОВАНИЕ ТИПОВЫХ СИГНАЛОВ
Цель: Изучить основные возможности пакета MATLAB для формирования
типовых сигналов, используя SIGNAL PROCESSING TOOLBOX & SIMULINK.
1.1 Формирование типовых сигналов
RECTPULS Прямоугольный импульс
Синтаксис: у = rectpuls(t)
у = rectpuls(t, w)
Описание:
Функция у = rectpuls(t) формирует прямоугольный импульс единичной
амплитуды для заданной в векторе t последовательности отсчетов времени.
Генерируется импульс с шириной 1, центрированный относительно t = 0. В
векторе y формируется часть импульса, соответствующая последовательности
отсчетов, заданной в векторе t.
Функция у = rectpuls(t, w) формирует импульс ширины w.
Сопутствующие функции: CHIRP, COS, DIRIC, GAUSPULS, PULSTRAN,
SAWTOOTH, SIN, SINC, SQUARE, TRIPULS.
SQUARE Последовательность прямоугольных импульсов
Синтаксис: у = square(t)
у = square(t, duty)
Описание:
Функция у=square(t) формирует последовательность прямоугольных
импульсов с периодом 2 , для заданной в векторе t последовательности
отсчетов времени. Генерируемая последовательность отличается от синусоиды с
периодом 2 только тем, что представляет собой прямоугольные импульсы с
амплитудой ±1.
Функция у= square(t, duty) формирует последовательность прямоугольных
импульсов с заданной продолжительностью положительной полуволны, которая
определяется параметром duty, в процентах от периода.
Сопутствующие функции: CHIRP, COS, DIRIC, GAUSPULS, PULSTRAN,
REC7PULS, SAWTOOTH, SIN, SINC, TRIPULS.
4
Михальов О. І., Гнатушенко Вікторія В., Гнатушенко Володимир В.,
"Цифрова обробка сигналів"
TRIPULS Треугольный импульс
Синтаксис:
у = tripuls(t)
у = tripuls(t, w)
у = tripuls(t, w, s)
Описание:
Функция у = tripuls(t) формирует симметричный треугольный импульс
единичной амплитуды для заданной в векторе t последовательности отсчетов
времени. Генерируется импульс с шириной 1, центрированный относительно
t=0. В векторе у формируется часть импульса,
последовательности отсчетов, заданной в векторе t.
соответствующая
Функция у = tripuls(t, w) формирует треугольный импульс ширины w.
Функция у=tripuls(t, w, s) формирует треугольный импульс, наклон которого
определяется параметром s, где -1 < s <1. Для симметричного импульса s = 0.
Сопутствующие функции: CHIRP, COS, DIRIC, GAUSPULS, PULSTRAN,
RECTPULS, SAWTOOTH, SIN, SINC, SQUARE.
SAWTOOTH Генератор пилообразных и треугольных сигналов
Синтаксис:
x = sawtooth(t)
x = sawtooth(t, 'width')
Описание:
Функция х = sawtooth(t) формирует пилообразный сигнал с амплитудой
1 и периодом 2. Последовательность значений аргумента задается в векторе t.
При t = 2 х = - 1 .
Функция
х
=
sawtooth(t,
width)
формирует
модифицированный
пилообразный сигнал. Параметр width задается в диапазоне от 0 до 1 и
определяет часть периода, в которой возрастает сигнал. Сигнал возрастает от -1
до 1 на интервале от 0 до 2*width, а затем убывает от 1 до -1 на интервале от
2*width до 2. Если width=0.5, то формируется симметричная волна. Функция
sawtooth(t,l) эквивалентна функции sawtooth(t).
Диагностика:
Если параметр width не является скаляром, выводится сообщение:
Requires WIDTH parameter to be a scalar (Параметр width должен быть скаляром).
5
Михальов О. І., Гнатушенко Вікторія В., Гнатушенко Володимир В.,
"Цифрова обробка сигналів"
Пример:
Сгенерируем и выведем на экран треугольную последовательность,
заданную в диапазоне от 0 до 4 с параметром width = 1 (рисунок 1.1, а):
t = (0:0.1 :4*pi);
х = sawtooth(t, 1);
plot(t, х)
и с параметром width = 0.5 (рис. 1.1,б):
t = (0 : 0.1 : 4*pi);
х = sawtooth(t, 0.5);
plot(t, х)
1
1
0.8
0.8
0.6
0.6
0.4
0.4
0.2
0.2
0
0
-0.2
-0.2
-0.4
-0.4
-0.6
-0.6
-0.8
-0.8
-1
0
2
4
6
8
10
12
-1
14
0
2
а) width = 1
4
6
8
10
12
14
б) width = 0.5
Рисунок 1.1
Сопутствующие функции: CHIRP, COS, DIRIC, GAUSPULS, PULSTRAN,
RECTPULS, SIN, SINC, SQUARE, TRIPULS.
CHIRP
Косинусоида с переменной частотой
Синтаксис:
y = chirp(t, f0, t1,f1)
у = chirp(t, f0, t1, f1, 'method')
у = chirp(t, f0, t1, f1, 'method', phi)
Описание:
Функция у = сhirp(t, f0, tl, fl) формирует выборку из косинусоидального
сигнала с линейно меняющейся частотой для моментов времени, определенных в
векторе t; f0 - мгновенная частота в момент времени 0, fl - мгновенная частота в
момент времени t1; f0 и f1 задаются в герцах. По умолчанию f0= 0, tl=1, f1=100.
6
Михальов О. І., Гнатушенко Вікторія В., Гнатушенко Володимир В.,
"Цифрова обробка сигналів"
Функция у = chirp(t, f0, tl, fl, 'method') позволяет задать закон изменения
частоты, определяющийся значением параметра 'method'. Если параметр method
= linear, то закон изменения частоты определяется выражением f j(t) = f0 + t, где
 = (f1 -f0)/t1; если параметр method = quadratic, то закон изменения частоты
определяется выражением fj (t) = f0+t2, где  = (f1 -f0)/t1; если параметр method =
logarithmic, то закон изменения частоты определяется выражением f j (t) = f0+10t,
где  = [log10(f1 -f0)]/t1. В этом случае fl должно быть больше f0.
Функция у = chirp(t, f0, tl, fl, 'method', phi) позволяет задать начальную
фазу в параметре phi (град.). По умолчанию phi = 0.
Функция у = chirp(t, f0, tl, fl, 'method') позволяет задать закон изменения
частоты, определяющийся значением параметра 'method'. Принимаемые по
умолчанию значения подставляются в том случае, если переменная отсутствует
или задано пустое значение. Звук такого сигнала напоминает визг – откуда и его
английское название.
Пример:
Построим спектр сигнала с линейно изменяющейся частотой
(рисунок 1.2).
t = 0 : 0.001 : 2; %Время наблюдения 2 с, частота дискретизации 1кГц.
y = chirp(t, 0,1, 150); % Начальное значение частоты сигнала 0 Гц при t = 0,
конечное -150 Гц при t=1.
specgram (y, 256, 1e3, 256, 250)
Сопутствующие функции: COS, DIRIC, GAUSPULS, PULSTRAN,
RECTPULS, SIN, SINC, SQUARE, TRIPULS.
500
450
400
Frequency
350
300
250
200
150
100
50
0
0.2
0.4
0.6
0.8
1
Time
Рисунок 1.2
7
1.2
1.4
1.6
1.8
Михальов О. І., Гнатушенко Вікторія В., Гнатушенко Володимир В.,
"Цифрова обробка сигналів"
GAUSPULS
Синусоида, модулированная функцией Гаусса
Синтаксис:
yi = gauspuls(t, fc, bw)
yi = gauspuls(t, fc, bw, bwr)
[yi, yq] = gauspuls(...)
[yi, yq, ye] = gauspuls(...)
tc = gauspuls('cutoff, fc, bw, bwr, tpe)
Описание:
Группа
функций
gauspuls
формирует
синусоидальный
сигнал,
модулированный функцией Гаусса.
Функция yi = gauspuls(t, fc, bw) возвращает последовательность отсчетов
сигнала, вычисленных в моменты времени, заданные в векторе t; fc определяет
частоту синусоиды, a bw - ширину полосы частот сигнала. По умолчанию fc =
1000 Гц, a bw = 0.5.
Функция yi = gauspuls(t, fc, bw, bwr) возвращает последовательность отпетов сигнала, имеющего следующие параметры: амплитуда - 1, ширина полосы
частот - 100bw, границы полосы частот определяются уровнем атухания bwr дБ
по отношению к нормализованной амплитуде сигнала. Параметр bwr должен
быть отрицательным. По умолчанию bwr = -6 дБ. Функции [yi, yq] = gauspuls(...)
возвращают два вектора: yi и yq. Вектор yi содержит отсчеты исходного сигнала,
а вектор yq - отсчеты сигнала, синусоида в котором сдвинута по фазе на 90°.
Функции [yi, yq, ye] = gauspuls(...) дополнительно возвращают огибающую
сигнала.
Функция tc = gauspuls('cutoff', fc, bw, bwr, tpe) вычисляет время отсечения
tc (большее или равное 0); tc соответствует моменту времени, в который
амплитуда огибающей сигнала снижается до tpe дБ. Величина параметра tpe
должна быть отрицательной, поскольку он определяет относительный уровень
сигнала, меньший, чем пиковое значение (равное 1). По умолчанию tpe = - 60 дБ.
Пример:
Преобразуем и выведем на экран синусоиду, модулированную функцией
Гаусса со следующими параметрами:
 частота синусоиды - 50 кГц;
 ширина полосы-60%;
 частота дискретизации - 1 мГц.
8
Михальов О. І., Гнатушенко Вікторія В., Гнатушенко Володимир В.,
"Цифрова обробка сигналів"
Сигнал заканчивается, когда амплитуда огибающей снизится до 40 дБ.
tc = gauspuls('cutoff', 50еЗ, 0.6, [ ], -40);
t = -tc: 1e-6: tc;
i = gauspuls(t, 50e3, 0.6);
plot(t, i);
1
0.8
0.6
0.4
0.2
0
-0.2
-0.4
-0.6
-0.8
-4
-3
-2
-1
0
1
2
3
4
-5
x 10
Рисунок 1.3
Сопутствующие функции: CHRP, COS, DIRIC, PULSTRAN, RECTPULS,
SAWTOOTH, SIN, SINC, SQUARE, TRIPULS.
SINC
Функция sinc
Синтаксис: у = sinc(x)
Описание:
Функция у = sinc(x) формирует последовательность значений функции
sinc
1, t  0

sinc( x)   sin( t )
, t  0,

 t
которая
представляет
собой
обратное
прямоугольного импульса ширины 2 и высоты 1:
1
sinc(t ) 
2
9

e

jt
d .
преобразование
Фурье
Михальов О. І., Гнатушенко Вікторія В., Гнатушенко Володимир В.,
"Цифрова обробка сигналів"
Последовательность
отсчетов
аргумента
задается
в
массиве
х.
Последовательность значений функции sinc формируется в векторе у.
Количество элементов вектора у равно количеству элементов вектора х.
Известно, что любая функция g(t), частотный спектр которой ограничен
диапазоном  [-, ], может быть представлена в виде суммы бесконечного, но
счетного количества функций sinc. Из этого следует, что такая функция может
быть полностью восстановлена по последовательности ее отсчетов, в общем
случае бесконечной:
g (t ) 

 g (n)sin c(t  n)
n
Пример:
Выполним
идеальную
интерполяцию
функции
по
заданной
последовательности отсчетов (рисунок 1.4). За пределами заданного интервала
функция равна 0. Частота дискретизации равна частоте Найквиста.
t = (1:10)';
х = randn(size(t));
ts = linspace(-5,15, 600)';
у = sinc(ts(:, ones(size(t))) -t(:, ones(size(ts)))')*x;
plot(t, x, 'o', ts, y)
2
1.5
1
0.5
0
-0.5
-1
-1.5
-2
-5
0
5
10
15
Рисунок 1.4
Сопутствующие функции: CHIRP, COS, DIRIC, GAUSPULS,
PULSTRAN, RECTPULS, SAWTOOTH, SIN, SQUARE, TRIPULS.
10
Михальов О. І., Гнатушенко Вікторія В., Гнатушенко Володимир В.,
"Цифрова обробка сигналів"
PULSTRAN
Генератор импульсов
Синтаксис:
у = pulstran(t, d, 'func')
у = pulstran(t, d, 'func', p1, p2,...)
у = pulstran(t, d, p, Fs)
у = pulstran(t, d, p)
Описание:
Группа функций pulstran генерирует последовательность импульсов.
Форма импульса может быть задана функцией или определена набором
отсчетов.
Функция у = pulstran(t, d, 'func') позволяет в параметре 'func' задать форму
импульса. Параметр 'func' принимает одно из следующих значений:
 gauspuls - синусоида, модулированная кривой Гаусса;
 rectpuls - прямоугольный импульс;
 tripuls - треугольный импульс.
Выходной сигнал у рассчитывается для значений аргумента, заданных в
векторе t, по формуле у = func(t - d(1)) + func(t - d(2)) + ... Число импульсов в
заданном диапазоне значений аргумента равно length(d).
Функция у = pulstran(t, d, 'func', pi, p2,...) позволяет задавать
дополнительные параметры обращения к 'func', например func(t - d(l), p1, р2,...).
Функция у = pulstran(t, d, p, Fs) позволяет определять импульс
последовательностью отсчетов, заданных в векторе р. Частота дискретизации
задается параметром Fs.
При использовании функции у = pulstran(t, d, p) частота дискретизации
полагается равной 1 Гц.
Примеры:
1. Сформируем и выведем на экран пилообразный сигнал d частотой
повторения импульсов 3 Гц и длиной импульса - 0,1 с (рисунок 1.5).
Продолжительность сигнала составит 1с при частоте дискретизации 1кГц.
t = 0: 1/1еЗ: 1;
d =0:1/3:1;
у = pulstran(t, d, 'tripuls', 0.1, -1);
plot(t, у)
11
Михальов О. І., Гнатушенко Вікторія В., Гнатушенко Володимир В.,
"Цифрова обробка сигналів"
2. Сформируем и выведем на экран последовательность гауссовых
импульсов, имеющих частоту несущей 10 кГц и ширину полосы 50%
(рисунок 1.6). Частота повторения импульсов составляет 1 кГц, частота
дискретизации -50 кГц, длина импульса - 10 мс. Коэффициент затухания
амплитуды импульсов равен 0.8.
t = 0: 1/50еЗ: 10е-3;
d = [0 : 1/1 еЗ : 10е-3; 0.8 .^(0 : 10)]';
у = pulstran(t, d, 'gauspuls', 10еЗ, 0.5);
plot(t,y);
1
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Рисунок 1.5
1
0.8
0.6
0.4
0.2
0
-0.2
-0.4
-0.6
-0.8
0
0.001 0.002 0.003 0.004 0.005 0.006 0.007 0.008 0.009
Рисунок 1.6
12
0.01
Михальов О. І., Гнатушенко Вікторія В., Гнатушенко Володимир В.,
"Цифрова обробка сигналів"
3. Сформируем последовательность 10 окон Хемминга (рисунок 1.7).
р = hamming(32);
t = 0 : 320; d = (0 : 9)'*32;
у = pulstran(t, d, p );
plot (t, у);
Сопутствующие функции: CHRP, COS, DIRIC, GAUSPULS, RECTPULS,
SAWTOOTH, SIN, SINC, SQUARE, TRIPULS.
1
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
0
50
100
150
200
250
300
350
Рисунок 1.7
1.2 Применение пакета SUMULINK
для формирования и
исследования сигналов.
Теоретическая часть данного вопроса подробно описана в:
Михальов О.І., Гнатушенко В.В., Гнатушенко В.В. Системи штучного
інтелекту: Методичні вказівки до виконання лабораторних робіт. Част.2. — Д.:
НМетАУ, 2005. – 55 с.
ЗАДАНИЕ
1. Изучить вопросы формирования типовых сигналов при работе в
командной строке.
2. Проработать самостоятельно вопросы формирования и исследования
всех рассмотренных типовых сигналов в пакете SUMULINK.
13
Михальов О. І., Гнатушенко Вікторія В., Гнатушенко Володимир В.,
"Цифрова обробка сигналів"
ЛИТЕРАТУРА
1. Гольденберг Л.М., Матюшкин Б.Д., Поляк М.Н. Цифровая обработка
сигналов: Учебное пособие для вузов. – М.: Радио и связь, 1990. – 256 с.
2. Лазарев Ю.Ф. MATLAB 5.x. – К.: Издательская группа BHV, 2000. – 384 с.
3. Дьяконов В. П. MATLAB 6/6.1/6.5 + Simulink 4/5. Обработка сигналов и
изображений. М.: Солон-Пресс. — 2004.
4. Черных И.В. S1MULINK. Среда создания инженерных приложений. М.:
ДИАЛОГ-МИФИ. - 2003.
5. Дьяконов В.П. Simulink 4. Специальный справочник. СПб.: ПИТЕР. —
2002.
6. Медведев В.С, Потемкин В.Г. Control System Toolbox. MATLAB 5 для
студентов. М.: ДИАЛОГ-МИФИ. - 2004.
14
Михальов О. І., Гнатушенко Вікторія В., Гнатушенко Володимир В.,
"Цифрова обробка сигналів"
Лабораторная работа № 2
БЫСТРОЕ ПРЕОБРАЗОВАНИЕ ФУРЬЕ
Цель: Изучить методы спектрального анализа сигналов на основе
дискретного преобразования Фурье, рассмотреть алгоритмы быстрого
преобразования Фурье и реализовать в системе MATLAB.
2.1 Получение спектра сигнала
Спектром временной зависимости (функции) x(t) называется совокупность
ее гармонических составляющих (гармоник), образующих ряд Фурье.
Спектральный анализ периодических функций заключается в нахождении
коэффициентов ak, bk ряда Фурье
x(t ) 
a0 
  (a k cos 2kf1t  bk sin 2kf1t ) ,
2 k 1
(2.1)
где f1-частота повторения (или частота первой гармоники), k-номер гармоники.
Коэффициенты ряда Фурье определяются выражениями
2T
 y(t ) cos 2kf1tdt ,
T0
(2.2)
2T
bk   y(t ) sin 2kf1tdt ,
T0
(2.3)
ak 
где T=1/f1-период повторения периодической функции x(t).
Для описания аналоговых и дискретных сигналов в частотной области
используется аппарат преобразования Фурье. Спектром Xa(j) аналогового
сигнала xa(t) называют прямое преобразование Фурье

X a ( j )   x a (t )e  jt dt .
(2.4)
0
В свою очередь, согласно обратному преобразованию Фурье
1
x a (t ) 
2

 X a ( j )e
jt
Пара
преобразований
для
решетчатой
последовательности) x(nT) имеет вид:
X (e
jT
d .
(2.5)

)  Ф{x(nT )} 
(дискретной

 x(nT )e  jnT ;
n 0
15
функции
(2.6)
Михальов О. І., Гнатушенко Вікторія В., Гнатушенко Володимир В.,
"Цифрова обробка сигналів"

x(nT )  Ф 1{ X (e jT )} 
T
2
T
 X (e
jnT
)d ,
(2.7)

T
где X(ejT) называют спектром дискретного сигнала.
2.2 Дискретное преобразование Фурье
Пусть x(nT) – периодическая последовательность с периодом NT (период –
N отсчетов) т.е. x(nT)= x(nT+mNT), m – целое. Дискретным преобразованием
Фурье (ДПФ) называют пару взаимно-одназначных преобразований:
N 1
 x(nT )e  jknT
X (k )  X (k) 
, k=0, 1, 2, …, N-1;
(2.8)
n 0
x(n)  x(nT ) 
где  
2
NT
1
N
N 1
 X (k)e jknT , n=0, 1, 2, …, N-1;
(2.9)
k 0
- основная частота преобразования (бин ДПФ), причем (2.8)
определяет прямое ДПФ, а (2.9) – обратное ДПФ.
Дискретное преобразование Фурье X(k), как и сама последовательность
x(n), является периодической функцией по аргументу k с периодом N. ДПФ
может быть использовано и для представления последовательности x(nT)
конечной длины N, определенной при n=0, 1, 2, …, N-1 и равной нулю вне
интервала [0, N-1]. Действительно такую последовательность можно
рассматривать
как
один
период
соответствующей
периодической
последовательности и использовать преобразования (2.8), (2.9).
2.3 Быстрое преобразование Фурье (БПФ)
Дискретное преобразование Фурье X(k) конечной последовательности
X(nT), n=0, 1, 2, …, N-1 определяется согласно (2.8), (2.9):
X (k ) 
N 1
 x(nT )W Nnk , k=0, 1, 2, …, N-1;
(2.10)
n 0
1
x(nT ) 
N
где
WN  e
j
2
N
N 1
 X (k )W Nnk , n=0, 1, 2, …, N-1,
(2.11)
k 0
, причем WN является периодической последовательностью с
( nk  mN )
периодом N, так как W N
 W Nnk , m=0, 1, 2, ….
16
Михальов О. І., Гнатушенко Вікторія В., Гнатушенко Володимир В.,
"Цифрова обробка сигналів"
Непосредственное вычисление ДПФ (2.10) при комплексных значениях
x(nT) требует для каждого значения k (N-1) умножений и (N-1) сложений
комплексных чисел или 4(N-1) умножений и (2N-2) сложений действительных
чисел, а для всех N значений k=0, 1, 2, …, N-1 требуется примерно N2
умножений и N2 сложений комплексных чисел. Таким образом, для больших
значений N (порядка нескольких сотен или тысяч) прямое вычисление ДПФ
требует выполнения весьма большого числа арифметических операций
умножения и сложения, что затрудняет реализацию вычисления в реальном
масштабе времени процессов и спектров.
Быстрым преобразованием Фурье называют набор алгоритмов,
реализация которых приводит к существенному уменьшению вычислительной
сложности ДПФ. Исходная идея алгоритмов состоит в том, что N-точечная
последовательность разбивается на две более короткие, например на две (N/2)точечных последовательности, вычисляются ДПФ для этих более коротких
последовательностей и из этих ДПФ конструируется ДПФ исходной
последовательности. Для двух (N/2)-точечных последовательностей требуется
примерно (N/2)2*2=N2/2 умножений комплексных чисел, т.е. число умножений (а
так же сложений) уменьшается примерно в 2 раза. Аналогично вместо
вычисления ДПФ (N/2)- точечной последовательности можно вычислить ДПФ
для двух (N/4)-точечных последовательностей и таким образом вновь сократить
требуемое количество операций умножения и сложения. Если N=2, >0 и целое,
то процесс уменьшения размера ДПФ может быть продолжен до тех пор, пока не
останутся только 2-точечные ДПФ. При этом общее число этапов вычисления
ДПФ будет равно =log2N раз, а число требуемых операций для вычисления Nточечной ДПФ будет порядка N, т.е. уменьшается примерно в N / log 2 N раз.
Так при N=1000 для прямого вычисления ДПФ требуется примерно N2=106
операций комплексных умножений и сложений, а при использовании
алгоритмов БПФ таких операций требуется всего порядка 104, т.е. объем
вычислений сокращается примерно на два порядка.
Существуют
различные
алгоритмы
БПФ,
например,
широко
распространены алгоритм с прореживанием по времени, в котором требуется
перестановка отсчетов входной последовательности x(nT) и алгоритм с
прореживанием по частоте, в котором требуется перестановка отсчетов
выходной последовательности X(k). В обоих алгоритмах БПФ требуется
примерно Nlog2N операций (комплексных умножений) и оба алгоритма могут
быть реализованы по способу с замещением, используя только один массив
ячеек памяти.
17
Михальов О. І., Гнатушенко Вікторія В., Гнатушенко Володимир В.,
"Цифрова обробка сигналів"
2.3.1 Прямое одномерное дискретное БПФ — fft
Алгоритм БПФ реализован функцией y=fft(x[,n]). С ее помощью по
известному вектору сигнала x(n) вычисляется вектор
N 1
X (k  1)   x(n  1)e j (2 ) / N ,
(2.12)
n0
где N = length(x) — длина вектора исходных данных.
Если N есть степень числа 2, то используется высокоэффективный
алгоритм БПФ для вещественных или комплексных данных. Время вычислений
для комплексных данных примерно на 40-50% больше, чем для действительных.
Если N является простым числом, выполняется алгоритм дискретного
преобразования Фурье — ДПФ — по приведенной выше формуле. Если N<n, то
недостающие элементы массива х дополняются нулями.
Прямое БПФ переводит представление сигнала из временной области в
частотную. Это иллюстрирует приведенный ниже пример:
t=(0:1/99:1);
% Вектор времени
x=sin(2*pi*10*t)+.5*sin(2*pi*30*t); % Вектор сигнала
y=fft(х); % Вектор ДПФ сигнала
m=abs( у); p=unwrap(angle(y));
f=(0:length(y)-l)*99/length(y);
plot(f,m); title( 'Magnitude');
% Векторы амплитуд и фаз
% Вектор частот
% График АЧХ
set(gca,'XTick',[ 10 30 70 90]);
figure; plot(f,p*180/pi); title('Phase');
set(gca,'XTick',[ 10 30 70 90]);
%График ФЧХ
Этот пример показывает задание вектора временной зависимости сигнала,
представленного суммой двух синусоид с частотами 10 и 30 Гц с амплитудами 1
и 0,5 соответственно. Затем производится дискретное БПФ и строится график
АЧХ (рисунок 2.1).
Завершается пример построением графика фазочастотной характеристики
спектра (ФЧХ), представленной на рис. 2.2. Обратите внимание на весьма
полезную технику указания характерных частот спектра.
18
Михальов О. І., Гнатушенко Вікторія В., Гнатушенко Володимир В.,
"Цифрова обробка сигналів"
Magnitude
50
45
40
35
30
25
20
15
10
5
0
10
30
70
90
Рисунок 2.1 АЧХ спектра
Phase
300
200
100
0
-100
-200
-300
-400
-500
-600
-700
10
30
70
90
Рисунок 2.2 ФЧХ спектра
2.3.2 Перегруппировка выходного массива преобразования Фурье
fftshift
При выполнении прямого БПФ спектральные компоненты, близкие к
нулевой частоте, группируются по краям спектрограммы — рис. 1, например.
Функция y=fftshift(x) обеспечивает перегруппировку элементов выходного
массива преобразования Фурье таким образом, что эти компоненты оказываются
в центре графика. Это иллюстрирует следующий пример:
19
Михальов О. І., Гнатушенко Вікторія В., Гнатушенко Володимир В.,
"Цифрова обробка сигналів"
% Вектор времени
t=(0:1/99:1);
x=sin(2*pi*10*t)+.5*sin(2*pi*30*t);
y=fftshift(fft(x));
m=abs(y);
p=unwrap(angle(y));
% Вектор сигнала
%ДПФ сигнала с перегруппировкой
% Векторы амплитуд и фаз
f=(0:1ength(y)-l)*99/length(y);
plot(f,m); title(‘Magnitude’);
% Вектор частот
% График АЧХ
Рисунок 2.3 показывает АЧХ спектра для этого примера. Сравнив рисунок 2.1 с
рисунком 2.3, нетрудно заметить, что нулевая частота здесь соответствует
центру графика.
Magnitude
50
45
40
35
30
25
20
15
10
5
0
0
10
20
30
40
50
60
70
80
90
100
Рисунок 2.3 АЧХ спектра с перегруппировкой массива частот
2.3.3 Обратное одномерное дискретное БПФ –ifft
Обратное дискретное преобразование Фурье реализуется формулой:
X (t ) 
1
N
N 1
 X (k  1)e j 2 / N , гдеN  lenght ( x)
(2.13)
k 0
Все сказанное об алгоритме БПФ относится и к обратному
преобразованию, которое реализуется функцией y=ifft(x[.n]). Для проверки
функций fft и i fft можно использовать следующий пример:
20
Михальов О. І., Гнатушенко Вікторія В., Гнатушенко Володимир В.,
"Цифрова обробка сигналів"
х=[1 2 3 4];
X=fft(x)
X=
10.000
x=ifft(X)
-2.0000+2.0000 i
-2.0000
-2.0000-2.0000 i
x=
1234
Здесь исходный вектор подвергается вначале прямому, а затем обратному
преобразованию Фурье. Как и следовало ожидать, после цепочки таких
преобразований вновь получается исходный вектор.
Замечание
Полученный результат, однако, возможен только для простых, чисто
тестовых и демонстрационных примеров. При векторах большого размера это
уже не совсем так, а в случае введения ограничений на число гармоник,
полученных при прямом БПФ, искажения синтезированного сигнала могут быть
весьма заметными.
2.3.4 Матрица дискретного преобразования Фурье — dftmtx
Функция A=dftmtx( n ) возвращает матрицу дискретного преобразования
Фурье размера n х n, такую, что матричное выражение у=А*х задает прямое
дискретное преобразование Фурье. Следующий пример демонстрирует
применение функции dftmtx:
>>x=[1 2 3 4]; y1=fft(x);
>>n=length ( х ) ; y2=x*dftmtx ( n )
y1=
10.0000 -2.0000+2.0000i -2.0000
y2=
-2.0000-2.0000i
10.0000 -2.0000+2.0000i -2.0000-0.0000i -2.0000-2.0000i
>>norm(y1-y2)
аns = 2. 3019e-015
Здесь для вектора х выполнено прямое дискретное БПФ вначале с
помощью функции fft, а затем с применением функции dftmtx. Результаты
совпадают с точностью до машинной погрешности. Величина погрешности
оценивается нормой разности векторов у1 и у2, полученных в этом примере.
21
Михальов О. І., Гнатушенко Вікторія В., Гнатушенко Володимир В.,
"Цифрова обробка сигналів"
Матрица Ai=conj(dftrntx(n))/n, соответственно, обеспечивает обратное
дискретное преобразование Фурье.
Замечание.
При всей привлекательности использования функции dftmtx, для
вычисления ДПФ эффективнее использовать функцию fft. В качестве примера,
иллюстрирующего падение точности вычисления при использовании функции
dftmtx на больших выборках, в предыдущей программе рассмотрите x=1:256 .
ЗАДАНИЕ
1 Провести прямое и обратное БПФ (проиллюстрировать графиками АЧХ и
ФЧХ) следующих функций:
1.1 Для всех сигналов из лабораторной работы №1.
Для сигналов вида:
 Двухсторонний экспоненциальный импульс: x(t)=A*exp(-a*|t|), где А и а
– произвольные константы (например, А=5, а=0.3).
 Гауссов импульс: x(t)=A*exp(-a2* t2) .
 Сигнал: x(t)=A*sinc(x).
 Зашумленный гармонический сигнал:
x(t)=A1*cos(1t+1)+ A2*cos(2t+2 )=+a*randn(t) ,
используя программный фрагмент, приведенный в Help для функции fft.
2 Исследовать, что происходит с АЧХ и ФЧХ при зашумлении Гауссова и
экспоненциального импульсов.
3 Для всех указанных сигналов вычислить матрицу ДПФ.
4 Произвести анализ спектров различных видов сигналов:
1) синусоидальных колебаний;
2) прямоугольных колебаний со смещением;
3) прямоугольных колебаний без смещения;
4) белого шума.
Для этого в програмном пакете SimuLink необходимо построить схему,
представленную на рисунке 2.4 , где для получения синусоидальных колебаний
на сумматор (Sum) подается сигнал (с амплитудой А=1 и частотой F=0.1 Гц
(2*pi*0.1)) с генератора синусоидальных сигналов (SineWave) при нулевом
значении выходного сигнала блока постоянной составляющей (Constant).
22
Михальов О. І., Гнатушенко Вікторія В., Гнатушенко Володимир В.,
"Цифрова обробка сигналів"
Рисунок 2.4
Прямоугольные
колебания
со
смещением
получаются
путем
суммирования выходных сигналов блоков PulseGenerator с амплитудой сигнала
А=2 и Constant с выходным значением А= -1. Для получения прямоугольных
колебаний без смещения амплитуда выходного сигнала блока PulseGenerator
должна составлять А=1, при отсутствие сигнала на выходе блока Constant. В
свойствах блоков Scope (просмотр сигнала) и ToWorkspase (вывод в рабочую
область) необходимо установить период дискретизации (Sample Time) Тд=0,1 с.
При завершении настроек системы нужно промоделировать сигнал (кнопка ).
Полученный сигнал импортируется в среду SPTool, где в качестве источника
необходимо выделить simout, и установить частоту дискретизации Fд=10 Гц.
Когда сигнал импортирован в окне SpektrWiever можно увидеть его спектр, для
этого надо выбрать в качестве метода получения спектра FFT (быстрое
преобразование Фурье) и линейную шкалу графика. В ходе лабораторной работы
необходимо получить спектры всех четырех видов сигналов при различных
частотах дискретизации и сравнить их.
ЛИТЕРАТУРА
1. Лазарев Ю.Ф. MATLAB 5.x. – К.: Издательская группа BHV, 2000. – 384 с.
2. Дьяконов В. П. MATLAB 6/6.1/6.5 + Simulink 4/5. Основы применения.
3.
4.
5.
6.
Полное руководство пользователя. — М.: Солон-Р. — 2002.
Дьяконов В. П. MATLAB 6/6.1/6.5 + Simulink 4/5 в математике и
моделировании. Полное руководство пользователя. — М.: Солон-Р. — 2002.
Дьяконов В. П. MATLAB 6/6.1/6.5 + Simulink 4/5. Обработка сигналов и
изображений. Полное руководство пользователя. — М.: Солон-Р. — 2004.
Потемкин В. Г. Система инженерных и научных расчетов MATLAB 5.x. В 2-х
томах. - М.: ДИАЛОГ-МИФИ. - 1999.
Гультяев А. Визуальное моделирование в среде MATLAB: учебный курс. —
СПб.: ПИТЕР. - 2001.
23
Михальов О. І., Гнатушенко Вікторія В., Гнатушенко Володимир В.,
"Цифрова обробка сигналів"
Лабораторная работа №3
СВЕРТКА И ДЕКОНВОЛЮЦИЯ
Цель: Изучить основные свойства свертки и деконволюции и реализующие их
функции системы MATLAB.
Основными базовыми функциями обработки данных являются свертка и
деконволюция. Они применяются не только при проектировании фильтров, но и
в геофизике, медицине, неразрушающем контроле, криптографии, обработке
экспериментальных данных в науке и технике, обработке изображений и т. д.
3.1 Свертка одномерных сигналов — conv
Пусть имеется две последовательности, представленные векторами a и b.
Сверткой называют одномерный массив, вычисляемый так:
N 1
c(n  1)   a(k  1)b(n  k )
(3.1)
k 0
При записи этого выражения учтено, что нумерация индексов всех
массивов (даже массивов Java) в MATLAB идет с 1. Свертка реализуется
функцией conv(a,b).
Пример 1:
a=[2 4 6]; b=[3 5 7]; c=conv(a,b)
c=
6 22 52 58 42
Операцию свертки часто используют для вычисления сигнала у на выходе
линейной системы по сигналу х на входе при известной импульсной
характеристике системы h. (рисунок 3.1):
y (k ) 
k

x(m)h(k  m)
(3.2)
m
3.2 Операция, обратная свертке — deconv
Операцию, обратную свертке, выполняет функция [q,r]=deconv(b,a).
Данная функция позволяет вычислить импульсную характеристику линейной
системы. Если у=соnv(х,h), то q = y и r = 0.
Пример 2:
а=[2 4 6]; b=[3 5 7]; c=conv(a.b)
24
Михальов О. І., Гнатушенко Вікторія В., Гнатушенко Володимир В.,
"Цифрова обробка сигналів"
с=
6 22 52 58 42
[q,r]=deconv(c,a)
q=
357
r=
00000
4.1 Свертка двумерная и многомерная — conv2 и convn
Для осуществления свертки двумерных массивов (матриц) А и В с
размерами ma  па и mb  nb служит функция C=conv2(A,B[, 'shape']). Параметр
'shape' в ней может иметь следующие значения:
'full' — полноразмерная свертка (принята по умолчанию);
'same' — центральная часть свертки, определяемая размером массива А;
'valid' —центральная часть свертки с размером [ma-mb+1, na—nb+1] при
size(A) > size(B).
Выполнение двумерной свертки эффективно при size(A) > size(B). Эта
операция используется при обработке изображений. Свертка многомерная
реализуется функцией convn с записью, подобной рассмотренной для функции
conv2. Она используется с многомерными массивами.
ЗАДАНИЕ
1.
Самостоятельно проработать вопрос реализации свертки как
матричного умножения для данных примеров 1,2, применив функцию
convmtx(x,n). Сравнить полученные результаты с результатами примеров 1 и 2.
2.
Пусть задан входной сигнал (отсчеты) x(k)=[1,5,8,10,4,-3,-7,2,5] и
импульсно-переходная
характеристика
линейной
системы
h(k)=[3,4,6,8,10,5,3,2,1,2,3]. Найти выходной сигнал y.
3.
Решить задачу идентификации линейной системы при известных
входных и выходных сигналах x, y пункта 2.
4.
Используя данные пункта 2 найти спектр свертки сигналов.
Построить АЧХ и ФЧХ.
5.
Пусть заданы сигналы s(k)=[1, 3, 5, 6, 3, 2, -1, 2, 4] и x(k) (данные из
п.2). Найти произведение этих сигналов и спектр этого произведения.
Построить АЧХ и ФЧХ.
25
Михальов О. І., Гнатушенко Вікторія В., Гнатушенко Володимир В.,
"Цифрова обробка сигналів"
6.
Сгенерировать произвольные двумерные матрицы А и В. Найти
двумерную свертку. Исследовать при этом влияние параметра ‘shape’.
Рисунок 3.1 Вычисление дискретной свертки
ЛИТЕРАТУРА
1. Чен К., Джиблин П., Ирвинг А. MATLAB в математических
исследованиях. Мир, 2001.
2. Потемкин В. Введение в MATLAB. Диалог-МИФИ. 2000.
26
Михальов О. І., Гнатушенко Вікторія В., Гнатушенко Володимир В.,
"Цифрова обробка сигналів"
Лабораторная работа №4
ИССЛЕДОВАНИЕ ХАРАКТЕРИСТИК АНАЛОГОВЫХ И
ЦИФРОВЫХ ФИЛЬТРОВ
Цель: Изучить частотные характеристики аналоговых и дискретных
фильтров; аналитически исследовать указанные фильтры в пакете Control System
Toolbox; «экспериментально» исследовать аналоговые и дискретные фильтры в
пакете Simulink.
4.1 Теоретические основы
Фильтр — это устройство или программа, которая обеспечивает частотно
зависимые преобразования входного сигнала. Для фильтра низких частот
устройства или программы должны обеспечивать отсутствие амплитудных
искажений входного сигнала в области частот от 0 до некоторой заданной  c , и
эффективное подавление частот, которые превышают граничную частоту  c .
Аналоговый фильтр может быть представлен непрерывной передаточной
функцией:
W ( s) 
Y ( s)
M ( s)

,
X (s)
N (s)
(4.1)
где, Y(s), X(s) – изображение по Лапласу выходного и входного сигналов
фильтра, соответственно; М(s), N(s) — полинома числителя и знаменателя
передаточной функции.
В качестве основных характеристик фильтра обычно принимают
характеристику затухания A( ) , которая является величиной, обратной модулю
частотной передаточной функции, и измеряется в децибелах:
1
A( )  20  lg{W ( j  }  10lg L( 2 ),
фазовую характеристику Q( )
Q( )  arg(W ( j ))
характеристику групповой задержки 

dQ( )
.
d
Функцию L( s 2 )  W ( s )  W (  s ) 1 называют функцией затухания.
27
Михальов О. І., Гнатушенко Вікторія В., Гнатушенко Володимир В.,
"Цифрова обробка сигналів"
Идеальный фильтр низких частот (ФНЧ) пропускает только
низкочастотные составляющие. Его характеристика затухания имеет вид,
приведенный на рис.4.1.
Рисунок 4.1 Частотные характеристики затухания идеального ФНЧ
Диапазон частот от 0 до  C называется полосой пропускания, остальной
частотный диапазон — полосой задержания. Граница между этими полосами
 C называется частотой среза. В реальных фильтрах переход от частоты
пропускания к частоте задерживания происходит плавно (рисунок 4.2).
Рисунок 4.2 Частотные характеристики затухания реального ФНЧ
На рисунке 4.2 показаны контрольные точки ФНЧ, которые используются
при его проектировании:
WP – граничная частота пропускания;
WS – граничная частота задержки;
RP – максимально допустимое подавление сигнала в полосе пропускания, дБ;
RS – минимально допустимое подавление сигнала в полосе задерживания, дБ.
Командой MATLAB buttord определяется порядок n и частота среза Wc
аналогового фильтра Баттерворта по исходным данным этой команды, заданной
частотой пропускания и задерживания (WP,WS) и максимальным допустимым
28
Михальов О. І., Гнатушенко Вікторія В., Гнатушенко Володимир В.,
"Цифрова обробка сигналів"
подавлением сигналов в полосе пропускания и задерживания (RP,RS). Причем,
если команда buttord имеет параметр s
[n,Wc]=buttord(WP,Ws,RP,Rs,/s/),
то WP, Ws должны быть заданы в радианах в секунду, значения частоты Wc.
Также будет получено в радианах за секунду, а п будет определять степень
характеристического управления.
Если команда buttord записана без параметра s
[п, Wc ] = buttord(Wp,Ws ,RP,RS),
то частоты Wp и Ws задаются в относительных единицах  / B , изменяющихся
от 0 до 1 (где 1 соответствует частоте  B ), определяемой выражением:
B 

TП
,
(4.2)
где ТП - период дискретности.
Если определяется дискретный фильтр, соответствующий данному
аналоговому
фильтру,
то
B
определяет
частоту,
при
которой
наблюдаются максимальное различие между амплитудными значениями
аналогового и дискретного фильтрами и по этому расхождению можно
оценить правильность выбора ТП. В то же время целесообразно помнить, что
 B — это частота, выше которой частотными характеристиками аналогового
сигнала можно пренебречь.
В пакете MATLAB Control System Toolbox аналоговые и цифровые
фильтры могут быть представлены:
- в виде уравнений пространства состояний - форма ss;
- через передаточные функции - форма tf;
- через нули и полюса - форма zpk.
Переход от непрерывного представления уравнений к их дискретному
представлению определяется командой c2d, а переход к непрерывному
представлению, если задан его дискретный аналог, определяется командой d2с.
Приведенные выше теоретические положения рассмотрены на конкретных
примерах.
%Программа 1
Wr=l; %Граничная частота пропускания.
Ws=10;%Граничная частота задержки.
29
Михальов О. І., Гнатушенко Вікторія В., Гнатушенко Володимир В.,
"Цифрова обробка сигналів"
Rp=6;%Максимально
допустимое
подавление
в
полосе
пропускания(дБ).
Rs=20;%Минимально
допустимое
подавление
в
полосе
задерживания(дБ)
[n,Wn]=buttord(Wr,Ws,Rp,Rs,'s') %Определение параметров
%аналогового фильтра Баттерворта.
[z,p,k]=buttap(n);%Определение нулей и полюсов фильтра
Баттерворта.
[b,a]=zp2tf(z,p,k)%Определение
коэффициентов
фильтра
Баттерворта.
h=tf([b],[а])%Определение передаточной
функции
%аналогового фильтра Баттерворта.
%Проектирование фильтра Баттерворта с более жесткими
требованиями: в полосе пропускания уменьшено максимально
допустимое подавление
Wr=l ;
Ws=10;
Rp=2 ;
Rs=20;
[n2,Wn2]=buttord(Wr,Ws,Rp,Rs,'s')
[z,p,k]=buttap(n2);
[b2,a2]=zp2tf(z,p,k)
h2=tf([b2],[a2])%Определение
передаточной
функции
%аналогового фильтра Баттерворта.
%Проектирование фильтра Баттерворта с более жесткими
требованиями: в полосе Задерживания увеличено максимально
допустимое подавление
Wr=l;
Ws=10;
Rp=2;
Rs=52;
[nЗ, Wn2] =buttord (Wr,Ws,Rp,Rs,'s')
[z,p,k]=buttap(n3);
[b3,a3]=zp2tf(z,p,k)
h3=tf([b3],[а3])
%Определение
передаточной
функции
аналогового
%фильтра Баттерворта.
figure(1)%Построение ЛЧХ для трех фильтров Баттерворта.
bode(h,h2,h3),grid on
%Проектирование дискретных фильтров Баттерворта при t=0,2.
t=0.2;
%Интервал дискретности.
hd=c2d(h,t) %Передаточная функция дискретного Фильтра,
%соответствующая
аналоговому
фильтру
h.
h2d=c2d(h2,t)%Передаточная
функция
дискретного Фильтра,
%соответствующая
аналоговому
фильтру
h2.
h3d=c2d(h3,t)%Передаточная функция дискретного Фильтра,
%соответствующая аналоговому фильтру h3.
30
Михальов О. І., Гнатушенко Вікторія В., Гнатушенко Володимир В.,
"Цифрова обробка сигналів"
figure(2)
%ЛАЧ и ЛФЧ характеристики
фильтров h и hd. bode(h,hd),grid on
figure(3)
%ЛАЧ и ЛФЧ характеристики фильтров
h2 и h2d. bode(h2,h2d),grid on
figure(4)
%ЛАЧ и ЛФЧ характеристики фильтров
h3 и h3d. bode(h3,h3d),grid on
%Проектирование
дискретных
фильтров
Баттерворта
при
t=0,05.
t=0.05;
%Интервал дискретности.
hd=c2d(h,t)
%Определение параметров дискретных фильтров
h2d=c2d(h2,t)
%для спроектированных непрерывных фильтров
h3d=c2d(h3,t)
%при новых интервалах дискретности.
figure(5)
%Построение ЛАЧ и ЛФЧ характеристик
bode(h,hd),grid
on
%аналоговых
и
дискретных
(при
измененном
figure(б)
%интервале дискретности)фильтров.
bode(h2,h2d),grid on
figure(7)
bode(h3,h3d),grid on
В этой программе последовательно исследуется три фильтра
Баттерворта, имеющие одинаковые частоты пропускания Wr и задерживания Ws,
но разные величины допустимого подавления сигнала в полосе пропускания Rp и
полосе задерживания Rs. Параметры Wr, Ws, Rp, Rs определяют частоту среза Wn и
порядок фильтров Баттерворта п. Причем, чем ближе частотные характеристики
реального фильтра приближаются к частотным характеристикам идеального
фильтра, тем больше величина п. Таким образом, порядок фильтра будет
увеличиваться при увеличении протяженности горизонтального участка в
полосе пропускания (уменьшением
Rp), при увеличении требования к
подавлению сигнала в полосе задерживания (увеличению Rs) или при
уменьшении частотного диапазона между Wp и Ws. Связь между параметрами
Wr, Ws, Rp и Rs (требования
к
фильтру)
и
порядком
фильтра
иллюстрируется примерами Программы 1.
В первом варианте допустимого уменьшения амплитуды в конце полосы
пропускания в два раза, что определяет величину Rp
20log10(1/2)  -6 дБ.
Во втором варианте ФНЧ в полосе пропускания имеет более плоскую
характеристику и допустимое уменьшение амплитуды на частоте среза
составляет 20%
201og10(1/0,8) = -1,93  -2дБ.
31
Михальов О. І., Гнатушенко Вікторія В., Гнатушенко Володимир В.,
"Цифрова обробка сигналів"
В третьем варианте проектируемого фильтра повышены требования к
подавлению сигнала в полосе задержки (сигнал уменьшается в 400 раз)
201ogl0(1/400)  52.
С повышением фильтрующих свойств увеличивается порядок фильтра,
что иллюстрируется на рисунке 4.1.
Bode Diagram
0
Magnitude (dB)
-20
-40
-60
-80
-100
Phase (deg)
-120
0
-90
-180
-270
-2
10
-1
0
10
10
1
10
2
10
Frequency (rad/sec)
Рисунок 4.1 ЛАЧХ фильтров Баттерворта (сверху вниз - фильтр первого
порядка (-20 дБ/дек); второго порядка (-40 дБ/дек); третьего порядка
(-60 дБ/дек))
Во второй части Программы 1 командой с2d определяются Zпередаточные функции фильтров для фильтров первого, второго и третьего
порядков при разных интервалах дискретности. Для ТП = 0,2с имеем три
передаточные функции
W1 ( z ) 
0.1813
,
z  0.8187
0.1818 z  0.01654
,
z 2  1.7192  0.7536
0.00120522  0.0043582  0.0009868
W3 
,
z 3  2.60122  2.2782  0.6703
W2 ( z ) 
32
(4.3)
Михальов О. І., Гнатушенко Вікторія В., Гнатушенко Володимир В.,
"Цифрова обробка сигналів"
Z-передаточные функции для ТП = 0,05c представлены ниже
0.04877
,
z  0.9512
0.001221z  0.001192
W2 ( z )  2
,
(4.4)
z  1.9292  0.9317
2.032  105  z 2  7.926  105  z  1.933  105
W3 
z 3  2.9 z 2  2.805 z  0.9048
W1 ( z ) 
В Программе 1 имеется команда bode для построения логарифмических
характеристик непрерывных и дискретных систем (рис. 4.2). Результаты
выполнения этой команды представлены на рисунке 4.2.
Рисунок 4.2 Логарифмические характеристики непрерывного и дискретного
ФНЧ первого порядка для ТП = 0,2с (1 - непрерывный фильтр; 2 - дискретный
фильтр)
Из-за периодичности частотные характеристики дискретного фильтра
рассчитываются от нуля до частоты  R   / T П =3,14/0,2 = 15,7 p/c. Из рис.4.2
следует,
что
непрерывного
между
и
амплитудными
дискретного
фильтров
и
фазовыми
на
частоте
характеристиками
B
наблюдаются
значительные различия: для амплитудных характеристик различия достигают
6 дБ, для фазовых - 90°. В некоторых случаях величины указанных различий
33
Михальов О. І., Гнатушенко Вікторія В., Гнатушенко Володимир В.,
"Цифрова обробка сигналів"
недопустимы. К полученным результатам следует относиться с осторожностью
еще и потому, что различие между ЛАЧХ непрерывного и дискретного фильтра
проявляется при недостаточном ослаблении выходного сигнала, которое
составляет (-20) дБ. Рекомендуемые ослабления выходного сигнала, при
котором переход к дискретному представлении практически не вносит
ошибки, составляет -(30-60) дБ. Уменьшение ТП позволит приблизить
характеристики дискретного фильтра к аналоговому в области высоких частот.
На рис.4.3 и рис. 4.4 приведены графики непрерывных и дискретных ФНЧ
при увеличении требований к частотным характеристикам фильтров
(уменьшились искажения в полосе пропускания и увеличилось подавление
частот в полосе задерживания). Результаты Программы 1 показывают, что
увеличился порядок фильтра и при этом:
- частота  B не изменилась;
- уменьшилась амплитудная ошибка на частоте  B ;
- уменьшилась фазовая ошибка.
Причем, уменьшение амплитудных и фазовых ошибок наблюдается при
значительных ослаблениях выходного сигнала -(50-70) дБ.
Bode Diagram
0
Magnitude (dB)
-20
-40
-60
-80
-100
Phase (deg)
-120
0
-90
-180
-270
-2
10
-1
0
10
10
1
10
2
10
Frequency (rad/sec)
Рисунок 4.3 Логарифмические характеристики непрерывною и дискретного
ФНЧ второго порядка для ТП = 0,2с (сверху - непрерывный фильтр; снизу дискретный фильтр)
34
Михальов О. І., Гнатушенко Вікторія В., Гнатушенко Володимир В.,
"Цифрова обробка сигналів"
Bode Diagram
0
Magnitude (dB)
-20
-40
-60
-80
-100
-120
0
Phase (deg)
-90
-180
-270
-360
-2
10
-1
0
10
10
1
10
2
10
Frequency (rad/sec)
Рисунок 4.4 Логарифмические характеристики непрерывного и
дискретного ФНЧ третьего порядка для ТП = 0,2с (сверху - непрерывный
фильтр; снизу - дискретный фильтр)
На рисунках 4.5, 4.6 и 4.7 приведены графики непрерывных и дискретных
систем ФНЧ при ТП = 0,05с.
Рисунок 4.5 Логарифмические характеристики непрерывного и дискретного
Ф11Ч первого порядка для ТП = 0,05с (1 - непрерывный фильтр; 2 - дискретный
фильтр)
35
Михальов О. І., Гнатушенко Вікторія В., Гнатушенко Володимир В.,
"Цифрова обробка сигналів"
Bode Diagram
0
Magnitude (dB)
-20
-40
-60
-80
-100
Phase (deg)
-120
0
-90
-180
-270
-2
-1
10
0
10
1
10
2
10
10
Frequency (rad/sec)
Рисунок 4.6 Логарифмические характеристики непрерывного и дискретного
ФНЧ второго порядка для ТП = 0,05с (1сверху- непрерывный фильтр; снизу дискретный фильтр)
Bode Diagram
0
Magnitude (dB)
-20
-40
-60
-80
-100
-120
0
Phase (deg)
-90
-180
-270
-360
-2
10
-1
10
0
10
1
10
2
10
Frequency (rad/sec)
Рисунок 4.7 Логарифмические характеристики непрерывного и дискретного
ФНЧ третьего порядка для ТП = 0,05с (сверху - непрерывный фильтр; снизу дискретный фильтр)
36
Михальов О. І., Гнатушенко Вікторія В., Гнатушенко Володимир В.,
"Цифрова обробка сигналів"
Анализ графиков показывает, что уменьшение ТП приводит к увеличению
границы частотного диапазона  B =3,14/0,05 = 62,8 р/с и приближению
частотных характеристик дискретных фильтров к частотным характеристикам
аналоговых фильтров. Причем, наблюдаем отличия частотных характеристик
происходит при значительных ослаблениях выходного сигнала (-35-110) дБ.
По полиномам числителя и знаменателя передаточной функции ФНЧ
команда 1р21р определяет передаточные функции ФНЧ с новыми частотами
среза:
[b1,a1]=1P21p(b,a,W0)
где b, a - коэффициенты исходного фильтра низких частот;
W0 - желаемая частота среза проектируемого фильтра;
b1, a1 - коэффициенты спроектированного фильтра с новыми частотами среза.
В Программе 2 приведены примеры определения передаточных функций
ФНЧ (фильтра Баттерворта) для трех частот среза. Командой buttap определяют
нули, пояса и коэффициент усиления фильтра Баттерворта заданного порядка п.
Команда zp2tf преобразует математическую модель ФНЧ: от информации
заданной нулями, полосами и коэффициентом усиления, к информации
представленной передаточными функциями.
%Программа 2
wr=0.1; %Частота пропускания в относительных единицах.
ws=0.6;
%Частота Задерживания в относительных единицах.
rр=6;%Допустимое подавление в полосе пропускания.
rs=40;
%Допустимое подавление в полосе задерживания.
[n1,wc1]=buttord(wr,ws,rp,rs)
%Определение параметров
фильтра
%Баттерворта.
[z1,p1,k1]=buttap(n1); %Определение фильтра Баттерворта в
форме ZPK [b1,a1]=zp2tf(z1,p1,k1)%Определение полинома
числителя и знаменателя
%фильтра Баттерворта.
hl=tf([b1],[a1])
%Определение фильтра Баттерворта
в форме TF.
wl=10; %Частота среза проектируемого фильтра Баттерворта.
[b10,а10]=lр2lр(b1,a1,w1)%Параметры фильтра Баттерворта
на частоте w1.
w2=100;
%Частота среза проектируемого фильтра
Баттерворта.
[b100,а100]=lр2lр(b1,a1,w2)
%Параметры фильтра
Баттерворта
%с частотой среза w2.
37
Михальов О. І., Гнатушенко Вікторія В., Гнатушенко Володимир В.,
"Цифрова обробка сигналів"
q1=tf([b10],[а10])
Баттерворта
%Передаточная функция фильтра
%с частотой среза w1
q2=tf([b100],[a100])
%Передаточная функция фильтра
Баттерворта
%с частотой среза w2.
figure(1)
%Логарифмические характеристики проектируемых
фильтров
bode(h1,'g',q1,'k',q2,'r'),grid on %при разных частотах
среза
%(w=l;w=10;w=100)
Результаты выполнения Программы 2 приведены на рисунке 4.8
Bode Diagram
Magnitude (dB)
50
0
-50
-100
-150
0
Phase (deg)
-45
-90
-135
-180
-2
10
-1
10
0
1
10
10
2
10
3
10
4
10
Frequency (rad/sec)
Рисунок 4.8 Логарифмические характеристики непрерывного ФНЧ второго
порядка для разных частот среза (слева направо - частота среза 1 р/с; частота
среза 10 р/с; частота среза 100 р/с.)
По передаточным функциям, определённым в программе 2, на рисунке
4.9 в пакете Simulik представлены структурные схемы непрерывных и
дискретных фильтров нижних частот.
38
Михальов О. І., Гнатушенко Вікторія В., Гнатушенко Володимир В.,
"Цифрова обробка сигналів"
39
Михальов О. І., Гнатушенко Вікторія В., Гнатушенко Володимир В.,
"Цифрова обробка сигналів"
Рисунок 4.9 Структурные схемы ФНЧ (А, С, Е - непрерывная передаточная
функция в форме tf фильтров I, II, III порядков соответственно; В, D, F реализация их Z-передаточной функции на регистрах сдвига)
ЗАДАНИЕ
1. Исследовать характеристики фильтров, реализовав программы 1 и 2.
2. По заданным преподавателем параметрам составить программу
расчета дискретных фильтров Баттерворта.
3. Выполнить программу и построить логарифмические характеристики
дискретных фильтров.
4. По передаточным функциям дискретных фильтров в пакете Simulink
составить структурные схемы.
5. В пакете Simulink промоделировать структурные схемы дискретных
фильтров.
ЛИТЕРАТУРА
1. Гольденберг Л.М., Матюшкин Б.Д., Поляк М.Н. Цифровая обработка
сигналов: Учебное пособие для вузов. – М.: Радио и связь, 1990. – 256 с.
2. Лазарев Ю.Ф. MATLAB 5.x. – К.: Издательская группа BHV, 2000. – 384 с.
3. Дьяконов В. П. MATLAB 6/6.1/6.5 + Simulink 4/5. Обработка сигналов и
изображений. М.: Солон-Пресс. — 2004.
4. Черных И.В. S1MULINK. Среда создания инженерных приложений. М.:
ДИАЛОГ-МИФИ. - 2003.
40
Михальов О. І., Гнатушенко Вікторія В., Гнатушенко Володимир В.,
"Цифрова обробка сигналів"
Лабораторная работа № 5
РАСЧЕТ ЦИФРОВЫХ ФИЛЬТРОВ В СРЕДЕ MATLAB
Цель: Изучить возможные способы расчета цифровых фильтров в среде
MATLAB.
В среде MATLAB цифровые фильтры можно рассчитать по меньшей мере
тремя способами:
1)
в командном окне;
2)
с помощью пакета sptool;
3)
с помощью пакета fdatool.
5.1 Расчет цифровых фильтров в командном окне
5.1.1 Расчет коэффициентов a k нерекурсивного фильтра с помощью
функции 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)
a=fir1(6,0.5,window)
% синтез прамоугольного окна из 7 отсчетов
% расчет коэфф-в КИХ-фильтра с нормализацией
41
Михальов О. І., Гнатушенко Вікторія В., Гнатушенко Володимир В.,
"Цифрова обробка сигналів"
Результат:
a=[ -0.1148
0.0000
0.3443
0.5409
0.3443
0.0000 -0.1148]
Сравнивая эти результаты с рассчитанными вручную коэффициентами,
нетрудно видеть разницу. Например, ручные расчеты дают a 0  0.5 , тогда как в
MATLAB мы получили a0  0.5409 . Естественно предположить, что причиной
тому
проводимая
по
умолчанию
нормировка
ИПХ.
Проверяем
это
предположение, задавая в программе значение ’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 k и bk рекурсивного фильтра
Команда генерирования коэффициентов a k и bk рекурсивного фильтра
Баттерворта:
[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).
42
Михальов О. І., Гнатушенко Вікторія В., Гнатушенко Володимир В.,
"Цифрова обробка сигналів"
Magnitude (dB)
0
-50
-100
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
Normalized Frequency ( rad/sample)
0.9
1
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
Normalized Frequency ( rad/sample)
0.9
1
Phase (degrees)
200
100
0
-100
-200
Рисунок 5.1 АЧХ и ФЧХ полосового фильтра Баттерворта 2-го порядка
для w1=0.25, w2=0.5
5.1.4 Построение графика ИПХ
Построение графика ИПХ осуществляется парой команд:
[h,t] = impz(a,b);
stem(t,h)
При этом в случае рекурсивного фильтра количество выводимых отсчетов
ИПХ выбирается автоматически (рисунок 5.2).
0.3
0.2
0.1
0
-0.1
-0.2
-0.3
-0.4
0
5
10
15
20
25
30
35
40
Рисунок 5.2 ИПХ полосового фильтра Баттерворта 2-го порядка для
w1=0.25, w2=0.5
43
Михальов О. І., Гнатушенко Вікторія В., Гнатушенко Володимир В.,
"Цифрова обробка сигналів"
Пара команд
[h,t] = impz(a,b,N);
% N – число отсчетов ИПХ
stem(t,h)
позволяет вывести на график N отсчетов ИПХ.
5.1.5 Моделирование процесса цифровой фильтрации
Такое моделирование производится в 3 этапа:
1)
моделирование входного процесса x n и построение его графика;
2)
цифровая фильтрация процесса x n , в результате которой получаем
процесс y n ;
3)
построение графика процесса y n и сопоставление его с графиком
процесса x n .
5.1.5.1. Моделирование входного процесса
xn
и построение его
графика
Моделирование отрезка входного процесса x n в виде гармонического
сигнала частотой f 0 , длительностью T с, дискретизированного с частотой Fd:
t=0:1/Fd:T;
x=sin(2*pi*f0*t);
Построение графика процесса x n :
plot(t,x);
Моделирование отрезка входного процесса s n в виде прямоугольных
импульсов единичной высоты, следующих с частотой

f 0 , длительностью
1
с, дискретизированного с частотой Fd:
f0
t=0:1/Fd:T;
s=(square(2*pi*f0*t, f0*tau*100)+1)/2;
Моделирование отрезка шума rn в виде (0;1)-нормального белого шума
той же длительности T с, дискретизированного с частотой Fd:
r=randn(1,length(t));
44
Михальов О. І., Гнатушенко Вікторія В., Гнатушенко Володимир В.,
"Цифрова обробка сигналів"
Моделирование отрезка входного процесса в виде аддитивной смеси
гармонического сигнала единичной амплитуды и (0;1)-нормального белого
шума:
xr=x+r;
5.1.5.2 Два способа фильтрации в командном окне
Два способа:
1)
с помощью функции свертки:
y=conv(x,a);
2)
с помощью функции дискретной фильтрации:
y=filter(a,b,x)
Особенности фильтрации с помощью функции свертки:
1)
2)
можно работать только с КИХ-фильтрами;
длина отклика равна сумме длин воздействия и ИПХ минус единица
Особенности фильтрации с помощью функции дискретной фильтрации:
1)
2)
можно работать как с КИХ-, так и с БИХ фильтрами;
длина отклика равна длине воздействия.
5.2 Расчет фильтра a k с помощью пакета sptool
5.2.1 Интерактивная оболочка SPTool
Процедура SPTool активизирует графическую интерактивную оболочку
пакета Signal, включающую:
- средство поиска и просмотра сигналов – Signal Brouser;
- проектировщик фильтров – Filter Designer;
- средство просмотра характеристик фильтров – Filter Viewer;
- средство просмотра спектра – Spectrum Viewer.
Оболочка активизируется путем ввода в командном окне MATLAB
команды sptool. В результате на экране появляется окно, представленное на
рисунке 5.3.
45
Михальов О. І., Гнатушенко Вікторія В., Гнатушенко Володимир В.,
"Цифрова обробка сигналів"
Как видим, окно SPTool состоит из трех областей – Signals (Сигналы),
Filters (Фильтры) и Spectra (Спектры), под каждой из которых имеются кнопки,
указывающие на то, что можно сделать с объектами, расположенными в этих
областях. Так, под областью Signals находится лишь кнопка View. Это означает,
что объекты (сигналы), имена которых расположены в этой области, могут быть
только просмотрены.
Рисунок 5.3
Под областью Filters находятся четыре кнопки, которые указывают на то,
что объекты (фильтры), имена которых размещаются внутри него, могут быть:

созданы (кнопка New Design);

отредактированы (кнопка Edit Design);

просмотрены (кнопка View);

применены к одному или нескольким объектам, выделенным в области
Signal (кнопка Apply).
Аналогично, с объектами области Spectra (спектрами) можно
производить такие действия:

создавать (кнопка Create);

просматривать (кнопка View);

обновлять, т.е. создавать заново под тем же именем (кнопка Update).
46
Михальов О. І., Гнатушенко Вікторія В., Гнатушенко Володимир В.,
"Цифрова обробка сигналів"
Внутри
областей
обычно
размещаются
имена
(идентификаторы)
соответствующих переменных или процедур, входящих в открытый в SPTool
файл с расширением .spt (имя этого файла указывается в заголовке окна SPTool).
При первом обращении в заголовке окна находится имя untitled.spt, все
три области – пустые, а из кнопок, расположенных ниже, активной является
только одна – New Design. Таким образом, после вхождения в оболочку SPTool
доступной является только операция создания нового фильтра. Чтобы
активизировать остальные кнопки, необходимо откуда-то импортировать данные
о каком-то (или каких-то) сигнале (сигналах). Такие данные должны быть
сформированы другими средствами, нежели сама оболочка SPTool, (например,
они могут являться результатом выполнения некоторой программы MATLAB
или результатом моделирования в среде SimuLink) и записаны как некоторые
переменные либо в рабочем пространстве (Workspace), либо на диске в файле с
расширением .mat.
5.2.2 Пример
Для активизации пакета набираем в командном окне команду sptool.
Затем в появившемся окне в колонке кнопок “Filters” необходимо нажать кнопку
“New”.
В появившемся окне «Filter Designer» необходимо:
1)
задать частоту дискретизации (задаем 100 Гц);
2)
выбрать в позиции Algoritm значение Kaiser Window FIR
(выбираем из 3-х вариантов: Equiripple FIR, Least Square FIR и Kaiser
Window FIR);
3)
отключить флажок Minimum Order;
4)
задать Order=6;
5)
задать Type=lowpass;
6)
задать Passband Fp=25;
7)
отключить флажок Autodesigne;
8)
закрыть окно Filter Designer;
9)
в окне sptool в колонке Filters нажать кнопку View;
10) в появившемся окне Filter Viewer наблюдаем графики АЧХ, ФЧХ,
ИПХ (ИПХ наблюдаем после активизации соответствующего флажка).
Примечание 1: мы выбрали в позиции Algoritm значение Kaiser Window
FIR. Кроме данного алгоритма, есть еще два алгоритма: Equiripple FIR, Least
47
Михальов О. І., Гнатушенко Вікторія В., Гнатушенко Володимир В.,
"Цифрова обробка сигналів"
Square FIR. Из всех этих 3-х алгоритмов только алгоритм Кайзера реализует
метод обратного преобразования Фурье с весовым окном Кайзера. При
значении параметра 0 окно Кайзера превращается в обычное прямоугольное
окно.
Как показывает эксперимент, рассчитанные таким образом коэффициенты
ФНЧ оказываются ненормированными, т.е. будут в точности равными
вычисленным вручную.
Примечание 2: чтобы узнать значения коэффициентов, нужно:
1)
активизировать график ИПХ, щелкнув по нем мышкой;
2)
активизировать вертикальные маркеры (кнопкой, расположенной
под меню);
3)
поместить один из маркеров (всего имеется 2 маркера – 1-й
изображается сплошной вертикальной линией. 2-й - пунктирной) напротив
нужного отсчета ИПХ;
4)
считать значение отсчета ИПХ в специальном окошке.
На рисунке 5.4 показано окно Filter Viewer (в режиме предпечатного
просмотра) для данного конкретного случая (маркер 1 установлен против
максимального отсчета, равного 0.5, а маркер 2 – против смежного отсчета,
равного 0.3183).
Рисунок 5.4
Пакет sptool позволяет моделировать процесс фильтрации с помощью
рассчитанного фильтра. Для этого в среду пакета sptool (как уже было сказано)
нужно импортировать входной сигнал, сгенерированный в рабочем окне
программы MATLAB. Фильтрация происходит после нажатия кнопки Apply.
48
Михальов О. І., Гнатушенко Вікторія В., Гнатушенко Володимир В.,
"Цифрова обробка сигналів"
5.3 Расчет фильтра a k с помощью пакета fdatool
Для активизации пакета нужно в командном окне набрать команду
fdatool. Затем в появившемся окне в разделе Designe Filter задать:
1)
Designe Method: FIR=Window;
2)
Window Specifications: Window=Rectangular;
3)
Filter order: Specify order=6;
4)
5)
6)
задать частоту дискретизации (Fs=100 Гц);
задать Filter Type=lowpass;
задать Passband Fc=25;
7)
с помощью кнопок под меню включаем режим просмотра
коэффициентов фильтра.
В результате проведенных расчетов убеждаемся, что здесь по умолчанию
производится нормирование ИПХ (см. выше fir1).
Пакет fdatool не позволяет моделировать процесс фильтрации с помощью
рассчитанного фильтра. Однако рассчитанные коэффициенты фильтра можно
импортировать из среды fdatool в среду MATLAB, где их можно использовать
для моделирования фильтрации.
5.4 Сопоставление способов расчета
Расчеты в командном окне: достоинство – гибкость управления
расчетами; недостаток – сложный синтаксис команд; особенность –
коэффициенты фильтра по умолчанию являются нормированными, хотя
заданием значения ‘noscale’ параметра ‘normalization’ можно отказаться от
нормирования.
Расчеты с помощью пакета sptool: достоинство – не нужно помнить
синтаксис команд; недостаток – ограниченный набор окон для метода обратного
преобразования Фурье (только окно Кайзера); особенность – вычисляются
только ненормированные коэффициенты фильтра.
Расчеты с помощью пакета fdatool: достоинство – не нужно помнить
синтаксис команд; особенность – вычисляются только нормированные
коэффициенты фильтра.
49
Михальов О. І., Гнатушенко Вікторія В., Гнатушенко Володимир В.,
"Цифрова обробка сигналів"
ЗАДАНИЕ
1. Ознакомиться с демонстрационными примерами системы MATLAB
(обязательно: «Фильтрация сигнала» (раздел «Обработка сигналов»),
«Адаптивная фильтрация RLS подавитель шума» (раздел «Блок-схемы
DSP»).
2. Проработать все примеры, наведенные в данной лабораторной работе.
ЛИТЕРАТУРА
1. Гольденберг Л.М., Матюшкин Б.Д., Поляк М.Н. Цифровая обработка
сигналов: Учебное пособие для вузов. – М.: Радио и связь, 1990. – 256 с.
2. Лазарев Ю.Ф. MATLAB 5.x. – К.: Издательская группа BHV, 2000. – 384 с.
3. Дьяконов В. П. MATLAB 6/6.1/6.5 + Simulink 4/5. Обработка сигналов и
изображений. М.: Солон-Пресс. — 2004.
4. Ануфриев И. Е. Самоучитель MatLab 5.3/б.х.— СПб.: БХВ-Петербург,
2002. — 736 с.
5. Дьяконов В. П. Matlab 6/6.1/6.5+Simulink 4/5. Основы программирования:
Руководство пользователя. — М.: Солон-Пресс, 2002. — 768 с.
6. Мэтьюз Д., Финк К. Численные методы. Использование MATLAB (3-е
издание). — СПб.: Вильяме, 2001. — 720 с.
7. Чен К., Джиблин П., Ирвинг A. MATLAB в математических
исследованиях. — М.: Мир, 2001. — 346 с.
8. Черных И. В. Simulink: среда создания инженерных приложений.— М.:
Диалог-МИФИ, 2004. — 496 с.
50
Михальов О. І., Гнатушенко Вікторія В., Гнатушенко Володимир В.,
"Цифрова обробка сигналів"
Лабораторная работа №6
ПРЕОБРАЗОВАНИЕ СПОСОБОВ ОПИСАНИЯ АНАЛОГОВЫХ
ЛИНЕЙНЫХ ФИЛЬТРОВ
Цель: Изучить функции пакета Signal Processing, предназначенные для
преобразования описаний аналоговых линейных фильтров.
В пакете Signal Processing имеется ряд функций, предназначенных для
преобразования описаний из одной формы в другую. Имена этих функций
имеют вид хх2уу, где хх — обозначение исходной формы описания, а уу —
обозначение целевой формы описания динамики фильтра.
Замечание
По-английски цифра «2» (two) произносится сходно с частицей «to»,
служащей, среди прочего, для указания на конечную цель или результат какоголибо процесса. Поэтому цифра «2» традиционно используется в середине
идентификаторов функций, осуществляющих различные преобразования.
Формы описания цепей в именах функций обозначаются следующим образом:
 tf — коэффициенты полиномов числителя и знаменателя функции
передачи (transfer function);
 zp — нули и полюсы (zeros and poles);
 ss — описание в пространстве состояний (state-space).
Необходимость в преобразовании описаний часто возникает из-за того,
что функции расчета систем (такие как рассматриваемые далее функции расчета
фильтров-прототипов) дают результат в одной форме, а функция, например,
построения частотной характеристики, требует задания входных параметров в
другой форме.
Далее кратко рассматриваются конкретные функции преобразования
описаний динамики систем. Для входных и выходных параметров используются
следующие обозначения:
 функция передачи: b — вектор-строка коэффициентов (в порядке
убывания степеней) числителя функции передачи; а — вектор-строка
коэффициентов (в порядке убывания степеней) знаменателя функции
передачи;
 нули и полюсы:
 z — вектор нулей (столбец);
 р — вектор полюсов (столбец);
51
Михальов О. І., Гнатушенко Вікторія В., Гнатушенко Володимир В.,
"Цифрова обробка сигналів"
 k — коэффициент усиления (скаляр);
 пространство состояний:
 А — квадратная матрица связи вектора состояния и его
производной;
 В — вектор-столбец связи входного сигнала и производной вектора
состояния;
 С — вектор-строка связи выходного сигнала и вектора состояния;
 D — скалярный коэффициент связи выходного и входного
сигналов.
Замечание
Размерности параметров указаны для случая цепи с одним входом и
одним выходом. Функции преобразования могут обрабатывать описания цепей с
несколькими выходными сигналами (с векторным выходом). В этом случае
размерности параметров соответствующим образом изменяются.
Функция tf2zp
Функция tf2zp преобразует наборы коэффициентов полиномов числителя
и знаменателя функции передачи в векторы нулей и полюсов, рассчитывая также
значение общего коэффициента усиления:
[z, p, k] = tf2zp(b, a):
Преобразование производится путем вычисления корней полиномов
числителя и знаменателя функции передачи с помощью функции roots.
Коэффициент усиления k рассчитывается как отношение b(1)/а(1).
Функция zp2tf
Функция zp2tf является обратной по отношению к функции tf2zp: она
осуществляет преобразование коэффициента усиления, а также векторов нулей и
полюсов функции передачи в коэффициенты полиномов ее числителя и
знаменателя:
[b, a] = zp2tf(z, p, k):
Преобразование производится с помощью функции poly, предназначенной
для вычисления коэффициентов полинома по заданным его корням. В
завершение вектор коэффициентов числителя умножается на k.
Функция tf2ss
Функция tf2ss преобразует наборы коэффициентов полиномов числителя
и знаменателя функции передачи в параметры представления цепи в
52
Михальов О. І., Гнатушенко Вікторія В., Гнатушенко Володимир В.,
"Цифрова обробка сигналів"
пространстве состояний:
[А, В, С, D]= tf2ss(b, a);
Преобразование производится согласно формулам, приведенным в
конспекте лекций, в разделе представление систем в пространстве состояний.
Функция ss2tf
Функция ss2tf является обратной по отношению к функции tf2ss: она
преобразует параметры пространства состояний в коэффициенты полиномов
функции передачи системы:
[b, а] = ss2tf(A, В, С, D);
Функция zp2ss
Функция zp2ss преобразует нули, полюсы и коэффициент усиления цепи в
ее параметры пространства состояний:
[А, В, С, D] = zp2ss(z, p, k);
Преобразование производится путем последовательного вызова функций
zp2tf и tf2ss.
Функция ss2zp
Функция ss2zp является обратной по отношению к функции zp2ss,
преобразуя параметры пространства состояний в нули, полюсы и коэффициент
усиления цепи:
[z, p, k] = ss2zp(A, В, С, D);
Полюсы системы являются собственными числами матрицы А и
вычисляются с помощью функции eig. Нули являются конечными решениями
обобщенной задачи нахождения собственных чисел и рассчитываются
следующим образом:
z = eig([А В;С 0], diag([ones(l.n) 0]));
Функция residue
Идентификатор последней функции, позволяющей преобразовывать
описания линейных систем, выпадает из общего ряда. Это связано с тем, что
данное преобразование не является специфическим для обработки сигналов —
оно сводится к разложению дробно-рациональной функции на простейшие
дроби и часто применяется в математике. По этой же причине данная функция
относится не к пакету Signal Processing, а к базовой библиотеке MATLAB.
53
Михальов О. І., Гнатушенко Вікторія В., Гнатушенко Володимир В.,
"Цифрова обробка сигналів"
Преобразование функции передачи, заданной в виде коэффициентов
полиномов числителя и знаменателя, в сумму простых дробей производится с
помощью функции residue. Она же осуществляет и обратное преобразование;
нужное направление преобразования выбирается в зависимости от числа
входных параметров. При двух входных параметрах производится разложение
функции передачи на простые дроби:
[г, p, k] – residue(b, a);
Здесь b и а — коэффициенты полиномов числителя и знаменателя
функции передачи соответственно. Выходные параметры — векторы-столбцы
полюсов (р) и соответствующих им вычетов (г), а также строка коэффициентов
целой части k..
При использовании трех входных параметров функция residue производит
преобразование вычетов, полюсов и коэффициентов целой части в
коэффициенты числителя и знаменателя функции передачи, то есть
осуществляет суммирование простых дробей:
[b, a] = residue(r, p, k)
В качестве примера разложим на простые дроби функцию передачи вида
s 2  2s  2
H ( s)  4
s  4s3  7 s 2  6s  2
» b = [1 -2 2]:
» а = [1 4 7 б 2];
» [г, p, k] = residue(b, a)
г=
2.0000 + 2.00001
2.0000 - 2.00001
-4.0000 5.0000
p=
-1.0000 + 1.00001
-1.0000 - l.0000i
-1.0000
-1.0000
k =-[ ]
Результаты преобразования показывают, что данная система имеет
двукратный полюс, равный -1, и пару комплексно-сопряженных полюсов,
равных -1±j. Поскольку степень полинома числителя меньше, чем степень
54
Михальов О. І., Гнатушенко Вікторія В., Гнатушенко Володимир В.,
"Цифрова обробка сигналів"
полинома знаменателя, целая часть их отношения равна нулю, и в параметре k
функция возвращает пустую матрицу. Рассчитанные значения вычетов
позволяют записать представление функции передачи в виде суммы простых
дробей (с учетом наличия кратного полюса):
H ( s) 
2  j2
2  j2
4
5



s  1  j s  1  j s  1 ( s  1)2
Произведем с помощью функции residue обратное преобразование
вычетов и полюсов в коэффициенты полиномов числителя и знаменателя
функции передачи:
[b1, al] = residue(r, p, k)
b1 =
-0.0000
1.0000 -2.0000
2.0000 al =
1.0000
4.0000
7.0000
6.0000
2.0000
Полученные значения совпадают с исходными. Знак «минус» при нулевом
значении b1(1) обусловлен вычислительными погрешностями - после обратного
преобразования получается не ровно нуль, а малое отрицательное число
(примерно - 4. 10-15).
Вычислительная задача разложения дробно-рациональной функции на
простые дроби плохо обусловлена. Это означает, что если функция передачи
имеет полюсы, близкие к кратным, то малые вариации исходных данных могут
приводить к большим погрешностям вычисления полюсов и вычетов. В таких
случаях документация MATLAB рекомендует использовать описание системы в
виде нулей и полюсов либо в пространстве состояний.
ЗАДАНИЕ
1. Применить
указанные
функции
передаточной функции: H ( s) 
преобразования
2s  3
s 2  0.4s  1
для
следующей
.
2. Найти нули, полюсы и коэффициент усиления системы, представленной
H (s ) п.1.
ЛИТЕРАТУРА
1. Гольденберг Л.М., Матюшкин Б.Д., Поляк М.Н. Цифровая обработка
сигналов: Учебное пособие для вузов. – М.: Радио и связь, 1990. – 256 с.
2. Дьяконов В. П. MATLAB 6/6.1/6.5 + Simulink 4/5. Обработка сигналов и
изображений. М.: Солон-Пресс. — 2004.
55
Михальов О. І., Гнатушенко Вікторія В., Гнатушенко Володимир В.,
"Цифрова обробка сигналів"
Лабораторная работа №7
ПРОЕКТИРОВАНИЕ ЦИФРОВЫХ ФИЛЬТРОВ ПО
АНАЛОГОВОМУ ПРОТОТИПУ
Цель: Изучить и путем моделирования проверить эффективность
методик расчета дискретных фильтров по аналоговым эквивалентам,
частотные характеристики которых определяют требования к дискретным
фильтрам; получить навыки в расчете дискретных фильтров на основе
аппроксимации Эйлера, инвариантного преобразования импульсной переходной
функции, билинейного преобразователя с использованием пакета MATLAB.
7.1 Краткие сведения
Существует несколько подходов к проектированию цифровых
фильтров. Один из распространенных состоит в следующем:
1. Определяют передаточную функцию аналогового фильтра H(s),
которая удовлетворяет требованиям частотной обработки сигналов, т.е.
заданы интервалы частот задерживания и частот пропускания, заданы
допустимые величины амплитудных искажений сигналов в полосе
пропускания и задерживания.
2. По заданной передаточной функции H(s) определяют дискретную
передаточную функцию фильтра H(z), которая удовлетворяет требованиям,
предъявленным к фильтру H(s).
Переход от H(s) к H(z) можно осуществить тремя путями:
- аппроксимацией Эйлера;
- инвариантным преобразованием импульсной переходной функции;
- с помощью билинейного преобразования.
При аппроксимации Эйлера исходные данные аналогового фильтра
могут быть заданы в двух модификациях: через дифференциальные
уравнения или через передаточные функции. Переход от дифференциального
уравнения к разностному, осуществляется путем замены производных
соответствующими разностями:
56
Михальов О. І., Гнатушенко Вікторія В., Гнатушенко Володимир В.,
"Цифрова обробка сигналів"
dy
y (n)  y (n  1)
t  nTП 
,
dt
TП
dy
dy
t  nTП 
t  (n  1)TП
d y
dt
dt
t  nTП 

TП
dt 2
2
(7.1)
y (n)  y (n  1) y (n  1)  y (n  2)

y (n)  2 y (n  1)  y (n  1)
TП
TП


.
TП
TП 2
Переход от H(s) к H(z) можно осуществить, заменив, непрерывный
оператор s на его дискретный аналог
1  z 1
s
.
TП
(7.2)
Как следует из выражения (7.1) и (7.2) ошибка перехода от непрерывного
представления к дискретному зависит от интервала дискретности ТП.. Поэтому
частотные характеристики дискретного фильтра в полосе пропускания будет
приближаться к частотным характеристикам аналогового фильтра только при
условии, что интервал дискретизации ТП достаточно мал.
Проиллюстрируем
вышеприведенные
положения
конкретным
примером. Пусть задана передаточная функция фильтра нижних частот
H ( s) 
2
s  3s  3
2
Необходимо найти соответствующий цифровой фильтр. Учитывая
соотношение (7.2), получим дискретную передаточную функцию фильтра H(z)
(1  z 1 )
2
H ( z )  H (s) s 


1
TП
1 z 2
1  z 1
(
)  3(
)3
TП
TП

(7.3)
kTП 2
z 2  (2  3TП ) z 1  (1  3TП  3TП 2 )
При ТП =0,1 и ТП =0,01 выражение (7.3) примет, соответственно,
следующие числовые значения
0.02
,
z 2  2.3z 1  1.33
2  0.0001
H ( z )  2
,
z  2.03z 1  1.0303
H ( z) 
57
(7.4)
Михальов О. І., Гнатушенко Вікторія В., Гнатушенко Володимир В.,
"Цифрова обробка сигналів"
Переход от непрерывного описания процессов к их дискретному
представлению можно упростить, воспользовавшись пакетом MATLAB.
Пример:
h=tf([2],[1,3,3])%Передаточная
функция
непрерывного
фильтра.
Тр=0.1;
%Интервал дискретности.
hd=c2d(h,Tp)
%Передаточная
функция
дискретного
фильтра.
syms z s
%Ввод символьных переменных.
k=2;
%Ввод символьных переменных.
^
s=(l-z -l)/Tp
%Ввод символьных переменных.
^
hs=k/(s 2+3*s+3)
%Исходное уравнение.
hsl=simplify(hs)
%Компактное представление исходных
%данных.
dd=filt(0.02,[1.33,-2.3,1],Тр)%Передаточная функция
фильтра, figure(1)
bode(h,dd,hd),grid on
%Логарифмические характеристики:
%1-пепрерывный фильтр;
%2-дискретный (команда c2d);
%3-аппроксимация Эйлера.
Тр=0.01;
%Интервал дискретности 0,01.
syms z s
%Ввод символьных переменных.
к=2;
%Ввод символьных переменных.
^
s=(l-z -l)/Tp
%Ввод символьных переменных.
hs2=k/(s^2+3*s+3)
%Исходное уравнение.
hs2=simplifу(hs2)
%Компактное представление исходных
%данных.
dd2=filt(2*0.01^2,[1.0303,-2.03,1],Тр) %Передаточная
функция
%фильтра
figure(2)
%Логарифмические характеристики:
bode(h,dd,dd2),grid on
%1-пепрерывный фильтр;
%2-дискретный (команда c2d);
%3-аппроксимация Эйлера.
На рис.7.1 представлены фильтры при разных методах аппроксимации, а
на рис. 7.2 - фильтры при разных интервалах дискретности.
Из рис.7.2 следует, что при ТП = 0,1 наблюдается различие, особенно в
фазовых характеристиках, в области рабочих частот. Под рабочим будем
понимать частоты, на которых ослабление сигнала не превышает - 40 дБ. При
уменьшении ТП (ТП =0,01) диапазон рабочих частот расширился и можно
утверждать, что различие между частотными характеристиками аналоговых и
дискретных фильтров наблюдается при значительных ослаблениях сигналов
(свыше - 40 дБ).
58
Михальов О. І., Гнатушенко Вікторія В., Гнатушенко Володимир В.,
"Цифрова обробка сигналів"
Bode Diagram
0
Magnitude (dB)
-20
-40
-60
-80
0
Phase (deg)
-45
-90
-135
-180
-2
-1
10
0
10
1
10
2
10
10
Frequency (rad/sec)
Рисунок 7.1 Логарифмические характеристики фильтров (1 - аналоговый;
2 - дискретный (команда c2d); 3 - дискретный (аппроксимация Эйлера))
Bode Diagram
0
Magnitude (dB)
-20
-40
-60
-80
-100
-120
45
Phase (deg)
0
-45
-90
-135
-180
-2
10
-1
10
0
1
10
10
2
10
3
10
Frequency (rad/sec)
Рисунок 7.2. Логарифмические характеристики фильтров (1 -аналоговый; 2 дискретный при ТП = 0,1 с.; 3 - дискретный при ТП = 0,01 с).
59
Михальов О. І., Гнатушенко Вікторія В., Гнатушенко Володимир В.,
"Цифрова обробка сигналів"
Второй способ построения цифровых фильтров по их аналоговому
прототипу заключается в таком преобразование параметров аналогового
фильтра в параметры дискретного фильтра, при котором импульсные
характеристики фильтров (аналогового и дискретного) совпадали бы в
дискретные моменты времени при t = пТП .
Математически условие совпадения импульсных
фильтров (аналоговых и дискретных) записывается как
h(t )  hd (t ) t  nTП
характеристик
(7.5)
где, h(t), hd(t) - импульсные характеристики аналоговых и дискретных фильтров,
соответственно.
Определим передаточную функцию аналогового фильтра, а затем
представим ее в виде простых дробей
n
Ai
i 1 ( s  pi )
L{h(t )}  H ( s)  
(7.6)
где pi - различные полюса (корни) передаточной функции аналогового фильтра;
Ai- -коэффициенты, определенные любым из известных методов; п - степень
характеристического уравнения знаменателя.
Аналогично уравнению (7.6) могут быть получены соотношения,
определяющие Z-передаточную функцию дискретного фильтра, которые
затем так же можно представить в виде суммы дробей
n
Ai
i 1 1  z exp( pi TП )
Z{hd (n)}  H ( z )  
1
(7.7)
Сравнивая выражения (7.6) и (7.7), получаем соотношение перехода от
аналоговых фильтров к цифровым фильтрам по методу инвариантного
преобразования импульсной переходной характеристики
Ai
Ai
Ai


,
s  pi
1  z 1 exp( piTП ) 1  z 1 pdi
(7.8)
pdi  exp( piTП ).
Проиллюстрируем теоретические положения конкретным примером.
Пусть задана передаточная функция аналогового фильтра
H ( s) 
2
.
( s  1)( s  2)
Найти методом инвариантного
переходной функции цифровой фильтр.
60
преобразования
(7.9)
импульсной
Михальов О. І., Гнатушенко Вікторія В., Гнатушенко Володимир В.,
"Цифрова обробка сигналів"
Представим передаточную функцию H(s) в виде простых дробей
H ( s) 
A
A
2
 1  2 .
( s  1)( s  2) s  1 s  2
(7.10)
Определим А1 и А2 методом Хевисайда
2
s2
2
A2 
s 1
A1 
Используя
соотношение
(7.8)
s 1
 2,
s 2
 2.
запишем
Z-передаточную
функцию
цифрового фильтра
H ( z) 
2
2

.
1  z 1 exp(TП ) 1  z 1 exp(2TП )
(7.11)
Упрощая выражение (7.11), получим
H ( z) 
2  (2e 2TП  4e TП ) z 1
1  (e
TП
e
 2TП
)z
1
e
3TП
z
2
.
(7.12)
При ТП = 0,1 с, получим
H ( z) 
0.1788z 1
1  1.7236 z 1  0.7408 z 2
.
(7.13)
Все трудоемкие вычисления, связанные с переходом от непрерывных
передаточных функций к дискретным, можно исключить, воспользовавшись
пакетом MATLAB, с помощью процедуры impinvar
[bd,ad]=impinvar(b,a,Fs),
где, b, a — заданные векторы коэффициентов числителя и знаменателя
передаточной функции аналогового прототипа, Fs - частота дискретизации
сигнала в герцах, a bd, ad - вычисленные коэффициенты числителя и
знаменателя дискретной передаточной функции дискретного фильтра.
Процедура определения параметров дискретного фильтра по его
аналоговому прототипу, базируется на совпадении импульсных
характеристик обоих фильтров в точках квантования сигналов, представлена
программой MATLAB.
Пример:
h=tf([2],[1,3,3])%Передаточная функция непрерывного
фильтра. Тр=0.1; %Интервал дискретности.
61
Михальов О. І., Гнатушенко Вікторія В., Гнатушенко Володимир В.,
"Цифрова обробка сигналів"
hd=c2d(h,Tp)
%Передаточная функция дискретного
фильтра. [n,d,t]=tfdata(h,'v')%Определение коэффициентов
передаточной
%функции непрерывного фильтра,
[nd,dd]=impinvar(n,d,10)%Определение коэффициентов
передаточной
%функции дискретного фильтра.
f=(filt([0,0.1722],[1,1.7236,0.7408],0.1)*Тр)%Перендаточная
%функция нормированного дискретного
фильтра. Bode(h,hd,f),grid on %Логарифмические
характеристики
%проектируемых фильтров.
Следует отметить, что усиление цифрового фильтра на нулевой частоте
равно 1/TП, а усиление аналогового фильтра на  = 0 составляет 1. Поэтому,
если сравнить выражение (7.13) с аналогичным выражением, полученным в
пакете MATLAB, то наблюдается расхождение, определяемое множителем ТП.
Поэтому, чтобы привести в соответствие результаты расчетов, полученные
аналитическим путем (выражения (7.10)-(7.13), с результатами расчетов,
полученными в пакете MATLAB, следует пронормировать выражение (7.13),
умножив его на интервал дискретности.
Результаты выполнения этой программы показывают, что
передаточные функции, полученные путем трудоемких расчетов и с помощью
процедуры impinvar, совпадают. Логарифмические характеристики, полученные
применением разных процедур, отличаются: меньшую ошибку дает процедура
impinvar.
Известно, что метод преобразования импульсной переходной функции
базируется на связи точек плоскости S с точками плоскости Z, определяемой
отношением
z  e jsTП  e jTП  e jQ ,
(7.14)
где, Q - угол между действительной осью плоскости Z и векторами,
определяющими точки на окружности единичного радиуса плоскости Z.
Из (7.14) следует, что связь между точками плоскости S и Z неоднозначна,
что вносит наложение и может исказить результаты, т.е. синтезированный таким
образом цифровой фильтр не будет адекватен его аналоговому прототипу.
Действительно, частоты  = 0;
  2 / T П и   4 / T П на плоскости Z
отображаются в одну точку z=l.
62
Михальов О. І., Гнатушенко Вікторія В., Гнатушенко Володимир В.,
"Цифрова обробка сигналів"
Bode Diagram
20
Magnitude (dB)
0
-20
-40
-60
-80
0
Phase (deg)
-45
-90
-135
-180
-225
-270
-2
10
-1
0
10
10
1
10
2
10
Frequency (rad/sec)
Рисунок 7.3 Логарифмические характеристики фильтров (1 - аналоговый;
2 - дискретный (процедуры impinvar); 3 - дискретный (процедуры c2d)).
Для исключения нежелательного эффекта наложения введено
билинейное преобразование, которое однозначно преобразует точки мнимой оси
плоскости S на точки мнимой оси плоскости Z. Таким образом, переход от
мнимой оси плоскости S на плоскость Z осуществляется двумя
преобразованиями: выражениями (7.14) и (7.15). Выражение (7.14) преобразует
мнимую ось плоскости S в окружность единичного радиуса плоскости Z, а
выражение (7.15) преобразует мнимую ось плоскости S в мнимую ось плоскости
Z. Последнее преобразование (выражение (7.15) известно как W преобразование
и плоскость Z при таком преобразовании обозначается как плоскость W.
2 1  z 1
s
.
TП 1  z 1
(7.15)
Решая уравнение (15) относительно z получим выражение, определяющее
переходу из плоскости W в плоскость S
sTП
2 .
z
sT
1 П
2
1
63
(7.16)
Михальов О. І., Гнатушенко Вікторія В., Гнатушенко Володимир В.,
"Цифрова обробка сигналів"
Используя
соотношения
(7.15)-(7.16)
обоснуем
методику
расчета
цифровых фильтров, которая не отличается от рассмотренной ранее и состоит
из следующих шагов.
1. Исходя из технических требований, определяем передаточную
функцию требуемого аналогового фильтра H(s).
2. Применяем к H(s) билинейное преобразование и получаем Zпередаточную функцию цифрового фильтра
H ( z )  H (s)
2 (1 z 1 )
s
TП (1 z 1 )
.
(7.17)
При преобразовании (7.17) будут сохраняться частотные характеристики и
свойства устойчивости аналогового фильтра. Однако это не означает, что
частотные характеристики аналогового и цифрового фильтров одинаковы,
одинакова только их форма. Например, если амплитудно-частотная
характеристика аналогового фильтра спадает монотонно при изменении
частоты от 0 до бесконечности, амплитудно-частотная характеристика
цифрового фильтра будет монотонно спадать при изменении цифровой
частоты Q от 0 до  ; если амплитудно-частотная характеристика аналогового
фильтра имеет к подъемов и спадов в частотном диапазоне от 0 до
бесконечности, то и амплитудно-частотная характеристика соответствующего
цифрового фильтра будет иметь к подъемов и спадов в диапазоне цифровой
частоты от 0 до  . Причем, связь между  и Q нелинейна
2 (1  z 1 )
2 (1  e  jQ )
2
Q
s    j 

 j ( tg ),
1
 jQ
TП (1  z ) TП (1  e )
TП
2
(7.18)
Q  T П
(7.19)
Анализируя выражения (7.18) и (7.19) можно сделать выводы: связь
между цифровой частотой Q и аналоговой частотой  взаимообразна, т. е. по
заданной круговой частоте можно определить цифровую частоту, а по
заданной цифровой частоте можно определить круговую частоту.
Изменением интервала дискретности можно менять коэффициент
пропорциональности между Q и  (7.19), что позволяет изменять формы
амплитудно-частотных характеристик цифровых фильтров в нужную
сторону.
64
Михальов О. І., Гнатушенко Вікторія В., Гнатушенко Володимир В.,
"Цифрова обробка сигналів"
Проиллюстрируем теоретическое положение конкретным примером.
Задана H ( s) 
2
передаточная функция аналогового фильтра
s 2  3s  2
Используя (7.17) определим передаточную функцию цифрового фильтра
H ( z )  H ( s)
s
1
2 (1 z )
TП (1 z 1 )

2
2 1  z 1 2
1  z 1
(
)  3(
)2
TП 1  z 1
1  z 1

(7.20)
0.004329(1  2 z 1  z 2 )

.
1  1.723z 1  0.7403z 2
Процедуру определения параметров цифрового фильтра на основе метода
билинейного преобразования можно ускорить, воспользовавшись процедурами
bilinear или c2d пакета MATLAB.
К процедуре bilinear можно обратиться тремя путями
[bd, ad]=bilinear(b, a, Fs, Fp);
[zd, pd, kd]=bilinear (z , p, kFs, Fp);
[Ad, Bd, Cd, Dd]=bilinear(A, B, C, D, Fs, Fp).
(7.21)
(7.22)
(7.23)
Исходные данные для выполнения процедуры bilinear параметра
аналогового фильтра, заданные в форме lti. Параметр Fs задает частоту
дискретизации в герцах. Параметр Fp не обязателен. Он определяет частоту в
герцах, для которой значение АЧХ до и после выполнения преобразования
должна совпадать.
Выражения (7.21)-(7.23) отличается исходными данными. В (7.21)
определяться коэффициенты числителя bd и знаменателя bd дискретного
фильтра по коэффициентам числителя b и знаменателя а, аналогового
прототипа. В выражении (7.22) исходными данными аналогового прототипа
являются нули z, и полюса р. и коэффициент усиления к. Обращение к
выражению (7.22) позволяет вычислить нули (zd), полюса (pd) и коэффициент
усиления (kd) дискретного фильтра. И, наконец, выражение (7.23) определяет
дискретную матрицу пространства состояния фильтра по известным
непрерывным матрицам пространства состояния этого фильтра.
Процедура c2d определяет параметры дискретного фильтра по
непрерывной передаточной функции h и интервалу дискретности ТП
hd=c2d(h, Тр, 'метод').
(7.24)
65
Михальов О. І., Гнатушенко Вікторія В., Гнатушенко Володимир В.,
"Цифрова обробка сигналів"
MATLAB предлагает несколько методов аппроксимации: нулевого
порядка, первого порядка, метод билинейной аппроксимации Тастина,
билинейной аппроксимации Тастина с коррекцией и метод соответствия
нулей и полюсов. При выборе метода аппроксимации выражение (7.24)
конкретизируется (применена билинейная аппроксимации Тастина):
hd=c2d(h, Tp, 'TUSTIN').
(7.25)
Bode Diagram
Magnitude (dB)
0
-100
-200
-300
-400
0
Phase (deg)
-45
-90
-135
-180
-2
10
-1
0
10
10
1
10
2
10
Frequency (rad/sec)
Рисунок 7.4 Логарифмические характеристики фильтров (1 - аналоговый; 2 дискретный (процедуры билинейного преобразования); 3 - дискретный
(процедуры c2d))
Все выше приведенные теоретические положения по расчету цифровых
фильтров с помощью билинейного преобразования проиллюстрированы
программой (пакет MATLAB).
Пример:
h=tf([2],[1,3,2])
%Исходные данные
syms z s
%Ввод символьных переменных
к=2;%Числовые значения символьных переменных.
Тр=О.1;
s=(2/Tp)*(1-z^-1)/(1+z^-1)%Переход на плоскость W.
hs=2/(s^2+3*s+3)
%Применение преобразования к
%аналоговому фильтру.
hsl=simplify(hs)
%Алгебраические
преобразования
66
Михальов О. І., Гнатушенко Вікторія В., Гнатушенко Володимир В.,
"Цифрова обробка сигналів"
hs2=filt([1,2,1],[1,794/463,343/463],Тр)*(2/463)%Уравнение %цифрового фильтра
при
билинейном
преобразовании.
[n,d,t]=tfdata(h,'v')%Определение коэффициентов
%передаточной функции непрерывного фильтра.
[nd,dd]=bilinear(n,d,10)%Уравнение цифрового фильтра при
%билинейном
преобразовании.
Тр=0.1;
hdt=c2d(h,Tp,'TUSTIN') %Уравнение цифрового фильтра при
%преобразовании Тастина.
hdv=filt(nd,dd,Tp) %Приведения уравнения к форме фильтра,
bode(h,hdt,hdv,hs2),grid on
%Логарифмические
%характеристики аналоговых и цифровых фильтров.
Результаты расчетов этой программы приведены на рис.7.4, из которого
следует, что графики частотных характеристик, полученные путем
трудоемких расчетов (выражение (7.20)) и с помощью процедур bilinear и c2d,
совпадают. Учитывая, что процедуры bilinear и c2d равнозначны, но в c2d
исходные данные задаются в более компактном виде, то её целесообразно
использовать при расчете цифровых фильтров методом билинейной
аппроксимации.
ЗАДАНИЕ
1. По заданной преподавателем передаточной функции аналогового
фильтра составить программу расчета дискретных фильтров при разных
интервалах дискретности и при разных методах аппроксимации.
2. Выполнить программу и построить логарифмические характеристики
аналоговых и дискретных фильтров.
ЛИТЕРАТУРА
1. Гольденберг Л.М., Матюшкин Б.Д., Поляк М.Н. Цифровая обработка
сигналов: Учебное пособие для вузов. – М.: Радио и связь, 1990. – 256 с.
2. Лазарев Ю.Ф. MATLAB 5.x. – К.: Издательская группа BHV, 2000. –
384 с.
3. Дьяконов В. П. MATLAB 6/6.1/6.5 + Simulink 4/5. Обработка сигналов и
изображений. М.: Солон-Пресс. — 2004.
4. Рудаков П.И., Сафонов В. И. Обработка сигналов и изображений.
MATLAB 5.x. /Под общей редакцией к. т. н. В. Г. Потемкина. — М.: ДИАЛОГМИФИ. - 2000.
67
Михальов О. І., Гнатушенко Вікторія В., Гнатушенко Володимир В.,
"Цифрова обробка сигналів"
Лабораторная работа №8
ВЕЙВЛЕТ-АНАЛИЗ
Цель: получение и закрепление навыков работы в среде Matlab с пакетом
расширения Wavelet Toolbox. Исследование вейвлет-спектра стационарных и
нестационарных сигналов.
8.1 Теоретические основы
В основе Фурье-анализа лежит утверждение, что любую 2-периодичную
функцию можно разложить на составляющие, т.е. может быть получена
суперпозицией целочисленных растяжений базисной функции e ix .
f ( x) 

c e
n  
inx
(8.1),
n
где cn – коэффициенты Фурье
1
cn 
2
2
 f ( x )e
inx
dx
0
Процесс разложения функции проиллюстрирован на рис.8.1
Рисунок 8.1
68
(8.2).
Михальов О. І., Гнатушенко Вікторія В., Гнатушенко Володимир В.,
"Цифрова обробка сигналів"
Преобразование


f ( )   e it f (t )dt
Фурье
дает
спектральную

информацию о сигнале и описывает его поведение в частотной области. При
переходе в частотную область полностью теряется информация о времени, что
делает непригодным метод спектрального анализа при обработке
нестационарных сигналов, в которых определяющее значение имеет момент
времени, в который произошло то или иное событие.
В отличие от кратковременного преобразования Фурье, которое
обеспечивает равномерную сетку в частотно-временной области, вейвлетпреобразование имеет неравномерное разрешение, что позволяет исследовать
сигнал как локально, так и полностью. Т.к. частота обратно пропорциональна
периоду, то требуется более узкое окно для локализации высокочастотно
составляющей сигнала и более широкое для низкочастотной составляющей.
Кратковременное преобразование Фурье допустимо применять для сигнала со
сравнительно узкой полосой частот. Для широкополосного сигнала хотелось бы
иметь окно, способное изменять свою ширину при изменении частоты.
Введем функцию   L2 ( R ) , удовлетворяющую условию
ˆ ( )
  d  
2

и назовем ее «базисным вейвлетом».
Относительно каждого базисного
преобразование определяется как
вейвлета
интегральное

W f (b, a)  a  f (t )  t  b dt , где a, b  R;
 a 
 12
вейвлет-
a0

Обозначим
 12
t b

 a 
 b;a (t )  a  
Интегральное преобразование примет вид W f (b, a)  f , b;a .
Если центр и радиус функции-окна  , соответственно, равны t* и   , то
 b;a (t ) есть функция-окно с центром b+at*
интегральное вейвлет-преобразование
временном окне
b  at
*
и радиусом a  . Следовательно,
локализует

 a , b  at *  a .
Рассмотрим
69
аналоговый
сигнал
во
Михальов О. І., Гнатушенко Вікторія В., Гнатушенко Володимир В.,
"Цифрова обробка сигналів"
1
a 2
1
ˆ b;a ( ) 
2
2
1

a a 2 it
it  t  b 
e   a dt  2 e ˆ (a )
Пусть центр и радиус функции-окна ̂ равны, соответственно,  * и  ̂ .
Тогда, сместим центр окна на  * в 0 и обозначим
 ( )  ˆ (   * )
Применяя равенство Парсеваля
1 
*
ˆf ( )e ib   a     d

 
a  

 
aa 2
W f (b, a) 
2
Очевидно, что окно   a   

 

    a   *  ˆ (a )
a  
*


имеет радиус
1
 ̂ .
a
Интегральное вейвлет-преобразование также локализует сигнал по
частоте с окном
 * 1
* 1 
  ˆ 
   ˆ ,
a a 
a a
Аналогично преобразованию Габора введем частотно-временное окно для
интегрального вейвлет-преобразования:
b  at
*
 * 1
* 1 
 a  , b  at *  a      ˆ ,
  ˆ 
a a 
a a

Видно (рис.8.2), что окно автоматически сужается при высокочастотных
явлениях (малых масштабах) и расширяется при низкочастотных (больших
масштабах).
8.2 Порядок выполнения работы
1. Сгенерировать стационарные, нестационарные сигналы и сигналы с
шумом.
Пример
t=0:0.1:6*pi;
Стационарные сигналы
y=sin(t);
z=sin(t)+sin(2*t);
Сигнал с шумом
N=rand(1,189);
w=sin(t);
w=w+N;
Нестационарный сигнал
t=0:0.1:2*pi;
70
Михальов О. І., Гнатушенко Вікторія В., Гнатушенко Володимир В.,
"Цифрова обробка сигналів"
w(1:63)=sin(t);
w(64:126)=cos(t);
w(127:190)=cos(2*t);
Далее их нужно сохранить (каждый сигнал в отдельном файле), для этого в окне
рабочей области выделяется нужная переменная и в контекстном меню
выбирается пункт Save Selection As….(рис.8.3).

*
a1
*
a2
b2+a2t*
b2+a2t*
t
Рисунок 8.2
Рисунок 8.3
71
Михальов О. І., Гнатушенко Вікторія В., Гнатушенко Володимир В.,
"Цифрова обробка сигналів"
2. Проанализировать сигналы с использованием преобразования Фурье,
объяснить результаты. Для построения Фурье-спектра используется
функция fft(имя сигнала, число точек ДПФ)
Пример
Y=fft(Sig,512)
A=abs(Y);
plot(A(1:length(A)/2));
3. Рассмотреть кратковременное преобразование Фурье для анализируемого
сигнала, объяснить результаты. Для построения спектрограммы
используется функция Specgram(имя сигнала).
4. Проанализировать полученные сигналы с использованием различных
вейвлетов (не менее 3), объяснить результаты, определить «оптимальный»
(дающий наибольшую информацию) вейвлет для сигнала;
Для построения вейвлет-спектра можно использовать графический интерфейс,
вызов которого осуществляется командой wavemenu.
Непрерывное
одномерное вейвлетпреобразование
Просмотр вейвлетов и
их свойств
Рисунок 8.4
Для загрузки сигнала используется пункт меню File/Load Signal. На
рис.8.6 приведен пример анализа сигнала z=sin(t)+sin(2*t). Видно, что сигнал
72
Михальов О. І., Гнатушенко Вікторія В., Гнатушенко Володимир В.,
"Цифрова обробка сигналів"
содержит две частоты, а вейвлет-коэффициенты меняются периодически, что
доказывает периодичность сигнала.
Название
вейвлета
Временная
реализация сигнала
Диапазон
масштабов
Вейвлет-спектр
Выбор
отображаемых
подобластей
Коэффициенты
на
заданном масштабе
Локальные максимумы
коэффициентов
Рисунок 8.5
Рисунок 8.6
При анализе нестационарного сигнала вейвлет-спектр показывает
изменение частоты в момент времени 500, а также изменение, произошедшее в
момент времени ~250, причем можно сделать вывод, что частота сигнала в
данном случае осталась неизменной.
5. Сравнить и объяснить результаты Фурье- и вейвлет-анализов.
73
Михальов О. І., Гнатушенко Вікторія В., Гнатушенко Володимир В.,
"Цифрова обробка сигналів"
Рисунок 8.7
8.3 Требования к отчету
Отчет должен содержать:
1. Временную реализацию исследуемых сигналов.
2. Фурье-спектры сигналов.
3. Спектрограммы сигналов.
4. Формы используемых вейвлетов.
Название вейвлета
Просмотр графиков
Информация о
выбранном вейвлете и
вейвлетах вообще
Рисунок 8.8
5. Вейвлет-спектры сигналов;
6. Результаты анализа и сравнения.
74
Михальов О. І., Гнатушенко Вікторія В., Гнатушенко Володимир В.,
"Цифрова обробка сигналів"
8.4 Варианты заданий
Для всех вариантов
 t1, t2, t3, t4 выбираются таким образом, чтобы получаемые сигналы
содержали не менее 2-х периодов,
 для генерации сигнала с шумом использовать стационарный сигнал
и шум с равномерной плотностью распределения.
Вариант №1
Y=3sin(t)
w(t1..t2)=sin(t); w(t2..t3)=sin(5t);w(t3..t4)=sin(10t);
Вариант №2
Y=sin(5t)
w(t1..t2)=sin(t); w(t2..t3)=sin(10t);w(t3..t4)=sin(5t);
Вариант №3
Y=sin(10t)
w(t1..t2)=sin(t); w(t2..t3)=tg(5t);w(t3..t4)=sin(10t);
Вариант №4
Y=sin(t)+sin(5t)
w(t1..t2)=50sin(t); w(t2..t3)=tg(5t);w(t3..t4)=50sin(5t);
Вариант №5
Y=sin(t)+sin(10t)
w(t1..t2)= square (t); w(t2..t3)= square(10t);w(t3..t4)= square (5t);
Вариант №6
Y=sin(10t)+sin(2t)
w(t1..t2)= sawtooth(t); w(t2..t3)= sawtooth(10t);w(t3..t4)= sawtooth(5t);
Вариант №7
Y=sin(t)+sin(10t)+sin(15t)
w(t1..t2)= sawtooth(t,0.5); w(t2..t3)= sawtooth(10t,0.5);w(t3..t4)= sawtooth(5t,0.5);
Вариант №8
Y=sin(t)+sin(15t)
w(t1..t2)=sinc(t); w(t2..t3)=sinc(10t);w(t3..t4)=sinc(5t);
Вариант №9
Y=sin(t)+cos(10t)
w(t1..t2)=sin(t)+cos(5t); w(t2..t3)=sin(t)+cos(10t);w(t3..t4)=sin(t)+cos(15t);
Вариант №10
Y=sin(t)+cos(20t)
w(t1..t2)=sin(15t)+cos(5t); w(t2..t3)=sin(10t)+cos(10t);w(t3..t4)=sin(5t)+cos(15t).
1.
2.
3.
4.
ЛИТЕРАТУРА
Малла С. Вэйвлеты в обработке сигналов. Пер. с англ. М.: Мир, 2005. - 671 с.
Дремин И.М., Иванов О.В., Нечитайло В.А. Вейвлеты и их использование //
Успехи физических наук, 2001, №5. Том 171.
Чуи Ч. Введение в вейвлеты: Пер. с англ. – М.: Мир, 2001.
Смоленцев Н.К. Введение в теорию вейвлетов. Москва-Ижевск: Изд-во РХД,
2010. 292 с.
75
Download