اطلاعیه

Collapse
No announcement yet.

محاسبه FFT توسط AVR

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

    محاسبه FFT توسط AVR

    با سلام خدمت دوستان عزیز

    من محاسبه FFT را توسط یک AVR انجام داده ام اما بدلیل استفاده از نرم افزار CODEVISION و زبان C به سرعت مناسب دست پیدا نکردم آیا از دوستان کسی هست که بتواند سورس ASSEMBLY مناسب از برنامه اینجانب بسازد .برنامه های موجود در سایت های مختلف را دیده ام اما بدلیل پیچیده گی قابل استفاده برای من نمی باشند و البته بدلیل استفاده از کدهای ASSEMBLY سرعت اجرای 10 برابر برنامه اینجانب را دارند.از دوستانی که به این موضوع علاقمند هستند درخواست می کنم در اجرای این کار من رایاری کنند.مشکل اصلی به سرعت پایین محاسبات ریاضی در برنامه مربوط می شود آیا برنامه های محاسبه SIN , COS بصورت اسمبلی در اختیار دوستان قراردارد؟

    سورس برنامه میکرو:
    http://www.4shared.com/file/99105514/3f12c8a9/FFT_V1.html



    #2
    پاسخ : محاسبه FFT توسط AVR

    با سلام خدمت شما دوست عزیز منم مثل شما البته شما از من خیلی بهتری من اون رابطه هاشم بلد نیستم ولی چون می خواستم یه اسپکتروم آنالیزر بسازم با ال سی دی نوکیا الان چند وقتیه دنبالشم تو نتم کد ها یا avr gcc یا اسمبلی که هر دو پیچیدن ولی من پایم چون یه دونه شبه اونو ساختم ولی خیلی ابتداییه با دات ماتریس اگه مایلین می تونیم با هم چیز یاد بگیریم ************@yahoo.com

    دیدگاه


      #3
      پاسخ : محاسبه FFT توسط AVR

      اگر سرعت بالا می خواید فقط باید برید سراغ چیپ های DSP. چون کارشون همینه . میتونی با TMS320F281 کار کنی که توی انجمنای همین سایت کار باهاش گفته شده.قطعاتشم راحت پیدا میشه استارتر بردشم 180-250 تومنه فکر کنم.(با امولاتور دیدم یه جا میده الیته)
      منم 2-3 سال پیش قصدم این بود که fft (البته از نوع تفاضلی)از دو سیکل (هر سیکل شامل 256 تا نمونه از یه سیگنال) بگیرم بعد خروجیش رو روی mmc بریزم . حتی سرعتم واسم مهم نبود اما اونچیزی که مشکل ساز بود رم میکرو بود. :bye
      Gracias A La Vida
      [glow=red,2,300]ساخت فرز CNC[/glow]
      http://www.eca.ir/forum2/index.php?topic=56308.0
      http://up9.iranblog.com/images/4xd21f8vemt8g46011fx.jpg
      زمین سفت است و آب شلست و هوا نرم است و همه چیز عالیست در این حوالی...

      دیدگاه


        #4
        پاسخ : محاسبه FFT توسط AVR

        سلام
        آقای 840188 ممکنه دوباره فایل رو پدیت کنید .پاک شده و من هم نیاز به اون دارم
        با سپاس
        مولای من
        نخواهمت که بگریی ولی به گریه دعا کن که وقت رفتن ایام انتظار بیاید

        یا رب الحسین بحق الحسین اشف صدر الحسین بظهورالحجه

        دیدگاه


          #5
          پاسخ : محاسبه FFT توسط AVR

          یه پیشنهادی دارم. از fpga استفاده کنید ابتدا یک میکروکنترلر روش شبیه سازی کنید ( تا اینجاش تو نت آماده هست) و سپس کدتون رو روش اجرا کنید. 100 برابر سرعت کارتون بیشتر میشه.
          دلا یاران سه قسمند ار بدانی
          زبانی اند و نانی اند و جانی
          به نانی نان بده از در برانش
          محبت کن به یاران زبانی
          و لیکن یار جانی را به دست آر
          به جانش جان بده تا می توانی

          دیدگاه


            #6
            پاسخ : محاسبه FFT توسط AVR

            با سلام
            الگوریتم fft درواقع یک الگوریتم جهت ایجاد امکان پیاده سازی تبدیل فوریه (که در اصل پیوسته است) روی سیستمهای Discrete است.
            در صورتیکه تعداد نمونه هارو n در نظر بگیریم یک FFT نیاز به n*n ضرب و n*nجمع مختلط دارد که با توجه به اینکه هریک از این جمع یا ضربها در سیستمهای کنترلی به دوضرب شکسته میشود(برای قسمت realوimage) تعداد این محاسبات بسیار زیاد میشود.
            پس اساسا fft الگوریتمی به نسبت کند است.به همین دلیل در DSPها هکثرا از سخت افزار و یا الگوریتمهایی وابسته به سخت افزار جهت این تبدیل استفاده میکنند.

            برای رفع این مشکل راه حلهای مختلفی داریم که عبارتند از:
            1- افزایش سرعت سیستم پردازشگر(که اصولا نیاز به تغییر پردازشگر دارد و مشکل است)
            2-کاهش تعداد نمونه که با کاهش حداکثر فرکانس قابل تحیلل همراه است ولی روشی موثر است.
            3-کاهش دقت پردازش (خصوصا تعداد رقم اعشار در سیستمهای fixpoint) که لگاریتمی سرعت را افزایش میدهد.
            4-استفاده از الگوریتمهای شکست و تحلیل مسئله مثل الگوریتم cooley tukey که روشی بسیار موثر است.
            5-و چندین روش دیگر که به زودی تو یه مقاله به دست همه می رسونم.
            بوسیله این روشها میشه تعداد محاسبات FFT رو تا حدود 20 برابر (البته بسته به تعداد نمونه) کاهش داد.
            موفق باشید.

            دیدگاه


              #7
              پاسخ : محاسبه FFT توسط AVR

              ببخشید که میپرسم وسط بحثتون. یه مورد به نظرم رسید شاید کمکتون کنه
              الگوریتم های FFT بهترین سرعت رو زمانی دارند که تعداد نمونه ها توانی از 2 باشه!مثل 16,32,64ووو

              دیدگاه


                #8
                پاسخ : محاسبه FFT توسط AVR

                خوبالبته نه دقیقا.
                می تونم بگم این تعداد مربوط به پیاده سازی چندتا از همین الگوریتمهای خلاصه سازیه که اشاره کردم مثل raxix-n.
                در اصل چون در این الگوریتمها مسئله بصورت زوجهای دو به دو شکسته میشه تا به تعداد n/2 مسئله دوتایی تبدیل بشه نیاز به انتخاب نمونه ها به این صورت داره ولی در اصل کمکی به کاهش تعداد محاسبات نمی کنه.
                نرم افزازهایی مثل matlab هم از همین طریق به محاسبه FFT میرسن. برای همین قبل از محاسبه نیازه با استفاده از توابعی مثل nextpow2 تعداد نمونه ها رو به حالتی از توان 2 رسوند.

                دیدگاه


                  #9
                  پاسخ : محاسبه FFT توسط AVR

                  وقتی طول داده ها غیر از توان 2 باشه اونوقت دیگه بهش fft نمیگن بلکه DFT میشه که بسیار کند تر از FFT هستش . برای مثال زمان محاسبه DFT با طول های 200 به نسبت fft با طول 256 توی fpga ها ( با core های ise چک کردم) خیلی بیشتره !
                  Gracias A La Vida
                  [glow=red,2,300]ساخت فرز CNC[/glow]
                  http://www.eca.ir/forum2/index.php?topic=56308.0
                  http://up9.iranblog.com/images/4xd21f8vemt8g46011fx.jpg
                  زمین سفت است و آب شلست و هوا نرم است و همه چیز عالیست در این حوالی...

                  دیدگاه


                    #10
                    پاسخ : محاسبه FFT توسط AVR

                    خوب در اصل همین طوره.
                    FFTذاتا برای سرعت دهی به این الگوریتم پیشنهاد شده ولی اساسا تفاوتی با اون نداره.
                    به همین دلیله که حتی محاسبه تیدیل فوریه گاها با استفاده از DFT انجام میشه. :agree:

                    دیدگاه


                      #11
                      پاسخ : محاسبه FFT توسط AVR

                      سلام
                      حالا این همه توضیح دادید هیچ کدوم فایلشو ندارین که پلود کنید ببنیم در عمل چطوریه؟
                      ممنون
                      مولای من
                      نخواهمت که بگریی ولی به گریه دعا کن که وقت رفتن ایام انتظار بیاید

                      یا رب الحسین بحق الحسین اشف صدر الحسین بظهورالحجه

                      دیدگاه


                        #12
                        پاسخ : محاسبه FFT توسط AVR

                        اینم از فایل.
                        تو این برنامه که من با bascom نوشتم در ابتدا یه موج سینوسی با دوتا فرکانس مختلف تولید میشن و بعد از ترکیب با سرعت fs نمونه برداری میشن. این کار باعث میشه که از موج ورودی مطمئن باشیم و از جهت نمونه برداری یا صحت اون نگران نباشیم.
                        در ادامه الگوریتم fft از سیگنال نمونه برداری شده تبدیل فوریه 128 تایی می گیره و اونو به صورت قدر مطلق شده روی LCD نمایش میده و در نهایت مقادیر حقیقی و مجازی ضرایب محاسبه شده رو print می کنه.دو ضربه مشاهده شده توی شبیه سازی با توجه به اینکه موج ترکیب دو موج 15 و 35 هرتزه و سرعت نمونه برداری 100 هرتزه و f(nyquist)=100/2صحت محاسبه رو نشون میده.
                        این پردازش همون طوری که گفتم [glow=red,2,300]ذاتا[/glow] سریع نیست که البته من با پایین آوردن دقت محاسبه و تعداد ضرایب اونو تا حد 5 ثانیه به ازای 128*128 محاسبه سریع کردم.
                        برنامه تا حد امکان گویاست ولی اگه سوالی بود من در خدمتم.
                        http://www.4shared.com/file/_qcMAAtG/FFT.html

                        دیدگاه


                          #13
                          پاسخ : محاسبه FFT توسط AVR

                          نوشته اصلی توسط 840188
                          با سلام خدمت دوستان عزیز

                          من محاسبه FFT را توسط یک AVR انجام داده ام اما بدلیل استفاده از نرم افزار CODEVISION و زبان C به سرعت مناسب دست پیدا نکردم آیا از دوستان کسی هست که بتواند سورس ASSEMBLY مناسب از برنامه اینجانب بسازد .برنامه های موجود در سایت های مختلف را دیده ام اما بدلیل پیچیده گی قابل استفاده برای من نمی باشند و البته بدلیل استفاده از کدهای ASSEMBLY سرعت اجرای 10 برابر برنامه اینجانب را دارند.از دوستانی که به این موضوع علاقمند هستند درخواست می کنم در اجرای این کار من رایاری کنند.مشکل اصلی به سرعت پایین محاسبات ریاضی در برنامه مربوط می شود آیا برنامه های محاسبه SIN , COS بصورت اسمبلی در اختیار دوستان قراردارد؟

                          سورس برنامه میکرو:
                          http://www.4shared.com/file/99105514/3f12c8a9/FFT_V1.html
                          میشه فایلا دوباره پلود کنید پاک شده!
                          Weakness of attitude becomes weakness of character
                          Albert Einstein

                          دیدگاه


                            #14
                            پاسخ : محاسبه FFT توسط AVR

                            یه تاپیک در مورد fft هست همین طرفا ... از کدی که اون بنده خدای ژاپنی ، هیرو ناکاوارا ... elm-chan نوشته استفاده کن ، کدش اسمبلی هست!
                            ولی کلا انتظار محاسبه ی real time از میکرو نداشته باش :bye

                            دیدگاه


                              #15
                              پاسخ : محاسبه FFT توسط AVR

                              نوشته اصلی توسط ;(while(1
                              میشه فایلا دوباره پلود کنید پاک شده!
                              سلام
                              متاسفانه فایل حذف شده ، اگه امکانش خست مجددا پدست کنید
                              Reveng will surely come... Your hard time are ahead
                              // - - - - - - - - - -
                              برگه های کتاب به منزله بالهایی هستند که روح ما را به عالم نور و روشنایی پرواز میآ*دهند. فرانسوا ولتر
                              // - - - - - - - - - -
                              اگر برای هرچیزی به غیر از علاقه ی شدیدتان به الکترونیک تلاش کنید ، خیلی دور نخواهید رفت / خیلی هم خوب نخواهید شد.
                              // - - - - - - - - - -

                              دیدگاه

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