MATLAB计算信号的过零率

   日期:2020-10-30     浏览:251    评论:0    
核心提示:本博文分享计算过零率的公式及其MATLAB代码,代码在参考博文的基础上进行了改进。过零(ZC)是在时域中定义信号的频率信息的一种度量。

过零率

    • 1. 基本原理
    • 2.MATLAB代码
    • 参考文献

1. 基本原理

由于低压波动或背景噪声的存在,会增加信号的振幅值超过零振幅电平的次数。

为避免低压波动或背景噪声带来的影响,信号振幅实施阈值条件,得到下述公式。

过零率的计算公式如下:

2.MATLAB代码

function count = zero_crossings(x,thr)
% x是时域信号,必须是1位的行向量或者列向量;
% thr是设定的阈值
% count是该函数计算信号x过零率的值
 
% initial value
count = 0;
 
% error checks
if(length(x) == 1)
    error('ERROR: input signal must have more than one element');
end
 
if((size(x, 2) ~= 1) && (size(x, 1) ~= 1))
    error('ERROR: Input must be one-dimensional');
end
    
% force signal to be a vector oriented in the same direction
x = x(:);
 
num_samples = length(x);
for i=2:num_samples
    % Any time you multiply to adjacent values that have a sign difference
    % the result will always be negative.  When the signs are identical,
    % the product will always be positive.
    if(((x(i)*x(i-1)) < 0)&&(abs(x(i)-x(i-1))>thr))
        count = count + 1;
    end 
end

参考文献

[1]Feature reduction and selection for EMG signal classification.
[2]matlab 计算过零率

如果觉得这篇博客是你需要的,请动动你的手指,点个赞吧,谢谢你的鼓励;如果你对我写的博客感兴趣,欢迎你常来我的主页看看,期待你的关注。

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服