suozhang 发表于 2021-3-10 10:58:02

STM32 adc 采集两路正玄波信号,计算出相位差?

STM32 adc 采集两路正玄波信号,计算出相位差?
能否实现 ? STM32F407.

eric2013 发表于 2021-3-10 11:04:01

FFT计算即可。

suozhang 发表于 2021-3-13 21:12:05

有没有 相关的 demo 例子? 谢谢

eric2013 发表于 2021-3-14 06:59:55

suozhang 发表于 2021-3-13 21:12
有没有 相关的 demo 例子? 谢谢

没有。

suozhang 发表于 2021-3-14 10:24:12

我的目的是 采集 两路 ADC 信号,计算 两路信号 相位差 , 现在 思路 是 ADC+DMA 方式, ADC 轮训采集 两路 数据,DMA 搬运,这样 buff里就是 按照顺序 存储的 通道1 和 通道2的 值, 总计 1024个 值, 然后 进行 FFT 运算, 能否 算出 两路 信号 的相位差?

eric2013 发表于 2021-3-15 09:49:45

suozhang 发表于 2021-3-14 10:24
我的目的是 采集 两路 ADC 信号,计算 两路信号 相位差 , 现在 思路 是 ADC+DMA 方式, ADC 轮训采集 两路 ...

保证同步采样。

Blake 发表于 2021-3-15 17:25:15

同步采样 分成两个buffFFT结果算出两个波形的相位,两个相位相见就可以
fft(128,fft_I);
fft(128,fft_U);
for(a=0;a<64;a++)//计算相位差
            {
                I_angle=atan2f(fft_I.imag,fft_I.real)*180/PI;
                U_angle=atan2f(fft_U.imag,fft_U.real)*180/PI;
                if(a<=1)
                angle=I_angle-U_angle;
               else
                angle=I_angle-U_angle*a;
                while(angle>180)
                  angle -= 360;
                while(angle<-180)
                  angle += 360;
            }

jinyi7016 发表于 2021-3-17 12:19:24

STM32无法进行同步采样吧,总是有时间差的,还要看你要求的精度

eric2013 发表于 2021-3-17 15:37:43

jinyi7016 发表于 2021-3-17 12:19
STM32无法进行同步采样吧,总是有时间差的,还要看你要求的精度

可以,不过得两路ADC做同步采样,使用那个定时器的两个通道同时触发就行。

suozhang 发表于 2021-3-18 08:57:36

的确可以 同步采样 ,使用 定时器 触发ADC 1\2 DMA 同时采样 ,但是 目前效果不行,我 正在 分析原因中, 多重 ADC 模式 !

suozhang 发表于 2021-3-18 08:58:03

Blake 发表于 2021-3-15 17:25
同步采样 分成两个buffFFT结果算出两个波形的相位,两个相位相见就可以

eric2013 发表于 2021-3-18 15:44:31

suozhang 发表于 2021-3-18 08:57
的确可以 同步采样 ,使用 定时器 触发ADC 1\2 DMA 同时采样 ,但是 目前效果不行,我 正在 分析原因中 ...

不要用多重ADC方式,自己单独配置即可。

eric2013 发表于 2021-3-18 15:46:51

suozhang 发表于 2021-3-18 08:57
的确可以 同步采样 ,使用 定时器 触发ADC 1\2 DMA 同时采样 ,但是 目前效果不行,我 正在 分析原因中 ...

参考V5的一代示波器,使用一个定时器的三个通道同时触发三个ADC。

suozhang 发表于 2021-3-19 09:28:23

eric2013 发表于 2021-3-18 15:46
参考V5的一代示波器,使用一个定时器的三个通道同时触发三个ADC。

好的 收到

Edmund1964 发表于 2021-3-21 09:32:51

TIM1 或 8 的Channel 1 & 2 , 可以配置为XOR功能, 用这个能轻易的获取相差

菜鸟中的萌新 发表于 2021-3-31 11:44:25

Blake 发表于 2021-3-15 17:25
同步采样 分成两个buffFFT结果算出两个波形的相位,两个相位相见就可以

你好 请问一下 为什么a>1以后 angle=I_angle-U_angle*a; u的要乘上a呢

Blake 发表于 2021-4-1 08:44:08

菜鸟中的萌新 发表于 2021-3-31 11:44
你好 请问一下 为什么a>1以后 angle=I_angle-U_angle*a; u的要乘上a呢

计算出来的谐波必须要有一个参考才能计算出相位差,然后这个算的是电力数据,以电压基波为参考的,这个结果是对标电能质量分析仪的谐波数据

liaoliaoliao 发表于 2022-2-11 11:21:02

你好请教一下 如何计算两路的相位差

浴火重生 发表于 2022-2-15 09:39:01

Blake 发表于 2021-4-1 08:44
计算出来的谐波必须要有一个参考才能计算出相位差,然后这个算的是电力数据,以电压基波为参考的,这个结 ...

感谢分享,再问下利于FFT如何计算频率呢

apolecoco 发表于 2022-5-15 22:41:54

请问实现了吗?

蒙查查 发表于 2022-7-15 16:14:24

Edmund1964 发表于 2021-3-21 09:32
TIM1 或 8 的Channel 1 & 2 , 可以配置为XOR功能, 用这个能轻易的获取相差

请问有相关例程吗,网上找不到资料,不知该如何配置{:35:}

单片机菜菜 发表于 2022-8-26 14:33:33

请问楼主实现了吗,我测量的是电压、一次电流、二次电流,U-I2和I1-I2这两个的相位一直在变化,不知道是什么问题,虚心请教

单片机菜菜 发表于 2022-8-26 14:36:33

请问楼主解决了吗,我测量出来电压不变,U-I2和I1-I2的角度在不断降低,虚心请教

Alphaya 发表于 2024-2-28 14:21:50

Edmund1964 发表于 2021-3-21 09:32
TIM1 或 8 的Channel 1 & 2 , 可以配置为XOR功能, 用这个能轻易的获取相差

具体应该怎么操作呢

40mbiggun 发表于 2024-4-23 14:02:26

能实现 要知道信号频率 要不fft不好处理
页: [1]
查看完整版本: STM32 adc 采集两路正玄波信号,计算出相位差?