November 25, 2022 | Author: Anonymous | Category: N/A
Practica 1
Muestreo de señales
Objetivo: Mostrar los conceptos básicos del muestreo. Introducción: El muestreo es un proceso donde una señal analógica se convierte en una secuencia de números que normalmente están uniformemente espaciados en el tiempo. Para que dicho proceso tenga utilidad práctica es necesario nece sario elegir la tasa de muestreo mue streo adecuadamente de modo que esa secuencia de números identifique de forma única a la señal analógica original. Esta es la esencia del teorema de muestreo. Material Motor de corriente directa Varilla (indicador de movimiento del eje del motor) Soporte para el motor Luz estroboscópica Fuente variable de voltaje. Desarrollo 1.-Montar el banco experimental. Unir la varilla al eje del motor para pa ra que sirva de indicador del movimiento del motor. Alimentar al motor con el voltaje de la fuente variable
"#$#%&' $& $()*&'& +,-'#.#,%/*0%& &$ 1'+2%-+ 3+$ )#2-&4+ &2-+'0#' *&'& 56+ 0$6)02+ 3+$ 1'+2-+ &$ 0230%&3#'7
2.-Regular la velocidad del motor a ________________ 3.-Apagar las luces completamente. 3.-Ajustar la frecuencia de la la lámpara a _________________ 4.-Apagar las luces y dejar solamente la iluminación de la lámpara. ¿Cómo se puede relacionar la posición del indicador con las funciones periódicas? ¿En que momento se puede relacionar el movimiento con una señal continua y cuando con una señal discreta? ¿Cuál elemento determina la frecuencia de muestreo? ¿Son independientes la frecuencia de muestreo y la frecuencia del indicador?
¿Se puede observar la posición del indicador en todo momento si no hay iluminación? ¿Se puede observar la posición del indicador en todo momento si iluminamos el indicador con la lámpara estroboscópica? ¿Podríamos determinar la frecuencia del indicador con la información que nos dan los muestreos que se hacen con la lámpara? ¿Cómo lo harías? 5.-Aumenta la frecuencia de muestreo y observa lo que sucede 6.-Aumenta la velocidad del motor y observa lo que sucede ¿Qué sucede si aumentamos la frecuencia de muestreo? ¿Qué sucede si aumentamos la velocidad del indicador? ¿Qué sucede si reducimos la frecuencia de muestreo? ¿Qué sucede si reducimos la velocidad del indicador? 7.-Establecer conclusiones. ¿Qué diferencia existe entre una señal discreta y una analógica? ¿Qué condiciones se deben cumplir para que se pueda recuperar una señal analógica a partir de sus muestreos? ¿Qué efectos se producen si las las condiciones no se cumplen? Hacer reporte de la práctica por equipo. (3 personas por equipo) Enviar el reporte a
[email protected]
Practica 2 Interpolación y “aliasing” Objetivo: Observar la recuperación de una señal a partir partir de sus muestras y el efecto conocido como “aliasing’ Fundamentos teoricos Si la frecuencia más alta contenida en una señal analógica se muestrea a una tasa
, entonces
es
y la señal
se puede recuperar
totalmente a partir de sus muestras mediante la siguiente función de interpolación: interpolación:
Así,
se puede expresar como:
donde
son las muestras de
.
Si el criterio no es satisfecho, existirán frecuencias cuyo muestreo coincide con otras (el aliasing). ). llamado aliasing
Desarrollo:
1. Hacer un programa en Matlab que obtenga muestras de una señal representada por una función matemática. (conversión analógica a discreta). 2. Muestrear la señal y(t) con una frecuencia de muestreo de 10 Hz y graficarla.
3. Hacer una rutina que calcule sumatoria de funciones de interpolación.
4. Reconstruir la señal analógica y(t) a partir de las muestras obtenidas en el punto 2.
5. Comparar ambas señales y graficar la magnitud del error en otra grafica. 6. Hacer una representación de una onda sinusoidal muestreada de 300Hz y con un periodo de muestreo de 1.25 ms. 7. Hacer otras representaciones con frecuencias entre 125 y 395 Hz en pasos de 90 Hz. Observar los los cambios en la frecuencia de de la señal recuperada y las formas de la señal muestreada. Graficar en la misma ventana. 8. Repetir el punto anterior pero ahora un periodo de muestreo de 1 ms y desde 7525 a 7900 Hz en saltos de 125 Hz. Observar los cambios en la frecuencia de la señal recuperada. Graficar en la misma ventana. 9. Encontrar tres señales diferentes que tengan la misma representación discreta. 10. Establecer Establecer conclusiones
Hacer reporte de la práctica por equipo. (3 personas por equipo) Enviar el reporte a
[email protected]
%Practica 2. Procesamiento Digital de Senales %Recuperacion de la señal original a partir de sus muestras discretras %Desarrollado por: Marcial Castro Muñoz %18 de febrero de 2009 %Limpiar variables, funciones, ventana de comandos y figuras clear; clc; clf %Constantes f1=4.7 %Armónico de mayor frecuencia de la señal f2=2 %Armónico de menor frecuencia de la señal M=3 m=-3
%Limite superior de la amplitud para la grafica %Limite inferior de la amplitud para la grafica
a=-1 b=1
%Tiempo de inicio de la señal %Tiempo final de la señal
fs=10
%frecuencia de muestreo
ab=b-a %Intervalo de la señal
%Crear el vector de tiempo cuasicontinuo fc=100*f1 %Frecuencia usada para visualizar visualizar la señal como analogica tc=1/fc t=[a:tc:b]; %Crea el vector de tiempo de señal muestreada ts=1/fs td=[a:ts:b]; %Señal a interpolar yc=sin(2*pi*f1*t)+sin(2*pi*f2*t); %Señal muestreada yd=sin(2*pi*f1*td)+sin(2*pi*f2*td); %Graficar ambas señales subplot(2,1,1) stem(td,yd,'o') title('Señal muestreada') axis([a,b,m,M]) subplot(2,1,2) %Dos cuadros de figura en vertical plot(t,yc) title('Señal original') axis([a,b,m,M]) hold on %Rutina para recuperar la señal original a partir de la muestreada [xm,xn]=meshgrid(t,td); aux=(pi/ts)*(xm-xn)+eps; yi=yd*(sin(aux)./(aux)); %Grafica de la señal recuperada plot(t,yi,'r') title('Señal recuperada') axis([a,b,m,M]) hold off
Practica 3
Cuantización
Objetivo: Observar el efecto de la digitalización de una señal y el ruido de cuantización. Introducción: La cuantización se refiere al proceso en el que una señal analógica se aproxima a una señal que puede tomar solamente un númeroresultado finito de La señal digital de valores. la cuantificación es diferente a la señal analógica que la originó debido a lo que se conoce como error de cuantificación. El error de cuantificación se interpreta como un ruido añadido a la señal tras el proceso de decodificación digital. La cuantificación no tendrá ninguna consecuencia si el ruido añadido con la cuantificación se mantiene por debajo del ruido presente en la señal analógica original.
Desarrollo:
1. Hacer un programa en Matlab qu quee simule la cconversión onversión analógic analógicaa a digital y que recupere la señal original a partir de la señal digital con la sumatoria de funciones de interpolación. 2. Trabajar con la señal definida por: 3. Muestrear la señal a una frecuencia 3 veces mayor a la del armónico de mayor frecuencia y luego digitalizar con una resolución de 1 unidad. Graficar el muestreo de la señal y su digitalización. Reconstruir la señal analógica a partir de sus muestras digitalizadas y compararla con con la señal original. 5. Hacer una grafica de la magnitud del error de cuantización. 6. Aumentar la frecuencia de muestreo 10 veces más y observar si se reduce la magnitud del error. 7. Regresar ahora a la frecuencia de muestreo anterior (3 veces mayor a la del armónico de mayor frecuencia) y mejorar la resolución en un factor de 10. Observar lo que sucede con la magnitud del error. 8. Simular un la digitalización de un convertidor A/D de 4 bits con niveles entre 0 y 5 Volt.
4.
9. Desplazar la señal para que todos sus valores caigan dentro del intervalo del convertidor agregando un ‘offset’ 10. Anotar conclusiones
%Practica 3. Procesamiento Digital de Senales %Programa que muestra la digitalizacion de una senal %Desarrollado por: Marcial Castro Muñoz %25 de febrero de 2009 %Limpiar variables, funciones, ventana de comandos y figuras clear; clc; clf %constantes f1=2 ; f2=4.5; %Frecuencias de los armónicos a1=2; a2=3; %Amplitud de los armónicos fs=10; %Frecuencia de muestreo %Constantes para definir los intervalos de la gráfica m=-6; M=6; a=-1; b=1; r=2; % Resolución %Crear el vector de tiempo cuasicontinuo fc=100*fs tc=1/fc t=[a:tc:b]; %Crea el vector de tiempo de señal muestreada ts=1/fs td=[a:ts:b]; %Señal a interpolar yc=a1*sin(2*pi*f1*t)+a2*sin(2*pi*f2*t); %Señal muestreada yd=a1*sin(2*pi*f1*td)+a2*sin(2*pi*f2*td); %Conversión a señal digital con resolución r ydg=round(yd/r)*r; %Graficar ambas señales subplot(2,1,1) stem(td,yd,'o') grid on title('Señal muestreada / Señal digitalizada') hold on stem(td,ydg,'*r') axis([a,b,m,M]) subplot(2,1,2) plot(t,yc) grid on title('Señal original') axis([a,b,m,M]) hold on %Rutina para recuperar la señal original a partir de la muestreada y %digitalizada [xm,xn]=meshgrid(t,td); aux=(pi/ts)*(xm-xn)+eps; yid=yd*(sin(aux)./(aux)); yidg=ydg*(sin(aux)./(aux)); %Grafica de la señal recuperada plot(t,yid,'g')
plot(t,yidg,'r') title('Señal recuperada') axis([a,b,m,M]) hold off figure(1)
Practica 4 Operaciones con señales. Objetivo: Realizar operaciones básicas con señales. Introducción: En muchas ocasiones es necesario considerar señales que son el resultado de una pequeña transformación de otra señal. Un tipo importante de este tipo de transformación en el tiempo es el corrimiento en el tiempo donde la señal original es desplazada en el eje del tiempo, ya sea para atrasarla o adelantarla; para una señal discreta equivale a un corrimiento en la variable independiente n y se representa como x[n-n o] (no es el corrimiento). Otro es la inversión en el tiempo donde la señal es vista como una reflexión en el en n=0 y se representa como x[-n]. Además de estas operaciones están las suma, resta y multiplicación entre señales.
Desarrollo: 1. Hacer funciones que generen secuencias de tipo impulso, escalón, exponencial y sinusoidal, todas estas discretas. Guardarlas con el nombre de la función. 2. Generar las siguientes señales discretas y graficar. a) >> [x,nx]=impseq(4,-5,10); >> xn=2*x; >> stem(nx,xn)
b) >> [y,ny]=stepseq(2,-5,15); >> yn=2*y; >> stem(ny,yn)
c)
>> [w,nw]=expseq(-0.2,-5,50); >> wn=0.5*w; >> stem(nw,wn);
d)
>> [z,nz]=sinseq(4,-0.2,0, -30,60); >> stem(nz,zn);
3. Hacer otras funciones que ejecuten las operaciones de inversión, corrimiento, suma y multiplicación. Guardarlas con el nombre de la función. 4. Realizar las siguientes operaciones con las funciones generadas en el punto 2 y graficar el resultado. resultado. a) >> [aux,n]=impseq(4,-5,10); >> x=2*aux; >> [aux,m]=stepseq(2,-5,15); >> y=3*aux; >> [r,nr]=sigadd(x,n,y,m); >> stem(nr,r) b) implementa y(n)=x1(n) * x2(n) [y,n]=sigmult(x1,n1,x2,n2) y=producto de las dos secuencias x1=primera secuencia x2=segunda secuencia
>> [r,nr]=sigmult(wn, nw, zn, nz); >> stem(nr,r)
c)
>> [r,nr]=sigmult(wn, nw, zn, nz); >> stem(nr,r)
d) e) f) 5. Generar y graficar 6. Generar y graficar
7. Graficar y comparar
x1[n]=sen( (!/4)*n )
0> syms z >> pretty(simplify(z/(z-2))) z ----z-2
ans = k^n
>> pretty(simplify(iztrans(z/(z-k)))) n k
calcula la
RESIDUEZ Desarrollo en fracciones parciales para la Transformada-Z [R,P,K] = RESIDUEZ(B,A) encuentra los términos del desarrollo en fracciones fracciones parciales de la Transformada-Z definida por B(z) r(1) r(n) ---- = ----------------------- +... ----------------------- + k(1) + k(2)z^(-1) ... A(z) 1-p(1)z^(-1) 1-p(n)z^(-1) Si hubiera raíces múltiples (CUIDADO) el desarrollo incluiría términos R(j) R(j+1) R(j+m-1) -------------------------- + ----------------------------------- + ... + ----------------------------------1 - P(j)z^(-1) (1 - P(j)z^(-1))^2
(1 - P(j)z^(-1))^m
Ejemplos: 1. Obtener el desarrollo en fracciones parciales de H(z)
>> B = [-4 , 8]; R= -12 8 P= -4
A = [1 , 6 , 8];
[R,P,K] = residuez(B,A)
Esos parámetros corresponden al desarrollo:
-2 K= [] 2. Obtener el desarrollo en fracciones parciales de H(z)
>> B=[1 , -4 , 3]; R= 0.5333 0.1667 P= 5 2 K= 0.3000
A=[1 , -7 , 10];
[R,P,K] = residuez(B,A)
Estos parámetros corresponden al desarrollo:
Ejercicios: 1. Obtener el desarrollo en fracciones parciales y a partir de ahí la transformada z inversa. Verificar el resultado con el cálculo de la transformada Z inversa de matlab. a)
b)
c)
d)
e)
Practica 9. Respuesta en frecuencia frecuencia Ejercicio: 1. Un
sistema
LIT
esta
descrito
por
la
ecuación
de
diferencias
donde x[n] donde x[n] es es la entrada y y[n] y y[n] es es la salida. a) Determinar la función de transferencia H(z) transferencia H(z).. b) Obtener la respuesta en frecuencia
sustituyendo
clear; clc; clf; K=500; k=0:1:K; w=pi*k/K; num=1 ; den=1-0.8*exp(-j*1*w); H=num./den; magH=abs(H); angH=angle(H); subplot(2,1,1); plot(w/pi, magH); grid; xlabel('frecuencia en unidades de pi'); ylabel('|H|'); title('Respuesta en frecuencia (Magnitud)'); subplot(2,1,2); plot(w/pi,angH/pi); grid; xlabel('frecuencia en unidades de pi'); ylabel('Fase en pi radianes'); title('Respuesta en frecuencia (Fase)'); clear; clc b=1 ; a=[1,-0.8]; freqz(b,a)
clear; clc b=1 ; a=[1,-0.8]; fvtool(b,a)
c) Calcular la respuesta del sistema a una entrada: e ntrada: clear; clc b=1 ; a=[1,-0.8]; n=[0:150]; x=cos(0.05*pi*n); y=filter(b,a,x); subplot(2,1,1); stem(n,x,'.'); xlabel('n'); ylabel('x[n]'); title('Secuenciaa de entrada'); title('Secuenci subplot(2,1,2); stem(n,y,'.'); xlabel('n'); ylabel('y[n]'); title('Secuenciaa de salida'); title('Secuenci
.
d) Obtener la magnitud de salida del sistema para las frecuencias de 0.01 !, 0.1!, 0.2!, 0.3!, 0.4!, 0.5!, 0.8!, 0.99!. Graficar el resultado y comparar con la grafica de respuesta en frecuencia para la magnitud. 2. Obtener la respuesta en frecuencia y la respuesta al impulso de los siguientes sistemas. Utilizar preferentemente la función FVTOOL a)
b)
c)
Practica 10. Análisis Espectral. El análisis espectral se refiere al proceso de descomposición de una señal en sus componentes de frecuencia. Con este análisis se obtiene de cada componente de frecuencia una magnitud y una fase que representan lo que conocemos como transformada de Fourier. Para el caso de señales discretas se tiene la correspondiente transformada de Fourier de tiempo discreto (DTFT) la cual es una representación de la misma señal pero en el domino de la frecuencia discreta. Con la DTFT se obtiene una función continua de la frecuencia discreta ! que se puede obtener directamente de la expresión matemática que la define,
(1)
Si la señal a analizar fuera de duración infinita seria imposible evaluar numéricamente la expresión anterior debido a las limitaciones de memoria en los equipos de computo. Sin embargo si la señal es de duración finita entonces la ecuación se puede calcular para cualquier valor de frecuencia. Desafortunadamente la cantidad de operaciones y los requerimientos de memoria aumentan de forma exponencial con el número de muestras. Para sobrepasar este inconveniente se definió una nueva transformada denominada transformada discreta de Fourier DFT que equivale al desarrollo en series de Fourier para la señal a analizar. Para esto se supone que la señal representa solo un periodo de una señal ficticia de la cual se calcula su serie. Además se desarrollo la trasformada rápida de Fourier FFT que calcula la DFT mediante un la algoritmo que realiza las operaciones de forma eficiente. Existe una rutina en Matlab “fft” que calcula la FFT y que puede usarse para analizar espectralmente una secuencia de duración finita. La función regresa el mismo número de datos que los que se ingresan. Si se utiliza una secuencia de 10 elementos la fft regresa 10 datos que representan los componentes de frecuencia de la secuencia original espaciados por 2!/N radianes, donde N representa el número de muestras de la señal. El orden en que la función “fft” de matlab entrega los componentes de frecuencia es diferente a como estamos acostumbrados a graficarlos (frecuencias positivas a la derecha y negativas a la izquierda), nos da los componentes de frecuencia negativa a la derecha después del ultimo componente de frecuencia positiva. Para ordenar los componentes de frecuencia en el orden acostumbrado se utiliza la función “fftshift”. Otras funciones comunes en el análisis espectral son “abs” y “angle” la primera para obtener el valor absoluto de una señal compleja y la segunda para la fase.
Ejemplo: 1. Graficar el contenido espectral de la señal seña l usando la transformada rápida de Fourier. Programa: clear; clc ; clf ; N=400 ; n=[0:N]; %Necesitamos limitar la señal original a un número finito de muestras W=2*pi/N; w=-N/2:N/2; w=w*2/N; % Construimos Construimos el vector de frecuencias x=cos(0.1*pi*n); y=abs(fftshift(fft(x));) y=abs(fftshift(fft( x));) %Calculamos la transformada de Fourier, reordenamos con fftshift subplot(2,1,1); stem(n,x,'.'); xlabel('n'); ylabel('x[n]'); title('Secuencia x[n]'); subplot(2,1,2); stem(w,y,'.'); xlabel('w (pi radianes)'); ylabel('y[n]'); title('Analisis Espectral. Magnitud'); axis tight
Como era de esperarse, en la gráfica aparece un componente de frecuencia en 0.1 ! radianes pero también aparecen algunos componentes de amplitud pequeña a otras frecuencias. Esto se debe a que la señal esta truncada, es decir limitada a un número finito de muestras. Es posible obtener una representación limpia (sin otras frecuencias diferentes a la de la señal original) si el truncamiento se da exactamente para períodos completos. Enseguida se da una muestra para el truncamiento en un solo período.
2. Generar una señal cuyas frecuencias sea 0.9 ! y graficar su contenido espectral junto con la secuencia. 3. Generar una señal con tres tonos diferentes sobrepuestos cuyas frecuencias son 0.1!, 0.3! 0.7! y graficar su contenido espectral junto con la secuencia. En este caso la expresión matemática para la señal a analizar es una suma de tres funciones coseno a las frecuencias mencionadas.. 4. Analizar el contenido espectral de la señal impulso unitario localizado en n=100 con 0 B = fir1(5,0.5,triang(6)) xb=filter(B,1,x); figure(2); subplot(2,1,1); stem(n,xb,'.'); xlabel('n'); ylabel('xf[n]'); title('Secuencia xb[n]'); yb=abs(fftshift(fft(xb))); subplot(2,1,2); stem(w,yb,'.'); xlabel('w (pi radianes)'); ylabel('yb[n]'); title('Analisis Espectral. Magnitud'); axis tight
Ejercicios I. Diseñar analizar y probar un filtro FIR pasa-banda de 10º orden cuyas frecuencias de corte sean 0.3! y 0.7!. Utilizar el método de ventana Hamming. II. Diseñar analizar y probar un filtro FIR pasa-altas de 9º orden cuya frecuencia de corte sean 0.7!. Utilizar el método muestreo en frecuencia. III. Diseñar analizar y probar un filtro FIR pasa-altas de 9º orden cuya frecuencia de corte sean 0.7!. Utilizar el método de aproximación por mínimos cuadrados.