我不是信号处理方面的专家。我正在使用 c++ 对一维信号进行简单处理。我真的很想知道如何确定具有最高过零率(最高频率!)的部分。有没有简单的方法或方法来告诉这部分的开始和结束。
这张图说明了我的信号的形式, 这张图就是我需要做的(开始和结束两个索引)
编辑:
其实我对开头和结尾的宽度一无所知,它是如此多变。我可以计算过零的数量,但我不知道如何定义它的范围
double calculateZC(vector<double> signals){
int ZC_counter=0;
int size=signals.size();
for (int i=0; i<size-1; i++){
if((signals[i]>=0 && signals[i+1]<0) || (signals[i]<0 && signals[i+1]>=0)){
ZC_counter++;
}
}
return ZC_counter;
}