Вам бонус- начислено 1 монета за дневную активность. Сейчас у вас 1 монета

Линейная и циклическая свертка, примеры и реализация

Лекция



Привет, сегодня поговорим про линейная свертка, обещаю рассказать все что знаю. Для того чтобы лучше понимать что такое линейная свертка, циклическая свертка , настоятельно рекомендую прочитать все из категории Цифровая обработка сигналов.

Свертка — операция в функциональном анализе, которая при применении к двум функциям Линейная и циклическая свертка, примеры и реализация и Линейная и циклическая свертка, примеры и реализация возвращает третью функцию, соответствующую взаимнокорреляционной функции Линейная и циклическая свертка, примеры и реализация и Линейная и циклическая свертка, примеры и реализация. Операцию свертки можно интерпретировать как «схожесть» одной функции с отраженной и сдвинутой копией другой. Понятие свертки обобщается для функций, определенных на произвольных измеримых пространствах и может рассматриваться как особый вид интегрального преобразования.

Свертка последовательностей — это результат перемножения элементов двух заданных числовых последовательностей таким образом, что члены одной последовательности берутся с возрастанием индексов, а члены другой — с убыванием (что и служит основанием для принятого названия данной операции).

Свертка последовательностей — это частный случай свертки функций.

Свертка является линейным преобразованием входящих в нее последовательностей.

Свертку двух заданных последовательностей можно получить, если, сначала, использовать для каждой последовательности дискретное преобразование Фурье (ДПФ), затем перемножить результаты преобразования и произвести обратное дискретное преобразование Фурье (обратное ДПФ). Это важное свойство находит свое широкое применение в цифровой обработке сигналов.

Довольно часто в цифровой обработке сигналов применятся операция свертки: Линейная и циклическая свертка, примеры и реализация(1)
Свертка позволяет рассчитать сигнал Линейная и циклическая свертка, примеры и реализация на выходе линейного фильтра с импульсной характеристикой Линейная и циклическая свертка, примеры и реализация, при входном сигнале Линейная и циклическая свертка, примеры и реализация.
В дискретном случае различают два вида сверток: линейную (или апериодическую) и циклическую. Циклическую свертку еще часто называют круговой или периодической.

К традиционным типам сверток относятся:

  • линейная свертка ;
  • круговая свертка (периодическая);
  • круговая свертка (апериодическая);
  • свертка с помощью дискретного преобразования Фурье (ДПФ).

Линейная свертка

Рассмотрим линейную свертку. Пусть имеется два дискретных сигнала Линейная и циклическая свертка, примеры и реализация,Линейная и циклическая свертка, примеры и реализация, и Линейная и циклическая свертка, примеры и реализация,Линейная и циклическая свертка, примеры и реализация. В общем случае длины этих сигналов Линейная и циклическая свертка, примеры и реализация и Линейная и циклическая свертка, примеры и реализация могут отличаться. Линейной сверткой сигналовЛинейная и циклическая свертка, примеры и реализация иЛинейная и циклическая свертка, примеры и реализация называется дискретный сигнал вида:Линейная и циклическая свертка, примеры и реализация(2)
Для вычисления линейной свертки сигналы Линейная и циклическая свертка, примеры и реализацияиЛинейная и циклическая свертка, примеры и реализация сдвигают относительно друг друга почленно перемножают и складывают. При этом предполагается, что Линейная и циклическая свертка, примеры и реализация при Линейная и циклическая свертка, примеры и реализация и Линейная и циклическая свертка, примеры и реализация, а также Линейная и циклическая свертка, примеры и реализация приЛинейная и циклическая свертка, примеры и реализация и Линейная и циклическая свертка, примеры и реализация
Графическое представление линейной свертки представлено на рисунке 1.

Линейная и циклическая свертка, примеры и реализация
Рисунок 1: Графическое представление линейной свертки

Отсчеты сигнала Линейная и циклическая свертка, примеры и реализация сдвигаются относительно отсчетов последовательности Линейная и циклическая свертка, примеры и реализация все возможные перекрывающиеся отсчеты почленно перемножаются и складываются.

