4
$\begingroup$

enter image description here

blue is how I tried to sinc interpolate. why would something like this happen?

$\endgroup$
1

2 Answers 2

3
$\begingroup$

Since Sinc based Interpolation requires you to know the data at any point. Hence it is not feasible.

You might do a Truncated Sinc Interpolation.
The artifacts you're seeing can be caused by a kernel which is too short or the parameters aren't good.

In order to create a good Sinc kernel you need to know things about the Band Width of the signal and the Sampling Rate.
Did you took those into account?

$\endgroup$
9
  • $\begingroup$ I just zoomed to a part of the signal. the signal goes to zero and it is sampled often enough $\endgroup$ Aug 9, 2015 at 11:06
  • $\begingroup$ Could you post the MAT file of the data and the M file you are running? $\endgroup$
    – Royi
    Aug 9, 2015 at 11:18
  • $\begingroup$ pastebin.com/sLYWrH5q $\endgroup$ Aug 9, 2015 at 13:32
  • $\begingroup$ I tried extending the sinc I convolved my samples with 100 times, it gave acceptable results. $\endgroup$ Aug 9, 2015 at 13:37
  • 1
    $\begingroup$ How boundaries are handled is also important aspect. $\endgroup$ Feb 13, 2022 at 21:03
0
$\begingroup$
t=linspace(-.5,.5,256);
x=exp(-pi*t.^2*16).*(sin(2*pi*40*t)+0.154*cos(2*pi*47*t)-1.454*cos(2*pi*27*t));
figure;plot(t,x)

tt=linspace(-.5,.5,256*8-7);
xorj=exp(-pi*tt.^2*16).*(sin(2*pi*40*tt)+0.154*cos(2*pi*47*tt)-1.454*cos(2*pi*27*tt));
figure;plot(tt,xorj)

xf=SincInt(x,8,1);
sh=0;
xf=[ xf(1+sh:end) zeros(1,sh)];
figure;plot(tt,xf)
hold on;plot(tt,xorj)
figure;plot(tf,xf-xorj)

function f = SincInt( f,k ,varargin)
% function f = SincInt( f,k ,varargin)
% varargin=1 to keep the beginning and the end the same

nargin=length(varargin);

N=length(f);
f=[zeros(1,N*(k-1)) f];
for  i = 1: N
    f(k*i-k+1:k*i)= [zeros(1,k-1) f(N*(k-1)+i)];
end

f=conv(f,sinc(-60:1/k:60),'same');

if(nargin==1 && varargin{1})
    f=[f(k:length(f)) ];
end

end
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.