quinta-feira, 19 de março de 2020

Relação sinal ruído de quantização


Conceitos importantes

* Relação sinal-ruído ou razão sinal-ruído (frequentemente abreviada por S/N ou SNR, do inglês, signal-to-noise ratio e RSR em português) é um conceito de telecomunicações, usado em diversos campos como ciência e engenharia que envolvem medidas de um sinal em meio ruidoso, definido como a razão da potência de um sinal e a potência do ruído sobreposto ao sinal, geralmente expressa em Decibel.
\[ SNR = \frac{P_s}{P_n}\] \[ SNR_{dB} = 10 log_{10}(P_s/P_n) \]

* Amostragem. Para ser digitalizado, um sinal analógico deve ser primeiro amostrado. A taxa de amostragem mínima deve ser maior que duas vezes a maior frequência do sinal.

* Aliasing. Se a taxa de amostragem for baixa, ocorre o fenômeno de aliasing.

* Quantização. A diferença entre o sinal analógico original e sua versão quantizada é chamada de erro ou ruído de quantização. Quanto menos bits usamos na quantização, mais grosseira ela fica, e portanto mais ruído de quantização é adicionado.



Exemplo. O exemplo abaixo mostra principalmente o efeito do número de bits na relação sinal-ruído de quantização. Neste exemplo é usada uma taxa de amostragem superior a taxa de Nyquist.

Código Scilab:

/// Conversor AD: amostragem, número de bits
/// e relação sinal-ruído de quantização
/// Prof. Francisco Aquino.
/// 19/03/2020

/// Constantes de inícialização do código
xdel(winsid());
clear; clc;
p2 = 2*%pi;  // 2 "pi"
Nb = 4;  // Número de bits
N2 = 2^(Nb-1);  // 1 bit sinal

/// Sinal "contínuo" no tempo:
t = 0:0.01:4;   /// "tempo"
s = sin(p2*t) + 0.5*cos(2.5*p2*t);
s = s/max(abs(s));   // s normalizado
figure; plot(t,s);
title('Sinal no tempo');

/// Amostragem
sa = s(1:5:$); // amostragem do sinal
figure;  bar(sa,0.15); plot(s(1:5:$),'--');
title('Amostras do sinal');

/// Quantização:
saq = round(sa*N2)/N2; // sinal quantizado

/// Erro de quantização:
eq = sa - saq;
figure;  bar(eq,0.15);
title('Erros de quantização');
veq = variance(eq);
vveq = [veq];
for k=5:10
    Nb = k;  // Número de bits
    N2 = 2^(Nb-1);  // 1 bit sinal
    saq = round(sa*N2)/N2; // sinal quantizado
    eq = sa - saq;
    veq = variance(eq);
    vveq = [vveq, veq]
end

vs = variance(s);
veqdb = 10*log10(vs./vveq);
vb = 4:10;  // bits
figure;  plot(vb,veqdb,'-*');
title('SNRQ dB');

Resultados gráficos:



Nenhum comentário:

Postar um comentário