На рисунке 2 приведен пример вычисления линейной свертки двух сигналовЛинейная и циклическая свертка, примеры и реализация длиной 4 отсчета иЛинейная и циклическая свертка, примеры и реализация длиной 3 отсчета.

Линейная и циклическая свертка, примеры и реализация
Рисунок 2: Пример вычисления линейной свертки.

Необходимо отметить, что сигнал Линейная и циклическая свертка, примеры и реализация при вычислении свертки отражается слева-направо, посколькуЛинейная и циклическая свертка, примеры и реализация самый первый отсчет (самый ранний по времени) и обрабатываться он также должен первым.

Линейная свертка описывает прохождение сигнала Линейная и циклическая свертка, примеры и реализация, Линейная и циклическая свертка, примеры и реализация через КИХ-фильтр порядка Линейная и циклическая свертка, примеры и реализация с импульсной характеристикой Линейная и циклическая свертка, примеры и реализация, Линейная и циклическая свертка, примеры и реализация:

Линейная и циклическая свертка, примеры и реализация
(5)

В выражении (5) пределы суммирования соответствуют длительности импульсной характеристики КИХ фильтра, так как Линейная и циклическая свертка, примеры и реализация при Линейная и циклическая свертка, примеры и реализация и Линейная и циклическая свертка, примеры и реализация.

Другим важнейшим прикладным значением линейной свертки является расчет произведения полиномов.

Пусть значения дискретной последовательности Линейная и циклическая свертка, примеры и реализация, Линейная и циклическая свертка, примеры и реализация, содержащей Линейная и циклическая свертка, примеры и реализация значение представляет собой коэффициенты полинома Линейная и циклическая свертка, примеры и реализация:

Линейная и циклическая свертка, примеры и реализация (6)

степени Линейная и циклическая свертка, примеры и реализация, а значения дискретной последовательности Линейная и циклическая свертка, примеры и реализация, Линейная и циклическая свертка, примеры и реализация — содержит Линейная и циклическая свертка, примеры и реализация коэффициентов полинома

Линейная и циклическая свертка, примеры и реализация (7)

степени Линейная и циклическая свертка, примеры и реализация. Тогда коэффициенты произведения полиномов Линейная и циклическая свертка, примеры и реализация будут равны линейной свертке Линейная и циклическая свертка, примеры и реализация. В результате мы получим Линейная и циклическая свертка, примеры и реализация коэффициент полинома Линейная и циклическая свертка, примеры и реализация степени Линейная и циклическая свертка, примеры и реализация.

циклическая свертка

Рассмотрим теперь циклическую свертку. Об этом говорит сайт https://intellect.icu . В случае циклической свертки предполагается, что дискретные сигналыЛинейная и циклическая свертка, примеры и реализацияи Линейная и циклическая свертка, примеры и реализация - периодические с одинаковым периодом Линейная и циклическая свертка, примеры и реализация отсчетов. Тогда круговой сверткой сигналов Линейная и циклическая свертка, примеры и реализацияиЛинейная и циклическая свертка, примеры и реализация называется сигнал вида:
Линейная и циклическая свертка, примеры и реализация(3)
Результат циклической свертки также имеет длину Линейная и циклическая свертка, примеры и реализация отсчетов.

Пусть имеется две последовательности Линейная и циклическая свертка, примеры и реализация и Линейная и циклическая свертка, примеры и реализация, Линейная и циклическая свертка, примеры и реализация одинаковой длительности Линейная и циклическая свертка, примеры и реализация отсчетов. Циклической сверткой называется последовательность Линейная и циклическая свертка, примеры и реализация вида:

Линейная и циклическая свертка, примеры и реализация
(9)
Как можно видеть из (9) циклическую свертку можно выполнять только над последовательностями равной длины Линейная и циклическая свертка, примеры и реализация отсчетов, причем результатом также будет последовательность длины Линейная и циклическая свертка, примеры и реализация.
Рассмотрим циклическую свертку на примере двух сигналов Линейная и циклическая свертка, примеры и реализация и Линейная и циклическая свертка, примеры и реализация .
Графически вычисление циклической свертки представлено на рисунке 3.

