Does the INTERP1 function in MATLAB handle complex data with the "cubic" method?
11 views (last 30 days)
Show older comments
I have "X" and "Y" data. "Y" is complex. I use the INTERP1 function with cubic interpolation to interpolate the data as follows:
Y_cubic = interp1(X,Y,Xi,'cubic');
plot(X,abs(Y),'b',Xi,abs(Y_cubic),'r')
In the resulting plot, I find there are some sharp peaks that do not seem correct.
Accepted Answer
MathWorks Support Team
on 27 Jun 2009
This enhancement has been incorporated in Release 2006a (R2006a). For previous product releases, read below for any possible workarounds:
The cubic interpolation algorithm is not intended for complex data and hence does not behave well under certain circumstances when the data is complex. As a workaround, use the spline interpolation instead.
Y_spline = interp1(X,Y,Xi,'spline');
plot(X,abs(Y),'b',Xi,abs(Y_spline),'r')
Alternatively, you can split Y into real and imaginary parts, and then interpolate.
Yr = real(Y);
Yi = imag(Y);
Y_cubic = interp1(X,Yr,Xi,'cubic')+i*interp1(X,Yi,Xi,'cubic');
plot(X,abs(Y),'b',Xi,abs(Y_cubic),'r')
0 Comments
More Answers (0)
See Also
Categories
Find more on Multirate Signal Processing in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!