如何把信号分成组峰

44视图(30天)
结实的矮
结实的矮 2015年7月13日
评论道: Surabhi KS2021年9月30日
嗨,我有一个音频样本,我想分为组信号,对能源和时间分析。这是信号:
我想做的是,让这4块的开始和结束索引。现在我不知道如何做到这一点。谢谢你!
4评论
结实的矮
结实的矮 2015年7月13日
的主要目的是计算有多少块/峰值,与类似的能源和持续时间,在一个特定的长度,现在我想确定这样的开始索引和索引峰值/块,这将帮助我在未来分析。当然它不是一个地方要求算法开发,我自己。
提前谢谢你。

登录置评。

接受的答案

明星黾
明星黾 2015年7月13日
这可能是你最困难的信号。派生的最好方法可能产生一个信号,将允许你孤立的部分感兴趣的信号是使用带通滤波器,然后Savitzky-Golay过滤器。
代码:
c =负载(“玉米signal.mat”);
S1 = cs.coarse_d (: 1);
S2 = cs.coarse_d (:, 2);
Fs = cs.fs_d;
Fn = f / 2;
Ts = 1 / f;
T =[0:长度(S1) 1] * Ts;
Wp = (950 - 1000) / Fn;
Ws = [0.5 1/0.5]。* Wp;
Rp = 1;
Rs = 30;
[n, n] = buttord (Wp、Ws Rp, Rs);
[b] =黄油(n, Wn);
(sos, g) = tf2sos (b);
S1F = filtfilt (sos, g, S1);
SGS1 = sgolayfilt (abs (S1F), 901);
图(1)
情节(T, S1)
持有
%的阴谋(T, S1F)
情节(T, SGS1“线宽”,1.3)
持有
网格
%轴(1.5 [0.5 ylim])
原始信号的第一个“破裂”(Savitzky-Golay滤波器的带通滤波信号叠加)是:
你可以简单的阈值 sgolayfilt 输出,或使用 findpeaks 确定每个“破裂”的位置。我没有comment-document代码,因为它是类似于我以前的滤波器设计(记录),只有新奇的 sgolayfilt
2的评论
明星黾
明星黾 2015年7月13日
我的荣幸!
一个项目是我离开 fft 代码,这就是我如何到达滤波器设计 Wp 值。我在这里包括:
FS1 = fft长度(S1) / (S1);
阵线= linspace(0, 1,修复(长度(FS1) / 2) + 1) * Fn;
第九= 1:长度(艘);
图(2)
情节(阵线,abs (FS1 (Ix)))
网格
轴(5 e3 ylim [0])
我选择了频带,似乎最能量,以方便 sgolayfilt 。花了一点带通和Savitzky-Golay过滤器的实验得到结果我很喜欢。
传输函数设计可以不稳定,产生异常的结果,所以我使用的二阶节表示过滤器(因此 tf2sos )提供稳定。我通常使用 freqz 评估滤波器传输函数的稳定性和second-order-section实现,可以肯定的是他们的工作。(MATLAB表明这个文档,其中一个过滤器自动设计工具它。)
filtfilt 函数(而不是 过滤器 )是phase-neutral(的行为倾向于贝塞尔设计硬件实现)。的 filtfilt 函数呈现 所有 离散phase-neutral过滤器。
我的滤波器设计的详细说明 在这里
像往常一样,我的荣幸。生物医学信号处理是对我特别感兴趣的,所以我学到一些东西从每个新问题。

登录置评。

答案(1)

图像分析
图像分析 2015年7月13日
编辑:图像分析 2020年12月26日
嗯,作为一个图像分析师,我想出了一个不同的方法。你可以得到一个逻辑数组定义什么是一个信号,安静的地方只有两行代码,一个阈值和形态学滤波器。这里有一个全面的演示:
%设置,读取信号和情节。
s =负载(“signal.mat”)
信号= s.coarse_d;
次要情节(1,1);
情节(信号,“- - -”,“颜色”[0 5 0]);
网格;
%的主要代码如下两行代码。
%阈值信号
lowSignal = abs(信号)< 0.1;
%去除延伸长不到10000元素。
%和反转它来获得高信号区而不是安静的地区。
lowSignal = ~ bwareaopen (lowSignal, 10000);
%现在做完了。策划的结果。
次要情节(3、1、2);
情节(lowSignal“b -”,“线宽”2);
网格;
%的情节都在同一个图了。
次要情节(3,1,3);
情节(信号,“- - -”,“颜色”[0 5 0]);
持有;
情节(lowSignal“b -”,“线宽”2);
网格;
8的评论
Surabhi KS
Surabhi KS 2021年9月30日
你可以让一个类对象。

登录置评。

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!