MATLAB里面interp1和interpft函数用法和示例,全网最详细!

MATLAB里面interp1和interpft函数用法和示例,全网最详细!

今天刚弄懂MATLAB里面interp1和interpft函数用法,特意做点笔记

学完不做笔记,等于没学!大家点个免费的赞呗,鼓励一下创作,不然都没人写总结笔记了,没人给代码了。


interp1

interp1比较简单好用,可以选择线性插值或者三次样条插值
一维数据插值(表查找)
参考博文

链接

MATLAB里面interp1和interpft函数用法和示例,全网最详细!_第1张图片

interpft

一维插值(FFT 方法)

链接

先对样点序列进行傅立叶变换,在得到的频域序列中扩充采样点(补零),然后再反傅立叶变换,得到插值了的序列

以傅里叶变换的结果去进行插值,可能更吻合其频谱

MATLAB里面interp1和interpft函数用法和示例,全网最详细!_第2张图片

MATLAB里面interp1和interpft函数用法和示例,全网最详细!_第3张图片


代码:

clear;clc;close all;


y=[0 .5 1 1.5 2 1.5 1 0.5 0 -.5 -1 -1.5 -2 -1.5 -1 -.5 0];
N=length(y);
L=5;
n=N*L;
x=0:L:L*N-1;
xi=0:n-1;
yi=interpft(y,n);
figure
plot(x,y,'o',xi,yi,'+')
grid on


y2 = interp1(x,y,xi,'spline');
figure
plot(x,y,'o',xi,y2,'*')
grid on



%% 范例2
dx = 3*pi/30;
x = 0:dx:3*pi;
f = sin(x).^2 .* cos(x);
figure
plot(x,f,'o')
grid on

N = 200;
y = interpft(f,N);

dy = dx*length(x)/N;
x2 = 0:dy:3*pi;
y = y(1:length(x2));

hold on
plot(x2,y,'.')
title('FFT Interpolation of Periodic Function')

% ---- 对比----

y3 = interp1(x,f,x2,'spline');
hold on.
plot(x2,y3,'g.')
grid on

你可能感兴趣的:(笔记,matlab,开发语言)