اطلاعیه

Collapse
No announcement yet.

انتخاب بین fixed-point DSPو floating-point

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    انتخاب بین fixed-point DSPو floating-point

    سلام
    اخیراً فصل 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 هست)




    #2
    پاسخ : انتخاب بین fixed-point DSPو floating-point

    من موارد 1 و 2 را قبول ندارم.
    # توی پردازنده ممیز ثابت می توان به دقت اعشاری 32 بیت رسید در حالی که در ممیز شناور بیشینه دقت 24 بیت هست. بنابراین اعداد اعشاری را در پردازنده ممیز ثابت میتوان با دقت بیشتری نمایش داد. برای کسب اطلاعات بیشتر فرمت نمایش Q15 یا Q31 را گوگل کنید.
    یک DSP ممیز ثابت مانند 5509 دارای فرکانس کاری 200 مگاهرتز در حالی که پردازنده ممیز شناور هم عصرش یعنی 6713 سرعتی برابر با 150 مگاهرتز دارد. در کل می توان گفت پردازنده ممیز شناور به دلیل پیچیدگی های سخت افزاری سرعتی به مراتب کمتر از یک پردازنده ممیز ثابت دارد.
    # مورد دوم هم کاملا اشتباه است. برای مثال پردازنده 5509 را در نظر بگیرید. خود پردازنده وقتی سرریز برای متغییری رخ دهد آن متغییر را به بیشترین مقدار ممکنش گرد می کند. (فقط نیاز دارید که بایک کردن بین اور فلو این عملکرد را از پردازنده بخواهید)
    مهم نيست که کجايي هستي، چه رنگي هستي، به چه زبوني حرف مي زني. مهم اينه که انسان باشي.
    http://baranelec.mihanblog.com/
    آینده ای خواهم ساخت که گذشته ام در برابرش زانو بزند...

    دیدگاه


      #3
      پاسخ : انتخاب بین fixed-point DSPو floating-point

      سلام
      بند اول را ویرایش کردم لطفا دوباره آن را بخوانید.

      # توی پردازنده ممیز ثابت می توان به دقت اعشاری 32 بیت رسید در حالی که در ممیز شناور بیشینه دقت 24 بیت هست. بنابراین اعداد اعشاری را در پردازنده ممیز ثابت میتوان با دقت بیشتری نمایش داد. برای کسب اطلاعات بیشتر فرمت نمایش Q15 یا Q31 را گوگل کنید.
      البته پردازنده های ممیز شناور 32 بیتی هم داریم. مثل سری TMS320C5xx و ADSP2106x و ADSP2116x

      دیدگاه


        #4
        پاسخ : انتخاب بین fixed-point DSPو floating-point

        این را هم اضافه کنم بعضی پردازنده ها هم از معماری ممیز شناور پیشتیبانی می کنند و هم ممیز ثابت. برای مثال متوان از پردازنده جدید TI سری c667x نام برد. این دیگه آخرشه :eek:.
        مهم نيست که کجايي هستي، چه رنگي هستي، به چه زبوني حرف مي زني. مهم اينه که انسان باشي.
        http://baranelec.mihanblog.com/
        آینده ای خواهم ساخت که گذشته ام در برابرش زانو بزند...

        دیدگاه


          #5
          پاسخ : انتخاب بین fixed-point DSPو floating-point

          نوشته اصلی توسط rima3250
          من موارد 1 و 2 را قبول ندارم.
          # توی پردازنده ممیز ثابت می توان به دقت اعشاری 32 بیت رسید در حالی که در ممیز شناور بیشینه دقت 24 بیت هست. بنابراین اعداد اعشاری را در پردازنده ممیز ثابت میتوان با دقت بیشتری نمایش داد. برای کسب اطلاعات بیشتر فرمت نمایش Q15 یا Q31 را گوگل کنید.
          یک DSP ممیز ثابت مانند 5509 دارای فرکانس کاری 200 مگاهرتز در حالی که پردازنده ممیز شناور هم عصرش یعنی 6713 سرعتی برابر با 150 مگاهرتز دارد. در کل می توان گفت پردازنده ممیز شناور به دلیل پیچیدگی های سخت افزاری سرعتی به مراتب کمتر از یک پردازنده ممیز ثابت دارد.
          # مورد دوم هم کاملا اشتباه است. برای مثال پردازنده 5509 را در نظر بگیرید. خود پردازنده وقتی سرریز برای متغییری رخ دهد آن متغییر را به بیشترین مقدار ممکنش گرد می کند. (فقط نیاز دارید که بایک کردن بین اور فلو این عملکرد را از پردازنده بخواهید)
          جسارتن من فکر میکنم که اشتباه میکنید
          اگر منظورتون از دقت، رزولوشن هست که برای عدد فلوت این رزولوشن مقدار ثابتی نیست.
          و با همون 24 بیت میتونه از یک عدد 32 خیلی خیلی خیلی خیلی بیشتر باشه
          در ضمن این دقتی که میفرمایید برای عددهای بزرگ که دارای رنج کاملن محدودی هست درسته.
          از طرف دیگه در محاسباتی مثل تقسیم دو عدد ممیز ثابت (بویژه اگر نسبتشون کوچیک باشه) نتیجه عمل بشدت نا امید کننده است.
          در تفریق هم همینطور.
          معمولن سرریز برای عدد فلوت پیش نمیاد اما برای ممیز ثابت با یک ضرب ساده باید مواظب سر ریز باشیم
          کاربرد عدد ممیز ثابت برای جایی هست که رنج تغییرات عدد و محاسبات خیلی محدود باشه. و عمل تقسیم هم نداشته باشیم
          در غیر اینصورت باید خیلی هوشمندانه برنامه رو بنویسیم که برای محدوده ی تغییرات اعداد دقت نابود نشه.
          اگر برنامه ممیز ثابت کاربردی نوشته باشید متوجه میشید منظورم چی هست.
          اگر روزی بفهمی همه چیزایی که از بچگی تا حالا بهت گفتن بی اساس یا دروغه چه حالی میشی؟
          کارمندان نابکار، از دزدان و آشوبگران بیشتر به کشور آسیب ميآ‌رسانند

          دیدگاه


            #6
            پاسخ : انتخاب بین fixed-point DSPو floating-point

            مقاله زیر رو بخون:
            مفیده
            http://baranelec.mihanblog.com/post/57
            مهم نيست که کجايي هستي، چه رنگي هستي، به چه زبوني حرف مي زني. مهم اينه که انسان باشي.
            http://baranelec.mihanblog.com/
            آینده ای خواهم ساخت که گذشته ام در برابرش زانو بزند...

            دیدگاه


              #7
              پاسخ : انتخاب بین fixed-point DSPو floating-point

              نوشته اصلی توسط rima3250
              مقاله زیر رو بخون:
              مفیده
              http://baranelec.mihanblog.com/post/57
              خب دیدم، منظورتون چیه واضحتر بگید
              اگر روزی بفهمی همه چیزایی که از بچگی تا حالا بهت گفتن بی اساس یا دروغه چه حالی میشی؟
              کارمندان نابکار، از دزدان و آشوبگران بیشتر به کشور آسیب ميآ‌رسانند

              دیدگاه


                #8
                پاسخ : انتخاب بین fixed-point DSPو floating-point

                جناب rima3250
                من فکر میکنم درست نیست در باره ی مطلبی که اطلاعات زیادی نداریم اظهار نظر کنیم
                بدتر اینکه روی مطالبمون که بنظر میاد روی حدسیات یا یک تفکر غلط بوده اند پافشاری هم کنیم
                نتیجه اش همین میشه که وسط کار گیر میکنیم و نمیتونیم پاسخ طرفمون رو بدیم
                و مجبور بشیم یک لینک بذاریم و بگیم برو بخون.
                اگر روزی بفهمی همه چیزایی که از بچگی تا حالا بهت گفتن بی اساس یا دروغه چه حالی میشی؟
                کارمندان نابکار، از دزدان و آشوبگران بیشتر به کشور آسیب ميآ‌رسانند

                دیدگاه

                لطفا صبر کنید...
                X