1. La Transformada discreta de Fourier DTF muestra la descomposicin frecuencial de una seal o sistema, es la discretizacin de la Transformada de Fourier y puede obtenerse directamente de la TZ igualando z=e jw
a) Para el sistema descrito por la ecuacin en diferencias y[n]=0.4y[n-1]-0.25y[n-2]+0.5x[n]+0.4x[n-1]+0.8x[n-2] obtenga la transformada discreta de Fourier e identifique su comportamiento, utilize las sentencias
>> [H,w]=freqz(B,A);plot(w,abs(H))
B,A son numerador y denominador de la TZ de la funcin de transferencia del sistema (descrita en potencias negativas de z y ordenados de menor a mayor orden)
2. FFT: La manera eficiente de calcular la DFT. En MATLAB la funcin es 0 0.5 1 1.5 2 2.5 3 3.5 0 0.5 1 1.5 2 2.5 3 3.5 4 A=[0.5 0.4 0.8]; B=[1 -0.4 0.25]; [H,w]=freqz(B,A); plot(w,abs(H))
>> X=fft(x,N) Calcula la FFT de N puntos del vector x, el resultado X es un vector de nmeros complejos ordenados con ndice k=0,1, ...N-1. Si no se da el segundo parmetro se considera como N la longitud del vector. Para que el algoritmo sea eficiente N debe ser potencia de 2. Si la longitud de x es menor que N, el vector se rellena con ceros. Si es mayor el vector es truncado. >> x = ifft(X) Calcula la transformada de Fourier inversa del vector X. Tambin se puede especificar el nmero de puntos N con ifft(X,N) >> X=fftshift(x) Reordena el vector X en orden creciente de frecuencias de tal manera que la componente continua queda centrada.
Para: a = {1, 3, -2, 2, 4, 3,1,3,4} b = {1, 5, 1, 4, 4, 2} c = {1, 3, -2, 0, 0, 0, 0, 0} d = {1, 5, 1, 0, 0, 0, 0, 0} Encontrar la DFT (grafique mdulo de A,B,C,D, fase de A,B,C,D) use el comando fft, corra el comando sin especificar el nmero puntos, luego crralo usando un nmero de puntos potencia de dos menor que la longitud del vector fft:
A = fft(a) A = Columns 1 through 6 19.0000 -1.5419 + 4.3588i 5.1382 + 4.2037i -3.5000 - 4.3301i -5.0963 - 2.7531i -5.0963 + 2.7531i Columns 7 through 9 -3.5000 + 4.3301i 5.1382 - 4.2037i -1.5419 4.3588i
4. Comprobacin de la Propiedad de Linealidad La transformada de fourier de y(n) = k1.a(n) + k2.b(n), donde k1 y k2 son constantes, se puede encontrar ya sea aplicando directamente la transformada o tambin de esta manera: Y(w) = k1.A(w) + k2.B(w). Comprobarlo para k1=2 y k2 =3 sustituidas en las seales definidas arriba
5. Comprobacin de que la convolucin en el dominio del tiempo es equivalente a la multiplicacin de los espectros. La transformada de Fourier de: y(n) = a(n) * b(n), se puede encontrar (adems de directamente) de la siguiente manera: Y(w) = A(w).B(w). Comprobarlo usando las funciones c(n) y d(n) encontrar y1 = conv(c,d) encontrar Y2 = C*D encontrar y2 = ifft(Y2) comparar y1 con y2
c= 8 elementos , d = 8 elementos , truncamos a la potencia que contiene ambos = 8 F3=fft(conv(c,d)) F3 = Columns 1 through 6 14.0000 15.7221 - 5.0115i 12.5091 -16.1698i -2.8090 -21.8541i -17.5205 - 10.8893i -16.0000 + 6.9282i Columns 7 through 12 -1.6910 +14.0943i 10.2893 + 6.6592i 10.2893 - 6.6592i -1.6910 -14.0943i -16.0000 - 6.9282i -17.5205 +10.8893i Columns 13 through 15 -2.8090 +21.8541i 12.5091 +16.1698i 15.7221 + 5.0115i
6. Calcular la DFT para la secuencia x[n] = cos(0.2n) + cos(0.4n)+ cos(0.45n). Se pide utilizando la funcin matlab fft(x,N) con N=L= longitud de las secuencia x[n] y representar su mdulo para diferentes valores de nmero de muestras L (16,32,64,128). Indique a partir de qu valor de N son distinguibles las tres frecuencias de la seal. function P6(L) n = 0:L-1; x= cos(.2*pi*n)+ cos(.4*pi*n)+cos(.45*pi*n); X= fft(x,n); stem(abs(X))
7. Indique cmo estn relacionados los valores de L, N y la resolucin en frecuencias L y N son iguales 8. Compruebe que sucede en el espectro de la seal si una secuencia de L= 90 muestras de x[n] se rellena con ceros hasta N=128. function P8(L) n = 0:L-1; n = [n,zeros(1,128-L)]; x= cos(.2*pi*n)+ cos(.4*pi*n)+cos(.45*pi*n); X= fft(x,n); stem(abs(X)) 0 10 20 30 40 50 60 70 0 0.5 1 1.5 2 2.5 3 0 20 40 60 80 100 120 140 0 0.5 1 1.5 2 2.5 3
9. Calcular la inversa de la funcin X(w) utilizando la funcin ifft(X) para recuperar la seal en el dominio de tiempo. 16
DTFT 10. Crear la funcin dtft.m que calcula la transformada de Fourier en tiempo discreto de manera apropiada, comente cada lnea de programa function [H,W]=dtft(x,N) % x: secuencia de L muestras, de la muestra L+1 a infinito la muestra toma valor 0. % N: nmero de frecuencias a evaluar. N debe ser mayor que L. % H: valores complejos de la DTFT % W: vector de frecuencias correspondiente a la los valores H calculados 0 20 40 60 80 0 0.5 1 1.5 2 2.5 3 0 20 40 60 80 0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5 0 50 100 150 0 0.5 1 1.5 2 2.5 3 0 50 100 150 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 N=fix(N); % redondea N al entero mas cercano
L=length(x); % extrae la longitud de x if(L>N) % compara N con L error(' DTFT: numero de muestras L, debe ser inferior al numero de frec a calcular N') end W=2*pi/N*(0:N-1); medio=ceil(N/2)+1 % busca pivot punto medio promedio W(medio:N)=W(medio:N)-2*pi; % procesa solo la mitad de las partes puesto que por ser un espectro son iguales W=fftshift(W); % extrae solo la parte positiva de la transformada H=fftshift(fft(x,N)); % extrae solo la parte positiva de la transformada Explique la funcin que cumple el comando fftshift 11. Represente la dtft en mdulo y fase de la seal x[n]= 0.5 n *exp ( j(2n/5)), con L= 32 y N=128
12. Compare los resultados y explique que sucede si se toman valores de N=32, N=64 y N=1024
Rpta: Entre ms valor tenga la variable N, el espacio entre cada impulso es mnimo y la seal se expande un poco ms y se puede observar mucho mejor.
13. Con N = 128 cambie el valor de L, por ejemplo L=10 y L=128, comente los resultados 0 5 10 15 20 25 30 35 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 0 10 20 30 40 50 60 70 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 0 200 400 600 800 1000 1200 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
Rpta: La diferencia solo sera en el espacio de cada intervalo, presentan una ligera diferencia.
II. CONCLUSIONES
Consignar al menos cinco conclusiones en torno a la respuesta de los sistemas LTI Los sistemas invariantes en el tiempo o como se les conoce por sus siglas es aplicado comnmente en aplicaciones matemticas, pero tiene aplicacin directa en lo que sera circuitos procesamiento de seales teora de control y en otras reas tcnicas La trayectoria de este tipo de sistemas es comnmente forma de ondas pero en aplicaciones como procesamiento de imgenes o en el campo terico los sistemas LTI tienen una trayectoria en el espacio. Un sistema sea lineal significa que cuando la entrada de un sistema es escalada por un valor, la salida del sistema tambin es escalada por la misma cantidad. La transformada de fourier y la transformada inversa no siempre nos dan el mismo valor original por motivo de truncamiento.
1. Qu es la resolucin espectral?Cmo se evala en MatLab?
La resolucin espectral viene dada por la anchura de su lbulo principal: la resolucin ser tanto mayor cuanto ms estrecho sea ste. Entendemos por resolucin espectral de un determinado algoritmo su capacidad para distinguir dos frecuencias muy prximas.
2. Proponga un programa que extraiga una componente espectral de una seal?
% Script para el clculo del espectro total % % Se calcula el mdulo del espectro y se normaliza % % la seal de entrada tiene que llamarse senyi % % la seal se suaviza con una ventana de Hanning % senyal=senyi(:,2); N=length(senyi); N2=N/2; w=hanning(N); fs=100; fnyquist=fs/2; % vector de frecuencias % fr=(0:fs/N:fnyquist-(fs/N)); % clculo del espectro de la componente Z % X=fft(senyal)/fs; x1=X(1:N2,1); amp=abs(x1)/N; espz=[fr',amp]; senyal=senyi(:,3); % clculo del espectro de la componente N-S % senyal=senyi(:,3); X=fft(senyal)/fs; x1=X(1:N2,1); amp=abs(x1)/N; espn=[fr',amp]; % clculo del espectro de la componente E-W % senyal=senyi(:,4); X=fft(senyal)/fs; x1=X(1:N2,1); amp=abs(x1)/N; espe=[fr',amp];