计算时域数据的能量
Calculate energy of time domain data
我是数字信号处理的新手。我有以下传感器样本数据
Time(milliseconds) data
------------------ -------------------
0 0.30865225195884705
60 0.14355185627937317
100 -0.16846869885921478
156 -0.2458019256591797
198 -0.19664153456687927
258 0.27148059010505676
305 -0.16949564218521118
350 -0.227480947971344
397 0.23532353341579437
458 0.20740140974521637
这意味着在时间 0
我有值 0.30865225195884705
并且在时间 60
我有值 0.14355185627937317
等等。
每个 10 milliseconds
从传感器获取数据。所以,我假设采样率应该设置为 100 Hz
.
我想计算时域信号的总能量
我读到它可以使用 Parseval 定理计算如下:
其中 X[k]
是 x[n]
的 DFT
,两者的长度均为 N
。
任何建议,我如何使用 MATLAB 计算总能量?
Parseval 定理可用于将时域能量与频域联系起来。但是,如果您不需要在频域中执行其他计算,则可以直接在时域中计算能量:
Energy = sum(abs(x).^2)
另一方面,如果您出于其他原因需要将信号转换为频域,您也可以使用(根据帕塞瓦尔定理)计算能量:
Xf = fft(x); % compute the DFT (using the Fast Fourier Transform)
Energy = sum(abs(Xf).^2) / length(Xf); % Get the energy using Parseval's theorem
Parseval定理和DFT分析仅适用于以规则等间距采样的带限数据(恒定采样率高于Fmax*2)。由于您的时间戳不是规则间隔的,因此在使用 Parseval 方程式计算能量之前,您需要使用它们来插入新的均匀间隔样本的向量。或者您将不得不进行数值积分而不是简单的求和。
你的第二个问题:如果你想插值,然后找到你的数据集的最小增量 T(在你的情况下为 40ms),然后在每个新时间样本使用线性插值创建一个新数据集:
0.000 秒
0.040 s => 是值 .3087 和 0.1436
之间时间的 2/3
0.080 秒...等...
0.120 秒
0.160 秒
0.200 秒
0.240 秒
0.280 秒
0.320 秒
0.360 秒
0.400 秒
0.440 秒
但是由于数据集太小,线性插值充其量是粗略的。假设你是粗体和样条拟合以使其更平滑和更高分辨率的样本,......好吧你只会破坏数据。
我是数字信号处理的新手。我有以下传感器样本数据
Time(milliseconds) data
------------------ -------------------
0 0.30865225195884705
60 0.14355185627937317
100 -0.16846869885921478
156 -0.2458019256591797
198 -0.19664153456687927
258 0.27148059010505676
305 -0.16949564218521118
350 -0.227480947971344
397 0.23532353341579437
458 0.20740140974521637
这意味着在时间 0
我有值 0.30865225195884705
并且在时间 60
我有值 0.14355185627937317
等等。
每个 10 milliseconds
从传感器获取数据。所以,我假设采样率应该设置为 100 Hz
.
我想计算时域信号的总能量
我读到它可以使用 Parseval 定理计算如下:
其中 X[k]
是 x[n]
的 DFT
,两者的长度均为 N
。
任何建议,我如何使用 MATLAB 计算总能量?
Parseval 定理可用于将时域能量与频域联系起来。但是,如果您不需要在频域中执行其他计算,则可以直接在时域中计算能量:
Energy = sum(abs(x).^2)
另一方面,如果您出于其他原因需要将信号转换为频域,您也可以使用(根据帕塞瓦尔定理)计算能量:
Xf = fft(x); % compute the DFT (using the Fast Fourier Transform)
Energy = sum(abs(Xf).^2) / length(Xf); % Get the energy using Parseval's theorem
Parseval定理和DFT分析仅适用于以规则等间距采样的带限数据(恒定采样率高于Fmax*2)。由于您的时间戳不是规则间隔的,因此在使用 Parseval 方程式计算能量之前,您需要使用它们来插入新的均匀间隔样本的向量。或者您将不得不进行数值积分而不是简单的求和。
你的第二个问题:如果你想插值,然后找到你的数据集的最小增量 T(在你的情况下为 40ms),然后在每个新时间样本使用线性插值创建一个新数据集:
0.000 秒
0.040 s => 是值 .3087 和 0.1436
之间时间的 2/30.080 秒...等...
0.120 秒
0.160 秒
0.200 秒
0.240 秒
0.280 秒
0.320 秒
0.360 秒
0.400 秒
0.440 秒
但是由于数据集太小,线性插值充其量是粗略的。假设你是粗体和样条拟合以使其更平滑和更高分辨率的样本,......好吧你只会破坏数据。