[FONT="]بصوا يا جماعة
واحنا بتكلم فى الموبيل مش بنتكلم علطول طبعا احنا بتكلم ونستنى الرد ونرد ونستنى الرد وهكذا
معنى كدة ان المرسل بيبعت المعلومة ويفضل شغال على الفاضى مش كدة .
وطبعا ده مش منطقى علشان كدة عملنا ال Predictive Coding ده
بعد خروج الاشارة م ال Speech Coder بتروح لل Predictive Coding
بتروح مها عينة لل Voice Activity Detection VAD
وده بيخرج اشارته الى ال Discontinuous Transmission DTX
يقول لل DTX الاشارة دى عبارة عن كلام ولا Noise
طيب وهو ال VAD ده بيعرف ازاى اصلا ان الاشارة الى جاية دى بتحتوى على كلام ولا لا
ايوة تمام . عن طريق التردد لان زى محنا عارفين ان تردد صوت الانسان فى الحيز من 0 الى 3.4 KHZ
المهم اول لما ال DTX يعرف انها اشارة تحتوى على صوت يقوم بتشغيل المرسل
ولو الاشارة الى جاياله من ال VID بتقوله ان الاشارة عبارة عن Noise وال Noise الى احنا قصدنا عليها هنا هى عبارة عن الفراغ او اى صوت مش فى الحيز بتاع الكلام
طيب ولو الاشارة الى جاية لل DTX من ال VID بتقوله ان الاشارة بتاعتنا عبارة عن Noise هنا سيقوم ال DTX بأغلاق ال TX وهنا هنلاقى اننا قمنا بالحد م استهلاك البطارية وكمان هنحد من ال Co - Channel Interference مش كدة .
طيب وهو لو احنا قفلنا ال TX الراجل الى معايا على التليفون ده مش هيسمع حاجة خالص ولا اية الى هيحصل
فى الحالة دى الموبيل هيعمل حاجة حلوة اوى .
اول ال DTX ميحس ان الصوت او الكلام وقف هيوقف المرسل وهياخد الاشارة الى جاياله من ال
Silence Descriptor SID
[/font]
تتولد ال SID Frame فى المرسل من القياس المستمر لخلفية المعلومة الصوتية (Noise ) . ويرسل هذا ال Frame بعد الكلام مباشرة وفى بداية توقف الكلام يتعرف المستقبل على نهاية الكلام ويقوم بتفعيل خاصية ال Comfort Noise
ولكن بالمعلومات التى قد تم ارسالها عن ةطريق ال SID Frame فى المرسل بتاع الموبيل الاخر
والى عبارة عن تسجيل لاخر Noise بعد كدة بيقوم ال SID بعمل Update لل Noise يعنى بعد فترة معينة يقوم ال SIDبتسجيل لل Noise ويبعتها لل DTX الى بيقوم بأرسالها ويسكت شوية وبعدين يقوم ال SID بتسجيل لل Noise ويبعتها لل DTX وهكذا
[CENTER][FONT="]تابع ال Predictive Coder
[/font]
[FONT="]
ال
Bad Frame Replacement
فى حالة حدوث خطأ فى اى
Frame مرسل يقوم Bad Frame Replacement
بتغيير هذا ال Frame بواحد اخر متناسب معه .
والذى يقوم بأخباره ان هذا ال
Frame به خطأ هو ال
Bad
Frame
Indicator
BFI
تعالوا بقى لتانى حاجة بعد ال Speech Coder
ال Channel Coding
[/font]
[FONT="]
طبعا احنا عارفين ان احنا بنقوم بالارسال فى وسط مليان
Noise و
Interference
واحنا اصلا بنبعت ال
Data بتاعتنا مضغوطة زى مشفنا . فلو حصل اى
Error فى الاشارة هتبقى مشكلة كبيرة لان بيانات كتير هتضيع . علشان كدة يبقى لازم يكون موجود عندنا حاجة بتعمل
Error Detection and Correction
ال
Channel Coding بيضيف ال
Redundancy Bits علشان نعمل ال
Error Detection and Correction
زى ما هنشوف دلوقتى ان شاء الله
الحاجات الى بتعمل Error Detection and Correction كتير اوى احنا بنستخدم اتنين منهم فى ال GSM هما :
1 - Block Coder
بيقوم بعمل Error Detection عن طريق اضافة 3 Bits بسميهم Parity Check Bits
Convolutional Coder - 2
يقوم بعمل Error Correction
تعالوا بس الاول نشوف ال Data بتاعتنا بنقسمها الى اية الاول من حيث الاهمية
الداتا بتتقسم الى ثلاث اقسام
الاول وهو ال Very Important Data
وده اهم جزء عندنا لانه هو القسم الاكبر فى ال Power وده بيبقى حوالى 50 bits
الثانى وهو ال Important Data
وده عبارة عن جزء ال Power بتاعته اقل شوية من الاول ولكن عدد ال bits فية اكبر شوية وهو 132 bits
الثالث وهو ال Non Important Data
وده عبارة عن جزء ال Power بتاعته قليلة جدا وبيبقى عدد ال bits فيه 78 bits
طيب وهو احنا بنقسم ال Data بتاعتنا كدة لية اصلا
احنا هنشوف دلوقتى انا علشان نعمل Error Correction بنضاعف ال Data وطبعا مش هنضاعف ال Data كلها على الفاضى يبقى احنا كدة زودنا الB.W على الفاضى علشان كدة احنا بنختار احسن جزء فى ال Data واعلاه فى ال Power علشان نضاعفه وهو ال Very Important الى بيبقوا 50 bits
صح احنا مقولناش ايه هما ال 50 وال 78 وال 132 … طيب جمعهم كدة … تمام هيبقوا 260 الى هما عدد ال Bits الى موجودين فى ال Frame بعد ماضغطناه الى هى ال Data بتاعتنا المبعوته فى المرة الواحدة.
تعالوا بقى نشوف ال Convolutional Coder ده بيشتغل ازاى
[/font]
[FONT="]
احنا قولنا ان فى 50 bits هما اهم ما فى الاشارة علشان كدة هنعاملهم معاملة خاصة
هندخلهم الاول على ال
Block Coder علشان يضيف ال
Parity Check Bits الى عددهم 3 bits
والى هيعمل بيهم Error Detection … يبقى هيخرجوا من ال
Block Coder
53 bits
بعد كدة هندخلهم على ال
Convolutional Coder هما وال 132 bits الى قولنا عليه
Important Data
وكان هندخل معاهم 4 tail bits عبارة عن
0000 ودول هما الى بيرجعوا ال
Convolutional Coder الى ال Initial State بتاعته
المهم ان ال
Convolutional Coder ده هيجمعهم كلهم ويضاعفهم . كدة هيبقى خرج ال
Convolutional Coderعبارة عن
378 bits
ال
378 bits دول هيخرجوا يتجمعوا على ال
78 bits الى قولنا عليهم Non Important Data
وبكدة هيكون خرج ال
Convolutional Coder عبارة عن
456 bits
يعنى هيبقى عدد ال bits فى ال
20 msec يساوى
456 bits يعنى هيبقى عدد ال bits فى الثانية 22.8
kb/sec
يعنى بكدة فى زيادة بمقدار 9.8 kb/sec عن ال 13 kb/sec الى هما ال
Redundancy Bits الى احنا اتكلمنا عليهم فى انواع ال
Traffic
Channels فى الشبتر الى فات .
وترسل ال
456 bits الى ال
Interleaver
Interleaver - 3
هو لو حصل مشكلة اثناء نقل الاشارة من المرسل الى المستقبل هتحصل فى مجموعة متتابعة من ال Bits
معنى كدة انا هنفقد جزء متتابع من الكلام الى احنا بعتناه وبكدة الجودة هتقل جدا
وظيفة ال Interleaver هى عمل تفريق لل Data بالكامل وبالتالى تفريق لل Error
يعنى لو حصل مشكلة فى الاشارة بعد عملية ال Interleaving هلاحظ اننا بعد عمل عملية
ال Deinterleaving فى المستقبل هنلاحظ ان ال Error بقت عبارة عن مجموعة من ال Bits متفرقة بيهم مسافات كبيرة وبكدة هنلاقى اننا مش هنتأثر بال Error اوى .
تعالوا بقى نشوف ال Interleaver ده بيشتغل ازاى
يتكون ال Interleaver من
1- Block Interleaver
[/font]
[FONT="]
وده بيتكون من 8 بلوكات بنرتب ال Data فيهم افقيا يعنى زى محنا شايفين فى الصورة هنلاقى ان اول بلوك بيحتوى على ال Bits ارقام
1,
9 ,
17 ,
25 , … ,
449
ولما نيجى نبعت الاشارة هنبعت 2 بلوك فى ال Burst وبكدة لو فرضنا انه حصل مشكلة فى البلوك رقم واحد يعنى ال Bits من
1 الى
449 حصل فيهم
Error عند الاستقبال ولما نعيد ترتيب المعلومة تانى هنلاقى ان ال
Errors اتفرقت فى وسط المعلومة وبقت مش ظاهرة غير لو حصل مشكلة فى مجموعة مجتمعة من المعلومة .
لو لاحظنا يا جماعة هلاقى ان طول كل بلوك
57 bits الى هى ال
Burst/
2 … عرفتوا لية بقى خلينا ال
Burst عبارة عن
57*2 bits
Burst Interleaver - 2
[/font]
[FONT="]
هو احنا لو بعتنا 2 بلوك متتابعين فى
Burst واحدة وال
Burst دى ضاعت مش احنا كدة بقى فقدنا
25 % من المعلومة لان زى كحنا عارفين ان ال
20 msec بيتكونوا من 8 بلوكات … ودى مشكلة .
علشان كدة احنا هناخد او بلوك من اول
20 msec ونخليه فى ال
Burst الاولى وناخد اول بلوك من تانى
20 msecونخليه فى ال
Burst التانية …وناخد تانى بلوك من اول
20 msec نخليه فى ال
Burst الثانية وناخد اول بلوك من تانى
20 msec ونخلية فى ال
Burst التانية … حد فهم حاجة
يعنى لو اعتبرنا ان فى Burst كاملة ضاعت يبقى كدة هيضيع 12.5% بس من ال 20 msec
ولكن وفى هذه الحالة هيضطر الموبيل انه ينتظر ال 20 msec التاليين علشان يقدر يرتب المعلومة بالشكل الصحيح
والتأخير ده مش هيبقى ملحوظ علشان أذن الاسان لا تاحظ التأخير الا اذا تجاوز ال 100 msec
Ciphering - 4
[/font]
[/center]