فایل شاپ

فروش مقاله،تحقیقات و پروژه های دانشجویی،دانلود مقالات ترجمه شده،پاورپوینت

فایل شاپ

فروش مقاله،تحقیقات و پروژه های دانشجویی،دانلود مقالات ترجمه شده،پاورپوینت

کارشناسی ارشد مخابرات سیستم ( پیاده سازی بلادرنگ کدک صحبت )

کدک صحبت استاندارد G728 ، یک کدک کم تاخیر است که صحبت با کیفیت عالی را در نرخ بیت 16 kbps ارائه می دهد و برای شبکه های تلفن ماهواره ای و اینترنت و موبایل که به تاخیر زیاد حساس هستند ، مناسب است در این رساله به پیاده سازی بلادرنگ اینکدر و دیکدر G728 بصورت دوطرفه کامل ( Full Duplex ) بر روی پردازنده TMS320C5402 می پردازیم
دسته بندی الکترونیک و مخابرات
فرمت فایل doc
حجم فایل 917 کیلو بایت
تعداد صفحات فایل 105
کارشناسی ارشد مخابرات سیستم ( پیاده سازی بلادرنگ کدک صحبت )

فروشنده فایل

کد کاربری 8044

چکیده

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

روشی ترکیبی برای برنامه نویسی TMS ارائه می شود که در آن زمان وپیچیدگی برنامه نویسی نسبت به برنامه نویسی دستی به 30% کاهش می یابد . در این روش پس از برنامه نویسی و شبیه سازی ممیزثابت الگوریتم کدک به زبان C ، با استفاده از نرم افزار ( Code Composer Studio ) CCS ، برنامه به زبان اسمبلی ترجمه شده و بهینه سازی دستی در کل کد اسمبلی صورت می گیرد . سپس بعضی از توابع مهم برنامه از نظر MIPS ، بصورت دستی به زبان اسمبلی بازنویسی می شوند تا برنامه بصورت بلادرنگ قابل اجرا گردد . در پایان نتایج این پیاده سازی ارائه می شود .

کلمات کلیدی

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

فهرست

- مقدمه 4

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

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

1-2- مدل سازی پیشگویی خطی 10

1-2-1- پنجره کردن سیگنال صحبت 11

1-2-2- پیش تاکید سیگنال صحبت 13

1-2-3- تخمین پارامترهای LPC 14

فصل 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 36

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 76

5-3-1- DSP های ممیزثابت 77

5-3-2- مروری بر DSP های خانواده TMS320 78

5-3-2-1- معرفی سری TMS320C54x 79

5-4- توسعه برنامه بلادرنگ 81

5-5- اجرای برنامه روی برد توسعه گر C5402 DSK 82

5-5-1- بکارگیری ابزارهای توسعه نرم افزار 84

5-5-2- استفاده از نرم افزارCCS 86

5-5-3- نتایج پیاده سازی 94

5-6- نتیجه گیری و پیشنهاد 97

- ضمائم

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

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

- مراجع 103

- مقدمه

امروزه در عصر ارتباطات و گسترش روزافزون استفاده از شبکه های تلفن ،موبایل و اینترنت در جهان ومحدودیت پهنای باند در شبکه های مخابراتی ، کدینگ و فشرده سازی صحبت امری اجتناب ناپذیر است . در چند دهه اخیر روشهای کدینگ مختلفی پدیدآمده اند ولی بهترین و پرکاربردترین آنها کدک های آنالیزباسنتز هستند که توسط 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] می‏نا مند که در یک مرد متوسط حدود cm 17 طول دارد . در تولید برخی اصوات تارهای صوتی کاملاً باز هستند و مانعی بر سر راه عبور هوا ایجاد نمی‏کنند که این اصوات را اصطلاحاً اصوات بی واک [3] می‏نامند. در دسته دیگر اصوات ، تارهای صوتی مانع خروج طبیعی هوا از حنجره می‏گردند که این باعث به ارتعاش درآمدن تارها شده و هوا به طور غیر یکنواخت و تقریباً پالس شکل وارد فضای دهان می‏شود. این دسته از اصوات را اصطلاحاً باواک[4] می‏گویند.

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

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

در شکل (1-1 الف) یک قطعه صحبت باواک که با فرکانس 8KHz نمونه برداری شده است دیده می‏شود. اصوات باواک دارای تناوب زمان بلند به خاطر پریود Pitch هستند که نوعاً بین 2ms تا 20ms می‏باشد. در اینجا پریود Pitch در حدود 8ms یا 64 نمونه است. چگالی طیف توان این قطعه از صحبت در شکل (1-1 ب) دیده می‏شود[3].

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

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

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

نسبتاً منظم فرمنت ها مربوط می‏شوند.

ـ وابستگی های زمان- بلند : که عمدتاً از طبیعت نیمه متناوب اصوات با واک و تغییرات آرام پریود Pitch ناشی می‏شوند.

ـ‌تابع چگالی احتمال صحبت : علیرغم پیچیدگی آماری صحبت می‏توان آن را با توابع چگالی احتمال شناخته شده تقریب زد. شکل لوله صوتی و مد تحریک آن به صورت نسبتاً آرام تغییر می‏کند و بنابراین صحبت را می‏توان به صورت شبه ایستان در دوره های کوتاه زمانی (حدود 20ms) در نظر گرفت و با یک فرآیند تصادفی ارگادیک در یک قطعه زمانی کوچک مدل نمود و طیف مشخصی برای آن در این قطعه زمانی بدست آورد.

علاوه بر افزونگی های فوق عامل مهم دیگری که کاهش نرخ داده سیگنال صحبت را ممکن می سازد، طبیعت غیر حساس گوش انسان نسبت به بسیاری از ویژگیهای این سیگنال می‏باشد.

1-2- مدل سازی پیشگویی خطی



روش کدینگ پیشگویی خطی (LPC[8]) مبتنی بر مدل تولید صحبت در کد کننده های صوتی می‏باشد که در اینجا در شکل (1-2) نشان داده شده است. برای استفاده از مدل لازم است که معلوم شود سیگنال با واک است یا بی‏واک و اگر با واک است پریود Pitch مجاسبه گردد. تفاوت اصلی بین LPC و سایر کدکننده های صوتی در مدل کردن لوله صوتی است. در تحلیل LPC ، لوله صوتی به صورت یک فیلتر دیجیتال تمام قطب در نظر گرفته می‏شود.[4,1].

شکل (1-2): مدل تولید صحبت در LPC

با شرکت دادن بهره G در این فیلتر داریم:

که در آن p مرتبه فیلتر است. اگر S(n) خروجی فیلتر مدل صحبت و e(n) تحریک ورودی باشد، معادله فوق را در حوزه زمان به صورت زیر می‏توان نوشت:

به عبارت دیگر هر نمونه صحبت به صورت ترکیب خطی از نمونه های قبلی قابل بیان است و این دلیل نام گذاری کدینگ پیشگویی خطی (LPC) می‏باشد.

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

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

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

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

در اینجا N ، طول پنجره دلخواه به نمونه و عموماً در محدوده 160-320 انتخاب می‏گردد که 240 یک مقدار نوعی می‏باشد . در شکل (1-4) چند پنجره معروف نشان داده شده است.

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