La modulación de densidad de pulso , o PDM , es una forma de modulación que se utiliza para representar una señal analógica con una señal binaria . En una señal PDM, los valores de amplitud específicos no se codifican en palabras clave de pulsos de diferente peso como lo estarían en la modulación de código de pulso (PCM); más bien, la densidad relativa de los pulsos corresponde a la amplitud de la señal analógica. La salida de un DAC de 1 bit es la misma que la codificación PDM de la señal.
En un flujo de bits de modulación de densidad de pulso , un 1 corresponde a un pulso de polaridad positiva (+ A ) y un 0 corresponde a un pulso de polaridad negativa (- A ). Matemáticamente, esto se puede representar como
donde x [ n ] es el flujo de bits bipolar (ya sea − A o + A ) y a [ n ] es el flujo de bits binario correspondiente (ya sea 0 o 1).
Una ejecución compuesta únicamente de unos correspondería al valor de amplitud máximo (positivo), todos los ceros corresponderían al valor de amplitud mínimo (negativo) y la alternancia de unos y ceros correspondería a un valor de amplitud cero. La forma de onda de amplitud continua se recupera mediante un filtrado de paso bajo del flujo de bits PDM bipolar.
Un único período de la función seno trigonométrica , muestreado 100 veces y representado como un flujo de bits PDM, es:
010101101111011111111111111111111101111110110110101010010010000001000000000000000000000001000010010101
Dos períodos de una onda sinusoidal de mayor frecuencia aparecerían como:
01011011111111111111011010100100000000000001000100110111011111111111111011010100100000000000000100101
En la modulación por densidad de pulsos , se produce una alta densidad de 1s en los picos de la onda sinusoidal, mientras que una baja densidad de 1s se produce en los valles de la onda sinusoidal.
Un flujo de bits PDM se codifica a partir de una señal analógica mediante el proceso de modulación delta-sigma de 1 bit . Este proceso utiliza un cuantificador de un bit que produce un 1 o un 0 dependiendo de la amplitud de la señal analógica. Un 1 o un 0 corresponden a una señal que está completamente hacia arriba o hacia abajo, respectivamente. Debido a que en el mundo real, las señales analógicas rara vez están completamente en una dirección, existe un error de cuantificación, la diferencia entre 1 o 0 y la amplitud real que representa. Este error se retroalimenta negativamente en el bucle del proceso ΔΣ. De este modo, cada error influye sucesivamente en todas las demás mediciones de cuantificación y en su error. Esto tiene el efecto de promediar el error de cuantificación.
El proceso de decodificar una señal PDM en una analógica es simple: solo hay que pasar la señal PDM a través de un filtro de paso bajo . Esto funciona porque la función de un filtro de paso bajo es esencialmente promediar la señal. La amplitud promedio de los pulsos se mide por la densidad de esos pulsos a lo largo del tiempo, por lo que un filtro de paso bajo es el único paso necesario en el proceso de decodificación.
La modulación por ancho de pulso (PWM) es un caso especial de PDM donde la frecuencia de conmutación es fija y todos los pulsos correspondientes a una muestra son contiguos en la señal digital. El método para la demodulación a una señal analógica sigue siendo el mismo, pero la representación de una señal del 50% con una resolución de 8 bits, una forma de onda PWM se encenderá durante 128 ciclos de reloj y luego se apagará durante los 128 ciclos restantes. Con PDM y la misma frecuencia de reloj, la señal alternaría entre encendido y apagado cada dos ciclos. El promedio obtenido por un filtro de paso bajo es el 50% del nivel máximo de señal para ambas formas de onda, pero la señal PDM cambia con más frecuencia. Para nivel 100% o 0% son iguales, con la señal permanentemente encendida o apagada respectivamente.
En particular, una de las formas en que los sistemas nerviosos animales representan información sensorial y de otro tipo es a través de la codificación de velocidad , mediante la cual la magnitud de la señal se relaciona con la velocidad de activación de la neurona sensorial. [ cita necesaria ] En analogía directa, cada evento neuronal, llamado potencial de acción, representa un bit (pulso), y la velocidad de activación de la neurona representa la densidad del pulso.
El siguiente modelo digital de modulación de densidad de pulso se puede obtener a partir de un modelo digital de un modulador delta-sigma de 1 bit de primer orden . Considere una señal en el dominio del tiempo discreto como la entrada a un modulador delta-sigma de primer orden, con la salida. En el dominio de la frecuencia discreta , donde se ha aplicado la transformada Z a la serie temporal de amplitud para producir , la salida de la operación del modulador delta-sigma está representada por
¿Dónde está el error de cuantificación en el dominio de la frecuencia del modulador delta-sigma? Reordenando los términos obtenemos
El factor representa un filtro de paso alto , por lo que está claro que contribuye menos a la salida en bajas frecuencias y más en altas. Esto demuestra el efecto de modelado del ruido del modulador delta-sigma: el ruido de cuantificación es "empujado" desde las frecuencias bajas hasta el rango de frecuencias altas.
Usando la transformada Z inversa , podemos convertir esto en una ecuación en diferencias que relaciona la entrada del modulador delta-sigma con su salida en el dominio del tiempo discreto ,
Hay dos restricciones adicionales a considerar: primero, en cada paso la muestra de salida se elige para minimizar el error de cuantificación "en ejecución". Segundo, se representa como un solo bit, lo que significa que sólo puede tomar dos valores. Elegimos por conveniencia, permitiéndonos escribir
Reorganizando para resolver los rendimientos:
Esto, finalmente, proporciona una fórmula para la muestra de salida en términos de la muestra de entrada . El error de cuantificación de cada muestra se retroalimenta a la entrada de la siguiente muestra.
El siguiente pseudocódigo implementa este algoritmo para convertir una señal de modulación de código de pulso en una señal PDM:
// Codificar muestras en modulación de densidad de pulso // usando un modulador sigma-delta de primer ordenfunction pdm( real[0..s] x, real qe = 0) // el error de ejecución inicial es cero var int[0..s] y para n de 0 a s hacer qe := qe + x[n] si qe > 0 entonces y[n] := 1 demás y[n] := −1 qe := qe - y[n] return y, qe // devuelve la salida y el error de ejecución
PDM es la codificación utilizada en el formato Super Audio CD (SACD) de Sony , bajo el nombre Direct Stream Digital .
PDM también es la salida de algunos micrófonos MEMS . [1]
Algunos sistemas transmiten audio estéreo PDM a través de un único cable de datos. El flanco ascendente del reloj maestro indica un bit del canal izquierdo, mientras que el flanco descendente del reloj maestro indica un bit del canal derecho. [2] [3] [4]