Kat*_*tyB 4 time matlab interpolation
我有一个每两周记录一次的年度温度测量数据集.数据类似于以下内容:
t = 1:14:365;
% GENERATE DATA
y = 1 + (30-1).*rand(1,length(t));
y1 = 20*sin(2*pi*t/max(t)); % Annual variation °C
y1(y1<0) = [];
tt = 365/14;
time = 1:tt:365;
plot(time,y1,'-o');
Run Code Online (Sandbox Code Playgroud)
它明显遵循年度温度循环.
由此我想知道是否可以在数据上添加正弦函数(代表昼夜温度范围)?例如,从每两周一次的数据,如果我们插值系列有8760次测量,即每小时测量,该系列是可信的,将需要通过一个昼夜温差循环,除了每年的温度循环为特征.此外,昼夜温度周期需要是当时温度测量的函数,即在夏季比冬季更大.所以也许最好先使用线性插值来获取数据来表示每小时的间隔,然后添加正弦函数.有没有把它写入脚本的方法?或者有没有人对如何准确地实现这一点有意见?
您可以先使用类似的内容插入数据(最少1小时)
x = 1:inv(24):365;
T_interp = interp1(t,y1,x,'spline');
Run Code Online (Sandbox Code Playgroud)
查看interp1的 Matlab文档(示例2)
然后在其上添加正弦.以下是1期(24小时)的正弦波,振幅为A,最小值为凌晨3点.
T_diurn = -A*sin(2*pi*x+(3/24)*2*pi);
Run Code Online (Sandbox Code Playgroud)
然后
T_total = T_diurn + T_interp;
Run Code Online (Sandbox Code Playgroud)