پیاده سازی بلادرنگ کدک صحبت استاندارد G.728 بر روی پردازنده TMS320C5402
فهرست
مقدمه4
فصل 1 : بررسی و مدل سازی سیگنال صحبت
1-1- معرفی سیگنال صحبت 6
1-2- مدل سازی پیشگویی خطی10
1-2-1- پنجره کردن سیگنال صحبت 11
1-2-2- پیش تاکید سیگنال صحبت 13
1-2-3- تخمین پارامترهای LPC
فصل 2 : روش ها و استانداردهای کدینگ صحبت
2-1- مقدمه15
2-2- روش های کدینگ 19
2-2-1- کدرهای شکل موج 21
2-2-2- کدرهای صوتی22
2-2-3- کدرهای مختلط24
الف- کدرهای مختلط حوزه فرکانس27
ب- کدرهای مختلط حوزه زمان 29
فصل 3 : کدر کم تاخیر LD-CELP
3-1- مقدمه34
3-2- بررسی کدرکم تاخیر LD-CELP
3-2-1- LPCمعکوس مرتبه بالا 39
3-2-2- فیلتر وزنی شنیداری 42
3-2-3- ساختار کتاب کد 42
3-2-3-1- جستجوی کتاب کد 43
3-2-4- شبه دیکدر 45
3-2-5- پست فیلتر 46
فصل 4 : شبیه سازی ممیزثابت الگوریتم به زبان C
4-1- مقدمه49
4-2- ویژگی های برنامه نویسی ممیزثابت50
4-3- ساده سازی محاسبات الگوریتم53
4-3-1- تطبیق دهنده بهره 54
4-3-2- محاسبه لگاریتم معکوس58
4-4- روندنمای برنامه 59
4-4-1- اینکدر 63
4-4-2- دیکدر 69
فصل 5 : پیاده سازی الگوریتم برروی DSP
5-1- مقدمه74
5-2- مروری بر پیاده سازی بلادرنگ 75
5-3- چیپ های DSP
5-3-1- DSPهای ممیزثابت77
5-3-2- مروری بر DSPهای خانواده TMS320
5-3-2-1- معرفی سری TMS320C54x
5-4- توسعه برنامه بلادرنگ 81
5-5- اجرای برنامه روی برد توسعه گر C5402 DSK
5-5-1- بکارگیری ابزارهای توسعه نرم افزار84
5-5-2- استفاده از نرم افزارCCS
5-5-3- نتایج پیاده سازی 94
5-6-نتیجه گیری و پیشنهاد97
- ضمائم
ضمیمه (الف): دیسکت برنامه های شبیه سازی ممیز ثابت به زبان C و پیاده سازی کدک به زبان اسمبلی
ضمیمه (ب) : مقایسه برنامه نویسی Cو اسمبلی98
- مراجع 103
چکیده
کدک صحبت استاندارد G.728، یک کدک کم تاخیر است که صحبت با کیفیت عالی را در نرخ بیت 16 kbpsارائه می دهد و برای شبکه های تلفن ماهواره ای و اینترنت و موبایل که به تاخیر زیاد حساس هستند ، مناسب است. در این رساله به پیاده سازی بلادرنگ اینکدر و دیکدر G.728بصورت دوطرفه کامل ( Full Duplex )بر روی پردازنده TMS320C5402می پردازیم .
روشی ترکیبی برای برنامه نویسی TMSارائه می شود که در آن زمان وپیچیدگی برنامه نویسی نسبت به برنامه نویسی دستی به 30% کاهش می یابد . در این روش پس از برنامه نویسی و شبیه سازی ممیزثابت الگوریتم کدک به زبان C، با استفاده از نرم افزار ( Code Composer Studio ) CCS، برنامه به زبان اسمبلی ترجمه شده و بهینه سازی دستی در کل کد اسمبلی صورت می گیرد . سپس بعضی از توابع مهم برنامه از نظر MIPS، بصورت دستی به زبان اسمبلی بازنویسی می شوند تا برنامه بصورت بلادرنگ قابل اجرا گردد . در پایان نتایج این پیاده سازی ارائه می شود .
کلمات کلیدی
کدینگ و فشرده سازی صحبت ، پیاده سازی بلادرنگ ، DSP، TMS320C5402 برد DSK
مقدمه
امروزه در عصر ارتباطات و گسترش روزافزون استفاده از شبکه های تلفن ،موبایل و اینترنت در جهان ومحدودیت پهنای باند در شبکه های مخابراتی ، کدینگ و فشرده سازی صحبت امری اجتناب ناپذیر است . در چند دهه اخیر روشهای کدینگ مختلفی پدیدآمده اند ولی بهترین و پرکاربردترین آنها کدک های آنالیزباسنتز هستند که توسط Atal & Remedeدر سال 1982 معرفی شدند [2]. اخیرا مناسبترین الگوریتم برای کدینگ صحبت با کیفیت خوب در نرخ بیت های پائین و زیر 16 kbps، روش پیشگویی خطی باتحریک کد (CELP)می باشد که در سال 1985 توسط Schroeder & Atalمعرفی شد [8]و تا کنون چندین استاندارد مهم کدینگ صحبت بر اساس CELPتعریف شده اند .
در سال 1988 CCITTبرنامه ای برای استانداردسازی یک کدک 16 kbpsبا تاخیراندک و کیفیت بالا در برابر خطاهای کانال آغاز نمود و برای آن کاربردهای زیادی همچون شبکه PSTN،ISDN،تلفن تصویری و غیره در نظر گرفت . این کدک در سال 1992 توسط Chen et al. تحت عنوان LD-CELPمعرفی شد[6]و بصورت استاندارد G.728در آمد[9]و در سال 1994 مشخصات ممیز ثابت این کدک توسط ITUارائه شد[10]. با توجه به کیفیت بالای این کدک که در آن صحبت سنتزشده از صحبت اولیه تقریبا غیرقابل تشخیص است و کاربردهای آن در شبکه های تلفن و اینترنت و ماهواره ای در این گزارش به پیاده سازی این کدک می پردازیم .
در فصل اول به معرفی وآنالیز سیگنال صحبت پرداخته می شود و در فصل دوم روش ها و استانداردهای کدینگ بیان می شوند . در فصل سوم کدک LD-CELPرا بیشتر بررسی می کنیم و در فصل چهارم شبیه سازی ممیز ثابت الگوریتم به زبان Cرا بیان مینمائیم. ودر پایان در فصل 5 به نحوه پیاده سازی بلادرنگ کدکG.728بر روی پردازنده TMS320C5402می پردازیم.
فصل 1
بررسی و مدل سازی سیگنال صحبت
1-1–معرفی سیگنال صحبت
صحبت در اثر دمیدن هوا از ریه ها به سمت حنجره و فضای دهان تولید میشود. در طول این مسیر در انتهای حنجره، تارهای صوتی[1] قرار دارند. فضای دهان را از بعد از تارهای صوتی ، لوله صوتی[2] مینا مند که در یک مرد متوسط حدود cm17 طول دارد . در تولید برخی اصوات تارهای صوتی کاملاً باز هستند و مانعی بر سر راه عبور هوا ایجاد نمیکنند که این اصوات را اصطلاحاً اصوات بی واک [3] مینامند. در دسته دیگر اصوات ، تارهای صوتی مانع خروج طبیعی هوا از حنجره میگردند که این باعث به ارتعاش درآمدن تارها شده و هوا به طور غیر یکنواخت و تقریباً پالس شکل وارد فضای دهان میشود. این دسته از اصوات را اصطلاحاً باواک[4] میگویند.