Sunteți pe pagina 1din 8

Simulaciones de Procesamiento digital de Señales:

Variación de la Tasa de muestreo.

Alumno:

Joam Manuel Rincón Zuluaga.

Profesor:

Dr. Pablo Pérez Alcázar.

Presentado en el Segundo semestre de 2104.

Ingeniería Eléctrica/Electrónica.

Facultad de ingeniería.

Universidad Nacional Autónoma de México.


Objetivo: Se desea observar lo que ocurre con el espectro de una señal determinística ante la
variación de la frecuencia de muestreo.

Procedimiento: Se genera una señal coseno con amplitud unitaria, frecuencia fundamental igual a
60 Hz, sin desfase y con una duración en el tiempo de 0.5 segundos. La señal inicialmente es
muestreada a cien veces la frecuencia natural. En seguida se obtiene su espectro tanto en
magnitud como en fase. Finalmente se comienza variar la frecuencia de muestreo para observar
que efecto tiene sobre el espectro.

Discusión: Para la generación de la señal coseno y su espectro con las condiciones iniciales
especificadas en el procediendo, se propone el algoritmo 1 que permite ver la gráfica de la señal
en tiempo y en la frecuencia. En la figura 1 y 2 se muestran los resultados gráficos del algoritmo 1.
Hay que anotar que en el algoritmo 1 se empleó el comando nextpow2 para hacer que la cantidad
de puntos empleada por la FFT de Matlab tuviera un total de puntos en potencias de dos (como lo
sugiere la ayuda para la FFT de Matlab en un ejemplo de aplicación), lo cual se logra agregando
ceros o quitando algunos datos al vector que se quiere obtener el espectro.

Algoritmo 1.
%% Parametros de la señal
A = 1; % Amplitud
f = 60; % Frecuencia
T = 1/f; % Periodo
phi = 0; % Fase
t_f = 0.5; % Duración de la señal
fs = 100*f; % Frecuencia de muestreo
Ts = 1/fs; % Periodo de muestreo
%% Generacion de la señal
t = (0:Ts:t_f-Ts); % Vector de tiempo (va hasta N-1 datos)
x = A*cos(2*pi*f*t+phi); % Valores discretos de la señal
%%% Grafica de la señal en el tiempo
figure(1);
plot(t,x);
xlabel('Tiempo (seg)')
ylabel('Magnitud (U.A.)')
title('Señal Cosenoidal de 60 Hz')
%% Espectro de la señal
NFFT = 2^nextpow2(length(x)); % Dado que el algoritmo está diseñado en fragmentos
potencia de dos
F_x = fft(x,NFFT)/length(x); % Cálculo del valor Complejo de FFT y normalizada a
N datos como describe su ecuación
w = fs/2 * linspace(0,1,NFFT/2+1);
p = angle(F_x); % Angle calcula el fase de un arreglo de enteros
p = (unwrap(p(1:NFFT/2+1))*(180/pi));
%%% Grafica de la señal en la frecuencia
figure(2);
subplot(2,1,1)
plot(w,1*abs(F_x(1:NFFT/2+1)));
xlabel('Frecuencia (Hz)')
ylabel('Magnitud (U.A.)')
title('Espectro en frecuencia de la Señal Cosenoidal de 60 Hz')
subplot(2,1,2)
plot(w,p);
xlabel('Frecuencia (Hz)')
ylabel('Angulo (Grados)')
title('Fase en frecuencia de la Señal Cosenoidal de 60 Hz')

Fig. 1. Señal cosenoidal de 𝑓𝑜 = 60 𝐻𝑧, amplitud unitaria y sin desfase muestreada a 𝑓𝑠 = 100𝑓𝑜 .

Fig. 2. Espectro en magnitud y fase de la señal propuesta.


