Does the INTERP1 function in MATLAB handle complex data with the "cubic" method?

15 ビュー (過去 30 日間)
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.

採用された回答

MathWorks Support Team
MathWorks Support Team 2009 年 6 月 27 日
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 件)

カテゴリ

Help Center および File ExchangeMultirate Signal Processing についてさらに検索

製品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by