فروشگاه

توضیحات

پیاده سازی بلادرنگ کدک صحبت استاندارد G.728  بر روی پردازنده TMS320C5402

چکیده   

کدک صحبت استاندارد G.728 ، یک کدک کم تاخیر است که صحبت با کیفیت

عالی را در نرخ بیت ۱۶ kbps ارائه می دهد و برای شبکه های تلفن ماهواره ای و اینترنت و موبایل که به تاخیر زیاد حساس هستند ، مناسب است. در این رساله به پیاده سازی بلادرنگ اینکدر و دیکدر  G.728 بصورت دوطرفه کامل ( Full Duplex ) بر روی پردازنده TMS320C5402 می پردازیم .

روشی ترکیبی برای برنامه نویسی TMS ارائه می شود که در آن  زمان وپیچیدگی برنامه نویسی نسبت به برنامه نویسی دستی به ۳۰%  کاهش می یابد . در این روش پس از برنامه نویسی   و  شبیه سازی ممیزثابت

الگوریتم کدک به زبان C ، با استفاده از نرم افزار   ( Code Composer Studio ) CCS ، برنامه به زبان اسمبلی ترجمه شده و بهینه سازی دستی در کل کد اسمبلی صورت می گیرد . سپس بعضی از توابع مهم برنامه

از نظر MIPS ، بصورت دستی به زبان اسمبلی بازنویسی می شوند تا برنامه بصورت بلادرنگ قابل اجرا گردد . در پایان  نتایج این پیاده سازی ارائه می شود .

 

 

کلمات کلیدی

 

کدینگ , فشرده سازی صحبت , پیاده سازی بلادرنگ , DSP, TMS320C5402 , برد DSK

  ۹۷ صفحه فونت ۱۴ فایل ورد منابع دارد

 

پس از پرداخت آنلاین میتوانید فایل کامل این پروژه را دانلود کنید

 

 

 

 

فهرست

مقدمه                                             ۴

فصل ۱ : بررسی و مدل سازی سیگنال صحبت                        

    ۱-۱- معرفی سیگنال صحبت                              ۶

    ۱-۲- مدل سازی پیشگویی خطی                           ۱۰

         ۱-۲-۱- پنجره کردن سیگنال صحبت                   ۱۱

         ۱-۲-۲- پیش تاکید سیگنال صحبت                    ۱۳

         ۱-۲-۳- تخمین پارامترهای LPC                                              ۱۴

فصل ۲ : روش ها و استانداردهای کدینگ صحبت

    ۲-۱- مقدمه                                      ۱۵

    ۲-۲- روش های کدینگ                                  ۱۹

         ۲-۲-۱- کدرهای شکل موج                       ۲۱

         ۲-۲-۲- کدرهای صوتی                              ۲۲       ۲-۲-۳- کدرهای مختلط

         الف- کدرهای مختلط حوزه فرکانس                   ۲۷

         ب- کدرهای مختلط حوزه زمان                       ۲۹

فصل ۳ : کدر کم تاخیر LD-CELP                       

    ۳-۱- مقدمه                                      ۳۴

    ۳-۲- بررسی کدرکم تاخیر LD-CELP                      ۳۶

         ۳-۲-۱- LPC معکوس مرتبه بالا                      ۳۹

         ۳-۲-۲- فیلتر وزنی شنیداری                       ۴۲

         ۳-۲-۳- ساختار کتاب کد                       ۴۲

         ۳-۲-۳-۱- جستجوی کتاب کد                         ۴۳

         ۳-۲-۴- شبه دیکدر                            ۴۵

         ۳-۲-۵- پست فیلتر                            ۴۶

فصل ۴ : شبیه سازی ممیزثابت الگوریتم به زبان C                   

    ۴-۱- مقدمه                                      ۴۹

    ۴-۲- ویژگی های برنامه نویسی ممیزثابت                         ۵۰

    ۴-۳- ساده سازی محاسبات الگوریتم                          ۵۳

         ۴-۳-۱- تطبیق دهنده بهره                         ۵۴

         ۴-۳-۲- محاسبه لگاریتم معکوس                         ۵۸

    ۴-۴- روندنمای برنامه                                ۵۹

         ۴-۴-۱- اینکدر                                   ۶۳

         ۴-۴-۲- دیکدر                                ۶۹

فصل ۵ : پیاده سازی الگوریتم برروی DSP          

    ۵-۱- مقدمه                                      ۷۴

    ۵-۲- مروری بر پیاده سازی بلادرنگ                          ۷۵

    ۵-۳- چیپ های DSP                                ۷۶

         ۵-۳-۱- DSP های ممیزثابت                         ۷۷

         ۵-۳-۲- مروری بر DSP های خانواده TMS320         ۷۸

         ۵-۳-۲-۱- معرفی سری TMS320C54x              ۷۹

    ۵-۴- توسعه برنامه بلادرنگ                            ۸۱

    ۵-۵- اجرای برنامه روی برد توسعه گر C5402 DSK                 ۸۲

         ۵-۵-۱- بکارگیری ابزارهای توسعه نرم افزار                 ۸۴

        ۵-۵-۲- استفاده از نرم افزارCCS                      ۸۶

        ۵-۵-۳- نتایج پیاده سازی                         ۹۴

    ۵-۶- نتیجه گیری و پیشنهاد                          ۹۷