De la figura 2 se observa que el espectro en magnitud se encuentra acorde a la teoría, un impulso
ubicado en la frecuencia de natural de 60 Hz con la amplitud igual a la mitad de la inicial, ya que la
otra mitad se encuentra en la parte negativa del espectro, o graficada por idéntica a la parte
positiva. Lo que se observa defectuoso en la respuesta en fase de la señal, ya que tiene dos
cambios de ángulo bruscos y con demasiado ruido. En un inicio se pensó que era por la
introducción de ceros o supresión de datos hecha por el comando nextpow2 para dejar la cantidad
de dato en potencias de dos; por lo anterior se suprimió el comando del algoritmo 1 y se obtuvo la
figura 3.

Fig. 3. Espectro en magnitud y fase de la señal propuesta sin el comando nextpow2.

Nuevamente en la figura 3 se observa un problema con la fase de la señal. Intuitivamente se


decido aumentar un poco la frecuencia natural de la señal a 61 Hz. El algoritmo 2 contiene las
modificaciones hechas al algoritmo 1. En la figura 4 se observa el resultado grafico del algoritmo 2

Algoritmo 2.
%% Parametros de la señal
A = 1; % Amplitud
f = 61; % Frecuencia
T = 1/f; % Periodo
phi = 0; % Fase
t_f = 0.5; % Duración de la señal
fs = 100*f; % Frecuencia de muestreo
Ts = 1/fs; % Periodo de muestreo
%% Generacion de la señal
t = (0:Ts:t_f-Ts); % Vector de tiempo (va hasta N-1 datos)
x = A*cos(2*pi*f*t+phi); % Valores discretos de la señal
%%% Grafica de la señal en el tiempo
figure(1);
plot(t,x);
xlabel('Tiempo (seg)')
ylabel('Magnitud (U.A.)')
title('Señal Cosenoidal de 60 Hz')
%% Espectro de la señal
%%% Calculo de la Magnitud
F_x = fft(x)/length(x); % Cálculo del valor Complejo de FFT y normalizada
a N datos como describe su ecuación
w = fs/2 * linspace(0,1,length(x)/2+1);% La Frecuencia en Hz equivale a
fs/2 (positivo) y dividido por el número de muestras
%%% Grafica de la señal en la frecuencia
figure(2);
subplot(2,1,1)
plot(w,1*abs(F_x(1:length(x)/2+1)));
xlabel('Frecuencia (Hz)')
ylabel('Magnitud (U.A.)')
title('Espectro en frecuencia de la Señal Cosenoidal de 60 Hz')
%%% Calculo de la Fase
p = angle(F_x(1:length(x)/2+1));% Angle calcula el fase de un arreglo de
enteros
p = unwrap(p)*180/pi;
%%% Grafica de la fase del espectro
subplot(2,1,2)
plot(w,p);
xlabel('Frecuencia (Hz)')
ylabel('Angulo (Grados)')
title('Fase en frecuencia de la Señal Cosenoidal de 60 Hz')

Fig. 4. Espectro en magnitud y fase de la señal. La fase esta corregida.


En la figura 4 se observa que tras el cambio intuitivo de la frecuencia natural de la onda a 61 Hz, la
fase parece haberse arreglado mientras que la magnitud parece bajar un pocos menos con respeto
a lo esperado teóricamente (amplitud de 0.5 unidades arbitrarias). En general se observó que para
frecuencias naturales pares la magnitud del espectro estaba muy bien definida con respecto a lo
esperado teóricamente, pero su fase tenía complicaciones; de otro lado para las frecuencias
impares la fase queda más acorde a al resultado teórico, pero la amplitud no.

Podría tratar de explicarse este fenómeno si consideramos el efecto que tiene el trucar una señal
que se considera continua en una longitud de datos finitos. El problema de la fuga espectral es
inherente al análisis de Fourier de cualquier conjunto finito de datos. El “tomar una parte” de la
señal x[n], por ejemplo las N muestras, crea un efecto como de multiplicar la señal original por una
venta, digamos 𝑤[𝑛] que define nuestra señal como:

