sigma delta SNR

0

Como usted sabe, el modulador Sigma-Delta como núcleo de ADC sigma-delta define la SNR total. Estoy simulando un código muy simple para el modulador delta-sigma de primer orden. Según los libros de texto, la SNR del modulador de primer orden se calcula a partir de:

predictedSNR = 10 * log10 (sig_power) + 9.03 * r - 10 * log10 ((A ^ 2) / 12) - 10 * log10 ((pi ^ 2) / 3).

r es la relación OSR (r = log2 (fs / (2 * fb))) y A es la amplitud de la entrada sinusoidal.

Este es mi código MATLAB:

%delta modulator FFT
clear
clc
fs = 1280;
fb = 10;
A = 1;
r = log2(fs/(2*fb));
t = 0:1/fs:1 - 1/fs;
y(1) = 0;
y(2) = 0;
x = A*sin(2*pi*fb*t);
for N=2:1:fs
    x1(N) = x(N) - y(N-1);
    x2(N) = sum(x1);
    if x2(N) >= 0
        y(N) = 1;
    else
        y(N) = -1;
    end
end
plot(abs(fft(y))/1280);
y_fft = abs(fft(y))/1280;
sig_power = 2*(y_fft(11)^2);
noise_power = 2*sum(y_fft(1:10).^2);
SNR = 10*log10(sig_power/noise_power)
predictedSNR = 10*log10(sig_power) + 9.03*r - 10*log10((A^2)/12) - 10*log10((pi^2)/3)

Pero los resultados son: SNR = 45.9814

predictedSNR = 56.7738

¿Qué pasa con mi código?

    
pregunta Reza Kabiri

0 respuestas

Lea otras preguntas en las etiquetas