数字提取某个信号的方法原理
各位坛友,下面有这样一个习题,怎样解答啊某噪声带交变信号群之中, 已知必含有一个三相交流电信号 并且它被淹没在噪声中
还知道这个三相交流电信号的频率大致在1 Hz ---3 Hz之间。
现在的任务是: 使用32位单片机的数字滤波的办法 把被淹没的信号找出来(主要关心频率 例如2.46Hz)
从数学,到单片机编程 该使用哪些技术和算法 。
补充内容 (2024-1-14 05:20):
信号的频率是固定的,
之所以还有 1--3的说法,是因为他会在这个范围缓慢飘移。 你这频率也太低了,滤波器都滤不了 JuncoJet 发表于 2024-1-11 15:39
你这频率也太低了,滤波器都滤不了
您说的滤波器大概是模拟电路吧是不行。
我说的是单片机数字滤波 是否可行? 对信号进行调理后进ADC,然后对转换后的信号做FFT运算,就可以找出主频了 不干这个行业,不过看到别人干过。感觉4楼说的对,找本波形分析的书或文档看看。固定的波形,傅立叶变换,非固定的波形,小波分析。 没亲自做过,大概道听途说过方法。有个前提,是被淹没的信号不能被淹的太深。
首先要有一个采样率足够高的ADC,这个ADC不仅仅是针对目标信号采样,干扰信号也在采样范围之内。
然后将数据进行傅里叶变换,在处理器中一般使用快速傅里叶变换(FFT)的方法,在80C196上能做,现在的ARM更没问题了。变换之后,就能得到各个频阈的数据。不过,如果有效信号是一个范围,而不是一个确定的数值,而噪声也在这范围内,就麻烦些了,也就是前面提到的不能被淹的太深…… 如果信号频率很稳定,可以使用一个外部标准的数字信号源和带噪声的2.46HZ做相关,就会过滤掉噪声。如果信号在2.46HZ附近漂移,或者不是那么稳定。只能使用数字带通滤波器。一般我熟悉FIR的多节滤波器。希望对你有帮助,需要进一步操作可以私信我 本帖最后由 iffi123 于 2024-1-13 13:09 编辑
stm32 dsp库有数字滤波器
基本步骤: 先用matlab按设计要求算出数字滤波器的系数表,然后调用dsp库的数字滤波器就可以,具体看下网上教程
如果用stm32G47x系列,内置硬件数字滤波器,速度更快,还支持中断
作为举例,FIR带通滤波器,79阶
蓝色是幅频特性,绿色是相频特性
如果用IIR滤波器,阶数更少,运算更快,如果不需要相位信息可以用
DSP就是干这个用的。 bis 发表于 2024-1-21 16:48
DSP就是干这个用的。
单片机软件还没学通,正在积极学习 。虽然不太懂,但是远大目标必须树立。
最后在向DSP发起进攻,哈;P
页:
[1]