单片机怎么检测两个同频率、同幅度的正弦波的相位差?

2020-01-19 19:41发布

用单片机怎么检测两个频率,幅值相同的正弦波?
查过一些资料,说用过零检测电路来将正弦波转变成方波。
但具体不知道怎么计算,程序怎么写?思路有点乱。
还请知道的网友提醒,建议下。。。谢谢!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
50条回答
zhaoxukiller
1楼-- · 2020-01-25 00:39
以前做的是方波或者PWM波异或后检测,但是正弦波还真没有太好的方法,毕竟触发前沿不够陡峭。个人感觉看频率范围而定,低频部分可以过零迟滞变方波检测,高频个人感觉还是通过A/D用软件算吧。33楼我认同,具体没试过FFT算后的精度,但是要求你的MCU要强。功耗可能会稍高一些。
zhaoxukiller
2楼-- · 2020-01-25 05:23
上传一个相关论文吧,网上一搜一大堆。
alias
3楼-- · 2020-01-25 07:00
>>这个怎么解决呢??

359 变成 -1,358 变成 -2 如此类推,取平均值后,如果是负值,就加 360。
McuPlayer
4楼-- · 2020-01-25 07:21
 精彩回答 2  元偷偷看……
kuanglf
5楼-- · 2020-01-25 13:08
alias 发表于 2014-4-9 19:03
>>这个怎么解决呢??

359 变成 -1,358 变成 -2 如此类推,取平均值后,如果是负值,就加 360。 ...

照你的方法,数组会变成这样(357,-2,-1,357,-1,0,-1.........)
结果还是不对,只是出错不是0度附近,而是358度附近,呵呵。。。
alias
6楼-- · 2020-01-25 17:43
if value>179 then value = value - 360

一周热门 更多>