Modulación de Impulsos de Duración (PDM)

From glossaLAB

[gL.edu] Este artículo recoge contribuciones de Maria del Carmen Molina Mata, elaboradas en el contexto de la Clarificación conceptual en torno a los Sistemas de transmisión, bajo la supervisión de J.M. Díaz Nafría.

Observaciones del docente: Este artículo requiere las mejoras indicadas a continuación:
  • Esta modulación es de aplicación muy específica en sistemas de grabación y según se indica de control de potencia, pero debería clarificarse que no ha de confundirse con la modulación de duración de impulsos a la que nos hemos referido en el artículo de modulación dentro de las modulaciones de impulsos analógicas.
  • Por otra parte no se expone con claridad ni cómo se codifica la información, ni cómo se modela matemáticamente, ni cómo se genera la seña modulada y se demodula.

Definiciones

La modulación de impulsos de duración (PDM) sirve para representar una señal analógica en el dominio digital, al igual que ocurre con otro tipo de modulaciones. Además de su uso para transmitir señales, la aplicación principal de esta modulación es permitir el control de la potencia suministrada a dispositivos electrónicos.[1]

En cuanto a la transmisión de señales, a diferencia de la modulación de impulsos codificados (MIC), en que la amplitud de una señal no se codifica asignándole unos valores de amplitud según el número de niveles de cuantificación, sino que en PDM la amplitud se representa por densidad o número de impulsos en función del tiempo.

Este tipo de modulación se aplica en la tecnología Super Audio CD (SACD) que se trata de un tipo de disco óptico desarrollado conjuntamente por Philips y Sony, diseñado para suministrar audio de alta definición.[2]

La modulación por ancho de pulsos (PWM), es un tipo de modulación PDM en la que los impulsos que corresponden a una muestra son contiguos en la señal digital.

En la tasa de bits que resulta de PDM, un 1 corresponde a un pulso de polaridad positiva (+A) y un 0 corresponde a un pulso de polaridad negativa (-A) y esto se puede expresar como: [3]

Donde:

  • es el pulso bipolar (-A o +A)
  • es la tasa binaria de bits resultante (0 ó 1)

Codificación

Una tasa de bits PDM codifica una señal analógica mediante la modulación sigma-delta, que utiliza un cuantificador de 1 bit, que genera un 1 o un 0 dependiendo de la amplitud de la señal analógica.

Si se obtiene todo 1s, o bien todo 0s, estaríamos ante una señal que siempre tiene valores máximos, positivos o negativos, respectivamente. Como esto es raro que ocurra si no es de forma teórica, estaríamos hablando de que tenemos un error de cuantificación (ver artículo Error de cuantificación)

Decodificación

Para decodificar la señal PDM y obtener la señal analógica inicial, el proceso consiste en filtrar la señal bipolar que resulta con un filtro analógico paso bajo.

Código

El siguiente código sirve para representar una señal PWM dados: frecuencia y amplitud de portadora y frecuencia y amplitud de señal de entrada.

% Representación de una Señal PWM

t = 0:0.001:1;
fc = input('Introduce la Frecuencia de la Señal Portadora = ');
fm = input('Introduce la Frecuencia de la Señal de Entrada = ');
a = input('Introduce la Amplitud de la Señal Portadora = ');
b = input('Introduce la Amplitud de la Señal de Entrada (debe ser < que la señal portadora) = ');

%Genera las señales
vc = a.*sin(2*pi*fc*t);
vm = b.*sin(2*pi*fm*t);
n = length(vc);
for i = 1:n
    if (vm(i)>=vc(i))
        pwm(i) = 1;
    else
        pwm(i) = 0;
    end
end

% Representa la Señal de Entrada
subplot(3,1,1);
plot(t,vm,'black');
xlabel('Tiempo ----->');
ylabel('Amplitud ----->');
title('Mensaje de Entrada');
legend('Mensaje de Entrada ---->');
grid on;

% Representa la Señal Portadora 
subplot(3,1,2);
plot(t,vc);
xlabel('Muestra ----->');
ylabel('Amplitud ----->');
title('Señal Portadora');
legend('Señal Portadora ---->');
grid on;

% Representación de la Señal PWM
subplot(3,1,3);
plot(t,pwm,'red');
xlabel('Muestra ----->');
ylabel('Amplitud ----->');
title('Señal PWM');
legend('Señal PWM ---->');
axis([0 1 0 2]);
grid on;


Después de ejecutar el código obtenemos las siguientes señales:

Señal PWM

Referencias

  1. Banerji,S.(2023). Pulse Width Modulation. MATLAB Central File Exchange.https://www.mathworks.com/matlabcentral/fileexchange/42168-pulse-width-modulation
  2. Wikipedia(2022). Modulación PDM. https://es.wikipedia.org/wiki/Modulaci%C3%B3n_PDM
  3. Veliz,E., Angulo,A.(2010). Modulación PDM. https://es.scribd.com/document/27545715/modulacion-Pdm