interp_dfs.m

来自「matlab源代码,适用于开发研究,带来很好的学习效果.」· M 代码 · 共 25 行

M
25
字号
function [xi,yi]=interp_DFS(T,x,Ws,ti)
%T: 样本间隔
%x: 离散时间样本
%Ws:归一化的频率
%ti: 插值的时间系列

if nargin<4 
    ti=5;
end
if nargin<3 | Ws>1
    Ws=1;
end
N=length(x);
if length(ti)==1
    ti=0:T/ti:(N-1)*T; %使用ti得到的细化数据系列
end
ks=ceil(Ws*N/2);
yi=fft(x);
yi(ks+2:N-ks)=zeros(1,N-2*ks-1);   %筛选后的时间系列
xi=zeros(1,length(ti));
for k=2:N/2
    xi=xi+yi(k)*exp(j*2*pi*(k-1)*ti/N/T);
end
xi=real(2*xi+yi(1)+yi(N/2+1)*cos(pi*ti/T))/N;  %根据公式计算插值结果

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?