
comp输出用于tim1刹车,消隐源和pwm输出是不是得是同一个TIM?
STM32G431内部运放1和2输出连接的ADC为什么不是OPAMP?
workbench6.3.2生成的代码,无法用pilot电机参数识别,无法通讯
stm32G474的flash模式如何判定?single bank 和dual bank
STM32G474高精度定时器HRTIM配置死区互补PWM极端输出问题
hrtim里update reset和reset update同时打开不会互相激励吗,另外为什么现在定时器周期值不用-1了
STM32G473 解除写保护失败
HRTIM 变频控制输出的第一个周期频率异常
求助:keil在debug时出现Cannot access Memory*** error 122: AGDI: memory read failed (0xF81AF008)
STM32中比较适合做FOC控制的芯片
事例展示的是变动滤波器系数的过程,处理的数据一帧一帧的方式,针对2个谐波的数据,采用的是第一组系数,过滤掉2个谱线的噪声,针对3个噪声的数据,假如能自适应算出新的系数,比如分析fft等再求出系数,那么用新的系数滤除带有3个谱线噪声的数据,体现自适应的特点。例子中设定2个数组放缓冲数据,表明在处理过程中,可以加载下一帧要处理的数据,体现协处理器的特点,两组系数怎么得到,文中未提,认为笔者可以通过其他算法计算得出,不是这里的重点。
有个例子可以参考,网上搜AN5305有相关的文档说明
.\STM32Cube\Repository\STM32Cube_FW_G4_V1.5.1\Projects\NUCLEO-G474RE\Examples\FMAC\FMAC_Adaptive_FIR_AN5305
可以先用matlab设计fir滤波器,利用内置的fmac外设实时滤波啊
1、做ADC前记得做校准;
2、采样时间在不影响性能前提下尽量设置长点;
3、电源尽量尽量稳定;
4、被测试信号脚尽量远离干扰,尽量避免旁边存在电平频繁跳变的管脚;
5、必要时做些数字滤波处理也是可以的;
干扰似乎是个周期性且有规律的 因为做平均后数据趋于稳定 一定有什么数字算法可以处理掉 将需要的数据完整的分离出来
[md]校准过
采样时间也加到247.5
示波器可以看到干扰是来自金升阳的DC-DC K7805模块 查手册刚好是50mV
想请教有什么数字算法滤波可有效分离出准确数据
请教下 fir可以用自适应滤波器替换么? 或者说自适应滤波器如何使用FMAC?
[md]我在读这个例程,有些疑惑请教您。
/* Fill first frame with input signal and zero the other frame */
/* Normally samples would come from ADC or other source, in this example the */
/* same data is reloaded from Flash */
for (Index=0; Index<ARRAY_SIZE; Index++)
{
aInputValues[0][Index] = TwoToneNoise[Index];
aInputValues[1][Index] = 0;
}
/* generate filter coefficents (in this example they are simply read from flash */
for (Index=0; Index<COEFF_VECTOR_B_SIZE; Index++)
{
aFilterCoeffB[Index] = TwoToneFilter[Index];
}
/* While processing is going on, fill next frame with input signal */
/* Normally samples would come from ADC or other source, in this example the */
/* data are loaded from Flash */
for (Index=0; Index<ARRAY_SIZE; Index++)
{
aInputValues[OldFrame][Index] = ThreeToneNoise[Index];
}
/* Update filter coefficients for next frame */
/* Normally this would be done by the adaptive algorithm, in this example the */
/* coefficients are loaded from flash */
for (Index=0; Index<COEFF_VECTOR_B_SIZE; Index++)
{
aFilterCoeffB[Index] = ThreeToneFilter[Index];
}
这是例程中函数的2段参数入口。不太明白这2个参数入口的含义,也不太明白例程设置2个是为了什么呢?如果我只有一个ADC数据采集使用FMAC是否删掉其中一个就可以?如果我有3个ADC数据采集都想使用FMAC又该如何呢?
[md]谢谢您的点拨,给我如何参考这段代码指明的方向,非常感谢您!