FPGA|CPLD|ASICwilliam hill官网
直播中

liyisong1

2年用户 5经验值
擅长:可编程逻辑 嵌入式技术
私信 关注
[问答]

AD采集FPGA做fft处理信号的问题

在做项目的时候遇到一个问题,求大佬们解答一下

要求对频率范围为5Hz到5000Hz的三路振动信号进行采集,打算用一块AD复用三个通道来进行采集,采样频率打算用60KHz,那么每通道的实际采样频率是不是就是20KHz呢?这样是不是就能满足每通道采样频率为信号频率的4倍呢?

对采集到的信号进行fft处理,以得到指定频率点的幅度值,指定的频率点都集中在200Hz以内,且都精确到了小数点后一位,也就是说频率分辨率得是0.1才能将这些信号区分出来,这样的话fft点数得是20K*2/0.1 ,达到了40万以上(不知道我这样算对不对),那么fpga是不是没办法做了呢,我看7系fpga的fft ip核最大点数也就到65536。

如果我将采集到的数据通过一个数字滤波器,将200Hz以上频率的信号全部滤除,再做fft,这样可处理可行吗?

回帖(1)

杨秀英

2024-9-2 17:22:32
首先,我们来分析一下你的问题。你的需求是对三路振动信号进行采集,频率范围为5Hz到5000Hz,使用AD复用三个通道进行采集,采样频率为60KHz。接下来,我们逐步解答你的问题。

1. 每通道的实际采样频率:由于你使用了AD复用三个通道,所以每通道的实际采样频率是60KHz / 3 = 20KHz。这个采样频率满足奈奎斯特定理,即采样频率至少是信号频率的两倍。

2. FFT点数计算:你提到的频率分辨率是0.1Hz,那么FFT点数应该是20K * 2 / 0.1 = 400,000。这个计算是正确的。

3. FPGA处理能力:你提到7系FPGA的FFT IP核最大点数为65536,这个点数确实无法满足你的FFT点数需求。但是,你可以考虑使用其他系列的FPGA,或者使用自定义的FFT算法来实现更高的点数。

4. 数字滤波器的使用:你的想法是先通过数字滤波器将200Hz以上频率的信号滤除,然后再进行FFT处理。这是一个可行的方法。使用低通滤波器(例如FIR滤波器或IIR滤波器)可以有效地去除高频噪声,从而降低FFT的计算复杂度。在这种情况下,你可以使用较小的FFT点数来满足你的需求。

5. 滤波后的FFT点数:在滤波后,你只需要关注200Hz以内的频率点。假设你希望在200Hz以内的频率分辨率为0.1Hz,那么FFT点数应该是200 / 0.1 = 2000。这个点数对于7系FPGA来说是完全可以处理的。

总结:你的问题可以通过使用数字滤波器降低FFT的计算复杂度来解决。在滤波后,你可以使用较小的FFT点数来满足你的需求,同时使用7系FPGA进行处理。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分