Цифровая обработка сигналов Астана. Лекция 4

реклама
Цифровая обработка
сигналов
Астана. Лекция 4
На прошлой лекции
• Квантование изображений применяется,
в частности, для уменьшения глубины
цвета.
• Псевдотонирование позволяет
уменьшить ошибку квантования за счет
ее распределения в пространстве
Междисциплинарность
Числовой анализ
Цифровая
обработка сигналов
Теория принятия решений
Теория коммуникации
Обработка аналоговых сигналов
Цифровая электроника
Аналоговая электроника
…
Сигналы и системы
• Сигнал – зависимость одной величины от
другой (функция)
– Давление воздуха от времени (звук)
– Напряжение в проводнике от времени
– Яркость от точки (изображение)
x(t)
t
Изображение как сигнал
X
Системы
• Система – преобразование сигнала
x(t)
Система
• Инвариантность к сдвигу
x(t )  y (t )  x(t  T )  y (t  T )
x(t )  y (t )
y(t)
Линейные системы
• y(t) = L{x(t)}
• Линейная система
– L{af + bg} = aL{f} + bL{g}
• Свойства линейный систем
– Константный сигнал переводится в
константный сигнал
– Синусоида остается синусоидой (меняется
лишь амплитуда и фаза)
Дискретные и непрерывные
сигналы
• Оцифровка сигнала необходима для
обработки на компьютере
• Дискретизация сигнала – процесс замера
величины сигнала через равные промежутки
времени
– АЧП (аналогово-цифровой преобразователь)
• Происходит потеря информации
x(t)
x[t]
Дискретные системы
• Преобразуют дискретный сигнал в
дискретный сигнал
• Будем рассматривать
– Дискретные системы
– Линейные системы
– Инвариантные к сдвигу
Свертка
Дельта-функция и импульсная
характеристика системы
• Дельта-функция
1, n  0
 [ n]  
0, n  0
1
-3
-2 -1 0
1
2
3
• Отклик системы на дельта-функцию называется
импульсной характеристикой системы h[n]
Свертка
• Зная импульсную характеристику
системы, можно найти отклик на любой
сигнал
y[n] 

Ядро свертки
 x[k ]  h[n  k ]
k  
• Называется сверткой y[n]=x[n]*h[n]
• Любая линейная система осуществляет
свертку
Свертка (вывод)
x[n] 
Представление
исходного сигнала

 x[k ]   [n  k ]
k  

y ( x)  L{x[n]}  L{  x[k ]   [n  k ]} 
k  



k  
k  
 x[k ]  L{ [n  k ]}   x[k ]  h[n  k ]
Импульсная
характеристика
Пример свертки
3
3
3
3
3
2
2
2
1
1
1
x( n)
0
1
2
3
4
5
6
7
8
1
*
h( n)
0
1
2
3
4
1
2
3 3
2
3
3
3
0
n
8
=
y ( n)
0
1
2
3
4
5
6
7
8
9
10
11
1
2
3
0
n
4
3
0
n
11
Вычисление свертки
• Каждая точка сигнала превращается в
функцию h ( в нужную точку и умноженную на
величину данной точки сигнала ), а потом все
эти функции складываются.
• Вычисляется значение каждой точки в
результирующем сигнале как взвешенная
сумма некоторого множества соседних точек
исходного сигнала. Коэффициенты этой
суммы совпадают с импульсной
характеристикой линейной системы,
развернутой относительно точки 0.
Машина
свертки
3
3
2
1
x( n)
0
1
2
3
4
5
6
7
8
1
2
3
3
0
3
Ядро отражено
относительно нуля!
n
3
3
3
3
3
3
3
3
3
2
2
2
2
2
1
1
1
1
1
h1( n) h1( n) h1( n) h1( n) h1( n)
4
3 4 423 3142
3
3 3
4
3
 4 n 4
8
20314
1203
012
01
0
1
1
1
1
1
2
3 3
2
2
2
2
3
3
3
3
n 4 n0  4 n0
0n
0
0
+ ++ + +
3
3
2
1
y ( n)
0
1
2
3
4
5
6
7
8
9
10
11
1
2
3
3
0
n
11
Свертка в 2D
• Аналогично 1D:
yx, y 


 x
