zoukankan      html  css  js  c++  java
  • 噪音分贝DB,FFT. 振动加速度关系

    获取了声音的波形 进行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)')

     
  • 相关阅读:
    移动端图片按比例裁剪
    bootstrap悬停下拉菜单显示
    videojs兼容ie8
    ie浏览器不支持多行隐藏显示省略号
    rem和px
    浏览器默认返回,页面刷新
    centos src compile gcc 7.3
    docker与gosu
    centos 安装 kernel
    docker proxy
  • 原文地址:https://www.cnblogs.com/zitjubiz/p/14843959.html
Copyright © 2011-2022 走看看