idct
Обратное дискретное косинусное преобразование.
| Библиотека |
|
Аргументы
Входные аргументы
#
y —
входное дискретное косинусное преобразование
вектор | матрица | N-мерный массив
Details
Входное дискретное косинусное преобразование, заданное как вектор, матрица или N-мерный массив с вещественными или комплексными значениями.
| Типы данных |
|
| Поддержка комплексных чисел |
Да |
#
n —
длина обратного преобразования
положительный целочисленный скаляр
Details
Длина обратного преобразования, заданная как положительный целочисленный скаляр.
| Типы данных |
|
Выходные аргументы
#
x —
обратное дискретное косинусное преобразование
вектор | матрица | N-мерный массив
Details
Обратное дискретное косинусное преобразование, возвращаемое в виде вещественного или комплексного вектора, матрицы или N-мерного массива.
Примеры
Восстановление сигнала с помощью обратного дискретного косинусного преобразования
Details
Сгенерируем сигнал, состоящий из синусоиды частотой 25 Гц, дискретизированной с частотой 1000 Гц в течение 1 секунды. К синусоиде добавлен белый гауссовский шум с дисперсией 0.01.
import EngeeDSP.Functions: randn
using Random
Random.seed!(1234)
Fs = 1000
t = 0:1/Fs:1-1/Fs
x = sin.(2π * 25 * t) + randn(length(t), 1) / 10
Вычислим дискретное косинусное преобразование (ДКП) последовательности. Определим, сколько из 1000 коэффициентов ДКП являются значимыми. Выберем порог значимости 1.
import EngeeDSP.Functions: dct
y = dct(x)
sigcoeff = abs.(y) .>= 1
howmany = sum(sigcoeff)
17
Реконструируем сигнал, используя только значимые компоненты.
import EngeeDSP.Functions: idct
y[.!sigcoeff] .= 0
z = idct(y)
Построим графики исходного и восстановленного сигналов.
p1 = plot(t, x, title = "Original")
yl = ylims(p1)
p2 = plot(t, z, title = "Reconstructed")
ylims!(p2, yl)
plot(p1, p2, layout = (2, 1), legend = false)
Дополнительно
Обратное дискретное косинусное преобразование
Details
Обратное дискретное косинусное преобразование восстанавливает последовательность по ее коэффициентам дискретного косинусного преобразования (ДКП). Функция idct является обратной к функции dct.
ДКП имеет четыре стандартных варианта. Для данной функции реализован только тип ДКП-2. Для преобразованного сигнала длины и символа Кронекера обратные преобразования определяются следующим образом:
-
Обратное ДКП-1:
-
Обратное ДКП-2:
-
Обратное ДКП-3:
-
Обратное ДКП-4:
Ряды индексируются от и вместо обычных и , поскольку векторы Engee изменяются от до , а не от до .
Все варианты ДКП унитарны (или, что эквивалентно, ортогональны): чтобы найти прямые преобразования, поменяйте местами и в каждом определении. ДКП-1 и ДКП-4 являются обратными друг другу. ДКП-2 и ДКП-3 являются обратными друг другу.
Литература
-
Jain, A. K. Fundamentals of Digital Image Processing. Englewood Cliffs, NJ: Prentice-Hall, 1989.
-
Oppenheim, Alan V., Ronald W. Schafer, and John R. Buck. Discrete-Time Signal Processing. 2nd Ed. Upper Saddle River, NJ: Prentice Hall, 1999.
-
Pennebaker, W. B., and J. L. Mitchell. JPEG Still Image Data Compression Standard. New York: Van Nostrand Reinhold, 1993.