
- •Лабораторная работа №5 программная реализация алгоритмов вычисления свертки корелляции
- •Краткие теоретические сведения Задача вычисления свертки и корреляции в цифровой обработке сигналов
- •Линейная свертка
- •Циклическая свертка
- •Вычисление сверток при помощи дискретных преобразований
- •Корреляция
- •Содержание отчета
- •Задания
- •Варианты заданий
Лабораторная работа №5 программная реализация алгоритмов вычисления свертки корелляции
Цель работы: изучение и программирование алгоритмов вычисления свертки и корелляции дискретных сигналов на базе процессоров TMS320C5510.
Краткие теоретические сведения Задача вычисления свертки и корреляции в цифровой обработке сигналов
Многие задачи
цифровой обработки сигналов с
формальной точки зрения представляют
собой задачи вычисления свертки двух
последовательностей
.
В частности, через свертку выражается
отклик линей системы на некоторое
возмущающее воздействие; при обращении
одной последовательностей по переменной
n свертка превращается в корреляционную
функцию, часто используемую в задачах
обнаружения сигналов и определения их
параметров. Список подобных примеров
можно продолжить.
Наиболее известный способ эффективного вычисления сверток состоит в использовании теоремы о свертке и быстрого алгоритма преобразования Фурье. Этот способ достаточно удобен и часто работает с удовлетворительной скоростью, хотя существуют и лучшие методы. Однако в тех приложениях, в которых стоит заботиться о дальнейшем снижении вычислительных затрат целесообразен переход к другим методам. В случае, когда длина свертки мала, лучшими с точки зрения числа умножений и сложений являются алгоритмы вычисления свертки Винограда.
Рассмотрим различные виды сверток, встречающихся в технических приложениях.
Дискретным эквивалентом линейного аналогового фильтра (согласованного, полосового и т.п.), выходной сигнал которого определяется интегралом свертки
(1)
является дискретный фильтр, формирующий весовую сумму (линейную свертку):
(2)
Здесь
,n
= 1, 2 ,...., – сигнал на входе фильтра,
s(n-1)
– весовые коэффициенты, определяющие
импульсную характеристику аналогового
фильтра s(t)
, N - объем выборки. Для реализации
цифрового фильтра необходимы устройства,
выполняющие операции сложения, умножения
и задержку.
В более общем виде можно рассмотреть класс линейных инвариантных к сдвигу (ЛИС) систем, который включает много полезных, широко используемых методов обработки сигналов. Соотношение вход-выход для ЛИС систем задается в виде
(3)
где {h(l)} – входной сигнал; {y(n)} – множество отсчетов выходного сигнала; {s(l)} – импульсный отклик ЛИС системы; символ ∗ «звездочка» как двучленный оператор означает свертку.
Система ЛИС полностью определяется своим импульсным откликом {s(l)}. Считается, что система является каузальной тогда и только тогда, когда s(l)=0 при l < 0.
Если импульсная
реакция имеет конечную длительность
то бесконечная сумма сводится к конечной
сумме
(4)
Линейная свертка
Пусть даны две апериодические последовательности {s(n)} длины L и {h(n)} длины M. В силу апериодичности s(n) = 0 при L-1<n<0; h(n) = 0 при M-1< n < 0. Апериодическая или линейная свертка этих последовательностей имеет длину L +M -1 и определяется как
(5)
Это выражение можно записать и в матричной форме. Например, для M=L=N получим
В большинстве алгоритмов вычисления свертки входная последовательность {h(l)} делится на последовательные блоки по N отсчетов и {y(n)} вычисляется как сумма линейных сверток каждого из этих блоков с L – точечной последовательностью {s(l)}.
Используя понятия алгебры полиномов, представим исходные последовательности в виде полиномов от некоторой переменной z :
(6)
Произведение этих полиномов дает полином y(z) степени L+M-1 :
(7)
Коэффициенты y(n) полинома y(z) образуются суммированием всех произведений h(l)s(m), для которых l+m=n. Следовательно, m =n - l и
(8)
что дает значения свертки. Таким образом, свертка двух последовательностей может рассматриваться как произведение двух полиномов.
Пример 5.1. Для трехточечных последовательностей
{s(n)}={s(0), s(1), s(2)} и {h(n)}={h(0), h(1), h(2)} получим:
где коэффициенты полинома y(z) равны
Эти коэффициенты можно получить и из матричной записи.