fs=2000;
t=0:1/fs:1;
x=sin(2*pi*t);
delta=2/8;
abs_xq=ceil(abs(x)/delta).*delta-delta/2;
signx=2*(x>0)-1;
xq=abs_xq.*signx;
figure;
plot(t,x);
hold on;
grid on;
plot(t,xq,'r');
xlabel('t(s)'),title('输入信号和量化信号');
figure;
subplot(2,1,1);
plot(t,x);
hold on;
grid on;
stem(t,xq,'r');
hold on;
grid on;
stem(t,x,'b');
xlabel('t(s)'),title('采样样值和8级均匀量化后的样值');
subplot(2,1,2);
stem(t,xq-x,'r','filled');
xlabel('t(s)'),title('量化误差');
figure;
SNR=zeros(1,7);
x=sin(2*pi*t);
signx=2*(x>0)-1;
S0=mean(x.^2);
for n=2:1:8
M=2^n;
delta=2/M;
abs_xq=ceil(abs(x)/delta).*delta-delta/2;
xq=abs_xq.*signx;
Nq=mean((x-xq).^2);
SNR(n-1)=10*log10(S0/Nq);
end;
n=2:1:8;
plot(n,SNR,'r');
hold on;
grid on;
S_NR=6.02*n+1.76;
plot(n,S_NR,'b');
xlabel('编码位数'),ylabel('量化信噪比(dB)'),title('均匀量化信噪比随编码位数变化');
评论1