[求助]聲壓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倍,是不是會出現很多雜訊?
lz的问题有以下几方面:
1)测不准原理,也就是时间分辨率和频率分辨率不可同时都高。图1时间取得短,频率分辨率比较差,图2时间太长,频率分辨率高,fft分析的点数太多,耗时间,你应该根据需要的频率分辨率选择合适的分析时间长度;
2)你没有加窗,如果你无法保证分析的信号时整周期长度,那么一定要加窗,否则泄露严重;
3)matlab的fft只是一个数学函数,工程用的fft其实是基于fft的功率谱,要考虑重叠和平均,lms等商业软件都是这样的。不重叠平均的话,实际测量的信号,你做一次fft,得到的spectrum会有很多毛刺,而且每一段信号得到的fft结果都不一样。 本帖最后由 chonwang 于 2010-12-22 23:07 编辑
回复 2 # hyl2323 的帖子
感謝您的回答~
我不太懂(2)加窗是甚麼?@@
所以,我用matlab FFT得到的結果不太正確 ,要用套裝軟體提供的FFT才準確?
還在測試 fluent 流場data匯入LMS.還沒成功
附上一張 ANSYS fluent acoustic 算出來的FFT
你看看信号处理书吧,加窗是必须的,单纯的FFT只是个数学变换,如果要正确体现信号作fft变换后的物理意义,要做时间截断,加窗,重叠平均,窗修正等处理。 本帖最后由 ChaChing 于 2011-3-15 21:35 编辑
回复 1 # chonwang 的帖子
解决了吗?
可否提供数据, 有空想练习看看!
页:
[1]