Дискретное косинусоидное преобразование (DCT) тесно связано с дискретным преобразованием Фурье (DFT). ДПФ на самом деле является одним шагом в расчете ДПФ для последовательности. DCT, однако, имеет лучшее уплотнение энергии, чем ДПФ, с несколькими коэффициентами преобразования, представляющими большую часть энергии в последовательности. Это свойство DCT делает его полезным в приложениях, таких как передача данных и кодирование сигналов.
DCT имеет четыре стандартных варианта. Для сигнала x длины N и с дельта Кронекера, преобразования заданы:
DCT-1:
DCT-2:
DCT-3:
DCT-4:
Функция Signal Processing Toolbox dct
вычисляет унитарный DCT массива входа.
Все варианты DCT являются унитарными (или, эквивалентно, ортогональными): Чтобы найти их обратные значения, переключатель k и n в каждом определении. DCT-1 и DCT-4 являются их собственными обратными. DCT-2 и DCT-3 являются обратными друг другу:
Обратная DCT-1:
Обратная DCT-2:
Обратная DCT-3:
Обратная DCT-4:
Функция idct
вычисляет обратный DCT для входа последовательности, восстанавливая сигнал из полного или частичного набора коэффициентов DCT.
Из-за свойства уплотнения энергии DCT можно восстановить сигнал только из части его коэффициентов DCT. Для примера сгенерируйте синусоидальную последовательность 25 Гц, отобранную при 1000 Гц.
t = 0:1/1000:1; x = sin(2*pi*25*t);
Вычислите DCT этой последовательности и восстановите сигнал, используя только те компоненты со значением более 0,1. Определите, сколько коэффициентов из исходных 1000 удовлетворяют требованию.
y = dct(x); y2 = find(abs(y) < 0.1); y(y2) = zeros(size(y2)); z = idct(y); howmany = length(find(y))
howmany = 64
Постройте график исходной и восстановленной последовательностей.
subplot(2,1,1) plot(t,x) ax = axis; title('Original Signal') subplot(2,1,2) plot(t,z) axis(ax) title('Reconstructed Signal')
Одной из мер точности реконструкции является норма различия между исходным и восстановленным сигналами, разделенная на норму исходного сигнала. Вычислите эту оценку и выразите ее как процент.
norm(x-z)/norm(x)*100
ans = 1.9437
Восстановленный сигнал сохраняет приблизительно 98% энергии в исходном сигнале.