如何在simulink中实现零corssing检测方法

时间:2016-10-12 23:25:23

标签: matlab signal-processing simulink

我有一个调频信号。

在matlab中,我使用以下简单代码进行过零检测。 这里“x”是输入位信号。 “m”是调制信号。

zerorate = [];
start = 1;

for j=length(m)/length(x):length(m)/length(x):length(m)

    delta = round((length(m)/length(x))/5);  %Gaurd Interval

    data = m(start + delta:j);
%     data = m(start:j);
    y = sum(abs(diff(data>0)))/length(data);
    zerorate = [zerorate y];
    start = j;
end

mn = zerorate>mean(zerorate);

现在我想在Simulink中实现相同的功能。我可以进行过零检测并检测Simulink中的位吗?有人可以指导我。

感谢。

1 个答案:

答案 0 :(得分:0)

一种可能性是将过零块分成两个功能部分,一个用于判断斜率是正还是负,另一个用于判断信号是否接近零。

对于第一部分,将信号路由到差分块,然后是比较块,检查当前值是大于还是小于零。

对于第二部分,将信号路由到构建绝对信号值的块,然后是比较块,检查信号值是否等于零(或小于某个微小值)。

获取两个结果信号并将它们输入一个AND块,告诉您,当两个条件都满足且您检测到零交叉时