Линейная и циклическая свертка, примеры и реализация
Рисунок 3: Вычисление циклической свертки

Красной линией отмечены границы периодов повторения сигнала Линейная и циклическая свертка, примеры и реализация. Заметим, что в силу периодичности сигналов Линейная и циклическая свертка, примеры и реализация.

Вычислим свертку пошагово:
Линейная и циклическая свертка, примеры и реализация(4)
Теперь рассчитаем Линейная и циклическая свертка, примеры и реализация:
Линейная и циклическая свертка, примеры и реализация(5)
Аналогично можно рассчитать Линейная и циклическая свертка, примеры и реализация и Линейная и циклическая свертка, примеры и реализация.
Используя циклическую свертку можно рассчитать линейную свертку двух сигналов. Для этого необходимо каждый из сигналов Линейная и циклическая свертка, примеры и реализация иЛинейная и циклическая свертка, примеры и реализация длительностью Линейная и циклическая свертка, примеры и реализацияи Линейная и циклическая свертка, примеры и реализация отсчетов соответственно дополнить нулями до длиныЛинейная и циклическая свертка, примеры и реализация.
Приведем пример вычисления линейной свертки через циклическую для Линейная и циклическая свертка, примеры и реализация длиной 4 отсчета иЛинейная и циклическая свертка, примеры и реализациядлиной 3 отсчета (этот пример был рассмотрен выше).
Дополним нулями Линейная и циклическая свертка, примеры и реализацияи Линейная и циклическая свертка, примеры и реализация, так чтобы в каждой последовательности было по 6 отсчетов.
Вычислим циклическую свертку как это показано на рисунке 4.

Линейная и циклическая свертка, примеры и реализация
Рисунок 4: Вычисление линейной свертки через циклическую

Можно сравнить с результатом самого первого примера для линейной свертки и убедится в том, что значения совпадают.

Алгоритм быстрого вычисления свертки на основе БПФ

На первый взгляд может показаться, что вычисление линейной свертки через циклическую не имеет смысла, так как не сокращает вычисления. Действительно для вычисления линейной свертки требовалось Линейная и циклическая свертка, примеры и реализация умножений, Линейная и циклическая свертка, примеры и реализация и Линейная и циклическая свертка, примеры и реализация – длины сворачиваемых сигналов, а при вычислении линейной свертки через циклическую Линейная и циклическая свертка, примеры и реализация умножений и сложений. Однако рассмотрим дискретное преобразование Фурье от циклической свертки:Линейная и циклическая свертка, примеры и реализация(6)
Подставив выражение для циклической свертки получим:Линейная и циклическая свертка, примеры и реализация(7)
Поменяем местами операции суммирования:Линейная и циклическая свертка, примеры и реализация(8)
Представим множитель Линейная и циклическая свертка, примеры и реализация в виде:
Линейная и циклическая свертка, примеры и реализация(9)
Подставив (9) в (8) получим:
Линейная и циклическая свертка, примеры и реализация(10)
Таким образом, спектр циклической свертки есть произведение спектров сворачиваемых сигналов, и для ее вычисления может быть применен алгоритм быстрого преобразования Фурье (БПФ). Таким образом схема вычисления циклической свертки может быть представлена на рисунке 5:

Линейная и циклическая свертка, примеры и реализация
Линейная и циклическая свертка, примеры и реализация
Рисунок 5: Вычисление циклической свертки с применением БПФ

