دانلود متن کامل پایان نامه مقطع کارشناسی ارشد رشته مخابرات سیستم

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

بسمه تعالی

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

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

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

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

 

استاد راهنما : دکتر محمد اسماعیل کلانتری

شهریور 1381

برای رعایت حریم خصوصی نام نگارنده پایان نامه درج نمی شود

(در فایل دانلودی نام نویسنده موجود است)

تکه هایی از متن پایان نامه به عنوان نمونه :

(ممکن است هنگام انتقال از فایل اصلی به داخل سایت بعضی متون به هم بریزد یا بعضی نمادها و اشکال درج نشود ولی در فایل دانلودی همه چیز مرتب و کامل است)

چکیده   

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

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

 

کلمات کلیدی

 

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

مقدمه                                         

فصل 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 د) دیده می‏شود ولی همبستگی زمان كوتاه به خاطر لوله صوتی در آنها هنوز وجود دارد.

[1]  Vocal Cords

[2] Vocal Tracts

[3] Unvoiced

[4] Voiced

[5] Formant

[6]  Update

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

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

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

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

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

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

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

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

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

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

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

شكل (1-4): نمایش چند پنجره معروف

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

شكل (1-5) یك توزیع طیفی نمونه سیگنال صحبت را برای اصوات باواك نشان می‏دهد. با توجه به افت طیف در فركانس های بالا وضعیف بودن فركانس های بالا در طیف صحبت ، تحلیل  LPC در فركانس های بالا عملكرد ضعیفی خواهد داشت. برای تقویت مؤلفه های فركانس بالا صحبت ، آن را از یك فیلتر بالا گذر با تابع انتقال  كه فیلتر پیش تاكید نامیده می‏شود، عبور می‏دهیم. مقدار نوعی ضریب a معمولاً  در نظر گرفته می‏شود.

اگر S(n) سیگنال ورودی باشد، سیگنال پیش تأكید شده  خواهد شد:

شكل (1-5) :  پوشش طیفی نمونه اصوات باواك

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

در اینجا لازم است كه پارامترهای مدل LPC یعنی ضرایب ai فیلتر و بهره G تعیین گردند. اگر

تخمین S(n) از روی نمونه های قبلی باشد، ضرایب ai را چنان تعیین می‏كنیم كه خطای

روی همه نمونه های موجود مینیمم گردد. این مینیمم سازی ما را به معادلات خطی زیر می‏رساند:

و یا در فرم ماتریسی

R.a = –r

در معادلات فوق  تعریف زیر را داریم:

كهr(i) ،  iامین اتوكورلیشن سیگنال می‏باشد و فرض شده كه S(n)  به طول N پنجره شده است. این فرمولاسیون به روش اتوكورلیشن معروف است و ماتریس R در آن یك ماتریس Toeplitz می‏باشد.  چنین ماتریسی غیرمنفرد و همیشه معكوس پذیر است و در نتیجه  همواره می‏‏توانیم جوابی به صورت a = -R-1r داشته باشیم.

روش دیگری نیز بنام روش كواریانس وجود دارد. در این روش سیگنال صحبت S(n) پنجره نمی‏شود و به جای اتوكورلیش های r(i) ، كواریانس های r(i,j) برای عنصر (i,j) ماتریس R محاسبه می‏گردد:

در اینجا تضمین نمی‏شود كه ماتریس R معكوس پذیر باشد و ممكن است كه سیستم معادلات فوق جواب نداشته باشد. در این حالت فیلتر LPC ناپایدار می‏شود. از این رو در اینجا بیش از این به روش كواریانس نمی‏پردازیم.

راه سوم روش Burg است كه امتیاز عدم استفاده از پنجره را در روش كواریانس با امتیاز روش اتوكورلیشن یعنی تضمین پایداری فیلتر ، تركیب می‏كند. این روش از  ساختار مشبك[3]    فیلتر تمام قطب  استفاده می‏كند[1] .

جواب دستگاه معادلات فوق را می‏توان با یكی از روش های كلاسیك آنالیز عددی مثل حذف گوسی بدست آورد. اما چون R یك ماتریس Toeplitz است می‏توان از روشی مؤثر بنام روش تكرار Durbin سود جست که بصورت زیر ضرائب فیلتر را تولید می کند :

که در آن  ، ضریب   j ام فیلتردر تكرار  i ام و E(i) خطای پیشگویی مرتبه i است  و بدین ترتیب ضرایب فیلتر بصورت زیر  بدست خواهند آمد:

روش تكرار Durbin پارامترهای  را كه ضرایب انعكاس نامیده می‏شوند و E(p) را بدست می‏دهد كه مربع بهره پیشگویی G و مورد نیاز فیلتر سنتز می‏باشد:

و چون داریم :

می‏توانیم به جای E(p) ،r(0) را كد كرده و ارسال داریم و از آنجا به بهره G برسیم و این ترجیح داده می‏شود زیرا حساسیت r(0) به نویز كوانتیزاسیون كمتر از G است.

ضرایب انعكاس Ki یا PARCOR (برای  PARtial CORrelation) نقش مهمی در تحلیل LPC دارند و دارای خواص زیر هستند:

  • ضرایب انعكاس Ki معادل با ضرایب فیلتر ai هستند . به عبارت دیگر می‏توان K را به a و برعكس تبدیل کرد :

 

ـ برای یك فیلتر پایدار یعنی یك فیلترLPC   كه همه قطب های آن داخل دایره واحد باشد داریم:

كه این شرط بسیار مهمی است چرا كه با اطمینان از اینكه Ki  بین –1 و +1 است حتی            بعد از كوانیتزاسیون ، پایداری فیلتر تضمین خواهد شد. به علاوه محدوده (-1 , +1) كار كوانیتزاسیون را ساده‏تر می‏كند. ولی ai ها دارای چنین ویژگی نیستند كه پایداری فیلتر را تضمین نمایند و كوانیتزاسیون ai ها می‏تواند موجب ناپایداری ‏شود.

[1]  Linear Predictive Coding

[2]  Stationary

[3]  Lattice

تعداد صفحه :101

قیمت :14700 تومان

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

و در ضمن فایل خریداری شده به ایمیل شما ارسال می شود.

پشتیبانی سایت :        *       serderehi@gmail.com

در صورتی که مشکلی با پرداخت آنلاین دارید می توانید مبلغ مورد نظر برای هر فایل را کارت به کارت کرده و فایل درخواستی و اطلاعات واریز را به ایمیل ما ارسال کنید تا فایل را از طریق ایمیل دریافت کنید.