Aliasing: ¿Qué es, cómo ocurre y cómo evitarlo?
El aliasing es un fenómeno crítico en el procesamiento digital de señales (DSP) que surge cuando la frecuencia de muestreo de una señal analógica es insuficiente. Esto puede dar lugar a distorsiones no deseadas, como la aparición de frecuencias inexistentes en la señal original. En este artículo, exploraremos los conceptos clave, los efectos del aliasing y las estrategias para evitarlo.
¿Qué es el teorema de muestreo?
El teorema de muestreo, también conocido como teorema de Nyquist-Shannon, establece que para reconstruir una señal analógica sin pérdida de información, la frecuencia de muestreo debe ser al menos el doble de la frecuencia máxima de la señal.
- Frecuencia de muestreo (Hz): Número de muestras tomadas por segundo.
- Frecuencia máxima (Hz): La componente más alta presente en la señal.
Si la frecuencia de muestreo no cumple esta condición, se produce aliasing, distorsionando el espectro de la señal.
¿Qué es el aliasing?
El aliasing ocurre cuando las frecuencias altas de una señal «se repliegan» en el espectro, apareciendo como frecuencias más bajas. Esto puede alterar la interpretación y reconstrucción de la señal original.
Ejemplo práctico
Supongamos una señal con una frecuencia de 38 kHz muestreada a 48 kHz:
- La frecuencia de Nyquist es 24 kHz (48 kHz / 2).
- Como 38 kHz supera esta frecuencia, se repliega al espectro, apareciendo como 10 kHz (48 kHz – 38 kHz).
Este efecto puede hacer que una señal inaudible (38 kHz) se convierta en audible (10 kHz), lo que puede resultar en distorsiones indeseadas.
Efectos del aliasing
El aliasing impacta significativamente la calidad de las señales digitales:
- Distorsión espectral: Alteración del espectro original de la señal.
- Pérdida de información: Señales de alta frecuencia se confunden con señales de baja frecuencia.
- Reducción de la calidad del audio: Especialmente relevante en grabaciones o reproducción.
Estrategias para evitar el aliasing
- Aumentar la frecuencia de muestreo:
Garantiza que se cumpla el criterio de Nyquist, reduciendo el riesgo de aliasing. - Filtrar la señal antes del muestreo:
- Usar un filtro paso bajo analógico para eliminar frecuencias por encima de la frecuencia de Nyquist.
- Este filtro debe aplicarse antes de la conversión de analógico a digital.
Ejemplo en código
El aliasing puede observarse fácilmente con herramientas de programación como Python. A continuación, un ejemplo práctico:
import numpy as np import matplotlib.pyplot as plt # Parámetros fs = 48_000 # Frecuencia de muestreo (Hz) t = np.linspace(0, 1, fs, endpoint=False) # Tiempo f_signal = 38_000 # Frecuencia de la señal (Hz) # Generar una señal senoidal signal = np.sin(2 * np.pi * f_signal * t) # Visualizar la señal plt.plot(t[:500], signal[:500]) # Muestra los primeros 500 puntos plt.title("Señal senoidal muestreada") plt.xlabel("Tiempo (s)") plt.ylabel("Amplitud") plt.show()
Al reproducir la señal y analizar su espectro usando la transformada discreta de Fourier (DFT), se observan componentes de aliasing cuando la frecuencia de la señal supera la frecuencia de Nyquist.