Поскольку эффективные алгоритмы БПФ существуют не для всех длин Линейная и циклическая свертка, примеры и реализация , то можно предложить следующий метод вычисления циклической свертки. Исходные последовательности Линейная и циклическая свертка, примеры и реализация и Линейная и циклическая свертка, примеры и реализация , Линейная и циклическая свертка, примеры и реализация можно дополнить нулями до длины Линейная и циклическая свертка, примеры и реализация , поскольку для длин равных целой степени двойки разработаны эффективные алгоритмы БПФ, после этого применяем схему вычисления свертки, представленную на рисунке 5. На выходе получим Линейная и циклическая свертка, примеры и реализация,Линейная и циклическая свертка, примеры и реализация , из которого надо взять только первые Линейная и циклическая свертка, примеры и реализация отсчетов.

Аналогично можно поступить и при расчете линейной свертки через циклическую.
Рассмотрим пример. Пусть Линейная и циклическая свертка, примеры и реализация, а Линейная и циклическая свертка, примеры и реализация . Прямое вычисление линейной свертки потребуетЛинейная и циклическая свертка, примеры и реализация (12 миллионов) операций умножения и сложения.
Дополним каждую из последовательностей до 8192 отсчетов нулями и применим алгоритм БПФ с прореживание по времени, тогда на вычисление одного БПФ потребуется Линейная и циклическая свертка, примеры и реализация операций комплексного умножения или 428000 операций действительного умножения. Таких блоков БПФ будет всего 3 штуки, плюс надо учесть 8192 комплексных умножений спектров, итого Линейная и циклическая свертка, примеры и реализация , что почти в 7.5 раз ниже чем если бы мы считали линейную свертку в лоб.

Расчет линейной свертки через циклическую

Вычислительные преимущества, которые мы получаем при использовании аппарата БПФ для расчета циклической свертки, хотелось бы также получать и для расчета линейной свертки. С этой целью рассмотрим способ приведения линейной свертки последовательностей ограниченной длительности к циклической.

Пусть Линейная и циклическая свертка, примеры и реализация и Линейная и циклическая свертка, примеры и реализация — дискретные последовательности длительности Линейная и циклическая свертка, примеры и реализация и Линейная и циклическая свертка, примеры и реализация отсчетов соответственно. Линейная свертка последовательностей Линейная и циклическая свертка, примеры и реализация и Линейная и циклическая свертка, примеры и реализация вернет Линейная и циклическая свертка, примеры и реализация длительности Линейная и циклическая свертка, примеры и реализация отсчет. Если мы хотим получить Линейная и циклическая свертка, примеры и реализация как результат циклической свертки, то необходимо дополнить Линейная и циклическая свертка, примеры и реализация и Линейная и циклическая свертка, примеры и реализация до длины Линейная и циклическая свертка, примеры и реализация отсчет, как это показано на рисунке 7.

Линейная и циклическая свертка, примеры и реализация
Рисунок 7. Добавление нулей для приведения линейной свертки к циклической

К последовательности Линейная и циклическая свертка, примеры и реализация необходимо добавить Линейная и циклическая свертка, примеры и реализация ноль, а к последовательности Линейная и циклическая свертка, примеры и реализацияЛинейная и циклическая свертка, примеры и реализация ноль. такое добавление нулей обеспечит увеличение периодичности циклического буфера до размера, когда Линейная и циклическая свертка, примеры и реализация и Линейная и циклическая свертка, примеры и реализация перестанут перекрываться циклически. В результате циклическая свертка будет иметь вид:

Линейная и циклическая свертка, примеры и реализация
(15)

Можно показать, что циклическая свертка (15) дополненных нулями последовательностей, соответствует расчету линейной свертки исходных сигналов. Чтобы убедиться в этом, достаточно использовать матричную запись циклической свертки, и расписать соответствующие элементы Линейная и циклическая свертка, примеры и реализация, Линейная и циклическая свертка, примеры и реализация. В результате выражения Линейная и циклическая свертка, примеры и реализация будут соответствовать линейной свертке.

