بسمه تعالی

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

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

 پیاده سازی بلادرنگ کدک صحبت استاندارد 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

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

***  *** ***

دسته‌ها: مهندسی برق