噪音检测模块输出的电压与分贝之间转换的公式

本文介绍了声音单位分贝(dB)的由来及其多种应用形式,包括dBm、dBv、dBu、dBW等,并解释了它们之间的区别与联系。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

S e r v i c e | R e v i e w | M u s i c W o w | C o n n e c t U s | H o m e


您的聲音工具分貝 ( dB ) 知多少?________________________________________吳榮宗 主筆

從事聲音工作的朋友或是業餘愛好者,每每接觸到音響設備或是手冊,都會在一些數據之後,看到很多
你熟悉的 ( dB ) 字眼,它們的過程是怎麼來的?現在就簡單的介紹認識這個單位吧。

分貝( decibel )簡稱 dB

早期生活上,辨識東西會以大概、差不多,或是用比的,儘可能的讓對方或自己瞭解有多少多大。
當文明來臨與成長時,對這樣的果付予大家所認同的刻度單位種種,這樣的規則無不充斥在你我的
生活裡,例如長度的:公厘、公分、公寸、公尺、公丈、公引、及公里等,還有在面積的單位、
容積體積的單位、重量的單位等等,
( 聲學及電子聲學 ) 方面的單位,它是以分貝(decibel ,dB ) 來做結果的。
這個單位的由來是英國, Alexander Graham Bell ( 1847 - 1922 )這個人成長及受教育於英國愛丁堡大學
倫敦大學,後來任職於波士頓大學教授,一生專注於科學。
1876 那一年發明電話!我們都知道貝爾發明了電話,然而重要的是,他發現我們人類耳朵對聲音強度
的反應是成對數形式,
大概的意思是當聲音的強度增加到某一程度時,人的聽覺會變的較不敏銳,
這使得對數的單位可以去拿來代表人耳的特性,為了紀念他的發現因而命名為Bell。
Bell 用在遠距兩地計算時是 ok 的,因為 Bell 這單位在實際應用上太大了,我們用在小訊號方面時就
須再細分以十分之一為一個單位,如同你在使用電表時欲量取小電壓,會自動往下播切一格類似,
此即 decibel(分貝),從英文字的 decibel 是(十分之一),(小數)是 decimal,簡寫是 deci
將deci + bel 即成decibel 。而這又有簡寫符號為 dB,注意這dB
前面的d 是小寫而後面的 B 是大寫

dBm
dBm 是在一個電子電路內,求得一聲頻訊號電平( Audio Signal Level )的量測單位.它在分貝( decibel )的
領域內代表所依據的基準是
1 Milliwatt 的分貝.另一種說法是 dBm 所標示的m 即是(milliwatt)
在一個電路內其阻抗為
600Ω.它參照換算相當於一個 0.775 V 的訊號電壓,這訊號電壓是 RMS 的電壓值,
也就是 0 dBm 因為 0.775 V 跨接600Ω的負載等於 1mW .即:
1 Milliwatt = 0.775V = 0 dBm / 600Ω.
dBm 的m 是小寫的m,它表示1 mW( milliwatt ).但是現在阻抗( Z )通常省略了不提示.
就設備的規格表裡如果有寫及
\dBm字眼時,即表示在任一電子設備的電子迴路上所量測有供電的阻抗值
是600 歐姆,是有跨街負載的。
其方程式為:

dBm = 10 log ( P / 0.001 W )

P = 0.001 × 10 ( dBm / 10 )

式中的P 是量測Power 的數值,單位的表示就是Watts.
若以0 dBm 是測量於跨接在個600 歐姆的負載下(在這裡明白的指出了600歐姆的負載),
我們己知道這0.001 W 己經消耗掉了.

代入公式P = E × I = E2 / R 也就是說 0.001 = E2 / 600

E= √0.001 × 600 = 0.775V

因而當0.775 V 是量測在一個600 歐姆的迴路上的話.那0 dBm 就是訊號的功率值,若其它的電壓是測量
在這600 歐姆電路,則dBm 的數值是定位於

dBm = 20 log ( E / 0.775 )

式中的E 是經量測後得到的電壓值.


dBv and dBu
小寫的v 和u 表示相似的東西,
dBv 和dBu 也是在一個電子電路內,求得一聲頻訊號電平( Audio Signal Level )的量測單位.而且它們在
分貝(decibel)的領域內,所依據的基準也是0.775 V RMS值,與上述dBm 不同之處是它會運用在任何的阻抗
情形下去算出數據來,我們會時常見到dBu 但較少見到dBv,是因為dBv 它會混淆到我們以為是dBV,
dBv 和dBV 這兩者是不同的.另一方面要知道的是
dBu 是歐洲慣用的,dBv 是美國慣用的.知道麼?
因此dBv 或dBu 小寫的v 和u 在基本上表示相同的事物,當一個電壓在做測量的時候,沒有牽拖到電路阻抗,
但起始運算是拿0.775 V 來導入,
這樣說好了,假設好像電路是600Ω 這是我們認為的,(在實際情況上,這可能是不知道的.)因為電路阻抗是
不清楚的,因而實際有效功率是不明確的,那求出的值亦是不準確,如果要嚴格結果的,
使用dBv or dBu 來求取數值時.並不是一個正確的 dB 測量法,然而它所得的果還是有用的.
我們觀察其不同之處,

