源代码:
function zhexian()
t=0:0.1:6*pi;
x=sin(t); %模拟信源
subplot(2,1,1);
plot(t,x);
title ( '原始模拟信号' );
t1=0:2*pi/32:6*pi; %按每周期取32个点抽样
x1=sin(t1);
subplot(2,1,2);
plot(t1,x1);
stem(t1,x1);
title ( '抽样信号' );
z=zhexian_(x1);%13折线
x1 %每个点抽样值
z %对应十三折线的值
function y=zhexian_(x) %十三折线换算
x=x/max(x);
z=sign(x);
x=abs(x); %取绝对值
for i=1:length(x) %取长度
if((x(i)>0)&&(x(i)<1/64))
y(i)=16*x(i);
else if((x(i)>=1/64)&&(x(i)<1/32))
y(i)=x(i)*8+1/8;
else if((x(i)>=1/32)&&(x(i)<1/16))
y(i)=4*x(i)+2/8;
else if((x(i)>=1/16)&&(x(i)<1/8))
y(i)=2*x(i)+3/8;
else if((x(i)>=1/8)&&(x(i)<1/4))
y(i)=x(i)+1/2;
else if((x(i)>=1/4)&&(x(i)<1/2))
y(i)=1/2*x(i)+5/8;
else if((x(i)>=1/2)&&(x(i)<=1))
y(i)=1/4*x(i)+3/4;
end;
end;
end;
end;
end;
end;
end;
end;
y=z.*y;
运行结果:
(1)原始信号和抽样信号:
(2)每个点抽样值和对应十三折线值: