kingg209 发表于 2013-5-13 08:21:48

正弦波有效值计算

用stm32f103 检测正弦波,想计算有效值,用一个周期的均方根计算,可是计算一个周期的总是不准。计算出的数总是变化,计算两个信号周期的就变化不大了,但与实际结果不一致。想请教一下,应该注意什么呢?
计算均方根采用的是中断的方式,在20ms周期内采样200个点。

kingg209 发表于 2013-5-13 10:41:24

RE:正弦波有效值计算

void TIM2_IRQHandler(void)
{
while (TIM_GetITStatus(TIM4, TIM_IT_Update) != RESET) //
{
TIM_ClearITPendingBit(TIM4, TIM_IT_Update);
ADC_GetConversionValue(ADC1);
SUMI2a = SUMI2a + AD_Value*AD_Value;
TIMadc++;
if(TIMadc==200)
{
Ia = sqrt(SUMI2a/200;
SUMI2a=0;
TIMadc=0;
}
}
这么写有什么不对的吗?定时器4定时周期是0.1ms

lyxing0722 发表于 2013-5-16 10:13:23

回复:正弦波有效值计算

最好采用定时采样,开方运算是需要时间的,这样你就不能保证一个周期采到200个点了,计算有效值要单独处理!
页: [1]
查看完整版本: 正弦波有效值计算