dBm = 20 log ( E / 0.775 ),

dBv = 20 log ( E / 0.775 ),

dBm 式子裡的0.775V 是以正600歐姆求出的.
dBv 式子裡的0.775V 則是假設它們是600歐姆的,
式中的E 是經量測後所得到的電壓值,至後此兩式子的差值在現今已被畫成等號了.
也就是說dBm = dBv or dBu而且很不幸的是dBv 變成現在大家通用的運算法則.這是為什麼?
原因是,業者的產品設備雖不達要求標準,但足夠大眾消費上的運用,以音響商業市場裡,這是方便的
宣告自己產品規格數據,以這樣的方式去解釋分貝.但又沒有真實說明,這是廠商們最想要結果。

dBV
dBV 也是運用在一個電子電路內,求得一聲頻訊號電平( Audio Signal Level )的量測單位.
它在分貝( decibel )的領域內所依據的基準是1 V RMS 值的分貝.它量測時的條件很鬆.
可作用在任何的阻抗值上,dBV 的測量是相似於dBv( 或dBu )測量的方式,但大V 表示參考於1 伏特電壓
( 電壓基準 ),且不管給予的任何阻抗值,那麼這個值就更不是那麼的精準了.不過起碼能知道任一電路
架構的訊號電平位準差不多是在那裡,是的,dBV 會在那裡出現呢?
它通常是運用在-10 dBV 的非平衡式( Unbalanced ) or 高阻抗(High Impedance)的消費性電子裝置設備上,
一般製造商所提供的文件上,會標註輸入及輸出是依據於負10,又應標註何時是利用dBV 參考,
( 這點有時被忽略了 ).以及何時又是利用dBv or dBu 參考的,
大致上高端的器材設備上,幾乎看不到這樣的數值表示.當廠商提示出dBV 時,您也就不必太關心這個
數值了,它並不會很準確,但也是可以使用的結構,僅是利用在產品架構上,去界定它是消費性業餘
裝置或專業級的設備.

dBW
它在分貝的領域內,所依據的基準是明確的在1 W 的分貝,
dBW 大寫的W 即為Watt的意思.其時這段文應該跟dBm擺在一起的.
就如dBm 般的,它對於聲頻方面,如麥克風電平位準及線性電平位準(Line Level)而言,運用dBm 來求取
數值剛好.dBm or dBv or dBu 就像比例呎一樣將一個較大的量測單位照比例縮小到方便我們使用.
如果用dBW 來導入就不太恰當.它是太大了.
不過它能利用在求出擴大機功率輸出的對數性質,即 dBW. 只是dBW與dBm一樣的被商家們,忽略掉
0 dBW=1W,
100W=10log(100W/1)=20 dBW
1000W=30 dBW
當dBW 代換到dBm 時是:
1W=多少 dBm
dBm=10log(1W/1mW)=10log(1/0.001)=30 dBm
1W= 0 dBW=30 dBm
dBW = -30 dBm,這就是 30 dBm = 0 dBW.

下表是有關dBW 與Watts 的相互對照,


覺得聲音大1 倍時,喇叭的音壓已增加了近10 dB ,擴大機的功率也大了近10 倍了.

dBr
dBr 是一個在當下量測時,付予電子電路內,一量測的參考電壓.製造商會在手冊上說明某一環節的電路
所求出的值.是以多少量測的參考電壓dBr 來測得的.淺說也就是參考電壓從單一訊號到全頻20~20k.
其量測的校準刻度是在0 dBr .又一般 0 dBr = 1.23 Vrms = + 4dBv 除非是使用不同的量測的參考電壓.
那廠商就有責任告知它們的dBr 是以多電平( Level )量測的.

dBFS
分貝滿刻度也就是一般數位設備上的指示單位.
這”滿刻度”之意就是使用在一類比訊號轉換成數位訊號 or 數位訊號換成類比訊號時的過程.
這轉換之間所能記錄編碼的最大電平量(在數位訊號失真切割之前" digital clipping" ).
這個最大的記錄編碼電平量就寫成 0 dBFS .
0dBFS 數位訊號滿刻度又等於+ 24dBu 的類比訊號輸出.然而一般的數位設備會架構於+ 18dBu輸出.

dBA,dBB,dBC
這三組濾波電路是針對人耳對於低頻的感觀在某個音壓下,會有不同的聆聽表現,
舉例當我們聆聽小聲的音樂電平時,對於低頻的反應是不靈敏,然後就量測麥克風儀器而言,
在任何音壓裡,對於低頻應有的能量取得是一樣的靈敏,這樣會造成在小音壓底下,麥克風量到的
與耳朵聽到的會不一致,為了讓人耳這樣的等響曲線與量測的曲線相似,在音壓量計上,或是量測曲線儀上,都會提供大約2~3個不同音壓範圍的曲線濾波選擇。

聲壓位準在20~55 dB SPL範圍內,建議使用A加權曲線網路.

