sinc_interp.m

来自「分数阶Fourier变换程序」· M 代码 · 共 42 行

M
42
字号
function out = sinc_interp(x, a)% sinc_interp -- sinc interpolate a signal%%  Usage%    y = sinc_interp(x, a)%%  Inputs%    x      signal vector%    a      interpolation factor (optional, default is 2)%%  Outputs%    y     interpolated vector.  If N=length(x) then%          length(y) = a*N-a+1 and y(1:a:end) = x.%          No extrapolation is done.%% Surprisingly this does not seem to be included with matlab.% Copyright (C) -- see DiscreteTFDs/Copyrighterror(nargchk(1, 2, nargin));if (nargin < 2)  a = 2;endx = x(:);N = length(x);M = a*N-a+1;% y has length: a*N-a+1y = zeros(M,1);y(1:a:M) = x;% h has length: 2*(a*N-a-1)+1h = sinc([-(N-1-1/a):1/a:(N-1-1/a)]');% out has length 3*(a*N-a)-1out = lconv(y, h);% what we want has length: a*N-a+1out = out(a*N-a:end-a*N+a+1);

⌨️ 快捷键说明

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