وبلاگ

توضیح وبلاگ من

مقطع کارشناسیمخابرات سیستم

 
تاریخ: 28-11-99
نویسنده: فاطمه کرمانی


امروزه در عصر ارتباطات و گسترش روزافزون استفاده از شبكه های تلفن ،موبایل و اینترنت در جهان ومحدودیت پهنای باند در شبكه های مخابراتی ، كدینگ و فشرده سازی صحبت امری اجتناب ناپذیر است . در چند دهه اخیر روشهای كدینگ مختلفی پدیدآمده اند ولی بهترین و پركاربردترین آنها كدك های آنالیزباسنتز هستند كه توسط 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.= –r
در معادلات فوق  تعریف زیر را داریم:
كهr(i) ،  iامین اتوكورلیشن سیگنال می‏باشد و فرض شده كه S(n)  به طول N پنجره شده است. این فرمولاسیون به روش اتوكورلیشن معروف است و ماتریس R در آن یك ماتریس Toeplitz می‏باشد.  چنین ماتریسی غیرمنفرد و همیشه معكوس پذیر است و در نتیجه  همواره می‏‏توانیم جوابی به صورت = -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


فرم در حال بارگذاری ...

« باز شناخت نقش ادراک ذهنی در تعریف ساختار شهرکارشناسیبوم شناسی آبزیان شیلاتی »
 
مداحی های محرم