ضمائم

   – ضمیمه (الف) : دیسکت برنامه های شبیه سازی ممیز ثابت به زبان C و

                          پیاده سازی کدک به زبان اسمبلی       – ضمیمه (ب) : مقایسه برنامه نویسی C و اسمبلی                         ۹۸

مراجع                                         ۱۰۳

 

فصل ۱

بررسی و مدل سازی سیگنال صحبت

۱-۱ –معرفی سیگنال صحبت

 صحبت در اثر دمیدن هوا از ریه ها به سمت حنجره و فضای دهان تولید می‏شود. در طول این مسیر در انتهای حنجره، تارهای صوتی[۱] قرار دارند. فضای دهان را از بعد از تارهای صوتی ، لوله صوتی[۲]  می‏نا مند که در یک مرد متوسط حدود cm 17 طول دارد . در تولید برخی اصوات تارهای صوتی کاملاً باز هستند و مانعی بر سر راه عبور هوا ایجاد نمی‏کنند که این اصوات را اصطلاحاً اصوات بی واک [۳]  می‏نامند. در دسته دیگر اصوات ، تارهای صوتی مانع خروج طبیعی هوا از حنجره می‏گردند که این باعث به ارتعاش درآمدن تارها شده و هوا به طور غیر یکنواخت و تقریباً پالس شکل وارد فضای دهان می‏شود. این دسته از اصوات را اصطلاحاً باواک[۴]  می‏گویند.

فرکانس ارتعاش تارهای صوتی در اصوات باواک را فرکانس Pitch و دوره تناوب ارتعاش تارهای صوتی را پریود Pitch می‏نامند. هنگام انتشار امواج هوا در لوله صوتی، طیف فرکانس این امواج توسط لوله صوتی شکل می‏گیرد و بسته به شکل لوله ، پدیده تشدید در فرکانس های خاصی رخ می‏دهد که به این فرکانس های تشدید فرمنت[۵]  می‏گویند.

از آنجا که شکل لوله صوتی برای تولید اصوات مختلف، متفاوت است پس فرمنت ها برای اصوات گوناگون با هم فرق می‏کنند. با توجه به اینکه صحبت یک فرآیند متغییر با زمان است پس پارامترهای تعریف شده فوق اعم از فرمنت ها و پریود Pitch در طول زمان تغییر می‏کنند به علاوه مد صحبت به طور نامنظمی از باواک به بی واک و بالعکس تغییر می‏کند. لوله صوتی ، همبستگی های زمان-کوتاه  ، در حدود ۱ ms ، درون سیگنال صحبت را در بر می‏گیرد. و بخش مهمی از کار کدکننده های صوتی مدل کردن لوله صوتی به صورت یک فیلتر زمان-کوتاه می‏باشد. همان طور که شکل لوله صوتی نسبتاً آهسته تغییر می‏کند، تابع انتقال این فیلتر مدل کننده هم نیاز به تجدید[۶] ، معمولاً در هر ۲۰ms یکبارخواهد داشت.

در شکل (۱-۱ الف) یک قطعه صحبت باواک که با فرکانس ۸KHz نمونه برداری شده است  دیده می‏شود. اصوات باواک دارای تناوب زمان بلند به خاطر پریود Pitch هستند که نوعاً   بین ۲ms تا ۲۰ms می‏باشد. در اینجا پریود Pitch در حدود ۸ms یا ۶۴ نمونه است. چگالی طیف توان این قطعه از صحبت در شکل (۱-۱ ب) دیده می‏شود[۳].

اصوات بی واک نتیجه تحریک نویز مانند لوله صوتی هستند و تناوب زمان- بلند اندکی را در بر دارند ، همانگونه که در شکل های (۱-۱ ج) و (۱-۱ د) دیده می‏شود ولی همبستگی زمان کوتاه به خاطر لوله صوتی در آنها هنوز وجود دارد.

بطورکلی سیگنال صحبت  دارای افزونگی[۷] زیادی است  که ناشی از عوامل ذیل هستند:

ـ وابستگی های زمان-کوتاه  : این وابستگی ها عمدتاً به کندی تغییرات صحبت با زمان و ساختار

 


[۱]  Vocal Cords

[۲] Vocal Tracts

[۳] Unvoiced

[۴] Voiced

[۵] Formant

[۶]  Update

[۷]  Redundancy

 

