Está en la página 1de 2

PROCESAMIENTO DIGITAL DE SENALES

Nombre: Elvis Landi

Con n=2; y para dithering con un ruido muy pequeo

El valor de voltaje casi continuo es 2.3, el resultado me da 2.0264, el error de cuantizacion es muy grande

Con n=8 para dithering y con un ruido grande

El resultado me da 2.4037, podemos ver que mejora la aproximacin de dithering al valor real que es 2.3
V, el error de cuantizacin disminuy notablemente.
CODIGO MATLAB

clear all;
close all;
clc;
close all; figure
t = 0:0.001:2;
% generamos la senal analogica
x = 2*cos(2*pi*t)+1.5*cos(4*pi*t+2)+1*cos(5*pi*t)+0.5*cos(10*pi*t);
x = 5*(x - min(x))/(max(x)-min(x));

% Cuantizacion
n = 8; % bits
xq = floor((1-1e-12)*(x+1).*2.^(n-1));
xq = xq / (2^(n-1));
xq = xq - (2^n - 1) / 2^n;
% error signal
qerr = x - xq;
%lsb
q=5/(2^(n-1));
x1=fix(x/q);
subplot(425); plot(x1,'b'); title('Cuantizacion');axis([0 2000 0
2^n]); xlabel('muestras'); ylabel('Numero(dig)');grid on
%subplot(427); plot(er); axis([0 2000 -1 1]); title('Error
Quantization'); xlabel('muestras'); ylabel('Error(LSB)'); grid minor
disp(max(qerr))
%y1=dec2bin(x1,n);
%er=xq-x1;

% plot
subplot(421); plot(t,x,'b'); title('Seal original');
xlabel('tiempo(seg)'); ylabel('Amplitud(volt)');grid on
subplot(423); plot(t,xq,'r'); title('Muestreo y retencion'); axis([0 2
0 5]);xlabel('tiempo(seg)'); ylabel('Amplitud(volt)'); grid on
%subplot(425); plot(x1,'b'); title('Cuantizacion');axis([0 2000 0
2^n]); xlabel('muestras'); ylabel('Numero(dig)');grid on
subplot(427); plot(qerr); axis([0 2000 -1 1]); title('Error
Quantization'); xlabel('muestras'); ylabel('Error(LSB)'); grid minor

%generamos senal casi continua


t = 0:0.1:50;
x2=0.3*sin(t)+2; %casi continua
ruido=abs(x2+0.8*rand(size(x2))); %generamos ruido en este caso de 0.8
vamos aumentado
%muestreo
xq2 = floor((1-1e-12)*(ruido+1).*2.^(n-1));
xq2 = xq2 / (2^(n-1));
xq2 = xq2 - (2^n - 1) / 2^n;
error=x2-xq2
subplot(422); plot(t,x2); title('DITHERING'); hold on; plot(t,
ruido); axis([0 50 0 5]); grid on
subplot(424); plot(t,xq2); title('muestreo'); axis([0 50 0 5])
media=mean(xq2) %media del la senal reconstruida para encontrar el
valor aproximado
subplot(426); plot(t,error); axis([0 50 -1 1]); title('error')

También podría gustarte