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

بسمه تعالی

دانشگاه صنعتی خواجه نصیرالدین طوسی

پایان نامه کارشناسی ارشد مخابرات سیستم

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

بر روی پردازنده TMS320C5402

 

 

Abstract

 

G.728 speech codec is a low delay ITU standard codec which could provide toll quality speech in 16kb/s. It is specially designed for delay sensitive applications like satellite telephony, Internet, and mobile networks.

In this thesis real time implementation of full duplex G.728 encoder and decoder on TMS320C5402 is presented. Using a combinatorial technique for TMS programming, the programming time and complexity have been decreased to 30% comparing with traditional assembly programming. First a fixed point simulation of the codec algorithm has been programmed in C and it is compiled to assembly using CCS (Code Composer Studio) and manually optimized. Then some of the critical functions regarding MIPS, have been programmed in assembly for achieving real time implementation. Finally, implementation results have been presented.

 

 

Keywords: Speech Coding & Compression, Real Time Implementation, DSP,

TMS320C5402, DSK Board

 

 

چکیده   

کدک صحبت استاندارد 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 و اسمبلی                         ۹۸

مراجع                                        ۱۰۳

 

 

 

 

 

 

 

 

 – مقدمه

امروزه در عصر ارتباطات و گسترش روزافزون استفاده از شبکه های تلفن ،موبایل و اینترنت در جهان ومحدودیت پهنای باند در شبکه های مخابراتی ، کدینگ و فشرده سازی صحبت امری اجتناب ناپذیر است . در چند دهه اخیر روشهای کدینگ مختلفی پدیدآمده اند ولی بهترین و پرکاربردترین آنها کدک های آنالیزباسنتز هستند که توسط Atal & Remedeدر سال ۱۹۸۲ معرفی شدند [۲] . اخیرا مناسبترین الگوریتم برای کدینگ صحبت با کیفیت خوب در نرخ بیت های پائین و زیر ۱۶ kbps ، روش پیشگویی خطی باتحریک کد (CELP) می باشد که در سال ۱۹۸۵ توسط Schroeder & Atal معرفی شد [۸] و تا کنون چندین استاندارد مهم کدینگ صحبت بر اساس CELP تعریف شده اند .

در سال ۱۹۸۸ CCITT برنامه ای برای استانداردسازی یک کدک ۱۶ kbps با تاخیراندک و      کیفیت بالا در برابر خطاهای کانال آغاز نمود و برای آن کاربردهای زیادی همچون شبکه PSTN ،ISDN ،تلفن تصویری و غیره در نظر گرفت . این کدک در سال ۱۹۹۲ توسط Chen et al.    تحت عنوان LD-CELP معرفی شد[۶] و بصورت استاندارد G.728 در آمد[۹] و در سال ۱۹۹۴ مشخصات ممیز ثابت این کدک توسط ITU ارائه شد[۱۰] . با توجه به کیفیت بالای این کدک که در آن صحبت سنتزشده از صحبت اولیه تقریبا غیرقابل تشخیص است  و کاربردهای آن در شبکه های تلفن و اینترنت و ماهواره ای در این گزارش به پیاده سازی این کدک می پردازیم .

در فصل اول به معرفی وآنالیز سیگنال صحبت پرداخته می شود و در فصل دوم روش ها و استانداردهای کدینگ بیان می شوند . در فصل سوم کدک LD-CELP را بیشتر بررسی می کنیم و در فصل چهارم شبیه سازی ممیز ثابت الگوریتم به زبان C را بیان می نمائیم. ودر پایان در فصل ۵ به نحوه پیاده سازی بلادرنگ کدکG.728 بر روی پردازنده TMS320C5402 می پردازیم.

 

 

 

فصل ۱

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

 

 

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

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

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