আপনার অ্যালগরিদমের সংখ্যার প্রয়োজনীয়তাগুলি জানতে হবে এবং সেই অনুসারে নির্ভুলতাটি বেছে নিতে হবে।
সুতরাং এখানে গণিতটি করা যাক: 32-বিট ভাসমান পয়েন্টটিতে 24 বিট ম্যান্টিসা এবং 8 বিটের এক্সপোঞ্জার রয়েছে। এটি আপনাকে প্রায় 1540 ডিবি গতিশীল পরিসরে শব্দের অনুপাতের জন্য প্রায় 150 ডিবি সংকেত দেয়। বেশিরভাগ জিনিস অডিওর জন্য এটি যথেষ্ট। দ্বিগুণ নির্ভুলতা আপনাকে দ্বিগুণ পরিমাণে দেয়।
প্রতিটি অ্যালগরিদমের সংখ্যার নির্ভুলতার জন্য নির্দিষ্ট প্রয়োজনীয়তা রয়েছে। যদি আমি জানি যে সমস্ত অডিও অ্যালগরিদমগুলি সঠিকভাবে ডিজাইন করা হয়েছে তবে 32-বিট ভাসমান পয়েন্ট দিয়ে কেবল একটি জরিমানা করব। "সঠিকভাবে ডিজাইন করা" এখানে মূলশব্দ। উদাহরণস্বরূপ ৪ য় আইআইআর দ্বি-কোয়াড ফিল্টার থেকে সরাসরি হিসাবে বাস্তবায়িত ৪৪.১ কেজি হার্জেটে ৪০-২০০ হার্জেডের নমুনাযুক্ত 6th ষ্ঠ অর্ডার ব্যান্ড পাসটি সত্যই ৩২-বিট-তে কিছু শব্দ সমস্যার সম্মুখীন হবে। তবে এটি ট্রান্সপোজড ফর্ম II বা সরাসরি ফর্ম ফিল্টার হিসাবে পুরোপুরি সূক্ষ্মভাবে কাজ করে।
উদাহরণস্বরূপ মতলবের রেসিডুয়েজ () ফাংশনটি ব্যবহার করে যদি আপনি একই ব্যান্ড পাস ফিল্টারের আংশিক ভগ্নাংশ প্রসারণের চেষ্টা করেন তবে আপনি ডাবল যথার্থতার সাথেও খারাপ ফলাফল পাবেন। আবার সেই নির্দিষ্ট ইনপুট ডেটার জন্য অ্যালগরিদমের সংখ্যার প্রয়োজনীয়তা ডাবল যথার্থতার চেয়ে বেশি দেয়। এটি ঠিক করার মূল চাবিকাঠিটি অন্ধভাবে অনিশ্চিত হওয়া নয়, পরিবর্তে আরও ভাল অ্যালগরিদম ব্যবহার করা।
অবশেষে আসুন একনজরে দেখে নেওয়া যাক ভাসমান (32 বিট বা bit৪ বিট) কীটি দুর্বল করে তোলে: আপনার কাছে প্রচুর গতিশীল পরিসর রয়েছে, অর্থাৎ আপনি 200 ডিবি দ্বারা সংকেতটি স্কেল করতে পারবেন, 500 ডিবি দ্বারা প্রশস্ত করতে পারবেন, আবার 300 ডিবি দ্বারা হ্রাস করতে পারবেন এবং আপনি ঠিক যেখানে শুরু করেছিলেন সেখানেই শেষ করুন যা-কিছু হুবহু প্রায় কোনও ক্ষতি সঙ্গে। সুতরাং এটি না। ভাসমান বিন্দু আকারে সম্পূর্ণ পৃথক পৃথক নম্বর যুক্ত করতে সমস্যা আছে। একটি বিন্দু আছে যেখানে একটি ছোট সংখ্যা যুক্ত করা কোনও পার্থক্য করে না, অর্থাত আপনি 1 + dx = 1 পান। এই সংখ্যা "dx" 32-বিট ভাসমান পয়েন্টের জন্য প্রায় 1.2e-7 এবং 64 বিটের জন্য 2.2e-16। আপনি যদি অ্যালগরিদমের সাথে সংখ্যার যোগ বা বিয়োগের পরিমাণকে অন্তর্ভুক্ত করেন যা প্রস্থের চেয়ে অনেক দূরে থাকে তবে আপনি সমস্যার মধ্যে পড়তে পারেন।
এর পূর্বে উল্লিখিত ডাইরেক্ট ফর্ম II ফিল্টারটির একটি ভাল উদাহরণ হ'ল ডাইরেক্ট ফর্ম II ফিল্টার (উদাহরণস্বরূপ https://ccrma.stanford.edu/~jos/fp/Direct_Form_II.html ) মূলত ইনপুট ফিল্টার করে রাষ্ট্রের ভেরিয়েবলগুলি গণনা করে প্রথমে মেরু-কেবল স্থানান্তর ফাংশন দিয়ে এবং তারপরে আউটপুট তৈরি করতে শূন্যগুলির সাথে ফিল্টার করা। এখন যদি খুঁটিগুলি ইউনিট বৃত্তের কাছাকাছি থাকে তবে কেবলমাত্র মেরু-স্থানান্তর স্থানান্তর ফাংশনটি খুব, খুব বড় হয়ে যায়। সুতরাং রাষ্ট্রের ভেরিয়েবল ইনপুট (80 ডিবি থেকে 100 ডিবি বড়) এর চেয়ে অনেক বড় হতে পারে এবং ইনপুটটির সাথে রাজ্য ভেরিয়েবলগুলি সংমিশ্রণ করে প্রচুর শব্দ সৃষ্টি করে।
এখানে সমাধানটি হ'ল ট্রান্সপোজেড ফর্ম II বা সরাসরি ফর্ম I ফিল্টারে যেতে হবে। বিশ্লেষণ দেখায় যে রাষ্ট্রের ভেরিয়েবলগুলি ইনপুট / আউটপুট এর চেয়ে বড় হতে পারে না তবে সম্ভবত 12 ডিবি বা তার আশেপাশের হতে পারে, সুতরাং সমস্যাটির দৈর্ঘ্যের মিলটি প্রথম স্থানে ঘটে না।