ฉันกำลังมองหาสูตรที่จะบีบอัดรูปแบบคลื่นเสียงเพื่อ จำกัด ยอดอย่างมีประสิทธิภาพ นี่ไม่ใช่แอปพลิเคชัน "การควบคุมระดับเสียงอัตโนมัติ" ที่หนึ่งจะควบคุมแอมพลิฟายเออร์เพื่อรักษาระดับเสียง แต่ฉันต้องการ จำกัด ("เบา" ตัด) แต่ละจุด (ฉันรู้ว่าสิ่งนี้นำเสนอฮาร์โมนิก แต่ฉันพยายามวิเคราะห์ข้อมูลไม่ใช่ฟัง)
สูตรที่หยาบมากของฉันคือ:
factor = (10 * average / level) + exp(-sqrt(0.1 * level / average))
ไหนระดับคือระดับเสียงทันทีเฉลี่ยเป็นประวัติศาสตร์เฉลี่ยระดับเสียงและปัจจัยที่เป็นตัวคูณที่ใช้ในการผลิต ( "ปรับ" ระดับปัจจัยครั้งระดับ )
นอกจากนี้ตัวคูณนี้จะถูกนำไปใช้เฉพาะในกรณีที่คำนวณค่าน้อยกว่า 1 มิฉะนั้นระดับจะไม่ได้รับการปรับ
ความตั้งใจคือการ จำกัด ระดับที่ปรับไปที่หลาย ๆ (ประมาณ 15x ด้วยสูตรนี้) ของค่าเฉลี่ยในอดีต สูตรนี้เป็น sorta สิ่งที่ฉันต้องการ แต่การจัดแสดงนิทรรศการ "จุ่ม" เป็นตัวเลขขนาดใหญ่ได้รับ นั่นคือระดับปรับ (เช่นปัจจัยครั้งระดับ ) เพิ่มขึ้นมาถึงจุดที่มีการเพิ่มระดับเท็มเพลต แต่แล้วมากกว่าจะ asymptotic เริ่มต้นที่จะได้รับจริงที่มีขนาดเล็ก (ในความเป็นจริงปัจจัยแรกถูกเพิ่มเข้ามาเป็นหลักในการป้องกันไม่ให้สูตรจากที่จะให้เป็นศูนย์ที่มีค่าสูงมาก.)
(เหตุผลที่ต้องการ จำกัด ค่าด้วยวิธีนี้เป็นหลักเพื่อให้เสียงรบกวนชั่วคราวไม่ได้ทำให้ค่าเฉลี่ยของระดับเสียงที่ใช้งานอยู่สูงขึ้นอย่างจริงจัง แต่เมื่อคุณวิเคราะห์ snores "เสียงรบกวนชั่วคราว" นั้นค่อนข้างสำคัญดังนั้นฉันจึงสามารถบีบมันได้ .)
ดังนั้นใครสามารถแนะนำสิ่งที่ดีกว่า (ดูเหมือนว่าพฤติกรรมแบบซีมโทติคนั้นสร้างได้ง่ายเมื่อคุณไม่ต้องการ แต่ยากเมื่อคุณทำ)