بسمه تعالي
دانشگاه صنعتي خواجه نصيرالدين طوسي
پايان نامه کارشناسي ارشد مخابرات سيستم
پياده سازي بلادرنگ کدک صحبت استاندارد G.728
بر روي پردازنده TMS320C5402
استاد راهنما : دکتر محمد اسماعيل کلانتري
نگارش : اصغر پورحسين
شهريور 1381

تقديم به
پدر و مادر عزيز و همسر مهربانم
به پاس محبت هاي بيدرغشان
از راهنمائي ها و الطاف استاد عزيزم جناب آقاي دکتر کلانتري و از ياري و مشاوره جناب آقاي مهندس موسوي نژاد و همچنين از مسئولان مرکز تحقيقات مخابرات ايران صميمانه سپاسگزارم .
K.N.T. University of Technology
Real Time Implementation of G.728
Speech Codec using
TMS320C5402
By: Asghar Pourhosein
Advisor: Dr. M.E. Kalantari
A Thesis submitted to faculty of Electrical Engineering in partial fulfillment
Of the requirements of the degree of M.Sc.
Summer 2002
Abstract
G.728 speech codec is a low delay ITU standard codec which could provide toll quality speech in 16kb/s. It is specially designed for delay sensitive applications like satellite telephony, Internet, and mobile networks.
In this thesis real time implementation of full duplex G.728 encoder and decoder on TMS320C5402 is presented. Using a combinatorial technique for TMS programming, the programming time and complexity have been decreased to 30% comparing with traditional assembly programming. First a fixed point simulation of the codec algorithm has been programmed in C and it is compiled to assembly using CCS (Code Composer Studio) and manually optimized. Then some of the critical functions regarding MIPS, have been programmed in assembly for achieving real time implementation. Finally, implementation results have been presented.
Keywords: Speech Coding & Compression, Real Time Implementation, DSP,
TMS320C5402, DSK Board
چکيده
کدک صحبت استاندارد 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- تخمين پارامترهاي LPC14
فصل 2 : روش ها و استانداردهاي کدينگ صحبت
2-1- مقدمه15
2-2- روش هاي کدينگ19
2-2-1- کدرهاي شکل موج21
2-2-2- کدرهاي صوتي222-2-3- کدرهاي مختلط24
الف- کدرهاي مختلط حوزه فرکانس27
ب- کدرهاي مختلط حوزه زمان29
فصل 3 : کدر کم تاخير LD-CELP
3-1- مقدمه34
3-2- بررسي کدرکم تاخير LD-CELP36
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- چيپ هاي DSP76
5-3-1- DSP هاي مميزثابت77
5-3-2- مروري بر DSP هاي خانواده TMS32078
5-3-2-1- معرفي سري TMS320C54x79
5-4- توسعه برنامه بلادرنگ81
5-5- اجراي برنامه روي برد توسعه گر C5402 DSK82
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 زيادي است كه ناشي از عوامل ذيل هستند:
ـ وابستگي هاي زمان-كوتاه : اين وابستگي ها عمدتاً به كندي تغييرات صحبت با زمان و ساختار
( الف) (ب)
(ج) (د)
شكل (1-1) :مقايسه اصوات باواك و بي واك. (الف)و(ب) : باواك ، (ج)و(د) : بي واك
نسبتاً منظم فرمنت ها مربوط مي‏شوند.
ـ وابستگي هاي زمان- بلند : كه عمدتاً از طبيعت نيمه متناوب اصوات با واك و تغييرات آرام پريود Pitch ناشي مي‏شوند.
ـ‌تابع چگالي احتمال صحبت : عليرغم پيچيدگي آماري صحبت مي‏توان آن را با توابع چگالي احتمال شناخته شده تقريب زد. شكل لوله صوتي و مد تحريك آن به صورت نسبتاً آرام تغيير مي‏كند و بنابراين صحبت را مي‏توان به صورت شبه ايستان در دوره هاي كوتاه زماني (حدود 20ms) در نظر گرفت و با يك فرآيند تصادفي ارگاديك در يك قطعه زماني كوچك مدل نمود و طيف مشخصي براي آن در اين قطعه زماني بدست آورد.
علاوه بر افزونگي هاي فوق عامل مهم ديگري كه كاهش نرخ داده سيگنال صحبت را ممكن مي سازد، طبيعت غير حساس گوش انسان نسبت به بسياري از ويژگيهاي اين سيگنال مي‏باشد.
1-2- مدل سازي پيشگويي خطي
روش كدينگ پيشگويي خطي (LPC8) مبتني بر مدل توليد صحبت در كد كننده هاي صوتي مي‏باشد كه در اينجا در شكل (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 مي‏باشد. اين انتخاب به نرخ بيت و كيفيت صحبت دلخواه ما بستگي خواهد داشت. هر چه پريود فريم كوچكتر باشد، كيفيت بهتري خواهيم داشت.

شكل (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 است كه امتياز عدم استفاده از پنجره را در روش كواريانس با امتياز روش اتوكورليشن يعني تضمين پايداري فيلتر ، تركيب مي‏كند. اين روش از ساختار مشبك10 فيلتر تمام قطب استفاده مي‏كند[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 دارند و داراي خواص زير هستند:
1- ضرايب انعكاس Ki معادل با ضرايب فيلتر ai هستند . به عبارت ديگر مي‏توان K را به a و برعكس تبديل کرد :
K به a :

a به K :

2ـ براي يك فيلتر پايدار يعني يك فيلترLPC كه همه قطب هاي آن داخل دايره واحد باشد داريم:
كه اين شرط بسيار مهمي است چرا كه با اطمينان از اينكه Ki بين -1 و +1 است حتي بعد از كوانيتزاسيون ، پايداري فيلتر تضمين خواهد شد. به علاوه محدوده (-1 , +1) كار كوانيتزاسيون را ساده‏تر مي‏كند. ولي ai ها داراي چنين ويژگي نيستند كه پايداري فيلتر را تضمين نمايند و كوانيتزاسيون ai ها مي‏تواند موجب ناپايداري ‏شود.
فصل2
روش ها و استاندارهاي كدينگ صحبت

2-1- مقدمه
كدينگ ديجيتال صحبت موضوع تحقيقات بيش از سه دهه اخير بوده و روش هاي زيادي براي كدينگ صحبت پديد آمده است .كيفيت صحبت و نرخ بيت دو عامل اساسي هستند كه بطور مستقيم با هم درگير مي باشند و هر چه نرخ بيت پايين تر بيايد ، از كيفيت صحبت كاسته مي شود. براي سيستم هايي كه به شبكه تلفن متصل مي شوند ، صحبت كد شده بايد داراي كيفيت خوب باشد تا با استانداردهاي ITU11 مطابقت داشته باشد اما براي سيستم هاي محدود مانند شبكه هاي تجاري خصوصي و سيستم هاي نظامي ، ممكن است عامل نرخ بيت مهمتر از كيفيت بالاي صحبت باشد . از ويژگيهاي سيستم هاي كدينگ صحبت ، تأخير كدينگ مي باشد كه مقدار آن به كيفيت مورد نياز سيستم ارتباط نزديك دارد .تأخير كدينگ شامل تاخير الگوريتمي (بافر كردن صحبت براي آناليز)، تاخير محاسباتي (زمان لازم براي پردازش و ذخيره كردن نمونه هاي صحبت) و تاخير مربوط به ارسال و انتقال مي باشد . تاخير اندك در سيستم هاي مخابراتي باعث كاهش اثراكو در آن سيستم مي شود. از ويژگيهاي ديگر سيستم ها توانايي آنها براي ارسال داده در باند صوتي است . چرا كه مشخصه هاي آماري و طيف فركانسي داده باند صوتي كاملا با سيگنال صحبت تفاوت دارد .
2-2- روشهاي كدينگ
روشهاي كدينگ صحبت را مي توان به چند دسته اصلي كه در شكل (2-1) نشان داده شده است تقسيم بندي نمود. از اين ميان سه دسته اصلي كه با خط پر نشان داده شده اند موضوع تحقيقاتي بيشتري هستند . اين روشها سيگنال صحبت را آناليز كرده افزونگي هاي آنرا حذف نموده و بخش هاي غير زائد صحبت را به روشي كد مي كنند كه از نظر شنيداري قابل قبول باشد.

شكل (2-1) : دسته بندي روشهاي كدينگ
كدرهاي شكل موج12 نوعا نرخ بيت بالايي دارند و صحبت بازسازي شده را با كيفيت خيلي خوب ارائه مي دهند. كدرهاي صوتي13 در نرخ بيت هاي خيلي پايين كار مي كنند و صحبت را از طريق سنتز بازسازي مي كنند . كدرهاي مختلط ترکييبي از تكنيك هاي صوتي و شكل موج را بكار مي گيرند و صحبت با كيفيت خوب را در نرخ بيت هاي مياني ارائه مي دهند.
در شكل (2-2) كيفيت صحبت بر حسب نرخ بيت براي سه دسته اصلي كدينگ يعني كدينگ شكل موج ، كدينگ صوتي و كدينگ مختلط نشان داده شده است . همچنين خلاصه اي از كاربردهاي روشهاي در حال كار و آنهايي كه در حال توسعه مي باشند در جدول (2-1) گردآوري شده است [5] .
شكل (2-2) : مقا يسه كيفيت صحبت روشهاي كدينگ صحبت
Year of OperationType of CoderApplicationRate (kbps)1972PCM‍PSTN (1st Generation)641984ADPCMPSTN (2nd Generation)321992LD-CELPPSTN (3rd Generation)161985APCINMARSAT-B161991RPE-LTPGSM131990MPLPCSkyphone9.61992VSELPNorth American Mobile81993MBE-CELPINMARSAT-M
(land mobile)6.41991CELPU.S. Gov.Fed.Standard4.81991Vector Adaptive Predictive Coding VAPCNASA MSAT-X
(mobile satellite)4.8
جدول (2-1): استاندارد هاي كدينگ صحبت
2-2-1- كدرهاي شكل موج
كدرهاي شكل موج تلاش مي كنند كه شكل كلي سيگنال صحبت را حفظ نمايند. اين كدرها مي توانند هر شكل موجي در باند صوتي را قبول كنند و صرفا مختص صحبت نيستند . از آنجا كه
در اين كدرها كدينگ به صورت نمونه به نمونه انجام مي شود ، عملكرد آنها همانند كوانتيزاسيون بوسيله نسبت سيگنال به نويز (SNR) اندازه گيري مي شود. كدينگ هاي شكل موج براي صحبت، به نرخ بيت هاي بالاي 16kbps محدود مي شود و بخاطر سادگي و پياده سازي آسان ، فراگير شده اند .
اولين استاندارد جهاني كدينگ صحبت استاندارد G.711 64 kbps PCM ، با كمپندينگ u-law براي امريكاي شمالي و A-law براي اروپا، يك كدر شكل موج بوده و هنوز هم كاربرد زيادي در سيستم هاي مخابراتي ديجيتال دارد . از آنجا كه كيفيت صحبتPCM 64 kbps عالي مي باشد ، معمولا مرجعي براي مقايسه ديگر كدرهاي صحبت با نرخ بيت پايين تر قرار مي گيرد . كدر بعدي كه توسطCCITT استاندارد شده PCM تفاضلي تطبيقي (ADPCM 14) 32 kbps مي باشد . كاهش نرخ بيت به نصف در اين كدر، از طريق اعمال پيشگويي و كوانتيز اسيون تطبيقي حاصل شده است.
2-2-2- كدرهاي صوتي (Vocoders)
بر خلاف كدرهاي شكل موج ، كدرهاي صوتي خيلي به صحبت وابسته هستند و در اصولشان هم سعي ندارند كه شكل موج اصلي صحبت را حفظ نمايند . يك كدرصوتي از يك آناليزکننده و يك سنتزکننده تشكيل شده است . آناليزکننده از صحبت اصلي يك دسته پارامتررا كه نمايش دهنده مدل توليد صحبت هستند ، استخراج نموده و آنها را ارسال مي كند و در گيرنده ، صحبت با استفاده از اين پارامترها بازسازي مي شود.
در شكل(2-3) مدل توليد صحبت در كدرهاي صوتي نشان داده شده است . لوله صوتي بصورت يك فيلتر متغير با زمان نمايش داده مي شود. براي قطعات بي واك صحبت،اين فيلتر بايك منبع نويز سفيد تحريك مي گردد و براي قطعات باواك صحبت بوسيله يك قطار پالس باپريود pitch تحريك مي شود.
كدرهاي صوتي معمولا در محدوده 2.4kbps كار مي كنند و كيفيت قابل قبول آنها از صداي طبيعي فاصله دارد . از معروفترين آنها مي توان كدرصوتي استاندارد LPC-10 2.4kbps را نام برد[5].
شكل (2-3) : مدل توليد صحبت دركدرهاي صوتي
سيستم هاي حوزه فركانس هم، مانند كدرهاي صوتي فرمنت درپردازش صحبت بكار مي روند . كدرهاي صوتي فرمنت صحبت را با تحريك يك دسته از فيلترهاي ميانگذر كه پهناي باند و فركانس مركزي آنها با فرمنت هاي صحبت منطبق هستند ، سنتر مي كنند و عملكرد آنها به تعيين مكان دقيق فرمنت ها بستگي دارد.
2-2-3- كدرهاي مختلط
كدرهاي مختلط که از ويژگي هاي هر دوروش كدينگ صوتي و كدينگ شكل موج استفاده مي كنند به دو دسته حوزه فركانس و حوزه زمان تقسيم بندي مي شوند :
الف- كدرهاي مختلط حوزه فركانس
ايده اصلي در كدينگ حوزه فركانس ،تقسيم طيف صحبت به باندهاي فركانسي يا مؤلفه هايي با استفاده از بانك فيلتر و يا يك بلوك تبديل مي باشد .در مرحله ديكدينگ ، اين مؤلفه هاي فركانسي براي بازسازي يك كپي از شكل موج ورودي ، از طريق مجموع بانك فيلترها يا تبديل معكوس ، استفاده مي شوند.
– كدينگ زير باندي و تبديل تطبيقي
دو روش معروف كدينگ صحبت در حوزه فركانس ، كدينگ زير باندي (SBC15) و كدينگ تبديل تطبيقي (ATC 16)هستند . اصول پايه در هر دو روش تقسيم طيف صحبت ورودي به تعدادي باند فركانسي است كه هر يك جداگانه كد مي شوند . درSBC يك بانك فيلتر به صحبت ورودي اعمال مي شود تا آنرا به 4تا16 باند فركانسي تقسيم نمايد. ATC يا بعبارت ديگر روش بلوك تبديل ، تبديلي به اندازه نوعي 128تا 256 نمونه را بكار مي برد تا تفكيك فركانسي بهتري را فراهم آورد .
در كدينگ زير باندي بعد از تقسيم طيف صحبت ورودي به تعدادي زير باند ، هرزيرباند چندتايكي17،كوانتيره ، كد و مالتي پلكس و سپس ارسال مي گردد. در گيرنده اين زير باندها ديمالتي پلكس ، ديكد و بوسيله درونيابي18 به فركانس اوليه خود برمي گردند . سيگنالهاي زير باندي حاصل سپس با هم جمع مي شوند تا تقريبي از صحبت اصلي را بوجود آورند . در شكل (2-4) بلوك دياگرام اينكدر و ديكدر زير باندي نشان داده شده است .
شكل(2-4) بلوك دياگرام يك كدر زير باندي نمونه
كدرهاي تبديل تطبيقي (ATC) يك روش پيچيده تر آناليز حوزه فركانس هستند كه شامل بلوكي از تبديل هاي قطعات پنجره شده صحبت ورودي مي باشند . هر قطعه با يك دسته از ضرائب تبديل نمايش داده مي شود كه جداگانه كوانتيزه و ارسال مي گردند .درگيرنده اين ضرائب كوانتيزه و تبديل معكوس شده تا يك كپي از قطعه اصلي را بازسازي نمايد. سپس قطعات مجاور به هم متصل شده تا صحبت سنتز شده را شكل دهند . در شكل (2-5) بلوك دياگرام يك كدر ATC نشان داده شده است .
شكل (2-5) : بلوك دياگرام يك كدر تبديل تطبيقي
كدرهاي SBC وATC كه در بالا بحث شدند، صحبت با كيفيت بالا در 16kpbs توليد مي كنند اما كيفيت صحبت در نرخ بيت حدود 8kbps بدليل عدم حضور پيشگويي Pitch افت مي كند بنابراين محدوده عملياتي آنها را 16kpbs تا 9.6kbps در نظر مي گيرند .
ب) كدرهاي مختلط حوزه زمان
كدرهاي مختلط حوزه زمان از روش پيشگويي خطي استفاده مي كنند . با بكار گيري يك مدل منبع- فيلتر كه فرض مي كند صحبت نتيجه تحريك يك فيلتر متغير با زمان بوسيله يك قطار پالس پريوديك براي اصوات باواك و يا يك منبع نويز تصادفي براي اصوات بي واك است ، مي توان مشخصات آماري سيگنال صحبت را بسيار دقيق مدل كرد.
روش كدينگ پيشگويي تطبيقي(APC19) كه در شكل (2-6) نشان داده شده است ، در اصل توسط schroeder , Atal ابداع شده است واز پيشگويي هاي زمان كوتاه و زمان بلند هردودرآن استفاده شده است[1]. سيگنال تحريك حاصل بعد از فيلتر معكوس شدن به صورت نمونه به نمونه كوانتيزه مي شود. روش APC براي نرخ بيت حدود kbps 16 طراحي شده و در سيستم اينمارست B ازAPC 16kbps به همراه كدينگ كانال Reed-Solomon استفاده شده است[5].
عملكرد APC در نرخ بيت هاي پايين افت مي كند زيرا بيشتر ظرفيت كدينگ آن صرف كدينگ سيگنال مانده مي شود . به منظور كاهش ظرفيت مورد نياز براي كد كردن سيگنال مانده ، كدرهايي با تحريك مانده با عنوان RELP 20 مورد بررسي قرار گرفتند .
شكل (2-6) : بلوك دياگرام كدر پيشگويي تطبيقي(APC)
همانطور كه در شكل (2-7) ديده مي شود . كدر RELP در اصل يك APC است به جز اينكه تنها بخشي از (بخش فركانس پايين) سيگنال مانده در آن ارسال مي گردد. ايده RELP در اين است كه مي توان فرض كرد ، اطلاعات سيگنال مانده در نواحي فركانس پايين (باند پايه) متمركز شده اند و بنابراين باكد كردن تنها اين قسمت مي توان نرخ بيت كدينگ را كاهش داد.
شكل (2-7) : بلوك دياگرام كدر RELP
از اينرو در اينكدر سيگنال باند پايه بوسيله فيلتر پايين گذر و كوانتيزاسيون استخراج مي شود . در ديكدر سيگنال باند پايه با استفاده از روش بازسازي فركانس بالا [5] به سيگنال تمام باند، تبديل مي شود .ويژگي اصلي روش RELP ، توانايي كار در شرايط خيلي بد نويز زمينه مي باشد و عملكرد شنيداري خوب آن محدود به 9.6 kbps و بالاتر است .
روشهاي كدينگ صحبت كه تا كنون بررسي شده اند بر مبناي آناليز و سنتز هستند . يعني سيگنال صحبت آناليز مي شود تا پارامترهاي سيگنال بدون افزونگي ، از آن استخراج گردد و سپس سيگنال باقيمانده كوانتيزه و ارسال مي گردد و در ديكدر عمل عكس صورت مي گيرد . اين روش كدينگ، استخراج پارامترها را از پروسه كوانتيزاسيون جدا مي سازد و بنابراين كنترل بر روي اعوجاج ها به كنترل زير سيستم هاي جدا از هم محدود مي شود .
براي داشتن كنترل بهتر بر روي تمام پروسه كدينگ، يعني براي مينيم كردن خطاي كلي در سيگنال صحبت سنتز شده ، روشهاي آناليز باسنتز) (AbS 21منظور مي شوند . در روش AbS در طرف فرستنده يك ديكدر محلي وجود دارد كه در آن صحبت سنتز شده براي آناليز موجود مي باشد .
روش هاي AbS-LPC مختلفي وجود دارد و اولين روش گزارش شده LPC چند پالسي (MPLPC 22) مي باشد كه در شكل (2-8) نشان داده شده است . تعيين محل پالسها و دامنه آنها بوسيله يك پروسه AbS انجام مي شود . يك نمونه از MPLPCدر سرويس هوايي Skyphone با نرخ بيت 9.6kbps و كدينگ FEC كانولوشنال با نرخ ، بكار گرفته شده است . عيب عمده MPLPC بار محاسباتي نسبتا زياد آن است. تركيبي از MPLPCو RELP كه براي پياده سازي ساده تر باشد توسط Kroon گزارش شده كه به LPC با تحريك پالس منظم [RPELPC 23] موسوم است .
تحريك بهينه در اين كدر ، پالس هايي با فاصله برابر و دامنه هاي مختلف مي باشد كه بار محاسباتي آنرا كاهش مي دهد. اين الگوريتم كارآمد از نظر محاسباتي ، براي سيستم موبايل GSM از ميان بقيه الگوريتم هاي موجود انتخاب شده است [5] .
شكل (2-8) : بلوك دياگرام MPLPC استفاده شده در Skyphone
با افزايش قدرت پردازشي چيپ هاي DSP ، سيستم هاي AbS كاملي كه قبلا براي پياده سازي غير عملي بودند مورد توجه قرار گرفتند ، همچون LPCبا تحريك كد (CELP 24) كه براي نرخ بيت هاي پايين بسيار مناسب است . در CELP تحريك به صورت يك بردار است كه از كتاب كد تحريك انتخاب مي شود . هربردار تحريكي كه حداقل خطاي وزني را داشته باشد ، بعنوان تحريك بهينه انتخاب مي گردد . پروسه AbS درCELP بار محاسباتي زيادي دارد. هر چند كه CELP پيچيده است اما قادر به توليد صحبت با كيفيت عالي حتي در نرخ بيت هاي پايين مي باشد . يك گونه از CELP بعد ازبررسي روشهاي مختلف كدينگ ، براي سيستم مخابراتي صدا در وزارت دفاع آمريكا با عنوان 4.8 kbps DOD انتخاب شده تا جانشين كدر قديميLPC-l0e 2.4kbps شود [5].
هر چند CELP عمدتا برروي نرخ بيت هاي پايين متمركز است ، براي نرخ بيت هاي بالا تر هم مناسب بوده و استانداردLD-CELP CCITT 16kbps نيز نوعي CELP است . بلوك دياگرام كدر LD-CELP در شكل (2-9) نشان داده شده است .
همانطور كه در دياگرام ديده مي شود ، فيلتر طيفي بصورت برگشتي محاسبه مي شود و بنابراين لازم نيست كه ضرائب فيلتر ارسال شوند . بعلاوه مقياس كردن يا تنظيم بهره نيز تنها با پيشگويي انجام مي شود و نتيجه مستقيم آن اين است كه نرخ روزآمد شدن تحريك مي تواند خيلي بالا باشد (هر 5 نمونه ) و اين كدر را قادر مي سازد تا تاخير كدينگ اندك حتي در حدود 2ms داشته باشد . براي يكبار كدينگ در كانالهاي نويزي يا بدون نويز ، كيفيت صحبت LD-CELP همانند و يا
بهتر از استاندارد G. 721 يعني 32kbps ADPCM گزارش شده است[6].
شكل ( 2-9) : بلوك دياگرام كدر LD-CELP
فصل 3
كدر كم تاخير LD-CELP
3-1- مقدمه
امروزه با توجه به استفاده روزافزون از شبكه هاي تلفن و موبايل و نياز به استفاده موثرتر از ظرفيت شبكه هاي مخابراتي ، كدرهايي كه در نرخ بيت متوسط (16 kbps ) ، صحبتي با كيفيت بالا و حداقل تاخير ممكن توليد نمايند ، مورد توجه خاصي قرار گرفته اند . تاخير كلي در يك سيستم مخابراتي را مي توان ناشي از عوامل زير دانست :
تاخير بافر كردن در اينكدر و ديكدر كه بعلت جمع آوري نمونه هاي مورد نياز آناليز LPC است . تاخير پردازش در اينكدر و ديكدر كه در اثر پردازش روي نمونه هاي بافر شده مي باشد . پردازش نمونه هاي بافر شده بايد در فرصت بافر كردن، كامل شود چرا كه بايد براي پردازش نمونه هاي بعدي آماده



قیمت: تومان


پاسخ دهید