清单3.用于实现N=256的位反转的展开循环
2.4 Radix-2 F什么叫电感器FT算法
采样按照位反转方式重新排序后就可进行FFT运算了。本Radix-2 FFT应用的固件通过三个主循环执行图2所示的蝶型运算。外循环计数log2(N)级FFT运算。内循环执行每一级的蝶型运算。
FFT算法的核心部分是执行蝶型运算的一小块代码。程序清单4给出了这一块代码,遗憾的是,它是本应用中唯一“不可移植”的固件。宏MUL_1和MUL_2利用C的硬件乘法器执行单指令周期乘法运算。这些宏的内容专用于MAXQ2000,可在实际固件中功率电感器全部看到。
2.5 复数的极坐标转换
为了便于确定VIN频谱的幅度,必须将复数形式的X(K)转换为极坐标形式。实现该转换的固件示于程序清单5。幅度值取代了原始的FFT结果,因为固件不再需要这些数据。
频谱幅度通过一个二维LUT查表得到。第一索引为频谱实部的高4位(MSB),第二索引为频谱虚部的高4位。为得到这些数据,可将带符号的16位数据右移11次。在从频谱的实部和虚部取得索引号前,需首先将它们转换为绝对值。因此,符号位为
零。
频谱的幅度是关于X(N/2)对称的,因此只需将前(N/2)+1个频谱数据转换为极坐标形式。还有,我们可以看到,对于实数输入采样,X(0)和X(N/2)的虚部总为零,因此这两条谱线的幅度被单独计算。本项目实际固件的注释中包含了用于自动生成该LUT的源代码,可由程序调用来计算X(k)的幅度。
2.6 Hamming或Hann窗
此项目电感厂家固件还包括了对输入采样加Hamming或Hann窗的LUT(Q8.7格式)。加窗函数可有效降低对时域功率电感器采样X(n)的舍入操作所引起的频谱泄漏。Hamming和Hann窗函数分别如式l和2所示。
程序清单6给出了实现这些函数的代码。同样,本项目实际固件的注释中包含了用于自动生成这些LUT的源代码,可由程序调用来实现这些窗函数。
3 测试结果
为了测试该FFT应用的性能,固件将X(K)幅度通过μC的UART端口上传给PC。专门编写的FFTGraph软件(随该项目固件一起提供)用于从PC串口读取这些幅值,并以图形方式实时显示频谱。图3显示了μC以200 kS/s采样四种不同输入信号并处理后,由FFT Graph所显示出来的结果。
2051的比较器模拟AD源程序(C语言)sbit P36 = P3^6; // 比较器内部判断脚sbit LED = P3^7; // 一个发光二级管观察亮度变化// 内部标志位定义bit less; // 比较是否大于 1.小于,0.大于
[逆变器]【21ic分享赛】 机床用无刷电机控制器4本帖最后由亲爱的郭郭于2016-6-2814:12编辑
这几天一直没有写,主要是因为外壳还没有找到。
如果自己做外壳的话根本不可能,费用太高老板不会同意。
只能在特别什么买。
东西虽
一种轿车车门ECU 设计 摘 要: 提出了一种 总体分布、局部集中式 的轿车车门ECU设计,ECU之间以CAN总线方式通信。以英飞凌公司XC164CS微控制器和TLE8201、BTS781功率驱动芯片为核心设计了车门ECU的