www.gusucode.com > matlab通信工程仿真源码(张德丰等编著)程序书籍 > matlab_code/matlab通信工程仿真源码(张德丰等编著)/第9章/li9_19.m
clear all; Ts=1e-3; %采样间隔 t=0:Ts:40*Ts; %仿真时间序列 x=sin(2*pi*50*t)+0.5*sin(2*pi*150*t); %信号 x(20:41)=0.2*sin(2*pi*50*t(20:41)); delta=0.4; %量化阶距 D(1+length(t))=0; %预测器初始状态 K=1.3; %自适应量化间距调整系数 for k=1:length(t) e(k)=x(k)-D(k); %误差信号 e_q(k)=delta*(2*(e(k)>=0)-1); %量化器输出 if k>1 delta=delta*(K.^sign(e_q(k).*e_q(k-1))); %自适应步长调整 end D(k+1)=e_q(k)+D(k); %延迟器状态更新 codeout(k)=(e_q(k)>0); %编码输出 end %解码 Dr(1+length(t))=0; %解码端预测的初始状态 delta=0.4; for k=1:length(t) eq(k)=delta*(2*codeout(k)-1); %解码 if k>1 delta=delta*(K.^sign(eq(k).*eq(k-1))); %自适应步长调整 end xr(k)=eq(k)+Dr(k); Dr(k+1)=xr(k); %延迟器状态更新 end stairs(t,xr); %解码输出 hold on;plot(t,x); %原信号 ylabel('幅度');xlabel('时间/s');