聲壓位準在55~85 dB SPL範圍內,建議使用B加權曲線網路.

聲壓位準在85~140 dB SPL範圍內,建議使用C加權曲線網路.

B加權濾波已經不太被應用在量測上了,僅在學術的研討上才會有更細膩的慮波曲線參考。


S e r v i c e | R e v i e w | M u s i c W o w | C o n n e c t U s | H o m e

嗯,用户想做一个教室噪声检测系统,用灯条颜色变化显示分贝值。首先得确定需要哪些硬件。噪声检测的话,麦克风模块是必须的,像MAX4466或者声音传感器模块。然后灯条应该用可寻址的RGB灯带,比如WS2812B,这个常用,控制方便。主控的话,用户提到了Arduino或树莓派。可能Arduino更简单,但树莓派处理数据可能更灵活。 接下来是分贝转RGB的问题。分贝范围通常是30到100左右,教室安静时大概30-40分贝,吵闹的话可能到70-80。需要将分贝值映射到颜色渐变。比如低分贝用绿色,中间黄色,高分贝红色。可以用线性插值或者HSV颜色空间转换,这样颜色过渡更自然。 然后是代码部分。如果用Arduino的话,需要读取模拟输入,转换分贝值。不过注意,普通的麦克风模块输出的是电压值,不是真正的分贝,可能需要校准。比如通过已知音源测试,找到电压分贝的关系。然后根据分贝值计算RGB颜色,控制灯带。 树莓派的话,可能需要用Python,通过GPIO控制灯带,同时读取传感器的模拟信号可能需要ADC模块,因为树莓派没有模拟输入引脚。比如用MCP3008。代码结构类似,读取数据,处理,设置灯条颜色。 还要考虑实时性,是否需要持续检测,更新频率如何。另外灯条的亮度控制,或者多个灯珠的不同效果,比如整个灯带颜色一致,或者分段显示。 用户可能还需要电路连接方面的帮助,比如如何连接麦克风模块和Arduino,是否需要上拉电阻,电源供应是否足够驱动灯带,可能需要外部电源。 还有分贝计算的公式,可能需要将模拟读数的平方取平均,再转换成对数分贝值。这部分可能需要参考传感器手册或者实验数据。 最后代码示例要简单明了,注释清楚,方便用户理解和修改。可能还需要测试和调试的建议,比如如何校准分贝值,调整颜色映射的范围。 ### 教室噪声检测灯条显示方案 #### 一、硬件选型 1. **声音传感器** - 推荐型号:MAX4466麦克风模块(模拟输出)或Grove声音传感器 - 支持$30-100\ \text{dB}$范围检测输出电压声压级成线性关系 2. **主控开发板** - **Arduino方案**:UNO/Nano(需搭配WS2812B灯条驱动库) - **Raspberry Pi方案**:Pi 3B+/4(需外接ADC模块如MCP3008) 3. **灯条模块** - WS2812B可编程RGB灯带(支持单总线控制) #### 二、分贝-RGB转换算法 定义噪声等级颜色渐变关系: $$ \begin{cases} \text{绿色} & \text{当}\ \text{dB} \leq 50 \\ \text{绿→黄渐变} & 50 < \text{dB} \leq 70 \\ \text{红→紫渐变} & \text{dB} > 70 \end{cases} $$ 使用HSV颜色空间实现平滑过渡: $$ H = \begin{cases} 120 \times (1 - \frac{\text{dB}-50}{20}) & 50 < \text{dB} \leq 70 \\ 360 \times (1 - \frac{\text{dB}-70}{30}) & \text{dB} > 70 \end{cases} $$ #### 三、Arduino代码示例 ```cpp #include <Adafruit_NeoPixel.h> #define PIN 6 #define NUMPIXELS 12 Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); const int micPin = A0; void setup() { pixels.begin(); Serial.begin(9600); } float mapHueToRGB(float hue) { hue = fmod(hue, 360); float c = 1.0, x = (1 - abs(fmod(hue/60, 2) - 1)); if(hue < 60) return pixels.Color(255*(1-x), 255*x, 0); else if(hue < 120) return pixels.Color(255*x, 255, 0); else if(hue < 180) return pixels.Color(0, 255, 255*(1-x)); } void loop() { int rawValue = analogRead(micPin); float dB = 20 * log10(rawValue * 0.0049); // 校准公式需根据实测调整 float hue; if(dB <= 50) { hue = 120; // 绿色 } else if(dB <= 70) { hue = 120 * (1 - (dB-50)/20); } else { hue = 360 * (1 - (dB-70)/30); } uint32_t color = mapHueToRGB(hue); for(int i=0; i<NUMPIXELS; i++) { pixels.setPixelColor(i, color); } pixels.show(); delay(100); } ``` #### 四、Raspberry Pi方案要点 1. 需通过MCP3008 ADC读取模拟信号 2. 使用`rpi_ws281x`库控制灯条 3. Python代码需包含校准函数: ```python def db_calibration(raw): # 需根据实测数据建立映射表 return 20 * math.log10(raw * 3.3 / 1024) ``` ####
03-08
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值