Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа_5.doc
Скачиваний:
58
Добавлен:
18.05.2015
Размер:
413.7 Кб
Скачать

Лабораторная работа №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) равны

Эти коэффициенты можно получить и из матричной записи.