اطلاعیه

Collapse
No announcement yet.

ارسال صوت به FPGA

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

    ارسال صوت به FPGA

    سلام دوستان
    کسی میدونه چطور میشه یه سیگنال آنالوگ مثله صوت را به FPGA داد؟

    #2
    پاسخ : ارسال صوت به FPGA

    نمیشه عزیزم
    باید از کدک برای اینکار استفاده کنی
    منطق fpga دیجیتاله نه آنالوگ

    دیدگاه


      #3
      پاسخ : ارسال صوت به FPGA

      نوشته اصلی توسط mojtaba_zeinolabedini
      نمیشه عزیزم
      باید از کدک برای اینکار استفاده کنی
      منطق fpga دیجیتاله نه آنالوگ
      کدک همون A/D دیگه؟؟؟
      از چه کدکی استفاده کنم؟
      کدک داده ها را به صورت سنکرون به FPGA میده؟

      دیدگاه


        #4
        پاسخ : ارسال صوت به FPGA

        کدک ها ( یا همون voice codec ) با a/d تفاوت داره...
        a/d سنکرون با کلاک از سیگنال ورودی نمونه برداری می کنه و به صورت پارالل یا سریال در خروجی قرار میده...
        کدک نمونه گیری خودشو با توجه نمونه قبلی میگیره...اگوریتم های متفاوت دارن که نیاز به دونستنش نیست...
        خروجی این کدک ها به صورت سریال هستش و سنکرون با کلاک..فقط برای کارهای صوتی بهینه شدن و داخلشون فیلترهای صوتی ،تقویت کننده صوتی،و... قرار داده شده که کار شما رو راحت کرده..
        به عنوان مثال میتونی خانواده tlv320aic12k رو ببینی:
        http://pdf1.alldatasheet.com/datasheet-pdf/view/196570/TI/TLV320AIC12K.html

        دیدگاه


          #5
          پاسخ : ارسال صوت به FPGA

          نوشته اصلی توسط mojtaba_zeinolabedini
          کدک ها ( یا همون voice codec ) با a/d تفاوت داره...
          a/d سنکرون با کلاک از سیگنال ورودی نمونه برداری می کنه و به صورت پارالل یا سریال در خروجی قرار میده...
          کدک نمونه گیری خودشو با توجه نمونه قبلی میگیره...اگوریتم های متفاوت دارن که نیاز به دونستنش نیست...
          خروجی این کدک ها به صورت سریال هستش و سنکرون با کلاک..فقط برای کارهای صوتی بهینه شدن و داخلشون فیلترهای صوتی ،تقویت کننده صوتی،و... قرار داده شده که کار شما رو راحت کرده..
          به عنوان مثال میتونی خانواده tlv320aic12k رو ببینی:
          http://pdf1.alldatasheet.com/datasheet-pdf/view/196570/TI/TLV320AIC12K.html
          ممنون از راهنماییتون ولی ظاهراً استفاد از این قطعه خیلی هم آسون نیست، کاربردهایی هم که توی دیتاشیت اومده خیلی فراتر از کاریه که من میخوام بکنم، توی دیتاشیت کاربردش رو گفته:
          • Digital Still Cameras
          • Wireless Accessories
          • Hands-Free Car Kits
          • VOIP
          • Cable Modem
          ولی من فقط میخوام پردازش صوتی ساده انجام بدم. قطعه ساده تری به نظرتون نمیرسه؟
          این قطعه راحت توی بازار پیدا میشه؟ توی اینترنت سرچ زدم فقط یه سایت داشت...

          دیدگاه


            #6
            پاسخ : ارسال صوت به FPGA

            شما توسط یک ADC یا رزولوشن 16 بیت و نرخ نمونه برداری 48 KSPS میتونی از صدا نمونه بگیری. فقط باید با همین سرعت خروجی ADC رو بخونی و توی یک RAM قرار بدی یا ADC استفاده کنی که پایان هر تبدیل رو بهت خبر بده و در زمان خبر دادن مقدار خروجی ADC رو بخونی و تو RAM ثبت کنی. حالا شما توی این RAM اطلاعات سیگنال رو بصورت گسسته داری و میتونی روش پردازش کنی
            خدا گفت : به جهنم ببریدش، او برگشت و با تعجب به خدا نگاه کرد. خدا گفت : به بهشت ببریدش. فرشتگان پرسیدند: چرا؟! خدا گفت : او هنوز به من امیدوار است...

            دیدگاه


              #7
              پاسخ : ارسال صوت به FPGA

              نوشته اصلی توسط حمید نجفی
              شما توسط یک ADC یا رزولوشن 16 بیت و نرخ نمونه برداری 48 KSPS میتونی از صدا نمونه بگیری. فقط باید با همین سرعت خروجی ADC رو بخونی و توی یک RAM قرار بدی یا ADC استفاده کنی که پایان هر تبدیل رو بهت خبر بده و در زمان خبر دادن مقدار خروجی ADC رو بخونی و تو RAM ثبت کنی. حالا شما توی این RAM اطلاعات سیگنال رو بصورت گسسته داری و میتونی روش پردازش کنی
              میشه لطفاً یه ADC با این مشخصاتی که گفتید معرفی کنید، من از یه برد spartan3 که کلاک را از یک کریستال 25MHZ دریافت میکنه استفاده میکنم، پس فکر نکنم بتونم با این نرخی که شما گفتید خروجی را دریافت کنم، از طرفی میخوام مجدداً صوت پردازش شده را تبدیل به آنالوگ کنم پس احتمالاً به دوتا ADC نیاز دارم، اگه بیشتر راهنمایی کنید ممنون میشم.

              دیدگاه


                #8
                پاسخ : ارسال صوت به FPGA

                نوشته اصلی توسط کنت مونت کریستو
                میشه لطفاً یه ADC با این مشخصاتی که گفتید معرفی کنید، من از یه برد spartan3 که کلاک را از یک کریستال 25MHZ دریافت میکنه استفاده میکنم، پس فکر نکنم بتونم با این نرخی که شما گفتید خروجی را دریافت کنم، از طرفی میخوام مجدداً صوت پردازش شده را تبدیل به آنالوگ کنم پس احتمالاً به دوتا ADC نیاز دارم، اگه بیشتر راهنمایی کنید ممنون میشم.
                با سرعت 48 کیلوهرتز باید اطلاعات رو بخونی و توی یک RAM ثبت کنی، چرا نتونی؟
                برای بازگردوندن به DAC نیاز داری و با همین سرعت دوباره سیگنال رو بازسازی می کنی.
                خدا گفت : به جهنم ببریدش، او برگشت و با تعجب به خدا نگاه کرد. خدا گفت : به بهشت ببریدش. فرشتگان پرسیدند: چرا؟! خدا گفت : او هنوز به من امیدوار است...

                دیدگاه


                  #9
                  پاسخ : ارسال صوت به FPGA

                  نوشته اصلی توسط حمید نجفی
                  با سرعت 48 کیلوهرتز باید اطلاعات رو بخونی و توی یک RAM ثبت کنی، چرا نتونی؟
                  برای بازگردوندن به DAC نیاز داری و با همین سرعت دوباره سیگنال رو بازسازی می کنی.
                  25 مگا مضرب صحیحی از 48 کیلو نیست، اگه بخوام اطلاعات را از ورودی بخونم نمیتونم یه کانتر بزارم بگم هر چند سیکل یک بار ورودی را برام بخون، مگر اینکه خود ADC بهم یه سیگنال بده که بفهمم تبدیل تموم شده. میشه لطفاً یه ADC و DAC با مشخصاتی که گفتید معرفی کنید.

                  دیدگاه


                    #10
                    پاسخ : ارسال صوت به FPGA

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

                    دیدگاه


                      #11
                      پاسخ : ارسال صوت به FPGA

                      نوشته اصلی توسط حمید نجفی
                      یک کانتر به همراه یک مقایسه کننده قرار میدی و عدد دقیق تقسیم رو به ورودی دیگر مقایسه کننده میدی. از خروجی برابری مقایسه کننده میدی به ریست کانتر و از همون خروجی به کلاک یک ram میدی که ورودی ram به پایه های خارجی و خروجی adc متصل شده. خروجی مقایسه کننده رو به کلاک یک کانتر دیگه میدی که خروجیش به آدرس ram متصل شده. با هر لبه خروجی مقایسه کننده، هم ثبت انجام میشه هم آدرس عوض میشه. اصولا در این حالت ram باید حساس به لبه بالا و کانتر آدرس حساس به لبه پایین باشه. تو سایت جوان یه گذری کن پیدا میکنی. الان چیزی خاطرم نیست
                      ممنون به خاطر توضیحتون، @};-
                      ولی بازم به نظر من این طوری درست نمیشه، کانتر من باید تا 25000/48=520.8333 را بشماره و عدد مقایسه کننده هم همین باشه، حالا سوال اینجاست که من چطوری یه عدد اعشاری را بشمارم، اگه از عدد 520 هم استفاده کنم، بعد از هر چند سیکل یه داده اشتباه (تکراری) دارم.
                      به سایتی که گفتید سر زدم، از نوع Parallel استفاده کنم یا Serial؟ اگه بخوام از 16 بیتی استفاده کنم هزینه زیاد میشه(حدود 80 هزار تومن برای Serial) ، اشکالی داره از 8 بیتی استفاده کنم، قطعه ای نیست که ADC و DAC را با هم داشته باشه، مثله کدکی که آقای زین العابدینی معرفی کردن؟؟؟

                      دیدگاه


                        #12
                        پاسخ : ارسال صوت به FPGA

                        نوشته اصلی توسط کنت مونت کریستو
                        ممنون به خاطر توضیحتون، @};-
                        ولی بازم به نظر من این طوری درست نمیشه، کانتر من باید تا 25000/48=520.8333 را بشماره و عدد مقایسه کننده هم همین باشه، حالا سوال اینجاست که من چطوری یه عدد اعشاری را بشمارم، اگه از عدد 520 هم استفاده کنم، بعد از هر چند سیکل یه داده اشتباه (تکراری) دارم.
                        به سایتی که گفتید سر زدم، از نوع Parallel استفاده کنم یا Serial؟ اگه بخوام از 16 بیتی استفاده کنم هزینه زیاد میشه(حدود 80 هزار تومن برای Serial) ، اشکالی داره از 8 بیتی استفاده کنم، قطعه ای نیست که ADC و DAC را با هم داشته باشه، مثله کدکی که آقای زین العابدینی معرفی کردن؟؟؟
                        ببین بلاخره این محدودیت ها رو داری با فرکانسی که گفتی. برای تبدیل باید نرخ نمونه برداری مناسبی انتخاب کنی و رزولوشن خوب. در غیر اینصورت کیفیت افت می کنه. دیگه بسته به کارتونه
                        خدا گفت : به جهنم ببریدش، او برگشت و با تعجب به خدا نگاه کرد. خدا گفت : به بهشت ببریدش. فرشتگان پرسیدند: چرا؟! خدا گفت : او هنوز به من امیدوار است...

                        دیدگاه


                          #13
                          پاسخ : ارسال صوت به FPGA

                          برای تبدیل فرکانس داخل FPGA میتونی از DCM ها استفاده کنی . هرچند این کار رو پیشنهاد نمیکنم.
                          شما یک ADC هشت بیتی هم که داشته باشی کفایت میکنه یا 10 بیتی . با استفاده از oversample کیفیت سیگنال دریافتی رو میتونی تا 14 بیت
                          افزایش بدی علاوه بر اینکه مشکل فرکانست هم حل میشه .

                          دیدگاه


                            #14
                            پاسخ : ارسال صوت به FPGA

                            نوشته اصلی توسط SomeOne1230
                            با استفاده از oversample کیفیت سیگنال دریافتی رو میتونی تا 14 بیت
                            افزایش بدی علاوه بر اینکه مشکل فرکانست هم حل میشه .
                            oversample چیه؟ چطور میتونم باهاش کیفیت سیگنال را تغییر بدم؟

                            دیدگاه


                              #15
                              پاسخ : ارسال صوت به FPGA

                              منم تو این زمینه از راهنماییآ‌های دوستان استفاده میآ‌کنم. میشه در مورد کدک هم توضیح بدید؟ دلیل استفاده از اون چیه؟
                              oversampling?
                              :read:
                              اگه مطلب آموزشی تو این زمینه میشناسید معرفی کنید ممنون میشم

                              دیدگاه

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