Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Transformada de Seno y Coseno

No description
by

Pablo Alexander Reyes

on 21 August 2014

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Transformada de Seno y Coseno

Transformada de Seno y Coseno

Nelson Lozano, Pablo Reyes
Ruta
Definiciones
T. Seno y Coseno
T. Discreta Seno y Coseno
Diferencias con DFT
Aspectos formales
Aplicaciones
Comprensión, metodología
Solución de ecuaciones diferenciales
Artículos
Compresión de imágenes y audio
Definición
Transformada de Seno y coseno
Son miembros de las familias de transformadas sinusoidales unitarias.
Surgen de manera natural cuando se ha empleado transformada de Fourier para resolver ecuaciones diferenciales.
La transformada del seno emplea solo valores del seno para completar la función y la del coseno solo valores del coseno.
Transformada discreta Seno
Propiedades de Seno
Diferencias con DFT
Conclusiones
Uso como sistema de comprensión sin mayores cambios en los últimos años.
Posibilidades actuales
En combinación con otras transformadas
La transformada discreta del seno ( DST ) - también denominada transformada del seno, es un ejemplo más de transformada (co)sinusoidal. Su principal aplicación es la compresión de imagen y aunque su eficiencia no es particularmente buena, no es una razón suficiente como para no utilizarla en la práctica, debido a que esta transformada asume el papel de una versión aproximada " rápida " de la transformada Karhunen-Loève de un proceso de Markov.

T. Coseno
T. Seno
Unidimensional
Bidimensional
Propiedades de Coseno
Aplicaciones
La Transformada de coseno discreta expresa una secuencia finita de varios puntos como resultado de la suma de distintas señales sinusoidales (con distintas frecuencias y m amplitudes). Como la transformada discreta de Fourier (abreviada, DFT) la DCT trabaja con una serie de números finitos, pero mientras la DCT solo trabaja con cosenos la DFT lo hace con exponenciales complejos.
Como introducción destacaremos sus principales propiedades:
1. La DST es real, simétrica y ortogonal, es decir,

De este modo la DST directa e inversa son idénticas.
2. La DST no es la parte imaginaria de la DFT. La DST de una secuencia esta relacionada con la DFT de su desarrollo antisimétrico.

3.La DST es una transformada rápida. La DST ( directa ó inversa ) de un vector de N elementos puede calcularse en Nlog2N operaciones a través de una FFT de 2(N+1) puntos. Típicamente esto requiere N+1=2p, es decir, la DST rápida esta definida normalmente para N=3, 7, 15, 31, 63, 255, ..... . Los algoritmos de la DST rápida que no requieren aritmética compleja ( o la FFT ) son también posibles. De hecho, estos algoritmos son algo más rápidos que la FFT y la DCT rápida.

4. Los vectores base de la DST son los autovectores de la matriz Toeplitz de tridiagonal simétrica.

5. La transformada del seno es similar a la transformada KL de secuencias de Markov estacionarias de primer orden, y en general, tiene una propiedad de compactación de energía para imágenes, de muy buena a excelente.

6. De la DST se deriva un algoritmo rápido aproximado a la KLT para secuencias de Markov. Esto la hace útil en muchos problemas de procesado de imagen.

1. La Transformada Discreta Coseno es real y ortogonal. Si la matriz Coseno es real y ortogonal, cumple también con ser unitaria, es decir,

2. La Transformada Discreta Coseno no es la parte real de la Transformada Discreta de Fourier.
3. La TDC de un vector de tamaño N puede calcularse mediante aproximadamente N\og2N operaciones1 mediante el concurso de la Transformada rápida de Fourier (TRF), esta técnica constituye una de los métodos alternativos de cálculo de la transformada coseno mencionados en el capítulo 3. Para esto se procede a separar a la secuencia u(ri) en sus partes: par w(2/j) e impar u(2n+1), de la siguiente manera:


4. Los vectores propios de la matriz tridiagonal simétrica Q c , representan los vectores bases de la transformada coseno y además son las filas de la matriz C,