-۲-۱- پنجره کردن سیگنال صحبت

روش LPC هنگامی دقیق است که به سیگنالهای ایستان[۱] اعمال شود، یعنی به سیگنالهایی که رفتار آنها در زمان تغییر نمی‏کند. هر چند که این موضوع در مورد صحبت صادق نیست، اما برای اینکه بتوانیم روش LPC را بکار ببریم، سیگنال صحبت را به قسمت های کوچکی بنام   “فریم” تقسیم می‏کنیم که این فریم ها شبه ایستان هستند. شکل (۱-۳) مثالی از قسمت بندی سیگنال صحبت را نشان می‏دهد. این قسمت بندی با ضرب کردن سیگنال صحبت  S(n) ، در سیگنال  پنجره W(n) انجام می‏شود.

شکل (۱-۳) : قسمت بندی سیگنال صحبت

معروف ترین انتخاب برای پنجره ، پنجره همینگ (Hamming) به صورت زیر است:

در اینجا N ، طول پنجره دلخواه به نمونه و عموماً در محدوده  ۱۶۰-۳۲۰ انتخاب می‏گردد          که ۲۴۰ یک مقدار نوعی می‏باشد . در شکل (۱-۴) چند پنجره معروف نشان داده شده است.

معمولاً پنجره های متوالی برروی هم همپوشانی دارند و فاصله بین آنها را پریود فریم می‏گویند. مقادیر نوعی برای پریود فریم ۱۰-۳۰ms می‏باشد. این انتخاب به نرخ بیت و کیفیت صحبت دلخواه ما بستگی خواهد داشت. هر چه پریود فریم کوچکتر باشد، کیفیت بهتری خواهیم داشت.

 


[۱]  Stationary

برای مقایسه به نتایج پیاده سازی شرکت DCS بر روی C54X که به حافظه برنامه  ۹ kword و حافظه دیتا ۲٫۱ kword و پردازش ۳۷ MIPS  نیاز دارد[۱۹] ،اشاره می کنیم که البته اختلاف MIPS  آن با پیاده سازی ما ناشی از برنامه نویسی اسمبلی بصورت کاملا دستی می باشد .

۵-۶– نتیجه گیری و پیشنهاد

در این گزارش به پیاده سازی بلادرنگ کدک صحبت کم تاخیر G.728 بر روی پردازنده TMS320C5402 پرداختیم. در این راه پس از بررسی روش های کدینگ صحبت ومطالعه الگوریتم کدینگ LD-CELP ، این الگوریتم را به زبان C و بصورت ممیزثابت شبیه سازی نمودیم .سپس  برد توسعه گر C5402 DSK و نرم افزار ( Code Composer Studio ) CCS  و امکانات آنرا معرفی و نحوه اجرای برنامه بر روی برد را بیان کردیم .با استفاده از نرم افزار   CCS برنامه         کدک به زبان C  را به کد اسمبلی ترجمه  و  بر روی TMS اجرا نموده و دیدیم که کمپایلر C54X با حداکثر قدرت بهینه سازی هم نمی تواند برنامه را بصورت بلادرنگ اجرا نماید . از اینرو توابع مهم برنامه از نظر  MIPS را بصورت دستی به زبان اسمبلی بازنویسی کردیم.  در نتیجه MIPS  بعضی از توابع به نصف و بعضی به یک سوم کاهش یافت و برنامه بصورت بلادرنگ             قابل اجرا گردید.

بعنوان اولین پیشنهاد می توان با اعمال تغییراتی در ساختار کتاب کد ۱۶ kb/s LD-CELP  آنرا به یک کدک با نرخ بیت متغیر تبدیل نمود که جزئیات آن در Annex H توصیه نامه G.728 آورده شده است[۱۸] . چنین کدکی با نرخ بیت متغیر برای شبکه های موبایل و اینترنت مناسب است.

پیشنهاد دیگری که در اینجا مطرح می شود ترکیب این کدک با حذف کننده اکو استاندارد G.165 است . چرا که در سیستم های انتقال صحبت بلوک های فشرده سازی و حذف اکو در کنار هم قرار می گیرند و اگر هردو در یک بلوک پیاده سازی شوند می توان از نظر MIPS و حافظه به نتایج بهتری دست یافت.

بلافاصله بعد از پرداخت موفق میتوانید فایل کامل این پروژه را با سرعت و امنیت دانلود کنید


 

نقد وبررسی

نقد بررسی یافت نشد...

اولین نفر باشید که نقد و بررسی ارسال میکنید... “پیاده سازی بلادرنگ کدک صحبت استاندارد G.728 بر روی پردازنده TMS320C5402”

پیاده سازی بلادرنگ کدک صحبت استاندارد G.728 بر روی پردازنده TMS320C5402

0 نقد و بررسی
وضعیت کالا : موجود است.
شناسه محصول : 955

قیمت : تومان98,000