Необходимо заметить, что добивать Линейная и циклическая свертка, примеры и реализация и Линейная и циклическая свертка, примеры и реализация нулями можно не только до длины Линейная и циклическая свертка, примеры и реализация, но и до любой длины Линейная и циклическая свертка, примеры и реализация. В результате вычисления циклической свертки дополненных нулями последовательностей до длины Линейная и циклическая свертка, примеры и реализация, первый Линейная и циклическая свертка, примеры и реализация значение на выходе будет представлять собой линейную свертку, а остальные значения будут нулевыми. Это можно использовать для дополнения исходных последовательностей нулями до длины, которая допускает использование эффективных БПФ алгоритмов.

Например при Линейная и циклическая свертка, примеры и реализация и Линейная и циклическая свертка, примеры и реализация, необходимо дополнить Линейная и циклическая свертка, примеры и реализация и Линейная и циклическая свертка, примеры и реализация нулями до длины Линейная и циклическая свертка, примеры и реализация. Однако мы можем дополнить их до длины Линейная и циклическая свертка, примеры и реализация отсчетов и использовать БПФ по основанию два для расчета циклической свертки. При этом первые 6999 отсчетов результата циклической свертки будут представлять собой линейную свертку при Линейная и циклическая свертка, примеры и реализация и Линейная и циклическая свертка, примеры и реализация. Использование алгоритма БПФ для Линейная и циклическая свертка, примеры и реализация приведет к десятикратному снижению требуемых вещественных умножителей при вычислении линейной свертки при Линейная и циклическая свертка, примеры и реализация и Линейная и циклическая свертка, примеры и реализация.

Сверточное кодирование

Сверточные коды позволяют исправлять пакеты ошибок путем введения в код цифр контроля четности. Выходы триггеров регистра сдвига обеспечивают задержки и подаются в отводы, после чего соответствующим образом объединяются с использованием сумматоров по модулю 2. В результате получается несколько выходов, которые последовательно считываются в каждом такте (рис. 5.39). Система является причинной и нерекурсивной, производит выход, который зависит от ее предыдущих входов, и сворачивает новые входные данные со своей импульсной характеристикой.

Линейная и циклическая свертка, примеры и реализация

Рис. 5.39. Сверточный кодер

Обращение свертки

Вход всех систем сворачивается с импульсной характеристикой системы и может искажать выход. Это происходит, например, в системах телекоммуникаций и может принуждать использовать эквалайзер — линейный фильтр, который по выходу восстанавливает исходный сигнал. Перед тем как разрабатывать подобный фильтр, необходимо определить импульсную характеристику системы (идентифицировать систему). Тема идентификации системы подробно рассмотрена в работе [Proakis J. G. and Manolakis D. G. (1988) Introduction to Digital Signal Processing, p. 429. Basingstoke: Macmillan].

Применеение свертки для обработки сигналов речи

Тема анализа и кодирования речи в сферах взаимодействия человека с машиной и сжатия данных довольно интересна. Иногда при этом используется тот факт, что речевой сигнал можно смоделировать как свертку серии импульсов, представляющих основные тоны, активирующих импульсов и импульсной характеристики речевого тракта [Rabiner L. R. and Gold B. (1975) Theory and Application of Digital Signal Processing, Chapters 12 and 13. Englewood Cliffs NJ: Prentice-Hall]. Получающуюся тройную свертку можно легко обратить в форму, подходящую для линейной независимой от времени системы.

Реализация свертки:

Для двух последовательностей данных можно легко найти их свертку, причем вычисления будут отличаться только порядком одной последовательности. Более того, для более длинных последовательностей данных необходимые операции можно ускорить, используя методы быстрого преобразования Фурье, чтобы получить быструю свертку. Если одна последовательность имеет чересчур большую длину, можно использовать методы наложения-сложения или наложения-записи; см. разделы работы [

Brigham E. O. (1974) The Fast Fourier Transform, Sections 13.3 and 13.4. Englewood Cliffs NJ: PrenticeHall.

DeFatta D. J., Lucas J. G. and Hodgkiss W. S. (1988) Digital Signal Processing: A System Design Approach, Section 6.9, p. 306. New York: Wiley.

]. Свертку можно выполнять, используя, например, КИХ-фильтр, реализуемый с помощью БПФ, а также применяя согласованный фильтр.

