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');