2𝜋𝑓0
𝑤[𝑛] = { cos ( 𝑛) 0≤ 𝑛 ≤ 𝑁−1
𝑓𝑠
0 𝑒𝑛 𝑜𝑡𝑟𝑜 𝑐𝑎𝑠𝑜

El proceso de truncamiento indicado o ventaneo temporal equivale a la convolución de las


transformadas de la señal original con la ventana en el dominio frecuencia, lo que produce una
transformación de un espectro ideal a una serie de picos espurios denominados lóbulos laterales.
Estos lóbulos pueden hacerse más notorios o no, dependiendo de los filtros de fuga que tiene
Matlab, en donde la FFT a pesar de ser una función para calcular el espectro, pude comportarse
como un mal filtro para ciertas frecuencias, como la de 60 Hz mostrada en la figura 2.

Una vez seguros que podremos obtener una respuesta en frecuencia aceptable, tanto en fase
como en magnitud, procedemos a hacer la variación de la frecuencia de muestreo para modificar
la cantidad de puntos que empleara la FFT y dilucidar sus efectos. Las frecuencias escogidas
fueron: 2𝑓0 , 3𝑓0 , 5𝑓0 , 10𝑓0 , 20𝑓0 , 50𝑓0. En la figuras 5, 6 y 7 se muestra los resultados gráficos de
variar la frecuencia de muestre.

Fig. 5. Izquierda: Espectro de la señal con 𝑓𝑠 = 2𝑓𝑜 Derecha: Espectro de la señal con 𝑓𝑠 = 3𝑓𝑜 .
Fig. 6. Izquierda: Espectro de la señal con 𝑓𝑠 = 5𝑓𝑜 Derecha: Espectro de la señal con 𝑓𝑠 = 10𝑓𝑜 .

Fig. 7. Izquierda: Espectro de la señal con 𝑓𝑠 = 20𝑓𝑜 Derecha: Espectro de la señal con 𝑓𝑠 = 50𝑓𝑜 .

Conclusión: La representación en serie de Fourier de una señal periódica en el tiempo continuo


puede tener infinitas componentes en la frecuencia, pero en el rango de frecuencias de las señales
𝑓 𝑓
en tiempo discreto se limita al intervalo [−𝜋, 𝜋] o equivalente en el intervalo de [− 𝑠 , 𝑠 ]. Para
2 2
calcular el espectro de la señal tanto en el tiempo continuo como en el discreto, se requieren de
los valores de la señal en todo instante de tiempo, lo que resulta realmente imposible si
consideramos que solo podremos almacenar un conjunto finito de datos; la FFT da como resultado
un espectro simétrico y puede estar caracterizado en su totalidad por sus valores dentro del
intervalo de 0 ≤ 𝜔 ≤ 𝜋; es por eso que solo evidenciamos una única función delta en la figura 2,
ya que el espectro de [−𝜋, 0] es idéntico al mostrado en la figura 2.

De otra parte vemos que la señal a la cual se le aplica la FTT proviene de una función continua en
el tiempo, por lo que al momento de muestrearla como 𝑋𝑛 = 𝑥(𝑛𝑇𝑠 ) debemos asegurarnos que el
valor del periodo de muestreo sea lo suficientemente pequeño de forma que evite la perdida de
información durante las rápidas fluctuaciones de la señal en el tiempo. Esto último cobra sentido
con la observación a través de las de figuras 5 a 7, donde se observa que a menor tasa de
muestreo y por consiguiente menor número de puntos para representar una señal, hay un
deterioro en el espectro de la señal. Particularmente, a menor cantidad de puntos en la señal
coseno, el delta que representa la magnitud de su transformada de Fourier, pierde su idealidad y
se hace más ancho, casi parecido a una función triangular, a la par que su respuesta en fase se
degrada también.

S-ar putea să vă placă și