i   j  
i, j
 hx i , y  j
• Применение к изображениям!
Дискретное
преобразование Фурье
Преобразование Фурье
• Сигналы удобно анализировать,
раскладывая на синусоиды (гармоники)
– Человек может различать высокие и низкие
частоты => требуется обработка сигналов с
учетом этого
• Преобразование Фурье – это
разложение функции на синусоиды
Дискретное преобразование
Фурье
2k (n   k )
2kn N 2
2kn N 2
x[n]   Ak cos
  Bk sin
  Ck cos
N
N
N
k 0
k 0
k 0
N 2
2
Ak 
N
1
Ak 
N
2ki
N
N
k  1,...,  1
2
2ki
N
N
k  0,
2
2ki
x[i ] sin

N
i 0
k  0,...,
N 1
 x[i] cos
i 0
N 1
 x[i] cos
2
Bk 
N
i 0
N 1
N
2
Ряд Фурье для
прямоугольного импульса
Спектр некоторых функций
Фильтрация
• Фильтрация — выделение (или
подавление) частотных составляющих
сигнала.
• Фильтр — функция, осуществляющая
фильтрацию (свертку).
• Высоко- и низкочастотные фильтры.
(High-pass and low-pass filters)
Пример преобразования Фурье
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
f (x )
80
70
60
50
40
30
20
10
0
-10
-100
-50
0
F ( )
50
100
Пример преобразования Фурье (2)
91.764
100
10
ski
1
0.1
0.016 0.01
0
50
100
0
150
200
250
i
300
256
3
1 10
100.355
100
ski
10
1
0.15 0.1
0
0
50
100
150
i
200
250
300
256
Низкочастотная фильтрация
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
f (x )
80
70
60
50
40
30
20
10
0
-10
-100
-50
0
F ( )
50
100
Фильтры низкой и высокой частоты
Гауссиан (sigma=16)
Гауссиан (sigma=32)
2-D Gaussian kernel
Как работает маска фильтра
Изображение и его спектр
Изображение
sk2
sk3
Спектр 2D-сигнала
Фильтр Гаусса и спектр
sk2
sk2
sk2
sk2
sk2
sk3
sk3
sk3
sk3
sk3
Размытие (blur)
 1 
1

1
2
1

6
 1 
Размытие (прод)
1
2
1 
3
74 
2
1
2 3 2 1

4 5 4 2
5 6 5 3

4 5 4 2
2 3 2 1 
Увеличение резкости
1


 1 5  1




1
Свертка - дифференцирование
Выделение контура
1


 1 4  1




1
+ порог
Тиснение
1


 1 0 1



 1 
+ сдвиг
яркости
Примеры фильтров
•
Размытие (blur)
Примеры фильтров
•
Повышение четкости (sharpen)
Примеры фильтров
•
Нахождение границ (edges)
Примеры фильтров
•
Тиснение (embossing)
Масштабирование
изображений
Scaling Up and Down
Растянуть сигнал
Реконструкция сигнала
Повторная дискретизация
Нужна ли реконструкция?
Треугольный фильтр
Вычисление нового значения
Вычисление нового значения
Увеличение в 3 раза
Увеличение в 2 раза
Свертка
Ядро свертки
Универсальный фильтр
Псевдокод
Вычисление значения пиксела k в целевом изображении
function h-hat(int k, float a){ //returns float
float sum = 0, weights_sum = 0;
int left, right;
if (a > 1){
left = ceil(k/a - 1.0);
right = floor(k/a + 1.0);
} else {
left = ceil(k/a - 1.0/a);
right = floor(k/a + 1.0/a);
}
for (int i = left; i <= right, i++){
sum += g(i - k/a, a) * orig_image.Pi;
weights_sum += g(i - k/a, a);
}
result = sum/weights_sum;
}
Двумерный случай
Квадратная маска
Материалы для чтения
Задание №2. Цифровая обработка сигналов.
http://graphics.cs.msu.su/courses/cg0
2b/
assigns/hw-2/hw2.html
А. Лукин «Введение в цифровую обработку
сигналов»
http://graphics.cs.msu.su/courses/cg0
2b/
library/dspcourse.pdf
Скачать