识别常见的周期性波形(方波,正弦波,锯齿波,...) [英] Identifying common periodic waveforms (square, sine, sawtooth, ...)

查看:515
本文介绍了识别常见的周期性波形(方波,正弦波,锯齿波,...)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在没有任何用户交互的情况下,程序将如何识别ADC记录中出现的波形类型?

Without any user interaction, how would a program identify what type of waveform is present in a recording from an ADC?

出于这个问题:恒定频率的三角波,方波,正弦波,半正弦波或锯齿波.电平和频率是任意的,并且会产生噪声,少量失真和其他缺陷.

For the sake of this question: triangle, square, sine, half-sine, or sawtooth waves of constant frequency. Level and frequency are arbitrary, and they will have noise, small amounts of distortion, and other imperfections.

我也会提出一些(幼稚的)想法,您可以投票赞成或反对.

I'll propose a few (naive) ideas, too, and you can vote them up or down.

推荐答案

您肯定要从采用自相关开始以找到基本面.

You definitely want to start by taking an autocorrelation to find the fundamental.

然后,占用波形的一个周期(大约).

With that, take one period (approximately) of the waveform.

现在对信号进行DFT,立即补偿第一个bin的相移(第一个bin是基本的,如果所有相位都是相对的,则您的任务将更加简单). 现在对所有仓进行归一化,以便基本面具有单位增益.

Now take a DFT of that signal, and immediately compensate for the phase shift of the first bin (the first bin being the fundamental, your task will be simpler if all phases are relative). Now normalise all the bins so that the fundamental has unity gain.

现在,将其余仓(代表谐波)与您想要测试的一组预存储波形进行比较和对比.接受最接近的值,如果它不能满足由噪声层的测量确定的精度阈值,则将其整体拒绝.

Now compare and contrast the rest of the bins (representing the harmonics) against a set of pre-stored waveshapes that you're interested in testing for. Accept the closest, and reject overall if it fails to meet some threshold for accuracy determined by measurements of the noisefloor.

这篇关于识别常见的周期性波形(方波,正弦波,锯齿波,...)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