神经网络 - 用时间数组和不同的采样率求解网络

时间:2015-10-22 21:24:25

标签: algorithm matlab neural-network artificial-intelligence

我有一台机器的3次测量。每次测量都会在其值变化一定的增量时触发。

我有这3个数据集,表示为Matlab对象:T1T2O。它们中的每一个都包含obj.t,其中包含时间戳值,obj.y包含测量值。

我会长时间衡量T1T2,但O仅会在短时间内衡量。任务是使用O_future的现有值进行培训和验证,从T1T2重建O

请注意T1.tT2.tO.t不相等,甚至不是它们的频率(我可以称之为“变量采样率”,但不确定是否这个名称适用)。

是否可以使用Matlab或其他软件解决此问题?我是否需要将所有数据重新采样为公共时间向量?

1 个答案:

答案 0 :(得分:1)

关于共同时间。下面是一些基本代码。 (我想你可能知道怎么做,但以防万一)。但是,第二种选择可能会让你更进一步......

select distinct m.title , movieid
from
    movies m
    inner  join
    ratings r using (movieid)
    inner join
    genres g using (movieid)
where r.votes > 0 and g.genre = '$_SESSION[genero]'

对于大型矢量而言,如果您在其中一个信号中具有较小的采样频率(这将决定最低分辨率),这可能会变得无效。

另一种选择是定义较粗略的时间向量,并查看在某个时期内发生的事件数量,这些事件可能具有一定的预测能力(不确定您的设置)。 结构类似于

% creating test signals
t1 = 1:2:100;
t2 = 1:3:200;
to = [5 6 100  140];
s1 = round (unifrnd(0,1,size(t1)));
s2 = round (unifrnd(0,1,size(t2)));
o  = ones(size(to));


maxt = max([t1 t2 to]);
mint = min([t1 t2 to]);
% determining minimum frequency
frequ = min([t1(2:length(t1)) - t1(1:length(t1)-1) t2(2:length(t2)) - t2(1:length(t2)-1) to(2:length(to)) - to(1:length(to)-1)] );

% create a time vector with highest resolution 
tinterp = linspace(mint,maxt,(maxt-mint)/frequ+1);

s1_interp = zeros(size(tinterp));
s2_interp = zeros(size(tinterp));
o_interp  = zeros(size(tinterp));
for i = 1: length(t1)
    s1_interp(ceil(t1(i))==floor(tinterp)) =s1(i);
end
for i = 1: length(t2)
    s2_interp(ceil(t2(i))==floor(tinterp)) =s2(i);
end
for i = 1: length(to)
    o_interp(ceil(to(i))==floor(tinterp)) = o(i);
end
figure,
subplot 311
hold on, plot(t1,s1,'ro'),  plot(tinterp,s1_interp,'k-')
legend('observation','interpolation')
title ('signal 1')

subplot 312
hold on, plot(t2,s2,'ro'),  plot(tinterp,s2_interp,'k-')
legend('observation','interpolation')
title ('signal 2')

subplot 313
hold on, plot(to,o,'ro'),  plot(tinterp,o_interp,'k-')
legend('observation','interpolation')
title ('O')