我有两个向量:
x = [0; 1; 2]
y = [2.0000; 0; -14.7781]
如果我将绘制x和y,我会在xy
- 平面上看到三个点。但我希望将这三点联系起来,并将它们作为一个连续的函数:
y = f(x),
y(0) = 2;
y(1) = 0;
y(2) = -14.7781;
y(0.5) = value between 2 and 0.
例如,y
可被视为ZOH(零级保持)连续信号。
我看到MATLAB有一个名为d2c
的函数,它将模型从离散时间转换为连续时间。但不知道如何将它与我已经拥有的矢量联系起来。怎么做
这与MATLAB?
答案 0 :(得分:3)
好的,您的最新编辑可以改善情况。
但是,您仍然没有充分划分问题。
ZOH就像
一样简单 >> x = [0; 1; 2];
>> y = [2.0000; 0; -14.7781];
>> f = @(new_x) y(find(x <= new_x, 1, 'last'));
>> f(0.5)
ans =
2
但是,这不是我认为你的意思,因为问题的y(0.5) = value between 2 and 0
部分表明了这一点。
也许你想要一个线性插值:
>> f = @(new_x) interp1(x,y, new_x);
>> f(0.5)
ans =
1
或三次样条插值:
>> f = @(new_x) interp1(x,y, new_x, 'spline');
>> f(0.5)
ans =
2.5973
我要问的是:当样本时间减少到无穷小的值时,哪种模型最能描述您的信号?
答案 1 :(得分:1)
n次多项式最多可以有n-1个转折点。因此,我们可以进行多项式回归:
% Input data
yy = [2.0000; 0; -14.7781];
% Parameters
n = length(yy)-1;
x = (0:1:n).';
% Regression
p = polyfit(x,yy,n);
% Plot
f = polyval(p,x);
figure
plot(x,yy,'o',x,f,'-')