اطلاعیه

Collapse
No announcement yet.

help!!فیلتر های دیجیتال

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

    help!!فیلتر های دیجیتال

    سلام به همگی
    یه راهنمائی از شما میخوام
    چطوری میشه با bascom واسه AVR فیلتر دیجیتال تعریف کرد . پروژه ام لنگ این موضوع شده
    هر کی میتونه راهنمائی کنه لطفا دریغ نکنه

    #2
    پاسخ : help!!فیلتر های دیجیتال

    اگر میشه سوالت را روشنتر توضیح بده
    دنیا را چه سکوتی فرا می گرفت اگر هر کس به انداره
    عملش حرف می زد.(امام علی ع)

    دیدگاه


      #3
      پاسخ : help!!فیلتر های دیجیتال

      lمن میخوام یه سیگنال حجیم به میکرو بدم و تو EEprom ذخیرش کنم ولی چون تبدیل شده این سیگنال به دیجیتال خیلی بیشتر از حجم EEprom میخوام با استفاده از این فیلترها اونو به چد قسمت تقسیم و از هر قسمت ویژگیهاشو در بیارم و فقط ویژگیهای اونو ذخیره کنم اینطوری حجمش خیلی میاد پائین . یه مقاله دیدم که یکی این کارو کرده ولی با codvision نوشته بود منهم هیچی ازش سر در نیاوردم
      اگه میشه کمکم کنید
      ممنون

      دیدگاه


        #4
        پاسخ : help!!فیلتر های دیجیتال

        تو فرکانس های بالاتر از 4 یا 5 کیلوهرتز اصلا رو این روش با میکروی AVR اون هم با BASCOM حساب نکن
        آموزش نرم افزار Matlab برای دانشجویان رشته های مهندسیhttp://alidoost.ir/news.php?readmore=22

        دیدگاه


          #5
          پاسخ : help!!فیلتر های دیجیتال

          ُسلام


          این موضوع رو چند جایه دیگه هم گفتم

          فیلتر یا هر نوع کار آنالوگ روی سیگنال با این نوع میکروها و بیسیک نمیشه

          من الان جزوم پیشم نیست ولی استاد DSP ما خدا رحمتش کنه (در قید حیاط هستن) یه جلسه مراسم توجیهی DSP گذاشته بود که چرا با میکرو کنترلر های درپیتی نمیشه این کار ها رو کرد (البته اون موقع از 8051 صحبت کردن که آبروی همه رفت)

          ولی بطور کلی میگم (آمار و ارقام خیلی دقیق نیست) برای طراحی یه فیلتر باید از رابطه کانولوشن معروف استفاده کنید(اصلا این لا مذهب پایه و اساس همه الکترونیک سیگنال گسستست) توی کانولوشن ما یه سری از ضرب ها رو داریم یعنی جمعی از ضربها
          حالا اگه بخوایم این سری رو تا بینهایت ادامه بدیم میشه IIR یا Infinite Impulse Response و اگه این سری رو بخوایم تا یه حدی ادامه بدیم میشه FIR یا Finite Impulse Response

          اگه بخوایم سیگنال رو با فیلتر FIR تا N=500 پیش ببریم

          پس برای هر نمونه برداری باید 500 بار ضرب و 500 بار جمع انجام بدیم

          دقت نمونه برداری هم 16 بیتی درنظر بگیریم (10 بیتی با 16 بیتی فرق ندارن از لحاظ زمان مصرفی)

          هر ضرب 16 بیتی در 16بیتی رو 10 کلاک در نظر بگیریم (هر چند که خیلی بیشتر از این حرفهاست)

          هر جمع 32 بیتی با 32 بیتی رو هم 10 کلاک در نظر بگیریم (اینم بیشتر از این حرفهاست)

          میشه 500(10+10) کلاک برای هر نمونه حالا اگه از قانون نایکوئیست استفاده کنیم و پایبند بهش باشیم و بگیم که برای بدترین شرایط و بی کیفیت ترین وضعیت باید فرکانس نمونه برداری حداقل 2 برابر فرکانس سیگنال باشه برای فرکانس 4000hz یا همون 4KHZ باید 8000 نمونه در ثانیه داشته باشیم

          80000000 کلاک میخوایم یا باید میکروی ما حداقل فرکانس 80mhz کار کنه

          این موضوع در شرایطیه که داده آماده در محل رم قرار داشته باشه و فقط میکرو این کار رو انجام بده ولی میدونیم که میکرو باید داده رو از adc دریافت و توی رجیستر های همه کار بریزه و از اونجا بریزه توی بافر این کارش که این رو هم باید برای هر داده در نظر گرفت که هر نمونه حداقل 10 کلاک دیگه برای این کار میخواد
          و اینکه خروجی اون کانولوشن هم باید بره یه جای دیگه توی رم ذخیره بشه و جایی نمایش داده بشه یا بره روی lcd یا dac یا هر چی...

          پس با این اوصاف با avr بیخیال بشید

          در ضمن اینهایی که گفتم در شرایط اسمبلی بود یا C که کاملا optimize سرعتی شده

          نه با بیسیک

          ولی یه DSP اولا که CPU 32bit داره پس کارهای avr رو برای جمع و ضرب نیاز نداره
          دوما یه DSP کامل شده واسه اینکه همین کارها رو انجام بده مثلا بتونه در بدترین شرایط یک ضرب رو توی یک سیکل انجام بده (البته نمونه های هیولایی هستن که 3 ضرب 3 جمع و دو شرط رو در یک سیکل انجام میده که شاهکار تگزاس در طراحی pipeline به حساب میاد)

          در ضمن اینها CPU هستن نه میکروکنترلر و داده هاشون در خارج از میکرو ذخیره میشن (مثلا یه DDR3) و دارای DMA هستن که از CPU یه بار دستور میگیرن که یه جایی یه داده هست اونو کپی کم توی فلان جای اون رم (مثلا میتونه DMA ورودی داده هاش همون ADC باشه که ورودی غیر افزاینده میشه و هر داده ای رو که روی ADC ظاهر میشه میده توی آدرس مقصد)

          و درضمن DMA ها کاملا به فضای cash احاطه دارن و میتونن داده رو مستقیم به خورد CPU بدن و این وسط حسنش اینه که CPU وقتشو صرف انتقال داده نمیکنه و میتونه فقط به کار اصلی بپردازه و هر وقت داده آماده شد و کامل منتقل شد با اینتراپت DMA با خبر میشه

          بگذریم که DMA ها دیگه چه کار میکنن (خوراک کارهای ماتریسی مثل تصویر هستن مثلا یه دستور به DMA میتونه یه فایل .bmp رو کاهش سایز بده اونم فقط حین انتقال داده)
          میتونه Reverse کنه فقط حین اتقال


          در کل نمیگم با این میکروها نمیشه کاری کرد ولی نه برای فرکانسهای کیلوهرتز به بالا

          به وبلاگم سر بزنید

          دیدگاه


            #6
            پاسخ : help!!فیلتر های دیجیتال

            بیبنید بچه ها یه جوری بگم که بهتر بتونید راهنمائیم کنید نه اینکه نا امیدم کنید :sad:
            1 برای فرکانس حداکثر 3 کیلو هرتز میخوام
            2 میخوام این سیگنال به چند قسمت تقسیم کنم و یک ویژگی کلی از هر قسمت در بیارم که نشان دهنده رفتار سیگنال در اون محدوده باشه
            از این لحاظ که AVR این کارو انجام میده مطمئنم . چون ایده این کارو تز چند تا پروژهای که این کارو انجام داده بودن گرفتم البته با Codvision
            من Codvision بیلمزم حالیم نیست
            اگه کسی از شما بلده کدشو بهش بدم تا بتونه راهنمائیم کنه
            با تشکر از دوستان

            دیدگاه


              #7
              پاسخ : help!!فیلتر های دیجیتال

              دوست عزیز واقعا حرف هایی که بچه ها زدن درسته و جای هیچ توضیحی نیس.

              بیا یکبار آستین بالا بزن و دی اس پی رو یاد بگیر .

              ای وی آر جواب کارهای پردازش سیگنال نمیده.

              انگار که شما بخوای با موتور اسباب کشی کنی .

              بمیرد روزگار و خاطراتش.

              دیدگاه


                #8
                پاسخ : help!!فیلتر های دیجیتال

                نوشته اصلی توسط kkpaa
                بیبنید بچه ها یه جوری بگم که بهتر بتونید راهنمائیم کنید نه اینکه نا امیدم کنید :sad:
                1 برای فرکانس حداکثر 3 کیلو هرتز میخوام
                2 میخوام این سیگنال به چند قسمت تقسیم کنم و یک ویژگی کلی از هر قسمت در بیارم که نشان دهنده رفتار سیگنال در اون محدوده باشه
                از این لحاظ که AVR این کارو انجام میده مطمئنم . چون ایده این کارو تز چند تا پروژهای که این کارو انجام داده بودن گرفتم البته با Codvision
                من Codvision بیلمزم حالیم نیست
                اگه کسی از شما بلده کدشو بهش بدم تا بتونه راهنمائیم کنه
                با تشکر از دوستان
                سلام

                منظور از رفتار سیگنال در اون محدوده چیه؟
                میخواید ازش FFT بگیرید
                یعنی همون فوریه؟

                بازم همین دوست عزیز کانولوشن اینجا تشریف دارن

                واقعا متاسفم

                این برای dspic
                http://www.electronics-lab.com/blog/?tag=fft

                برای این فرکانس نمیدونم شاید انجام شده

                ولی شاید run time نیست و offline داره تبدیل میشه

                راستی اینو تازه پیدا کردم با mega8

                http://www.embedds.com/radio-spectrum-fft-on-atmega8/

                ولی برای گیرنده رادیویی ساخته شاید تکنیکش بدردت بخوره
                به وبلاگم سر بزنید

                دیدگاه


                  #9
                  پاسخ : help!!فیلتر های دیجیتال

                  از یک سیگنالی با فرکانس 3000 هرز و دامنه متغیر 0 تا 5 ولت راه دیگه ای به جز فیلتر دیجیتال هست که چند مولفه به عنوان ویژگی اون سیگنال در نظر گرفت؟

                  دیدگاه


                    #10
                    پاسخ : help!!فیلتر های دیجیتال

                    :question: :sad: :redface: :eek: oo: :cry2:

                    دیدگاه

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