如何找到一个信号的过零率?

48视图(30天)
请,我想确定一个声波信号的过零率。我很高兴如果有人可以为我提供一个代码在Matlab进行这样的练习中,
提前谢谢你。

接受的答案

明星黾
明星黾 2021年1月29日
试试这个:
t = linspace (0, 500)。^ 3;%的时间向量
s =罪(2 *π* t * 0.2);% 10 Hz正弦曲线
zx =找到(diff(签署(s)));%零交点指数“t”
k = 1:元素个数(zx)
idx_rng = max (zx (k) 1,1): min (zx (k) + 1,元素个数(t));
tzro (k) = interp1 (s (idx_rng)、t (idx_rng), 0);%的零交叉
结束
zx_rate =梯度(tzro);%计算速度
yyaxis
情节(t, s,“- b”)
持有
情节(tzro 0(大小(tzro)),“xr”)
持有
yyaxis正确的
情节(tzro zx_rate,“线宽”,2)
网格
传奇(“信号”,“零交叉”,讨论二阶导数过零率的)
轴(“紧”)
零交点之后,你可以做任何你想要的处理上。

更多的答案(2)

弗朗茨Bouchereau
弗朗茨Bouchereau 2021年10月13日
在MATLAB信号处理工具箱R2021b船一个新的 zerocrossrate 功能,您可以使用它们来找到一个信号的过零率。

马修•诺伊
马修•诺伊 2021年1月19日
你好
我不确定什么是“率”可以是零交叉,但至少这段代码可能会给你获得零个或任何阈值检测
斜率为正、负斜率或者说发现
希望它可以帮助!

标签

社区寻宝

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

开始狩猎!