اطلاعیه

Collapse
No announcement yet.

ضرب فرکانس در میکرو

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

    ضرب فرکانس در میکرو

    سلام خدمت اساتید
    ممنون میشم یه توضیح کوتاه بدید چجوری میتونم با میکروکنترلر avr یه فرکانسی رو تو یه عدد ضرب کنم ؟
    مثلا فرکانس 100 هرتز رو تو 0.5 ضرب کنه 50 هرتز تحویل بده
    واسه یه تبدیل الراسونیک به صدای قابل شنیدن میخام
    اصلا ممکنه چنین کاری با میکرو یا باید از ای سی های ضرب کننده استفاده کنم ؟
    خیلی خیلی ممنون جواب برام خیلی مهمه

    #2
    پاسخ : ضرب فرکانس در میکرو

    سلام
    نو میکرو میتونی چهار عمل اصلی را انجام بدی چه صحیح چه اعشاری

    دیدگاه


      #3
      پاسخ : ضرب فرکانس در میکرو

      درسته ولی میخاستم فرکانس رو باهاش کار کنم یعنی چجوری میتونم فرکانس 40 کیلوهرتز که از میکروفون دریافت میشه رو در 0.5 ضربب کنم و تو بلندگو پخش کنم . کلا باهاش مشکل دارم چجوری وارد کم ,خارج کنم و...

      دیدگاه


        #4
        پاسخ : ضرب فرکانس در میکرو

        فرکانس ورودی باید تبدیل به پالس بشه بعد بدی "تایمر کانتر" برات شمارش کنه. حالا میتونی" کامپراتور تایمر" را طوری تنظیم کنی که در ازای هر تعداد پالس بهت اینتراپ بده
        حالا اگر پالس ورودی 100 باشه و عدد "کامپراتور تایمر" را روی دو بگذاری به ازای هر 50 هرتز یک اینتراپت داری اگر روی 4 بگذاری هر 25 هرتر یک اینتراپ داری
        جدیدترین ویرایش توسط kamy007; ۲۳:۳۸ ۱۳۹۶/۰۶/۰۸.

        دیدگاه


          #5
          پاسخ : ضرب فرکانس در میکرو

          نوشته اصلی توسط Reza Azimy_RW نمایش پست ها
          سلام خدمت اساتید
          ممنون میشم یه توضیح کوتاه بدید چجوری میتونم با میکروکنترلر avr یه فرکانسی رو تو یه عدد ضرب کنم ؟
          مثلا فرکانس 100 هرتز رو تو 0.5 ضرب کنه 50 هرتز تحویل بده
          واسه یه تبدیل الراسونیک به صدای قابل شنیدن میخام
          اصلا ممکنه چنین کاری با میکرو یا باید از ای سی های ضرب کننده استفاده کنم ؟
          خیلی خیلی ممنون جواب برام خیلی مهمه
          سلام
          خیلی راحت میتونی از فیلیپ فلاپ استفاده کنی _ نوع D _ در واقع شما میخوای فرکانس رو تقسیم کنی و استفاده کنی _ فیلیپ فلاپ ها در آرایش شمارنده
          ! Life doesn't get easier , you just get stronger

          دیدگاه


            #6
            پاسخ : ضرب فرکانس در میکرو

            نوشته اصلی توسط Reza Azimy_RW نمایش پست ها
            درسته ولی میخاستم فرکانس رو باهاش کار کنم یعنی چجوری میتونم فرکانس 40 کیلوهرتز که از میکروفون دریافت میشه رو در 0.5 ضربب کنم و تو بلندگو پخش کنم . کلا باهاش مشکل دارم چجوری وارد کم ,خارج کنم و...
            ععع این پست شما رو ندیدم رو همون پست اولت جواب دادم
            خیلی زرنگی میخوای با میکرو فککسنی AVR یه جورایی پردازش صدا کنی
            خوب برای اینکه یه سیگنال انالوگ را با فرکانس کمتر شبیه سازی کنی باید حداقل حداقل ده برابر فرکانسش با adc نمونه برداری , و ذخیره کنی
            و بعد هر نمونه را با همان ریت که برداشتی باید بدی به یک dac . خوب حالا اگر هر نمونه را دوبار به dac بدی در خروجی شکل موجی معادل؛ اما با فرکانس یک دوم ورودی داری و اگر هر نمونه را سه بار ارسال کنی یک سوم فرکانس ورودی و الی اخر. این یک روش بسیار ساده تو پردازش صداست .

            دیدگاه


              #7
              پاسخ : ضرب فرکانس در میکرو

              نوشته اصلی توسط Reza Azimy_RW نمایش پست ها
              ممنون میشم یه توضیح کوتاه بدید چجوری میتونم با میکروکنترلر avr یه فرکانسی رو تو یه عدد ضرب کنم ؟
              مثلا فرکانس 100 هرتز رو تو 0.5 ضرب کنه 50 هرتز تحویل بده
              واسه یه تبدیل الراسونیک به صدای قابل شنیدن میخام
              اصلا ممکنه چنین کاری با میکرو یا باید از ای سی های ضرب کننده استفاده کنم ؟
              خیلی خیلی ممنون جواب برام خیلی مهمه
              خیلی بهتر ه از IC هایی که برای تقسیم فرکانس و میکس هستند استفاده کنید.
              در نظر داشته باشید نمونه صدا و یا یک موج در حالت کلی ، با موج مربعی قابل پردازش توسط سیستم های دیجیتال خیلی تفاوت داره و باید قبلش همونطور که دوستان گفتن ازش نمونه برداری بشه و ...

              نوشته اصلی توسط kamy007 نمایش پست ها
              خوب برای اینکه یه سیگنال انالوگ را با فرکانس کمتر شبیه سازی کنی باید حداقل حداقل ده برابر فرکانسش با adc نمونه برداری , و ذخیره کنی
              منظورتون دو برابره دیگه؟ ده که خیلیه حاجی
              نایکوئیست میگه (تا جایی که یادمه ) نرخ نمونه گیری حداقل دو برابر حداکثر فرکانس سیگنال مورد پردازش باشه. برای صدا هم متعارف 48KHz هست



              نوشته اصلی توسط kamy007 نمایش پست ها
              و بعد هر نمونه را با همان ریت که برداشتی باید بدی به یک dac . خوب حالا اگر هر نمونه را دوبار به dac بدی در خروجی شکل موجی معادل؛ اما با فرکانس یک دوم ورودی داری و اگر هر نمونه را سه بار ارسال کنی یک سوم فرکانس ورودی و الی اخر.
              اینو اگه توضیح بیشتر بدید ممنون می شم. این که میگید در حوزه زمانه یا حوزه فرکانس؟ یکم این حرفتون مشکل نداره؟

              دیدگاه


                #8
                پاسخ : ضرب فرکانس در میکرو

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

                اون نوصیح یادم رفت که پرسیدی
                فرض کن از شکل موجت ده تا نمونه گرفتی و اونا رو داری
                حالا با مقدار همان فاصله زمانی که نمونه برداشتی نمونه ها را ارسال کن به یک دی ای سی ولی هر نمونه یعنی سمپل اول دوبار سمپل دوم دوبار والی اخر هر سمپل را دوبار ارسال کن حالا فرکانست تقسیم بر دو میشه و شکل موج هم شبیه شکل موج ورودی میشه
                جدیدترین ویرایش توسط kamy007; ۱۶:۳۷ ۱۳۹۶/۰۶/۰۹.

                دیدگاه


                  #9
                  پاسخ : ضرب فرکانس در میکرو

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




                  نوشته اصلی توسط kamy007 نمایش پست ها
                  ولی ای وی ار این کاره نیست یه تقسیم هشت بیتی ساده باهاش بزن ببین چند سایکل میره سر کار!!
                  چند سایکل؟؟ حقیقت اینه که اصلا نه من می دونم چند سایکل نه شما ، چرا؟ چون AVR اصلا تقسیم نداره !
                  ما چطور با AVR تقسیم انجام می دیم؟؟ اون هنر کامپایلره که تقسیم سطح بالا رو به تفریق های متوالی ( یا روش های دیگه ) تبدیل میکنه .


                  اره دیگه، پردازنده AVR اینکاره نیست منم قبول دارم.



                  نوشته اصلی توسط kamy007 نمایش پست ها
                  حالا با مقدار همان فاصله زمانی که نمونه برداشتی نمونه ها را ارسال کن به یک دی ای سی ولی هر نمونه یعنی سمپل اول دوبار سمپل دوم دوبار والی اخر هر سمپل را دوبار ارسال کن حالا فرکانست تقسیم بر دو میشه و شکل موج هم شبیه شکل موج ورودی میشه
                  رو این یکم باید حساب کتاب کنم بهتون یگم، شاید دقیق جواب نده ( به نظر تغییر بین تکرار سمپل اول و سمپل دوم به عنوان نمونه، همون فرکانس های اولیه رو دار )

                  دیدگاه


                    #10
                    پاسخ : ضرب فرکانس در میکرو

                    ما چطور با AVR تقسیم انجام می دیم؟؟ اون هنر کامپایلره که تقسیم سطح بالا رو به تفریق های متوالی ( یا روش های دیگه ) تبدیل میکنه .
                    خوب همینه دیگه دو روش دار روش اول که کد بهینه نیست و سایکل کمه روش دوم کد بهینه شد ولی سایکل زیاد شده این بهترین کدهای نوصبه شده شکرت انمل هست
                    لینک نمیتونم بدم که اسپم بشه ولسی اینو سرچ کنید AVR200: Multiply and Divide Routines
                    بقیشو بعدا میام میگم کار پبش اومد

                    دیدگاه


                      #11
                      پاسخ : ضرب فرکانس در میکرو

                      بیا فرض کنیم که یک سیگنال ورودی مربعی داریم با فرکانس 100 هرتز که با نرخ 1 کیلو با ای دی سی یک بیتی نمونه برداری شده. بصورت نمادین باید 5 نمونه ما حاوی عدد 1 و 5 نمونه دیگر حاوی عدد صفر باشد . خوب حالا اگر با همین نرخ 1 کیلو دیتاهای خود را به دی ای سی یک بیتی ارسال کنیم یک پالس مربعی 100 هرتز به ما میده . اما اگر با همین نرخ هر نمونه از 5 نمونه اول را دو بار و 5 نمونه دوم را هم دو بار ارسال کنیم در خروجی ما یک پالس مربعی 50 هرتز داریم

                      دیدگاه


                        #12
                        پاسخ : ضرب فرکانس در میکرو

                        ممنون داداش توضیحات کاملی بود از همه اساتید که کمک کردن ممنون فقط :
                        خیلی راحت میتونی از فیلیپ فلاپ استفاده کنی _ نوع D _ در واقع شما میخوای فرکانس رو تقسیم کنی و استفاده کنی _ فیلیپ فلاپ ها در آرایش شمارنده
                        ممنون میشم کاملتر توضیح بدین این روش چجوریه
                        ما چطور با AVR تقسیم انجام می دیم؟؟ اون هنر کامپایلره که تقسیم سطح بالا رو به تفریق های متوالی ( یا روش های دیگه ) تبدیل میکنه .اره دیگه، پردازنده AVR اینکاره نیست منم قبول دارم.
                        داداش کلا برنامه نویسی رو درک نکردی پردازنده کامپیوترت هم تقسیم رو با هنر کامپایلر انجام میده / کاری به سرعت ای وی ار ندارم در کل گفتم
                        جدیدترین ویرایش توسط Reza Azimy_RW; ۰۱:۴۳ ۱۳۹۶/۰۶/۱۰.

                        دیدگاه


                          #13
                          پاسخ : ضرب فرکانس در میکرو

                          نوشته اصلی توسط Reza Azimy_RW نمایش پست ها
                          ممنون داداش توضیحات کاملی بود از همه اساتید که کمک کردن ممنون فقط : ممنون میشم کاملتر توضیح بدین این روش چجوریه داداش کلا برنامه نویسی رو درک نکردی پردازنده کامپیوترت هم تقسیم رو با هنر کامپایلر انجام میده / کاری به سرعت ای وی ار ندارم در کل گفتم
                          من که عاره درک نکردم . ولی خیلی زود در باره میکرو پروسسورها قضاوت نکن حالا ای وی ار فانکشن هاردوری برای تقسیم نداره قرار نیست که همه سی پی یو ها را متهم کنی حتی سی پیو پنتیوم!! خدا رو خوش نمیاد اصلا بیا با هم گیر بدیم به میکرو های دی اس پی و بگیم اونها هم بلد نیستن با یه ماشین سایکل تقسیم اعشاری کنن

                          دیدگاه


                            #14
                            پاسخ : ضرب فرکانس در میکرو

                            نوکرتم داداش شما یا darkstar کلا استاد من هستین ولی تو سیستم دیجیتال که کلا کامپوترو ... بر اساس همونن فانکشن سخت افزاری نمیونیم داشته باشیم واسه تقسیم و خیلی چیزای دیگه در نهایت الگوریتم نرم افزارین (الکترونیک تازه کارم ولی حدود ده ساله برنامه نویسی میکنم)

                            دیدگاه


                              #15
                              پاسخ : ضرب فرکانس در میکرو

                              نوشته اصلی توسط Reza Azimy_RW نمایش پست ها
                              نوکرتم داداش شما یا darkstar کلا استاد من هستین ولی تو سیستم دیجیتال که کلا کامپوترو ... بر اساس همونن فانکشن سخت افزاری نمیونیم داشته باشیم واسه تقسیم و خیلی چیزای دیگه در نهایت الگوریتم نرم افزارین (الکترونیک تازه کارم ولی حدود ده ساله برنامه نویسی میکنم)
                              من بیشتر مخلصم
                              بزار یه نمه اسمبلی رایت کنم اینجا
                              mov edx, 0 ; clear dividend
                              mov eax, 0x8003 ; dividend
                              mov ecx, 0x100 ; divisor
                              div ecx ; EAX = 0x80, EDX = 0x3
                              خوب این تو پی سی خودم. مقدار 8003 هگز تقسیم بر 100 هگز نتیجه 80 هگز باقیمانده 3 هگز . حیونی اینل ببین چه زحمتی کشیده برامون

                              دیدگاه

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