Дискретное косинус-преобразование
Помимо того, что преобразования используются для ускорения вычисления корреляции и свертки, а также в спектральном анализе, эти методы применяются еще и для сжатия данных при, например, передаче речи или видеосигналов, а также для записи медицинских сигналов, таких как сигналы электро-кардио-граммы ЭКГ. Кроме того, они используютсяпри распознавании шаблонов. В названных приложениях задействованы только самые значительные компоненты преобразований. В результате этого снижается количество битов, необходимое для их кодирования, что позволяет ускорить передачу, использовать линии передачи с более узкой полосой, а также облегчает распознавание шаблонов (благодаря уменьшению объема информации). Эти три немаловажных признака преобразования и определяют его эффективность с точки зрения сжатия данных, которая связана с концентрацией энергии на низких частотах, простотой вычислений и минимальной среднеквадратической ошибкой. С этой точки зрения идеальным преобразованием является преобразование Карунена-Лоэва, но вычислительная сложность данного алгоритма выше чем у неоптимизированного ДПФ. Впрочем, дискретное косинус-преобразование (ДКП) обладает фактически теми же свойствами. По сути, оно представляет собой действительную часть ДПФ. Это определение справедливо, поскольку ряд Фурье из действительных и четных функций содержит только косинусоидальные члены, а при использовании, например, дискретных значений напряжения данные действительные, и их можно сделать симметричными – удвоить путем прибавления к ним их зеркального отображения. Итак, ДПФ задается следующим образом:
|
|
(5)
Определив ДКП Xc(k) как действительную часть от этого преобразования, получим
(6)
Это одна из нескольких форм ДКП. Более общий вид:
(7)
Разработаны реализации ДКП, основанные на БПФ, кроме того, есть также быстрое ДКП, скорость которого в шесть раз больше указанных преобразований. Еще одна версия – это С-матричное преобразование, которое намного проще реализовать на аппаратном уровне.
Пример 2.Найдем число коэффициентов косинусного преобразования, которые содержат 99% энергии сигнала, заданного в векторе x:
x = (1:100) + 50*cos((1:100)*2*pi/40); % формируем сигнал
X = dct(x); % вычисляем ДКТ
[XX,ind] = sort(abs(X)); % сортируем массив по возрастанию
ind = fliplr(ind); % изменим порядок индексов массива
i = 1;
% находим коэффициенты содержащие 99 процентов энергии сигнала
while (norm([X(ind(1:i)) zeros(1,100-i)])/norm(X)<.99)
i = i + 1;
end
i =
3
Итак, 3 коэффициента дискретного косинусного преобразования содержат 99% энергии сигнала.
|
|
Дата добавления: 2018-04-05; просмотров: 452; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!