Ejemplo de demostración del fenómeno del aliasing
De ISAwiki
La siguiente función dibuja una señal analógica y los puntos en los que se produce el muestreo a partir de los siguientes parámetros:
- la frecuencia f de la señal analógica
- la frecuencia de muestreo fm
- y el intervalo de tiempo (en segundos) que se muestra en la pantalla
Para ejecutarla, crea un archivo aliasing.m
y pega en él el código de la función. Ejecútala desde la línea de comandos. Algunos ejemplos:
- Señal de 25 Hz muestreada a 24 Hz, representada a lo largo de 1 segundo
aliasing(25,24,1)
. Puede observarse cómo la señal analógica de 25 Hz "se transforma" en una de una discreta frecuencia de exactamente 1 Hz - Señal de 12 Hz muestreada a 24 Hz, representada a lo largo de 1 segundo
aliasing(12,24,1)
. Esta es exactamente la frecuencia de Nyquist, a partir de la cual se pierde la información según el Teorema de Nyquist. - Señal de 3 Hz muestreada a 24 Hz, representada a lo largo de 1 segundo
aliasing(3,24,1)
. A esta frecuencia no se produce pérdida de información y es posible restaurar la señal original a partir de las muestras.
function aliasing(f,fm,tmax) % Demostracion del fenomeno aliasing utilizando señales senoidales % [] = aliasing(f,fm,tmax) % % % f: frecuencia de la señal % fm: frecuencia de muestreo % tmax: rango en segundos mostrado en pantalla fmcont = inv(tmax/1000); t = 0:inv(fmcont):tmax; tk= 0:inv(fm):tmax; figure(1); plot(t,sin(2*pi*f*t)); hold on; plot(tk,sin(2*pi*f*tk),'ro-'); hold off; axis([0 tmax -1.2 1.2]); grid on; title(strcat('fm=', num2str(fm), ' f=', num2str(f))); drawnow;