นี่อาจเป็นวิธีที่ถูกต้อง คุณกำลังสังเกตเห็นปัญหาในทางปฏิบัติที่เกิดขึ้นบ่อยครั้งเมื่อใช้เลขคณิตจำนวนเต็ม (เช่นจำนวนเต็ม) (แม้ว่ามันจะเกิดขึ้นในจุดลอยตัวก็ได้) เมื่อรูปแบบตัวเลขที่คุณใช้ในการคำนวณไม่มีความแม่นยำเพียงพอที่จะแสดงค่าทั้งหมดที่อาจเกิดขึ้นจากการคำนวณของคุณจำเป็นต้องใช้รูปแบบการปัดเศษบางรูปแบบ (เช่นการตัดปลายปัดเศษใกล้ที่สุดเป็นต้น) บน). นี่มักจะเป็นแบบจำลองเป็นข้อผิดพลาดในการเพิ่มปริมาณสัญญาณของคุณ
อย่างไรก็ตามสำหรับบางชุดของอัลกอริทึมและการปัดเศษเมื่อขนาดของสัญญาณอินพุทต่ำมากคุณอาจได้สิ่งที่คุณสังเกตเห็น: เอาต์พุตจำนวนมากเป็นศูนย์ โดยพื้นฐานแล้วบางแห่งในลำดับของการปฏิบัติงานผลกลางจะมีขนาดเล็กพอที่จะไม่ทำลายเกณฑ์ที่จำเป็นในการวัดปริมาณให้อยู่ในระดับที่ไม่ใช่ศูนย์ จากนั้นค่าจะถูกปัดเศษเป็นศูนย์ซึ่งมักจะแพร่กระจายไปข้างหน้าไปยังเอาต์พุต ผลลัพธ์คืออัลกอริธึมที่สร้างศูนย์ผลลัพธ์จำนวนมาก
ดังนั้นคุณสามารถรับรอบนี้โดยการปรับขนาดข้อมูลได้หรือไม่ บางครั้ง (มีเทคนิคน้อยมากที่ทำงานตลอดเวลา!) หากสัญญาณอินพุตของคุณถูก จำกัด ขอบเขตให้มีขนาดต่ำกว่าเต็มรูปแบบของรูปแบบตัวเลข (จำนวนเต็ม 16 บิตที่เซ็นชื่อเรียกใช้จาก -32768 ถึง +32767) จากนั้นคุณสามารถปรับขนาดสัญญาณอินพุตได้อย่างเต็มที่เพื่อใช้ช่วงที่มี มัน. สิ่งนี้สามารถช่วยลดผลกระทบของข้อผิดพลาดของการปัดเศษได้เนื่องจากขนาดของข้อผิดพลาดของการปัดเศษใด ๆ จะเล็กลงเมื่อเปรียบเทียบกับสัญญาณที่น่าสนใจ ดังนั้นในกรณีที่ผลลัพธ์ทั้งหมดของคุณถูกปัดเศษเป็นศูนย์ภายในอัลกอริทึมสิ่งนี้อาจช่วยได้
เมื่อไรที่เทคนิคดังกล่าวทำร้ายคุณ? ขึ้นอยู่กับโครงสร้างของการคำนวณของอัลกอริทึมการปรับขนาดสัญญาณอินพุทอาจทำให้คุณมีตัวเลขล้น นอกจากนี้หากสัญญาณมีสัญญาณรบกวนพื้นหลังหรือสัญญาณรบกวนที่มีขนาดใหญ่กว่าข้อผิดพลาดของการปัดเศษของอัลกอริทึมดังนั้นคุณภาพของสิ่งที่คุณได้รับจากเอาต์พุตจะถูก จำกัด โดยสภาพแวดล้อมโดยทั่วไปจะไม่เกิดข้อผิดพลาดในการคำนวณ