0

我有两个向量:

x = [0; 1; 2]
y = [2.0000; 0; -14.7781]

xy如果我要绘制 x 和 y,我将在-plane上看到三个点。但我想连接这三个点并将它们作为一个连续函数:

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 做到这一点?

4

2 回答 2

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

我要问的是:当采样时间减少到无穷小值时,哪种模型最能描述您的信号?

于 2013-04-09T08:29:25.183 回答
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,'-')
于 2013-04-09T08:15:13.260 回答