2

fft算法原理(FFT算法)

我所负责的第一款使用了FFT算法的产品是于2007年开发的电能质量监控仪。

该产品有以下功能:

对电力系统的基本数据实时监测,包括电流、电压、有功功率、无功功率、视在功率、功率因数、谐波、总谐波失真、故障等。

绘制电压、电流等信号的实时波形。

当前测试信号的相量图。

不平衡度、电压偏差、 频率偏差。

谐波分析;

闪变(波动与闪变)、 瞬态(跌落与瞬态)。

电能(累计)。

其中,三相电流和电压采用了当时比较先进的真有效值测量方法。

采用FFT进行谐波分析是其中的设计难点。

当时为了加快运算速度,采用汇编语言编写了包括FFT在内的一些算法。

采用了加窗以及准同步采样等算法解决频谱泄露、采样不同步等问题。

现在再回头看这些密密麻麻的汇编代码,无比佩服自己,居然能静下心来搞清楚其中的关系,并调试到没有问题。

由于STM32F103处理器不支持硬件浮点数运算,

通过FFT变换进行振动包络信号处理耗时比较长,

经过测算,将处理器的CPU主频设置为72MHz,4096个采样点的FFT变换耗时约160ms。

一路加速度信号的振动包络分析需要进行3次的FFT变换/逆变换,总耗时约为500ms。

处理八路加速度信号总耗时约为4s。

对于FFT的方案,接下来准备换用GD的cortex-M4内核的处理器。

该系列处理器最高支持168MHz左右的主频,支持硬件浮点数运算,预计8路总处理时间可以做到1s以内。

另外一种思路是在时间域上对包络信号进行处理,包括以下步骤:

1)通过硬件带通滤波器或者数字FIR带通滤波器滤除旋转加速度,实现共振解调。

2)将经过带通滤波器之后的数据做取绝对值运算。

3)将取绝对值运算之后的数据进行检波,得到包络信号。

4)将包络信号进行FFT变换得到包络的频谱,根据频谱预测故障并分析故障特征。

这两天,采用Octava以及delphi设计了一个上位机模拟软件,技术要点为:

1)采用Octava的fir1函数设计FIR带通滤波器,将生成的滤波器抽头系数保存为txt文件。

2)delphi模拟生成加速度信号,从txt文件中读取滤波器抽头系统,通过卷积运算得到滤波之后的数值。

3)我用一种创新的方法对取绝对值之后的数据进行包络检测。

我想到了峰值检测电路,

当输入电压大于电容两端电压时,输入电压快速向电容充电,

当输入电压小于电容两端电压时,电容电端电压按R*C为时间常数放电。

假设n时刻的电容电压为Y(n),n+1时刻的输入电压为I(n+1),

根据三要素法,得到n+1时刻的电容电压为:

Y(n+1)=[Y(n)-I(n+1)]*exp(-t/τ)+I(n+1);

根据这一公式,再通过迭代计算,可以得到包络信号。

今天上午讲图像处理,两节课板书共两大黑板,主要是帮学生建立知识体系,因为只有系统化的知识才能产生能力,这是第一黑板,先写两黑板讲35分钟,再辅以ppt快速精讲,两节课下来,除了数学形态学,图像预处理基本都讲完了。因为研究生课时少内容多,图像处理和特征提取共讲11学时,需要学生有一定基础,且能课内外结合,还要及时编程训练。

对于想学好机器视觉的同学,我提供如下建议:1)把傅立叶变换、相关运算和卷积运算弄清楚,特别是三者之间联系和区别,FFT和逆FFT在同态滤波增晰中有应用,弄清楚从空域往频域转换的意义。卷积是传统视觉精华之一,各种图像滤波器要弄明白,关键是把卷积模板(卷积核)和卷积计算方法彻底弄懂;2)直方图虽然很简单,但却很重要,要能看到图像,脑子里能描出大致直方图,并用好软件中的直方图工具和算子,比如直方图均衡化,在血管造影等图像增强中常用;3)平滑滤波器是低通滤波器,锐化滤波器(包括边缘检测)是高通滤波器,保边滤波器算法则是实现图像平滑的同时,保留边缘细节,比如何凯明的导向滤波器,P-Malik的各向异性扩散滤器。

下一次课讲形态学和特征提取算法,继续与大家总结分享![呲牙][呲牙]

本文来自网络,不代表本站立场。转载请注明出处: https://tj.jiuquan.cc/a-2141234/
1
上一篇fedora 12(fedora12 硬件 要求)
下一篇 filelistbox

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: alzn66@foxmail.com

关注微信

微信扫一扫关注我们

返回顶部