В сфере цифровой обработки для реализации трансверсальных фильтров может использоваться технология приборов с зарядовой связью (ПЗС). Это позволяет получать линейную фазовую характеристику при скоростях передачи данных, превышающих 100 МГц при стандартных конфигурациях линий задержки .

Аналоговую обработку можно выполнять, реализовав линии задержки с отводами, используя устройства с поверхностными акустическими волнами (ПАВ) . Эти устройства работают в диапазоне от 2 МГц до 2 ГГц. Другие реализации можно получить на основе конвольверов и корреляторов, универсальных цифровых процессоров сигналов, стандартных микропроцессоров и транспьютеров.

В качестве примеров последних можно привести системы реального времени для устранения окулярных артефактов из всех 16 каналов ЭКГ человека .

Время вычислений, необходимых для быстрой корреляции и свертки, можно дополнительно сократить в два раза . Рассмотрим свертку x(n) и h(n). При вычислении X(k) действительная часть БПФ заполняется четными членами x(n), а мнимая часть — нечетными, и длина БПФ вполовину сокращается. Далее действительная часть Линейная и циклическая свертка, примеры и реализация дает четные члены искомой сверткой, а мнимая часть — нечетные. Аналогично свертку двух последовательностей данных Линейная и циклическая свертка, примеры и реализация можно вычислить одновременно. Заполним действительную часть БПФ элементами последовательности x1(n), а мнимую часть — элементами последовательности x2(n) и вычислим X1 (k). Действительная часть Линейная и циклическая свертка, примеры и реализация равна Линейная и циклическая свертка, примеры и реализация, а мнимая часть — Линейная и циклическая свертка, примеры и реализация .

Пример реализации свертки, написанный на C++:

Линейная и циклическая свертка, примеры и реализация

Выводы

Таким образом, мы рассмотрели два вида дискретных сверток: линейную и циклическую, установили связь между ними. Было показано, что применение БПФ обеспечивает существенное снижение вычислительных операций при вычислении как циклических, так и линейных сверток. Представлены техники быстрой корреляции и свертки, основанные на теоремах о корреляции и свертке и использовании БПФ, также показано, как получить линейную свертку

Вау!! 😲 Ты еще не читал? Это зря!

Надеюсь, эта статья про линейная свертка, была вам полезна, счастья и удачи в ваших начинаниях! Надеюсь, что теперь ты понял что такое линейная свертка, циклическая свертка и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Цифровая обработка сигналов

создано: 2015-05-23
обновлено: 2024-11-14
599



Рейтиг 9 of 10. count vote: 2
Вы довольны ?:


Поделиться:

Найди готовое или заработай

С нашими удобными сервисами без комиссии*

Как это работает? | Узнать цену?

Найти исполнителя
$0 / весь год.
  • У вас есть задание, но нет времени его делать
  • Вы хотите найти профессионала для выплнения задания
  • Возможно примерение функции гаранта на сделку
  • Приорететная поддержка
  • идеально подходит для студентов, у которых нет времени для решения заданий
Готовое решение
$0 / весь год.
  • Вы можите продать(исполнителем) или купить(заказчиком) готовое решение
  • Вам предоставят готовое решение
  • Будет предоставлено в минимальные сроки т.к. задание уже готовое
  • Вы получите базовую гарантию 8 дней
  • Вы можете заработать на материалах
  • подходит как для студентов так и для преподавателей
Я исполнитель
$0 / весь год.
  • Вы профессионал своего дела
  • У вас есть опыт и желание зарабатывать
  • Вы хотите помочь в решении задач или написании работ
  • Возможно примерение функции гаранта на сделку
  • подходит для опытных студентов так и для преподавателей

Комментарии


Оставить комментарий
Если у вас есть какое-либо предложение, идея, благодарность или комментарий, не стесняйтесь писать. Мы очень ценим отзывы и рады услышать ваше мнение.
To reply

Цифровая обработка сигналов

Термины: Цифровая обработка сигналов