获取了声音的波形 进行FFT变换, FFT变换后X轴与Y轴各代表什么意思呢?
轉完的 x 軸是 frequency,y 軸可以是 magintude or power level.
所以0dB表示你量到的數值跟那種信號的ref.(基底) 值一樣大。 Help有說明到的聲壓的 ref值是被定義為 pref is 20 µPa。
下面跟你分享得再更詳細些 :
Help 裡鍵入「dB」,點選「Measuring Sound Pressure」 可在右邊畫面看到LabVIEW裡所提供的公式。
依Power或Amplitude,算法略有不同。 (當然仍是同一條,只要你清楚就scale而言 Power 就是Amplitude的平方 )
dB = 10 log (Power Ratio) ; Power Ratio = P1/P0
dB = 20 log (Amplitude Ratio) ; Amplitude Ratio = A1/A0
其中,P1、A1為measured power & amplitude,P0、A0為 reference power & amplitude。
Pi = Ai ^2。
dB measurement 的意義是「purely relative」的。 dB視你所量測的訊號類型,具「相對的大小意義」。
0dB表示你量到的訊號大小跟這種訊號的ref.值一樣大。
不同型式的自然界訊號有不同的通用ref.數值大小。可查表而得。
而dBm是特別針對電壓power而言的「dB」。另外還有dBZ、dBk、dBi…等等。
可參考WIKI: http://en.wikipedia.org/wiki/Decibel#cite_note-2
就聲壓而言,dB的表示法是根據人耳聽覺所能感受到的程度以log 作為scale呈現。
式子為Amplitude的那條 => SPL = 20 log10 (p/pref)。
這時,
0dB代表「average threshold of human hearing」,而60~70dB 代表對人耳而言比較normal的範圍。
當然這些都是依據統計數據作為基礎。
今天如果你量測的是 聲壓 (Power)的 話,ref、基底就是20μ,
而0dB表示你量測到的「波形數值大小」就是 20μpa ( pa是單位)! 相當於一隻蚊子距離你三公尺飛時的聲音大小。
-----------------------------------
-----------------------------------
振动加速度和分贝的转换公式(????这个是经验公式??? 适用性)
A: m/s^2 (注意单位,通常实际使用的是mm/s^2)
B: dB
B=20*log(A/0.000316)
A=10^(B/20)*0.000316
------------------------------------------
Matlab 使用 FFT 进行频谱分析
下面的示例说明了如何使用 FFT 函数进行频谱分析。FFT 的一个常用场景是确定一个时域含噪信号的频率分量。
首先创建一些数据。假设是以 1000 Hz 的频率对数据进行的采样。首先为数据构造一条时间轴,时间范围从 t = 0 至 t = 0.25,步长为 1 毫秒。然后,创建一个包含 50 Hz 和 120 Hz 频率的正弦波信号 x。
t = 0:.001:.25; x = sin(2*pi*50*t) + sin(2*pi*120*t);
添加一些标准差为 2 的随机噪声以产生含噪信号 y。然后,通过对该含噪信号 y 绘图来了解该信号。
y = x + 2*randn(size(t)); plot(y(1:50)) title('Noisy time domain signal')
很明显,通过观察该信号很难确定频率分量;这就是频谱分析为什么被广泛应用的原因。
得到含噪信号 y 的离散傅里叶变换很容易;执行快速傅里叶变换 (FFT) 即可实现。
Y = fft(y,251);
使用复共轭 (CONJ) 计算功率谱密度,即测量不同频率下的能量。为前 127 个点构造一个频率轴,并使用该轴绘制结果图形。(其余的点是对称的。)
Pyy = Y.*conj(Y)/251; f = 1000/251*(0:127); plot(f,Pyy(1:128)) title('Power spectral density') xlabel('Frequency (Hz)')
放大并仅绘制上限为 200 Hz 的图形。请注意 50 Hz 和 120 Hz 下的峰值。以下是原始信号的频率。
plot(f(1:50),Pyy(1:50)) title('Power spectral density') xlabel('Frequency (Hz)')