- •Лабораторная работа №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) равны
Эти коэффициенты можно получить и из матричной записи.