รับความดังของแทร็กด้วย RMS


15

ฉันพยายามคำนวณความดังของแทร็กเสียงที่ฉันเก็บไว้ในบัฟเฟอร์ บัฟเฟอร์ประกอบด้วยข้อมูล PCM ของสัญญาณและฉันต้องการทราบว่า 'ดัง' โดยใช้ Root Mean Squared ฉันคิดว่าฉันสามารถทำได้ในโดเมนเวลาแทนที่จะต้องเปลี่ยนไปใช้โดเมนความถี่ รหัสหลอกสำหรับการทำสิ่งนี้จะเป็นอย่างไร

ฉันจะเพียงแค่ตัวอย่างหนึ่งวินาที (เสียง [0] - เสียง [44099], เสียง [44099] - เสียง [88199] ฯลฯ .. ) และคำนวณ RMS ของค่าเหล่านั้นหรือไม่ ตัวอย่างเช่นฉันจะทำสิ่งนี้:

RMS=เสียง[0]2+เสียง[1]2+เสียง[2]2.....เสียง[44099]244100

ในแต่ละวินาที?


1
มีวงเล็บที่ขาดหายไปในนิพจน์ด้านบน - ฉันจะเพิ่มมันด้วยตัวเอง แต่การแก้ไขจะต้องมีอย่างน้อย 6 ตัวอักษร ...
Paul R

3
@PaulR - คุณสามารถเพิ่มการ<!-- html comment -->แก้ไขข้อ จำกัด ของตัวละครในกรณีที่หายากว่าการโพสต์ที่สมบูรณ์แบบนั้นมีข้อผิดพลาดเล็กน้อย แต่สำคัญมาก ความต้องการนี้เกิดขึ้นน้อยมาก: โดยปกติจะมีการปรับปรุงมากกว่า 6 ตัวอักษร ตัวอย่างเช่นเมื่อไม่มีวงเล็บเหลี่ยมมักจะดีกว่าถ้าใช้\sqrt{}และ\frac{}{}สร้างใน TeX
Kevin Vermeer

1
@ เควิน: ขอบคุณสำหรับเคล็ดลับ - ฉันจะใช้ข้อเสนอแนะความคิดเห็น HTML ของคุณในอนาคต
Paul R

@PaulR - สิ่งนี้ถูกกล่าวถึงก่อนหน้านี้: ข้อ จำกัด มีเจตนาออกแบบมาเพื่อป้องกันการแก้ไขที่ไม่สมบูรณ์หรือไม่มีจุดหมาย (ดูการป้องกันที่นี่ ) แต่มีฝ่ายตรงข้าม (ดูการสนทนาที่นี่ )
Kevin Vermeer

4
โปรดทราบว่า RMS เพียงอย่างเดียวไม่ได้บอกความดังของคุณ ความถี่ต่ำหรือสูงมากจะลดความดังของเสียงในระดับต่ำกว่า 3 kHz ของค่า RMS เดียวกัน ตัวกรอง A-weighting จะช่วยให้การประเมินแม่นยำยิ่งขึ้น gist.github.com/148112
endolith

คำตอบ:


12

อีกสิ่งหนึ่งคือค่า RMS นั้นไม่สัมพันธ์กับการรับรู้เสียงดังมาก คุณอาจต้องการลองเรียกระดับหรือระดับเสียงแทน มีสิ่งที่เรียกว่ารูปทรงดังเท่ากันซึ่งประเมินว่ามีความสำคัญกับหูคือการ frquency หนึ่งโดยเฉพาะอย่างยิ่งเมื่อเทียบกับความถี่อื่นโปรดดูบทความวิกิพีเดีย เส้นโค้งเหล่านี้ขึ้นอยู่กับระดับ ตัวอย่างเช่นหูมีความไวต่อเสียง 1kHz มากเมื่อเทียบกับเสียง 100Hz ดังที่แสดงในภาพนี้ (แกนนอนคือความถี่เป็น Hz):

ระดับความดังเท่ากัน

หนึ่งในสิ่งง่าย ๆ ที่สัมพันธ์กันที่คุณสามารถทำได้คือการกรองข้อมูล PCM ของคุณด้วยเส้นโค้งความดังที่กลับด้าน หรือคุณสามารถใช้น้ำหนักมาตรฐานให้ดูที่วิกิพีเดียบทความกรองน้ำหนัก จากนั้นคุณสามารถคำนวณค่า RMS ของเอาต์พุตของตัวกรองเสียงดังที่มีน้ำหนักเท่ากัน


ฉันไม่ชัดเจนว่าจะไปจากรหัสของผู้ทดสอบถึงสิ่งนี้ได้อย่างไร ตัวอย่างของคำถามคือการรวมกำลังสองของตัวอย่างเสียง คำตอบคือการพูดคุยเกี่ยวกับการใช้ตัวกรองกับความถี่ดังนั้นดูเหมือนว่า "กรองข้อมูล PCM ของคุณด้วยเส้นโค้งความดังเท่ากลับหัว" ไม่เพียงพอ ก่อนอื่นคุณต้องมีค่าสำหรับแต่ละความถี่แล้วคุณจะสามารถคิดได้ว่าจะใช้ส่วนโค้งอย่างไร แต่นั่นเป็นก้าวที่ยิ่งใหญ่
gman

@gman ความคิดคือการประมวลผลเสียงด้วยตัวกรองล่วงหน้าจากนั้นใช้ผลลัพธ์ตามคำถาม (การคำนวณ RMS) ฉันไม่แน่ใจ 100% ว่าคุณหมายถึงอะไร คุณไม่แน่ใจวิธีการกรองหรือการออกแบบตัวกรองหรือไม่?
niaren
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.