سلام
اخیراً فصل 28 کتابDigital Signal Processing نوشته Smith رو درباره این موضوع خوندم. به نظرم جالب بود. خلاصه اش رو اینجا میگذارم:
بند اول رو با توصیه rima3250 ویرایش کردم(با تشکر از rima3250).[list type=decimal]
[li] گستره دینامیکی پردازنده های ممیز-شناور بسیار بیشتر از ممیز-ثابت است. منظور از گستره دینامیکی نسبت بزرگترین عدد قابل نمایش به کوچکترین عدد قابل نمایش است. برای مثال رایجترین فرمتی که در پردازنده های ممیز-شناور پشتیبانی میشود، فرمت IEEE 754 است که بزرگترین عدد قابل نمایش در آن مثبت و منفی 10*3.4 و کوچکترین عدد هم مثبت و منفی 10*1.2 است. بنابراین گستره دینامیکی حدود 10 است. چنین گستره دینامیکی را نمیتوان در پردازنده های ممیز-ثابت بدست آورد.
اصلا معنی fixed-point چیه؟ یعنی تعداد اعداد پس از نقطه اعشار ثابت هستند. بنابراین اعدادی که توسط پردازنده قابل نمایش هستند، اعدادی مثل 125.506 یا 2511.541 یا 1.252 هستند که همگی دارای ارقام یکسان بعد از ممیز اعشار هستند. برای دست یافتن به چنین فرمتی باید از فرمت Q استفاده نمود
در حالیکه در ممیز-شناور، نقطه اعشار میتونه نسبت به ارقام شناور باشه. یعنی اعدادی مثل 500000.65 و 1.3214561 به شکل همزمان قابل نمایش هستند. بنابراین نویز حاصل از گرد کردن اعداد در پردازنده های ممیز-شناور بسیار کمتر از ممیز-ثابت است. در کل توصیه شده که اگر با سیستمهای کیفیت بالایی سروکار داریم که هم با اعداد بسیار بزرگ و هم با اعداد بسیار کوچک سروکار دارند( مانند سیستمهایی که مبدلهای ADC یا DAC بیست بیتی یا 24 بیتی دارند) بهتر است از ممیز-شناور استفاده شود.[/li]
[li]برنامه نویس برای انجام عملیات محاسباتی در پردازنده های ممیز-ثابت باید مدام overflow، underflow و ... را چک کند و اگر نیازی به تصحیح داشت آن را اعمال کند. اما در پردازنده های ممیز-شناور، اعداد خودشان مواظب خودشان هستند! و جز در موارد نادر نیازی به چک کردن موارد فوق نیست. بنابراین برنامه نویسی با یک ممیز-شناور کاری بس ساده تر و سریعتر است(و توسعه الگوریتم آن در آینده نیز همینطور). برای همین توصیه شده که اگر الگوریتم پیچیده است(مانند الگوریتمهای حوزه فرکانس از قبیل آنالیز طیفی و ...) از ممیز-شناور استفاده شود و اگر الگوریتم ساده و در حد فیلتر FIR است از ممیز-ثابت استفاده شود[/li]
[li]هزینه تولید با پردازنده های ممیز-شناور بیشتر از ممیز-ثابت است. اگر قرار است دستگاهی با تعداد بسیار بالا ساخته شود(مانند تلفن همراه)، آنگاه اختلاف هزینه ای حتی به اندازه چند دلار میتواند باعث موفقیت یا شکست تولید کننده شود بنابراین در این موارد بهتر است از ممیز-ثابت استفاده شود. ولی اگر تولید کننده دستگاهی چند هزار دلاری هستیم که مثلاً تا کنون 100 تا از آنها بیشتر فروش نرفته و کارآیی آن نیز بسیار مهم است(مانند یک دستگاه تصویربرداری پزشکی)، دیگر اختلاف هزینه بین ممیز-شناور و ممیز-ثابت مهم نیست و بهتر است از ممیز-شناور استفاده شود.[/li][/list]
در این کتاب DSP های شرکت Analog Devices هم معرفی شده و گفته شده این شرکت تا کنون(سال نوشتن کتاب یعنی 2002)جزو دو تولید کننده برتر DSP بوده. (تولید کننده دیگر Texas هست)
اخیراً فصل 28 کتابDigital Signal Processing نوشته Smith رو درباره این موضوع خوندم. به نظرم جالب بود. خلاصه اش رو اینجا میگذارم:
بند اول رو با توصیه rima3250 ویرایش کردم(با تشکر از rima3250).[list type=decimal]
[li] گستره دینامیکی پردازنده های ممیز-شناور بسیار بیشتر از ممیز-ثابت است. منظور از گستره دینامیکی نسبت بزرگترین عدد قابل نمایش به کوچکترین عدد قابل نمایش است. برای مثال رایجترین فرمتی که در پردازنده های ممیز-شناور پشتیبانی میشود، فرمت IEEE 754 است که بزرگترین عدد قابل نمایش در آن مثبت و منفی 10*3.4 و کوچکترین عدد هم مثبت و منفی 10*1.2 است. بنابراین گستره دینامیکی حدود 10 است. چنین گستره دینامیکی را نمیتوان در پردازنده های ممیز-ثابت بدست آورد.
اصلا معنی fixed-point چیه؟ یعنی تعداد اعداد پس از نقطه اعشار ثابت هستند. بنابراین اعدادی که توسط پردازنده قابل نمایش هستند، اعدادی مثل 125.506 یا 2511.541 یا 1.252 هستند که همگی دارای ارقام یکسان بعد از ممیز اعشار هستند. برای دست یافتن به چنین فرمتی باید از فرمت Q استفاده نمود
در حالیکه در ممیز-شناور، نقطه اعشار میتونه نسبت به ارقام شناور باشه. یعنی اعدادی مثل 500000.65 و 1.3214561 به شکل همزمان قابل نمایش هستند. بنابراین نویز حاصل از گرد کردن اعداد در پردازنده های ممیز-شناور بسیار کمتر از ممیز-ثابت است. در کل توصیه شده که اگر با سیستمهای کیفیت بالایی سروکار داریم که هم با اعداد بسیار بزرگ و هم با اعداد بسیار کوچک سروکار دارند( مانند سیستمهایی که مبدلهای ADC یا DAC بیست بیتی یا 24 بیتی دارند) بهتر است از ممیز-شناور استفاده شود.[/li]
[li]برنامه نویس برای انجام عملیات محاسباتی در پردازنده های ممیز-ثابت باید مدام overflow، underflow و ... را چک کند و اگر نیازی به تصحیح داشت آن را اعمال کند. اما در پردازنده های ممیز-شناور، اعداد خودشان مواظب خودشان هستند! و جز در موارد نادر نیازی به چک کردن موارد فوق نیست. بنابراین برنامه نویسی با یک ممیز-شناور کاری بس ساده تر و سریعتر است(و توسعه الگوریتم آن در آینده نیز همینطور). برای همین توصیه شده که اگر الگوریتم پیچیده است(مانند الگوریتمهای حوزه فرکانس از قبیل آنالیز طیفی و ...) از ممیز-شناور استفاده شود و اگر الگوریتم ساده و در حد فیلتر FIR است از ممیز-ثابت استفاده شود[/li]
[li]هزینه تولید با پردازنده های ممیز-شناور بیشتر از ممیز-ثابت است. اگر قرار است دستگاهی با تعداد بسیار بالا ساخته شود(مانند تلفن همراه)، آنگاه اختلاف هزینه ای حتی به اندازه چند دلار میتواند باعث موفقیت یا شکست تولید کننده شود بنابراین در این موارد بهتر است از ممیز-ثابت استفاده شود. ولی اگر تولید کننده دستگاهی چند هزار دلاری هستیم که مثلاً تا کنون 100 تا از آنها بیشتر فروش نرفته و کارآیی آن نیز بسیار مهم است(مانند یک دستگاه تصویربرداری پزشکی)، دیگر اختلاف هزینه بین ممیز-شناور و ممیز-ثابت مهم نیست و بهتر است از ممیز-شناور استفاده شود.[/li][/list]
در این کتاب DSP های شرکت Analog Devices هم معرفی شده و گفته شده این شرکت تا کنون(سال نوشتن کتاب یعنی 2002)جزو دو تولید کننده برتر DSP بوده. (تولید کننده دیگر Texas هست)
دیدگاه