线性内插的matalab仿真和程序设计
线性内插是通过在原来的采样频率点之间插入M个线性的值来提高信号的采样频率,同时其比sinc函数内插所需要的计算量小很多,因此更加实用。
内插序列的生成可以看作是内插序列和图片对应的第二个序列卷积而成的,代码如下
总程序
%File:c3_upsampex.m
M=6;
h=c3_lininterp(M);
t=0:10;
tu=0:60;
x=sin(2*pi*t/10);
xu=c3_upsamp(x,M);
subplot(3,1,1)
stem(t,x,'k.')
ylabel('x')
subplot(3,1,2)
stem(tu,xu,'k.')
ylabel('xu')
xi=conv(h,xu);
subplot(3,1,3)
stem(xi,'k.')
ylabel('xi')
线性内插序列生成代码
%File:c3_lininterp.m
function h=c3_lininterp(M)
h1=zeros(1,(M-1)); %新建0-M-1的0矩阵
for j=1:(M-1) %用for循环给矩阵内的元素赋值
h1(j)=j/M;
end
h=[0,h1,1,fliplr(h1),0];
plot(h)
%end of function file
扩充序列的生成代码
%File:c3_upsample.m
function out=c3_upsamp(in,M)
L=length(in);
out=zeros(1,(L-1)*M+1);
for k=1:L
out(M*(k-1)+1)=in(k);
end
%end of function file
上式代码中的M代表的新增的内插点数可以随意更改,t和tu也可以更改