我有一个由加速计传感器获得的大小为 1乘1155 的信号矢量。此向量中的值的示例是[0.5301 1.0039 1.4751 1.520]
。我还有时间向量(大小 1-by-983 ),它是以秒为单位收集数据的持续时间(因此它随着增量1
而增加<) / p>
收集数据时,采样频率fs = 102.4 Hz
(采样时间Ts = 0.0098 s
)。
我希望使用MATLAB来对信号进行离散化,方法是使用以下公式:x[n] = x(n*Ts)
。
问题:
这个公式中n
是我获得的信号点数(例如1155)?
我将在公式中使用什么样的采样时间?因为我猜它不会与从传感器获得信号时使用的采样时间相同(例如0.0098s)?
如何在MATLAB中轻松实现此等式?我尝试使用下面的代码,但我不确定实施情况,因为我在这里使用n = i = 1155
:
% allocate a vector for the discretized signal
disc_x = [zeros(length(x),1)];
% Loop through each element
for i = 1: length(x)
disc_x(i) = x(i)/fs;
end
任何帮助都将不胜感激。
答案 0 :(得分:0)
首先,时间矢量的大小与信号矢量的大小不同。其次,您需要检查时间向量中的时间间隔。它们都是平等的吗?该时间间隔是否小于采样间隔Ts?假设时间间隔等于Ts,则您的信号已经离散化。这是disc_x等于x。否则,您可能需要进行平均或插值,具体取决于离散化的类型。