Compresión de imágenes
Metodología para la compresión
Para la comprobación de la compresión con perdida se toma una imagen a color a la cual se le va a aplicar la transformada discreta del coseno. A esta imagen, se le aplica la transformada discreta del coseno. El proceso empieza con una descomposición de la imagen en tres matrices, una roja, una azul y una verde. Cada una de estas matrices las dividiremos en submatrices de 8x8 para aplicar la transformada del coseno.
Luego de recorrer la matriz en zig-zag y agregar los valores a la matriz, procedemos a comprimir la imagen. Aquí se utiliza el criterio para el descarte de los coeficientes transformados, el cual descarta los valores cuando el modulo sea mayor a la suma de los módulos que le siguen, también se le puede aplicar un descarte manual, el cual no va a ser tan especifico.

Para continuar se guardan los valores de la compresión en otra matriz con otro barrido en zig-zag para poder llegar a la fase final que es la anti transformada del coseno.
Ejemplo práctico de DCT
Ejemplo de Matlab
%% DCT
clear; close all; clc;
x = (1:100) + 50*cos((1:100)*2*pi/40)+ 10*rand(1,100);
%load('vowels');x=vowel_a';

X = dct(x);
[XX,ind] = sort(abs(X)); ind = fliplr(ind);

E=0.9999;
i = 1;
Xhat(length(X))=0;
while (norm(Xhat)/norm(X)<E)
Xhat(ind(i))= X(ind(i));
i = i + 1;
end

display(['Se requiere el ', num2str(100*(i-1)/length(x)), '% de los terminos para reconstruir el ', num2str(E*100), '% de la energia'])
xhat=idct(Xhat);
figure, hold on
plot(x)
plot(xhat,'r')
soundsc(xhat,fs)
%% DFT
clear; close all; clc;
x = (1:100) + 50*cos((1:100)*2*pi/40)+ 10*rand(1,100);
%load('vowels');x=vowel_a';

X = fft(x);
[XX,ind] = sort(abs(X)); ind = fliplr(ind);

E=0.9999;
i = 1;
Xhat(length(X))=0;
while (norm(Xhat)/norm(X)<E)
Xhat(ind(i))= X(ind(i));
i = i + 1;
end

display(['Se requiere el ', num2str(100*(i-1)/length(x)), '% de los terminos para reconstruir el ', num2str(E*100), '% de la energia'])
xhat=ifft(Xhat,'symmetric');
figure, hold on
plot(x)
plot(xhat,'r');
soundsc(xhat,fs)
Ejemplo de openCV
Ejemplo de Matlab
%% DCT
clear; close all; clc;
x = (1:100) + 50*cos((1:100)*2*pi/40)+ 10*rand(1,100);
%load('vowels');x=vowel_a';

X = dct(x);
[XX,ind] = sort(abs(X)); ind = fliplr(ind);

E=0.9999;
i = 1;
Xhat(length(X))=0;
while (norm(Xhat)/norm(X)<E)
Xhat(ind(i))= X(ind(i));
i = i + 1;
end

display(['Se requiere el ', num2str(100*(i-1)/length(x)), '% de los terminos para reconstruir el ', num2str(E*100), '% de la energia'])
xhat=idct(Xhat);
figure, hold on
plot(x)
plot(xhat,'r')
soundsc(xhat,fs)
%% DFT
clear; close all; clc;
x = (1:100) + 50*cos((1:100)*2*pi/40)+ 10*rand(1,100);
%load('vowels');x=vowel_a';

X = fft(x);
[XX,ind] = sort(abs(X)); ind = fliplr(ind);

E=0.9999;
i = 1;
Xhat(length(X))=0;
while (norm(Xhat)/norm(X)<E)
Xhat(ind(i))= X(ind(i));
i = i + 1;
end

display(['Se requiere el ', num2str(100*(i-1)/length(x)), '% de los terminos para reconstruir el ', num2str(E*100), '% de la energia'])
xhat=ifft(Xhat,'symmetric');
figure, hold on
plot(x)
plot(xhat,'r');
soundsc(xhat,fs)
Full transcript