频谱熵的时间分辨率 - 我如何修改它?

6次观看(过去30天)
John Navarro.
John Navarro. 2021年3月10日
编辑: 亚山大约24小时前
大家好,
我有一个信号(时间表为307,200个数据点),采样率为20480Hz(0.00005s),总长度为15.0秒。
当我应用命令时 pentropy. 我得到时间矢量 te. 长度为500点,相当于0.03秒的时间分辨率
我确认了此值,如下所示。问题是,我需要每0.02秒的信号频谱熵和每0.05秒。
是我可以调整或定义这个的任何方式“ 时间分辨率 “?
[se,te] = pentropy(Datos01.Sensor1,FS)
意思(差异(te))
ans =.
0.02997
有人帮我吗?谢谢
P.S.我计划使用Retime命令和@Pentropy作为输入,但它会给我发出错误。见下文
其他替代方案将使用A和移动窗口,但不确定如何代码
Datosa = Retime(Datos01,“常规的”,@ pentropy,“timestep”,秒(windowlength));
使用时间表/延迟(第140行)的%错误
%将函数'pentropy'应用于变量'sensor01'中的第1组生成以下错误:
%预期的输入参数2为数字标量的形式作为采样频率,持续时间
%标量作为采样时间或数字/持续时间/ datetime数组作为时间值。

答案(1)

亚山
亚山 2021年8月11日20:06
编辑:亚山 大约24小时前
您需要将频谱图提供给MATLAB功能,并且该频谱图应该具有所需的时间分辨率。
请参阅下面的示例。
CLC,清楚
FS = 20480;
f = 0.01 * fs;
ts = 1 / fs;
T = 0:TS:15-TS;
X = COS(2 * PI * F * T);
%计算功率谱图,时间分辨率等于0.02秒
%注意,频谱图窗口之间的重叠设置为零
%如果您在Windows之间引入重叠,则应分辨率应
%改变以保证每0.02秒采样'tp'
[p,fp,tp] = pspectrum(x,fs,'timeresolution',0.02,'重叠的',0,'谱图');
%计算谱熵
[SE,TE] = PENTROPY(P,FP,TP);
fprintf('光谱熵估计每个%g sec \ n',平均值(差异(te)));
谱熵估计每0.0199707秒

社区宝藏狩猎

找到Matlab Central中的宝藏,并发现社区如何帮助您!

开始狩猎!