Modulação de densidade de pulso - Pulse-density modulation

A modulação por densidade de pulso , ou PDM , é uma forma de modulação usada para representar um sinal analógico com um sinal binário . Em um sinal PDM, os valores de amplitude específicos não são codificados em palavras-código de pulsos de peso diferente como seriam na modulação por código de pulso (PCM); em vez disso, a densidade relativa dos pulsos corresponde à amplitude do sinal analógico. A saída de um DAC de 1 bit é igual à codificação PDM do sinal. A modulação por largura de pulso (PWM) é um caso especial de PDM onde a frequência de chaveamento é fixa e todos os pulsos correspondentes a uma amostra são contíguos no sinal digital. Para uma tensão de 50% com uma resolução de 8 bits, uma forma de onda PWM será ativada por 128 ciclos de clock e, em seguida, desativada pelos 128 ciclos restantes. Com o PDM e a mesma taxa de clock, o sinal alternaria entre ligado e desligado a cada dois ciclos. A média é 50% para ambas as formas de onda, mas o sinal PDM muda com mais frequência. Para o nível de 100% ou 0%, eles são iguais.

Descrição

Em uma modulação de impulsos em densidade bitstream de 1 corresponde a um impulso de polaridade positiva (+ A ), e um 0 corresponde a um impulso de polaridade negativa (- A ). Matematicamente, isso pode ser representado como

onde x [ n ] é o fluxo de bits bipolar (- A ou + A ) e a [ n ] é o fluxo de bits binário correspondente (0 ou 1).

Uma corrida consistindo em todos os 1s corresponderia ao valor de amplitude máxima (positivo), todos os 0s corresponderiam ao valor de amplitude mínimo (negativo) e 1s e 0s alternados corresponderiam a um valor de amplitude zero. A forma de onda de amplitude contínua é recuperada pela filtragem passa-baixa do fluxo de bits PDM bipolar.

Exemplos

Um único período da função seno trigonométrica , amostrado 100 vezes e representado como um fluxo de bits PDM, é:

010101101111011111111111111111111111011111101101101010100100100100000010000000000000000000001000010010101

Um exemplo de PDM de 100 amostras de um período de uma onda senoidal. 1s representado por azul, 0s representado por branco, sobrepostos pela onda senoidal.

Dois períodos de uma onda senoidal de frequência mais alta apareceriam como:

01011011111111111111110110101001000000000000010001001101110111111111111111011010100100000000000000100101

Um segundo exemplo de PDM de 100 amostras de dois períodos de uma onda senoidal com o dobro da frequência

Na modulação de densidade de pulso, uma alta densidade de 1s ocorre nos picos da onda senoidal, enquanto uma baixa densidade de 1s ocorre nos vales da onda senoidal.

Conversão analógica para digital

Um fluxo de bits PDM é codificado a partir de um sinal analógico por meio do processo de modulação delta-sigma . Este processo usa um quantizador de um bit que produz 1 ou 0 dependendo da amplitude do sinal analógico. Um 1 ou 0 corresponde a um sinal que está totalmente para cima ou para baixo, respectivamente. Como no mundo real, os sinais analógicos raramente estão totalmente em uma direção, há um erro de quantização, a diferença entre 1 ou 0 e a amplitude real que ele representa. Este erro é realimentado negativamente no loop do processo ΔΣ. Desta forma, todo erro influencia sucessivamente todas as outras medidas de quantização e seu erro. Isso tem o efeito de calcular a média do erro de quantização.

Conversão digital para analógico

O processo de decodificação de um sinal PDM em um analógico é simples: basta passar o sinal PDM por um filtro passa-baixo . Isso funciona porque a função de um filtro passa-baixa é essencialmente fazer a média do sinal. A amplitude média dos pulsos é medida pela densidade desses pulsos ao longo do tempo, portanto, um filtro passa-baixa é a única etapa necessária no processo de decodificação.

Relação com a biologia

Notavelmente, uma das maneiras pelas quais os sistemas nervosos animais representam as informações sensoriais e outras é por meio da codificação de taxa, em que a magnitude do sinal está relacionada à taxa de disparo do neurônio sensorial. Em analogia direta, cada evento neural - chamado de potencial de ação - representa um bit (pulso), com a taxa de disparo do neurônio representando a densidade do pulso.

Algoritmo

Modulação de densidade de pulso de uma onda senoidal usando este algoritmo

Um modelo digital de modulação de densidade de pulso pode ser obtido a partir de um modelo digital do modulador delta-sigma . Considere um sinal no domínio do tempo discreto como a entrada para um modulador delta-sigma de primeira ordem, com a saída. No domínio da frequência discreta , onde a transformada Z foi aplicada à série temporal de amplitude para render , a saída da operação do modulador delta-sigma é representada por

onde está o erro de quantização no domínio da frequência do modulador delta-sigma. Reorganizando os termos, obtemos

O fator representa um filtro passa-altas , portanto, é claro que contribui menos para a saída em baixas frequências e mais em altas frequências. Isso demonstra o efeito de modelagem de ruído do modulador delta-sigma: o ruído de quantização é "empurrado" das frequências baixas para a faixa de alta frequência.

Usando a transformada Z inversa , podemos converter isso em uma equação de diferença que relaciona a entrada do modulador delta-sigma à sua saída no domínio do tempo discreto ,

Existem duas restrições adicionais a serem consideradas: primeiro, em cada etapa, a amostra de saída é escolhida de modo a minimizar o erro de quantização "em execução" . Em segundo lugar, é representado como um único bit, o que significa que pode assumir apenas dois valores. Escolhemos por conveniência, permitindo-nos escrever

Isso, finalmente, fornece uma fórmula para a amostra de saída em termos da amostra de entrada . O erro de quantização de cada amostra é realimentado na entrada da amostra seguinte.

O pseudocódigo a seguir implementa este algoritmo para converter um sinal de modulação de código de pulso em um sinal PDM:

// Encode samples into pulse-density modulation
// using a first-order sigma-delta modulator

function pdm(real[0..s] x, real qe = 0) // initial running error is zero
    var int[0..s] y
  
    for n from 0 to s do
        if x[n] ≥ qe then
            y[n] := 1
        else
            y[n] := −1
        qe := y[n] − x[n] + qe
  
    return y, qe // return output and running error

Formulários

PDM é a codificação usada no formato Super Audio CD (SACD) da Sony , sob o nome Direct Stream Digital .

Alguns sistemas transmitem áudio estéreo PDM em um único cabo de dados. A borda de subida do relógio mestre indica um bit do canal esquerdo, enquanto a borda de descida do relógio mestre indica um bit do canal direito.

Veja também

Referências

Leitura adicional

  • Conversores A / D e D / A de 1 bit  - Discute modulação delta , PDM (também conhecido como modulação Sigma-delta ou SDM) e relações com modulação por código de pulso (PCM)
  • Kite, Thomas (2012). "Compreendendo o áudio digital PDM" (PDF) . Precisão de áudio . Retirado em 19 de janeiro de 2017 .