اطلاعیه

Collapse
No announcement yet.

تبدیل صوت به دیتا و عکس

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

    تبدیل صوت به دیتا و عکس

    با سلام
    یکی 2 تا تاپیک در این مورد بود که جواب مناسبی بهش داده نشده.
    آیا با ADC و میکروی مثل 32 و با DAC صدا را در حد کیفیت رادیو(فکر کنم حدود64 باشه) با یوزارت با نرخ 115200 انجام داد؟
    اگه خیر حداقل بادریت میکرو چقدر باید باشه و از ADC-DAC چند بیتی استفاده بشه؟
    ممنون
    دوست عزیز اگه مفید بود روی تشکر بزن

    #2
    پاسخ : تبدیل صوت به دیتا و عکس

    نوشته اصلی توسط david24 نمایش پست ها
    با سلام
    یکی 2 تا تاپیک در این مورد بود که جواب مناسبی بهش داده نشده.
    آیا با ADC و میکروی مثل 32 و با DAC صدا را در حد کیفیت رادیو(فکر کنم حدود64 باشه) با یوزارت با نرخ 115200 انجام داد؟
    اگه خیر حداقل بادریت میکرو چقدر باید باشه و از ADC-DAC چند بیتی استفاده بشه؟
    ممنون
    دوستان کسی نبود؟
    دوست عزیز اگه مفید بود روی تشکر بزن

    دیدگاه


      #3
      پاسخ : تبدیل صوت به دیتا و عکس

      نوشته اصلی توسط david24 نمایش پست ها
      دوستان کسی نبود؟
      سلام
      میشه سوالتون رو واضح تر تکرار کنید؟ من که نفهمیدم مشکلتون دقیقا چیه!

      دیدگاه


        #4
        پاسخ : تبدیل صوت به دیتا و عکس

        برای مقوله صدا :
        با ADC میشه از صدایی که میکروفن میشنوه نمونه گیری کرد.
        با DAC میشه صدا رو تولید کرد.
        با UART میشه صدا رو انتقال داد.
        الان شما میخواین چیجور از این سه چیز استفاده کنید برای صدا ؟

        احتمالا منظورتون اینه که شما صدا رو با یه میکرو ضبط کنید، با ADC ش
        با UART بفرستید برای یه میکروی دیگه
        با DAC اون میکرو صدا رو پخش کنید.
        اگر منظورتون اینه، بله میشه.

        اینکه چه سرعتی لازمه ؟
        توجه کنید در ابتدا که انتخاب کردن سرعت بالاتر برای UART هیچ عیبی نداره و چون 115200 پر استفاده س، به این معنی نیس که بالاترش بده. براحتی میتونید 230400 و یا 4 یا 6 برابرشم استفاده کنید.
        برای ضبط کردن صدا، با فرض اینکه سیگنال آهنگ نباشه و صدای آدم باشه، نمونه برداری با نرخ 8 کیلوهرتز، 8 بیت کافیه. یعنی ADC شماکه در حالت 8 بیتی تنظیم شده در هر ثانیه 8 هزار نمونه بگیره. پس هر ثانیه صدا میشه 8 کیلوبایت.
        یوآرت با نرخ انتقال 115200، یعنی 115200 بیت در ثانیه. یعنی 14400 بایت در ثانیه. یعنی 14.4 کیلوبایت در ثانیه.
        با اینکه کافیه، ولی بنظرم همون 230400 یا 256000 رو استفاده کنید بهتره. اونا 32 کیلوبایت در ثانیه میفرستن.
        Si vis pacem, para bellum

        دیدگاه


          #5
          پاسخ : تبدیل صوت به دیتا و عکس

          نوشته اصلی توسط tiranoid نمایش پست ها
          برای مقوله صدا :
          با ADC میشه از صدایی که میکروفن میشنوه نمونه گیری کرد.
          با DAC میشه صدا رو تولید کرد.
          با UART میشه صدا رو انتقال داد.
          الان شما میخواین چیجور از این سه چیز استفاده کنید برای صدا ؟

          احتمالا منظورتون اینه که شما صدا رو با یه میکرو ضبط کنید، با ADC ش
          با UART بفرستید برای یه میکروی دیگه
          با DAC اون میکرو صدا رو پخش کنید.
          اگر منظورتون اینه، بله میشه.

          اینکه چه سرعتی لازمه ؟
          توجه کنید در ابتدا که انتخاب کردن سرعت بالاتر برای UART هیچ عیبی نداره و چون 115200 پر استفاده س، به این معنی نیس که بالاترش بده. براحتی میتونید 230400 و یا 4 یا 6 برابرشم استفاده کنید.
          برای ضبط کردن صدا، با فرض اینکه سیگنال آهنگ نباشه و صدای آدم باشه، نمونه برداری با نرخ 8 کیلوهرتز، 8 بیت کافیه. یعنی ADC شماکه در حالت 8 بیتی تنظیم شده در هر ثانیه 8 هزار نمونه بگیره. پس هر ثانیه صدا میشه 8 کیلوبایت.
          یوآرت با نرخ انتقال 115200، یعنی 115200 بیت در ثانیه. یعنی 14400 بایت در ثانیه. یعنی 14.4 کیلوبایت در ثانیه.
          با اینکه کافیه، ولی بنظرم همون 230400 یا 256000 رو استفاده کنید بهتره. اونا 32 کیلوبایت در ثانیه میفرستن.
          سلام
          اینکه امکانش هست یا خیر میدونم که میشه.
          منظورم همون قسمت آخر جواب شما بود که در مورد نرخ انتقال گفتید .
          فکر کنم 8 کیلوهرتز و 8 بیت خیلی کم باشه.
          بنظرم برای صدا در حد 64 و در نتیجه بیت بالاتر از 8 و نرخ انتقال هم حداقل-حدقل 115200 باشه .
          سوال بالا در این مورد بود که با مگا 32 که باد ریت 115200 داره و تا حدود 12 بیت میتونه تبدیل داشته باشه - آیا مناسب هست یا از adc و dac های مثلا 16 یا 24 استفاده کنم یا حتی میکرو بالاتر از 32.
          ممنون از پاسختون
          دوست عزیز اگه مفید بود روی تشکر بزن

          دیدگاه


            #6
            پاسخ : تبدیل صوت به دیتا و عکس

            من پردازش گفتار انجام دادم با همین 8 بیت / 8 کیلوهرتز و کمترین میزانی بود که صدای مناسبی بدست میداد. با 12 کیلوهرتز و همین 8 بیت نتایج خیلی بهتری هم بدست اومد که نیازی نبود.
            شما باید اول بشنوید و با آزمودن مقادیر مختلف بدست بیارید.
            نخست اینکه، موسیقی های بسیار کمی هست که اصن یه شخص میتونه متوجه بشه که نمونه برداریش چند بیت / چند کیلوهرتزه.

            توجه کنید اون 64 و 128 و اینا که احتمالا منظورتون بوده، مال فشرده سازی MP3 ه و ربطی به نمونه برداری صدا نداره. نرخ نمونه برداری صدا برای موزیک، معمولا 24000، و 44100 و بیش از اون انتخاب میشه.

            یه سیستم صدای HI-FI مدرن ، معمولا 96 و حتا 192 کیلوهرتز و 24 بیت انجام میده که بسیار زیاده. برای اینکه شما واقعا کیفیت و تفاوت این رو با یه 44100 کیلوهرتز 16 بیت احساس کنید، یه هدفون رفرنس با قیمت حداقل 4 میلیون تومن، یه کارت صدا با قیمت همین حدود، یه تقویت کننده هدفون با همین حدود و یه منبع تغذیه با همین حدود نیاز دارید! عملا کمتر از 5 درصد مردم در جهان صدای باکیفیت میشنون و این یه گفته ی معروفه.
            مثلا آخرین نسخه آیپاد، دک 48 کیلوهرتز داره با رزولوشن 16 بیت.
            شما قطعا نمیخواید با اتمگا 32 آیپاد درست کنید. از طرف دیگه، انتقال داده های بالاتر از 8 بیت سخت تره چون همه چیز دو مرحله ای میشه و دو برابر کندتر.
            بهتره در مورد کارتون توضیح بیشتری بدید.
            Si vis pacem, para bellum

            دیدگاه


              #7
              پاسخ : تبدیل صوت به دیتا و عکس

              نوشته اصلی توسط tiranoid نمایش پست ها
              من پردازش گفتار انجام دادم با همین 8 بیت / 8 کیلوهرتز و کمترین میزانی بود که صدای مناسبی بدست میداد. با 12 کیلوهرتز و همین 8 بیت نتایج خیلی بهتری هم بدست اومد که نیازی نبود.
              شما باید اول بشنوید و با آزمودن مقادیر مختلف بدست بیارید.
              نخست اینکه، موسیقی های بسیار کمی هست که اصن یه شخص میتونه متوجه بشه که نمونه برداریش چند بیت / چند کیلوهرتزه.

              توجه کنید اون 64 و 128 و اینا که احتمالا منظورتون بوده، مال فشرده سازی MP3 ه و ربطی به نمونه برداری صدا نداره. نرخ نمونه برداری صدا برای موزیک، معمولا 24000، و 44100 و بیش از اون انتخاب میشه.

              یه سیستم صدای HI-FI مدرن ، معمولا 96 و حتا 192 کیلوهرتز و 24 بیت انجام میده که بسیار زیاده. برای اینکه شما واقعا کیفیت و تفاوت این رو با یه 44100 کیلوهرتز 16 بیت احساس کنید، یه هدفون رفرنس با قیمت حداقل 4 میلیون تومن، یه کارت صدا با قیمت همین حدود، یه تقویت کننده هدفون با همین حدود و یه منبع تغذیه با همین حدود نیاز دارید! عملا کمتر از 5 درصد مردم در جهان صدای باکیفیت میشنون و این یه گفته ی معروفه.
              مثلا آخرین نسخه آیپاد، دک 48 کیلوهرتز داره با رزولوشن 16 بیت.
              شما قطعا نمیخواید با اتمگا 32 آیپاد درست کنید. از طرف دیگه، انتقال داده های بالاتر از 8 بیت سخت تره چون همه چیز دو مرحله ای میشه و دو برابر کندتر.
              بهتره در مورد کارتون توضیح بیشتری بدید.
              سلام
              ممنون - 64و128 که فرمودین برای فرمتهای صدا 64 کیلو هرتز و 128 کیلوهرتز که برای فرمت های فایلهای صوتی و موسیقی استفاده میشد نبود.
              یه جا خونده بودم مثلا اگه 8 کیلو هرتز می خواهی باید 2 برابر حساب کنی - یعنی روی 16 کیلوهرتز نونه برداری کنی و بیت ریت هم میره بالاتر.

              می خوام روی تبدیل صوت آنالوگ و تبدیل آن به دیجیتال و ارسال آن و دریافت و تبدیل به آنالوگ یا همان دیجیتال کار کنم.
              ولی می خواهم تقریبا آنلاین باشه - یعنی دریافت صدای آنالوگ و تبدیل آن و ارسال و دریافت وقفه ای توش نباشه - منظور از وقفاه اینکه سخت افزار که شامل ADC و DAC و میکرو و قسمت ارسال که ممکنه با سیم یا بی سیم باشه ریت مناسب داشته باشه.
              شما که کار کردین میتونید حداقل مشخصات سخت افزاری مثل مبدل 16 بیتی - میکرو 32 یا ... بگید؟
              دوست عزیز اگه مفید بود روی تشکر بزن

              دیدگاه


                #8
                پاسخ : تبدیل صوت به دیتا و عکس

                با AVR بخاطر نداشتن مولتی ترد ( چند نخی) ابتدا باید نمونه بگیرید و بعد بفرستید و در زمان فرستان امکان نمونه برداری ندارید و برعکس . اگر REAL TIME میخواهید باید برید سراغ ARM و مولتی تردینگ
                نوفن پردازش هوشمند

                دیدگاه


                  #9
                  پاسخ : تبدیل صوت به دیتا و عکس

                  نوشته اصلی توسط پشه 007 نمایش پست ها
                  با AVR بخاطر نداشتن مولتی ترد ( چند نخی) ابتدا باید نمونه بگیرید و بعد بفرستید و در زمان فرستان امکان نمونه برداری ندارید و برعکس . اگر REAL TIME میخواهید باید برید سراغ ARM و مولتی تردینگ
                  مالتی تردینگ مربوط به سیستم عامله نه پلتفرم. AVR هم این امکان رو داره که سیستم عامل روش نصب بشه (FreeRTOS یا فمتو) ومالتی تردینگ داشته بشه. ARM هم بدون سیستم عامل مالتی تردینگ نداره. پس هردوی این پلتفرم ها، بدون در نظر گرفتن توان پردازش، از نظر مالتی تردینگ دقیقا یکین.
                  از طرف دیگه، استفاده از سیستم عامل، بازده زمانی رو افزایش نمیده و از طرفی بدترش هم میکنه. احتمالا منظور شما DMA بوده که تو کنترلرهای آرم شایع تره ولی 8 بیتی هایی مث atXmega و stm8l هم در بعضی مدل ها DMA دارن.
                  برای کار ایشون، هر کنترلی که DMA داشته باشه کارشونو راه میندازه.

                  دلیل: ادغام دو پست برای جلوگیری از اسپم

                  نوشته اصلی توسط david24 نمایش پست ها
                  سلام
                  ممنون - 64و128 که فرمودین برای فرمتهای صدا 64 کیلو هرتز و 128 کیلوهرتز که برای فرمت های فایلهای صوتی و موسیقی استفاده میشد نبود.
                  یه جا خونده بودم مثلا اگه 8 کیلو هرتز می خواهی باید 2 برابر حساب کنی - یعنی روی 16 کیلوهرتز نونه برداری کنی و بیت ریت هم میره بالاتر.

                  می خوام روی تبدیل صوت آنالوگ و تبدیل آن به دیجیتال و ارسال آن و دریافت و تبدیل به آنالوگ یا همان دیجیتال کار کنم.
                  ولی می خواهم تقریبا آنلاین باشه - یعنی دریافت صدای آنالوگ و تبدیل آن و ارسال و دریافت وقفه ای توش نباشه - منظور از وقفاه اینکه سخت افزار که شامل ADC و DAC و میکرو و قسمت ارسال که ممکنه با سیم یا بی سیم باشه ریت مناسب داشته باشه.
                  شما که کار کردین میتونید حداقل مشخصات سخت افزاری مثل مبدل 16 بیتی - میکرو 32 یا ... بگید؟
                  بله به اون میگن نرخ نایکوییست. اما اینکه دو برابر باشه، "حداقله". در واقعیت 4 تا 10 برابر هم استفاده میکنن، مخصوصا اگر بخوان پردازش انجام بدن. (چند خط پایینتر رو ببینید)
                  رنج شنوایی انسان بین 20 تا 20000 هرتزه، اما تو همه این رنج خود انسان نمیتونه صدا تولید کنه. حرف زدن یه آدم بین 100 تا 5000 هرتزه معمولا. برای موزیک، این رنج بیشتر میشه و هرچقد بخوایم موزیک کیفیت بیشتری داشته باشه، نرخ نمونه برداری بیشتر میشه.

                  از طرف دیگه، نرخ نمونه برداری، رزولوشن نمونه برداری (همون 8 بیت یا 10 بیت) همه در یک رابطه ریاضی (که تو کتابهای DSP هست) بازده کلی رو مشخص میکنه. بدون توضیح این رابطه، اینطور بگم که شما با بالا بردن نرخ نمونه برداری، میتونید همون بازده رو با رزولوشن کمتر داشته باشید. یعنی مثلا اینکه 10 کیلوهرتز نمونه برداری کنید10 بیت، با 20 کیلوهرتز نمونه برداری کنید 8 بیت، یکسان در میاد (مثال بود، رابطه به این شکل نیست نماییه).
                  پس به همین دلیله که ترجیح اینه که از نرخ نمونه برداری بالاتر با دقت کمتر استفاده بشه. چون ارزونتره و خطای کمتری داره و از طرف دیگه، تاثیر افزایش نرخ نمونه برداری تو کیفیت خیلی بیشتره تا بالابردن رزولوشن. یه ADC ارزون قیمت، نرخ نمونه برداریش تا حدود زیادی درسته اما دقتش، معمولا کمتر از نمونه های مشابهه با اینکه اونم مثلا 8 بیته. چون ADC خطاهای متنوعی داره که اصن یه مبحث دانشگاهین.
                  پس نتیجه گیری :
                  نرخ نمونه برداری بیشتر انتخاب کنید، رزولوشن رو همون 8 بیت نگه دارید.
                  من کارتونو راحت کردم و با آزمون و خطا متوجه شدم که با رزولوشن 8 بیت، برای صحبت معمولی خودم نمونه برداری 8 کیلوهرتز خوب بود. شما میتونید 10 کیلوهرتز استفاده کنید. یا اگر میخواستید موزیک منتقل کنید، نرخ 16 یا 20 کیلوهرتز استفاده کنید. تا اونجا که یادمه AVR تا 200 کیلوهرتز میتونه نمونه برداری کنه.

                  اینکه من چه کنترلری استفاده کردم :
                  من از ارزونترین میکروکنترلر STM32 استفاده کردم( STM32F030) و براش یه برد توسعه کوچولو با امکانات آنالوگ ساختم برای همین منظور.
                  نرخ نمونه برداری من 10 کیلوهرتز با رزولوشن 8 بیت بود و همه اینا با DMA و تریگر تایمر، بدون استفاده از اینتراپت یا دخالت CPU انجام میشد.
                  بعد از اون هم با یوآرت به رایانه میفرستادم هم با الگوریتم های فشرده سازی فشرده ش کردم.

                  اینکه شما باید چیکار کنید:
                  اگر برنامه نویس حرفه ای هستید و بازده کداتون خوبه، شما اینکارو با هر میکروکنترلری میتونید انجام بدید. حتا سری ات تاینی (تو وبسایت ها هست که حتا رو 12 کانال DFT میگیرن و در لحظه رو نمایشگر نشون میدن دامنه رو).
                  اگر خیلی تمرین نکردید و شک دارید، ارزونترین میکروکنترلر STM32 کارتونو راه میندازه.
                  شما براحتی میتونید داده هاتونو چه با سیم چه بی سیم (مثلا nrf24) بفرستید و اونور بازتولید کنید.
                  توجه کنید که این کار اصن توان پردازشی بالایی نمیخواد. فقط زمان بندی مرتب میخواد که اونم با کدنویسی درست بدست میاد.
                  Si vis pacem, para bellum

                  دیدگاه


                    #10
                    پاسخ : تبدیل صوت به دیتا و عکس

                    در آردوینو DUE شما میتونید با استفاده از کتابخانه Scheduler چندین لوپ را بدون داشتن تداخل با یکدیگر و داشتن سیستم عامل اجرا کنید .
                    چیزی شبیه به مالتی تردینگ

                    The Scheduler library enables an Arduino based on SAM and SAMD architectures (i.e (i.e Zero, MKRZero, MKR1000 Board) and Due) to run multiple functions at the same time. This allows tasks to happen without interrupting each other.
                    This is a cooperative scheduler in that the CPU switches from one task to another. The library includes methods for passing control between tasks.
                    جدیدترین ویرایش توسط پشه 007; ۱۷:۵۶ ۱۳۹۹/۱۰/۱۱.
                    نوفن پردازش هوشمند

                    دیدگاه


                      #11
                      پاسخ : تبدیل صوت به دیتا و عکس

                      نوشته اصلی توسط پشه 007 نمایش پست ها
                      در آردوینو DUE شما میتونید با استفاده از کتابخانه Scheduler چندین لوپ را بدون داشتن تداخل با یکدیگر و داشتن سیستم عامل اجرا کنید .
                      چیزی شبیه به مالتی تردینگ

                      The Scheduler library enables an Arduino based on SAM and SAMD architectures (i.e (i.e Zero, MKRZero, MKR1000 Board) and Due) to run multiple functions at the same time. This allows tasks to happen without interrupting each other.
                      This is a cooperative scheduler in that the CPU switches from one task to another. The library includes methods for passing control between tasks.
                      اسکیجلر یه "شبهه" سیستم عامله که فقط چند کار رو همزمان انجام میده. سیستم عامل علاوه بر اینا، مدیریت حافظه، موتکس و اولویت بندی هم انجام میده.
                      اتفاقا این کتابخونه حدود دو یا سه سال پیش که اومده بود، برای همه مدلهای آردویینو اومده بود. اما پیاده سازیش رو مدلهای AVR آردویینو، مث نانو و اونو، بازده خوبی نداشت احتمالا به همین دلیل اختصاصی این پردازنده ها شده. صرفا به این خاطر که عموما، پردازنده های مبتنی بر ARM توانمندتر از 8 بیتی های دیگه ن. نه اینکه چیزی جادویی دارن که بقیه ندارن.
                      در هر حال، همچنان سیستم عامل و چند ریسمانی، ضمانت کننده زمان بندی سریع، مثل نمونه برداری بدون خطای 10 کیلوهرتز از یه سیگنال نیست و استفاده کردن یا نکردن از کتابخونه ای مانند اسکیجلر، یا حتا یه سیستم عامل کاملتر، کمکی به زمان بندی نمونه گیری که تو پست های قبل اشاره شد نمیکنه.
                      Si vis pacem, para bellum

                      دیدگاه

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