Main Content

Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

idct

Transformación de coseno discreta inversa

Descripción

ejemplo

x = idct(y) devuelve la transformación inversa de coseno discreto de la matriz de entrada.y La salida tiene el mismo tamaño que .xy Si tiene más de una dimensión, opera a lo largo de la primera dimensión de matriz con un tamaño mayor que 1.yidct

x = idct(y,n) cero-pads o trunca la dimensión relevante de a la longitud antes de transformar.yn

x = idct(y,n,dim) calcula la transformación a lo largo de la dimensión.dim Para introducir una dimensión y utilizar el valor predeterminado de , especifique el segundo argumento como vacío, .n[]

ejemplo

y = idct(___,'Type',dcttype) especifica el tipo de transformación de coseno discreta inversa para calcular. Consulte para obtener más información.Transformación de coseno discreta inversa Esta opción se puede combinar con cualquiera de las sintaxis anteriores.

Ejemplos

contraer todo

Generar una señal que consiste en un sinusoides de 25 Hz muestreado a 1000 Hz durante 1 segundo. El sinusoides está incrustado en ruido gaussiano blanco con varianza 0.01.

rng('default')  Fs = 1000; t = 0:1/Fs:1-1/Fs; x = sin(2*pi*25*t) + randn(size(t))/10;

Calcular la transformación coseno discreta de la secuencia. Determine cuántos de los 1000 coeficientes DCT son significativos. Elija 1 como umbral de significancia.

y = dct(x);  sigcoeff = abs(y) >= 1;  howmany = sum(sigcoeff)
howmany = 17 

Reconstruya la señal utilizando sólo los componentes significativos.

y(~sigcoeff) = 0;  z = idct(y);

Trazar las señales originales y reconstruidas.

subplot(2,1,1) plot(t,x) yl = ylim; title('Original')  subplot(2,1,2) plot(t,z) ylim(yl) title('Reconstructed')

Verifique que las diferentes variantes de la transformación discreta del coseno sean ortogonales, utilizando una señal aleatoria como punto de referencia.

Comience por generar la señal.

s = randn(1000,1);

Verifique que DCT-1 y DCT-4 sean sus propias inversas.

dct1 = dct(s,'Type',1); idt1 = idct(s,'Type',1);  max(abs(dct1-idt1))
ans = 1.3323e-15 
 dct4 = dct(s,'Type',4); idt4 = idct(s,'Type',4);  max(abs(dct4-idt4))
ans = 1.3323e-15 

Verifique que DCT-2 y DCT-3 sean inversos entre sí.

dct2 = dct(s,'Type',2); idt2 = idct(s,'Type',3);  max(abs(dct2-idt2))
ans = 4.4409e-16 
 dct3 = dct(s,'Type',3); idt3 = idct(s,'Type',2);  max(abs(dct3-idt3))
ans = 1.1102e-15 

Argumentos de entrada

contraer todo

Introduzca una transformación de coseno discreta, especificada como un vector, matriz, matriz u objeto de valor real o de valores complejos.gpuArray

Vea y para obtener más información sobre los objetos.Run MATLAB Functions on a GPU (Parallel Computing Toolbox)GPU Support by Release (Parallel Computing Toolbox)gpuArray (Parallel Computing Toolbox)

Ejemplo: especifica la transformación discreta del coseno de un sinusoides.dct(sin(2*pi*(0:255)/4))

Ejemplo: especifica la transformación discreta del coseno de un sinusoides de dos canales.dct(sin(2*pi*[0.1;0.3]*(0:39))')

Tipos de datos: single | double
Soporte de números complejos:

Longitud de transformación inversa, especificada como un escalar entero positivo.

Tipos de datos: single | double

Dimensión para operar a lo largo, especificada como un escalar entero positivo.

Tipos de datos: single | double

Tipo de transformación de coseno discreto inverso, especificado como un escalar entero positivo de 1 a 4.

Tipos de datos: single | double

Argumentos de salida

contraer todo

Transformación de coseno discreta inversa, devuelta como un vector, matriz, matriz u objeto de valor real o de valores complejos.gpuArray

Más acerca de

contraer todo

Transformación de coseno discreta inversa

La transformación de coseno discreta inversa reconstruye una secuencia a partir de sus coeficientes discretos de transformación de coseno (DCT). La función es la inversa de la función.idctdct

El DCT tiene cuatro variantes estándar. Para una señal transformada de longitud, y conyN δkℓ el delta de Kronecker, los inversos se definen por:

  • Inverso de DCT-1:

    x(n)=2N1k=1Ny(k)11+δk1+δkN11+δn1+δnNcos(πN1(k1)(n1))

  • Inverso de DCT-2:

    x(n)=2Nk=1Ny(k)11+δk1cos(π2N(k1)(2n1))

  • Inverso de DCT-3:

    x(n)=2Nk=1Ny(k)11+δn1cos(π2N(2k1)(n1))

  • Inverso de DCT-4:

    x(n)=2Nk=1Ny(k)cos(π4N(2k1)(2n1))

Las series se indexan a partir de n = 1 Y k = 1 en lugar de la habitual n = 0 Y k = 0, porque los vectores se ejecutan de 1 a en lugar de 0 aMATLAB®N N – 1.

Todas las variantes del DCT son (o, equivalentemente, ):UnitarioOrtogonal Para encontrar las transformaciones hacia delante, cambie y en cada definición.kn En particular, DCT-1 y DCT-4 son sus propios inversos, y DCT-2 y DCT-3 son inversos entre sí.

Referencias

[1] Jain, A. K. Fundamentals of Digital Image Processing. Englewood Cliffs, NJ: Prentice-Hall, 1989.

[2] Pennebaker, W. B., and J. L. Mitchell. JPEG Still Image Data Compression Standard. New York: Van Nostrand Reinhold, 1993.

[3] Oppenheim, Alan V., Ronald W. Schafer, and John R. Buck. Discrete-Time Signal Processing. 2nd Ed. Upper Saddle River, NJ: Prentice Hall, 1999.

Capacidades ampliadas

Consulte también

| | (Image Processing Toolbox) | (Image Processing Toolbox)

Introducido antes de R2006a