chonwang 发表于 2010-12-22 14:51

[求助]聲壓FFT轉換的問題

本帖最后由 chonwang 于 2010-12-22 14:57 编辑

Fluent acoustic 求得某點的聲壓
再利用MATLAB FFT分析
圖:(上)原始聲壓訊號
    (中)FFT後聲壓訊號
    (下)將FFT訊號轉換成dB(SPL)

MATLAB語法
----------------------------------------------------------------------------
clc;clear;
Timeset=0.008725; %時間間隔

Fstar=0; %頻譜圖頻率起點
Fend=10; %頻譜圖頻率終點
Fscal=0.01;%頻譜圖頻率最小尺度

SR=1/Timeset;
data = xlsread('test120steps_from885(0.008725s)x80_20101221.xls'); %讀取DATA
t = data(:,1);
y = data(:,2);
subplot(3,1,1)
plot(t,y)
title('原始訊號')
xlabel('Time(s)')
L = length(y);
NFFT = SR/Fscal;
Y = fft(y,NFFT)/L;
f = SR/2*linspace(0,1,NFFT/2+1);
subplot(3,1,2)
plot(f,2*abs(Y(1:NFFT/2+1)))
axis()
xlabel('Frequency (Hz)')
ylabel('|Y(f)|')

P = 2*abs(Y(1:NFFT/2+1));
dB = 20*(log10(P/(2*0.00001)));
subplot(3,1,3)
plot(f,(dB))
axis()
xlabel('Frequency (Hz)')
ylabel('SPL(dB)')

----------------------------------------------------------------------------

問題:
1.聲壓訊號 只抓風機約轉三圈的訊號,FFT後是否不夠準確?
2.圖二,利用複製40倍,是不是會出現很多雜訊?



hyl2323 发表于 2010-12-22 22:11

lz的问题有以下几方面:
1)测不准原理,也就是时间分辨率和频率分辨率不可同时都高。图1时间取得短,频率分辨率比较差,图2时间太长,频率分辨率高,fft分析的点数太多,耗时间,你应该根据需要的频率分辨率选择合适的分析时间长度;
2)你没有加窗,如果你无法保证分析的信号时整周期长度,那么一定要加窗,否则泄露严重;
3)matlab的fft只是一个数学函数,工程用的fft其实是基于fft的功率谱,要考虑重叠和平均,lms等商业软件都是这样的。不重叠平均的话,实际测量的信号,你做一次fft,得到的spectrum会有很多毛刺,而且每一段信号得到的fft结果都不一样。

chonwang 发表于 2010-12-22 23:02

本帖最后由 chonwang 于 2010-12-22 23:07 编辑

回复 2 # hyl2323 的帖子

感謝您的回答~
我不太懂(2)加窗是甚麼?@@
所以,我用matlab FFT得到的結果不太正確 ,要用套裝軟體提供的FFT才準確?
還在測試 fluent 流場data匯入LMS.還沒成功
附上一張 ANSYS fluent acoustic 算出來的FFT


hyl2323 发表于 2010-12-23 18:57

你看看信号处理书吧,加窗是必须的,单纯的FFT只是个数学变换,如果要正确体现信号作fft变换后的物理意义,要做时间截断,加窗,重叠平均,窗修正等处理。

ChaChing 发表于 2011-3-15 21:34

本帖最后由 ChaChing 于 2011-3-15 21:35 编辑

回复 1 # chonwang 的帖子

解决了吗?
可否提供数据, 有空想练习看看!
页: [1]
查看完整版本: [求助]聲壓FFT轉換的問題