gusucode.com > matlab通信工程仿真源码(张德丰等编著)程序书籍 > matlab_code/matlab通信工程仿真源码(张德丰等编著)/第9章/li9_18.m

     clear all;
Ts=1e-3;               %采样间隔
t=0:Ts:20*Ts;          %仿真时间序列
x=sin(2*pi*50*t)+0.5*sin(2*pi*150*t);   %信号
delta=0.4;         %量化阶距
D(1+length(t))=0;      %预测器初始状态
for k=1:length(t)
    e(k)=x(k)-D(k);          %误差信号
    e_q(k)=delta*(2*(e(k)>=0)-1);   %量化器输出
    D(k+1)=e_q(k)+D(k);       %延迟器状态更新
    codeout(k)=(e_q(k)>0);    %编码输出
end
subplot(3,1,1);plot(t,x,'-p');
axis([0 20*Ts -2 2]);
title('原信号及其离散样值');ylabel('幅度');
hold on;
subplot(3,1,2);stairs(t,codeout);
axis([0 20*Ts -2 2]);
title('编码输出二进制序列的波形');ylabel('幅度');
%解码
Dr(1+length(t))=0;         %解码端预测的初始状态
for k=1:length(t)
    eq(k)=delta*(2*codeout(k)-1);   %解码
    xr(k)=eq(k)+Dr(k);
    Dr(k+1)=xr(k);     %延迟器状态更新
end
subplot(3,1,3);stairs(t,xr);  %解码输出
hold on;
subplot(3,1,3);plot(t,x);    %原信号
title('解码结果和原信号波形对比');
ylabel('幅度');xlabel('时间/s');