توصيف المشكلة
مشكلة 1: (مشكلة تكرار الكلام في الاتصالات )
في مكالمات الهاتف الدولية والبعيدة المدى بشكل خاص نجد ظاهرة الضجيج ففي حين نجد انه عندما يتكلم الشخص 1 مع الشخص 2 نجد ان الشخص 1 يسمع تكرار لصوته وتعزى هذه الظاهرة بسبب تصادم كلا من الاصوات الواردة والصادرة .يستخدم جهاز يدعى hybird لحل هذه المشكلة والذي يهدف الى فصل اشارات الصوت الصادر عن الصوت الوارد ولكن للأسف هذا الجهاز غير قادر دائما على حل هذه المشكلة .
والشكل التالي يعبر عن نظام لإزالة الضجيج في دارات الهواتف :

مشكلة 2: (مشكلة التعرف على صوت الطيار من صوت المحرك في مركز المراقبة )
لنفترض ان لدينا نظام لإزالة الضجيج من الصوت الاصلي التالي :

النظام السابق يقوم بإزالة صوت ضجيج المحرك من الصوت المضفى على صوت قبطان الطائرة .نحن نملك اشارة مفيدة وهي اشارة صوت القبطان في الطائرة ولتكن v .هذه الاشارة تكون موزعة مابين صوت ضجيج المحرك n ,وصوت القبطان وهو يتكلم عبر المايكروفون .بكل الاحوال الضجة التي تلوث اشارة صوت الطيار ليست هي نفسها صوت ضجيج المحرك لان الضجة الصادرة عن محرك الطائرة ستتخامد بسبب حائط الكبينة وكاتمات اخرى موجودة في الطائرة .
المشكلة تكمن في التخلص من الضجيج لإحتواء صوت الطيار بشكل دقيق . يمكن تحقيق ذلك بتدريب شبكات عصبونية .كي نستطيع التنبأ باشارة الطيار/محرك m من صوت المحرك n . ان اشارة صوت المحرك لاتخبر الشبكة العصبية حول صوت الطيار المحتوى في m ولكن الشبكة العصبية يمكن ان تتبنأ بصوت المحرك المضاف الى m . ستحاول الشبكة ان يكون خرجها هو m ولكن الشبكة تعلم فقط صوت الضجة الاصلي (تذكر صوت الضجيج الحقيقي هو صوت المحرك متداخل مع تكتيم حائط الكبينة )n هذا يعني ان الشبكة ستنتج جزء من m الذي هو مصحح بشكل خطي .هكذا سيكون خطأ الشبكة e مساوياً للصوت المشوش (الملوث بالضجيج ) مطروحاً منه صوت ضجيج المحرك .ستتعلم الشبكة العصبية حذف صوت ضجيج المحرك بواسطة فلتز مكيف .وقد اثبتت التجارب ان حذف الضجيج بواسطة الشبكات العصبية هو افضل من الفلاتر الكلاسيكية لان الضجيج بدل من ان تتم فلترته سيتم الغائه .
يمكن تقسيم المشكلة التي نحنا بصدد حلها الى عدة مراحل :
مراحل الحل :
1-تعريف اشارة الصوت Voice Signal
2-تعريف اشارة الضجيج Noise Signal (ضجيج ابتدائي )
3-تعريف فلتر مستخدم لإنشاء ضجة ملوثة Colored Noise (ضجة حقيقة )
4-تعريف إشارة ملوثة Contaminate Signal
5-تعريف شبكة عصبونية ولتكن Adaline (كونها الاشهر في مجال معالجة الإشارة )
6-تنفيذ عملية تدريب الشبكة
7-إظهار النتائج بشكل بياني
المرحلة 1 : تعريف اشارة الصوت Voice Signal
اول دخل يجب تعريفه هو صوت الطيار V إن اشارة صوت الطيار يمكن تحديدها وفق المطال والتردد Frequency & amplitude إن .تحديد كلاً من المطال والتردد لصوت الإنسان هو هام جداً فالمطال يحد مدى علو الصوت وانخفاضه loudness بينما يحدد التردد درجة الصوت pitchوتعطى معادلة صوت الطيار (الإنسان ) وفق ما يلي (المعادلة وفق منهج ومقرر الاتصالات الرقمية للسنة الثانية وضعها العالم بابلينسكي )
V(t)=(1+0.2 sin(Vamp)t).sin(MS(1+0.2 cos(Vfreq t) )t) *
دلالات المعادلة :
V اشارة الصوت تابعة للزمن , Vamp مطال اشارة الصوت , Vfreq تردد إشارة الصوت , t الزمن , MS هو ثابت يمثل التردد الزاوي لحامل الاشارة Angular Freq of the Carrier .بحيث تكون قيمته مساوية ل 2pf
ان التردد الزاوي لحامل الإشارة هو التردد الاساسي لاشارة الكلام speech signal . إن تردد الإشارة f تم اختيارها لتكون 4KHz
نقوم بحل المعادلة السابقة *
Vfreq =2pfm
هي معادلة تردد التعديل , fm هي عملياً مجموعة من القيم الاعتباطية اقل من تردد الإشارة . وتعطى قيمة 300Hz في هذه الحالة من دراستنا .
Vamp=2pfa
هي معادلة تردد مطال التعديل ,ان مطال التعديل fa ياخذ قيم عديدة اقل من تردد الاشارة الاصلي . نعطيه قيمة 200hz .
ان معادلة الزمن هي t=nts
بحيث ان ts هي زمن التقطيع sampling time ويكون 0.2 ميلي ثانية .
باستعمال هذه المتحولات يمكن تعريف اشارة صوت في ماتلاب والكود التالي لتطبيق هذا الكلام :
f=4e3; % set a signal freq of 4 khz fm=300; %set freq modulation of 300 hz fa=200; %set an amplitude modulation of 200 hz ts=2e-5 ; %set a sampling time of 0.2 mele sec N=400; % set 400 sampling points t=(0:N-1)*ts ; %set a discrete time from 0 to 10 mele sec v=(1+.2*sin(2*pi*fa*t)).*sin(2*pi*f*(1+.2cos(2*pi*fm*t)).*t); %voice signal
المرحلة 2 : تعريف اشارة ضجيج Noise Signal :
ان اشارة الضجيج n الآن يمكن لها ان تعرف بأنها اشارة مثلثية للتردد fh =1khz المدمج مع عناصر من ضوضاء عشوائية مثلا randn(1,length(t)) ان اشارات اسنان المنشار كما يطلق عليها هي اشارة تكرارية وتم اختيارها لسهولة الدراسة .ان نوع الإشارات ليس مهماً بسبب ان عملية المعالجة سيتم التعامل مع اي نوع من الضجيج لإزالته

شكل اشارة اسنان المنشار saw tooth قبل وبعد الضجيج .(المصدر موقع mathworks)
إن اشارة اسنان المنشار سيكون لها قمم عند ال 1 السالبة والموجبة , وفي تكرار دوري لكل 2p .سيتم إضفاء ضجيج عشوائي لهذه الإشارة كما في الشكل الموضح آنفاً . هذا الامر سيزودنا باشارة ضجيج متغيرة باستمرار تتقلب للأعلى والادنى .هذه الإشارة هي مناسبة جداً لاجراء اختبار adaline بسبب ان الطيار سيتكلم بصوت اخفض من صوت هدير المحرك .
إن هذا الخليط بين تكرار الإشارة والإشارة العشوائية تم اختياره بسبب ان الصوت المراد معالجته هو صوت ناتج لشيئين اثنين : صوت الطيار (صوت بشري ) وصوت هدير المحرك الذي يعمل بشكل تكراري ودوري لذلك كانت تلك التكرارية في اشارة اسنان المنشار ماهي إلا لتسهيل دراسة ضجيج المحرك .
المرحلة 3 : تعريف فلتر مستخدم لإنشاء ضجة ملوثة Colored Noise (ضجة حقيقة )
إن الضجيج المكتوم الذي يسمعه الطيار يمكن تكوينه بتلوين الضجيج باستخدام فلتر خطي FIR الذي يملك شعاع مجهول a في الحالات الحقيقة يكون الشعاع a مجهولاً ولكن في حالة دراستنا فإنه سيكون معروف القيم وذلك بسبب اختيار فلتر fir , هذا الامر يعني ان اشارة الضجيج الضعيفة تحتاج الى تنبوءات من قبل شبكة adaline . ان فلتر fir يستخدم بسبب ان الضجيج يسافر من خلال بيئة غير خطية قبل ان تصل نسخة خافتة الى اذن الطيار . ان فلتر fir هو ابسط نماذج الفلاتر من اجل طريق انتقال الضجيج .
fn=1e3 ; %set signal frequency of 1Khz n=randn(1,length(t))+sawtooth(2*pi*fn*t,0.7); %create noise a=[1 -0.6 -0.3]; %filter coefficients c=filter(a,1,n); %create output signal c from Fir filter
المرحلة 4 : تعريف إشارة ملوثة Contaminate Signal
الكود التالي يبين كيف يمكن للإشارة الملوثة c ان يتم اضافتها الى صوت الطيار لننشىء اشارة ملوثة حقيقة
m=v+c; %pilots voice contaminated with engine noise
يمكن رسم كلا من الإشارتين صوت الطيار وصوت ضجيج المحرك وفق تعليمة plot لكل من m,v وبالتالي ينتج لدينا المخطط التالي :

المرحلة 5 : تعريف شبكة عصبونية Adaline :
بسبب ان بارميترات ضجيج الفلتر ناهيك عن كون a مجهولة فإن من الضروري استنتاجه لتحقيق عملية إلغاء الضجيج .ان البراميتر يمكن استنتاجه بواسطة شبكة adaline .فيما بعد فإن الضجيج المسبب لتشويه صوت الطيار يمكن استنتاجه . في هذه الحالة فإن شبكة adaline يمكن تشكيلها بواسطة تعريف شبكة ذات خرج وحيد ولتكن net . بينما قيم الدخل هي مجموعة تتراوح بين اكبر قيمة لضجيج الإشارة الى اصغرها .هذا الامر بسبب ان اشارة الضجيج تدخل الى شبكة adaline . سيتم وضع 3 وحدات تاخير مع اوزانها الخاصة التي تعرف من اجل tapped delay line . من اجل اشارة اسنان المنشار (الضجيج ) فإنه من الكافي ان نملك نيرون Neuron مع 4 اوزان . تم إيجاد هذا الامر وفق التجريب ومشاهدة الاخطاء خلال التجريب لذلك فإن خط التاخير سيتصل مع مصفوفة اوزان الشبكة من خلال تاخير 0و 1 و 2و 3 وحدات زمن .ان مصفوفة الخلايا pi تعرف قيم الخرج الابتدائي للتاخير ومن المهم التاكد على ان معامل الانزياح bias يملك قيم هي عبارة عن مجموعة من القيم المرغوبة خصوصاً صفر .
المرحلة 5 : تنفيذ عملية تدريب الشبكة
إن دخل الشبكة هو n والخرج المطلوب هو m يحتاج الى ان نعرفه كعناصر من مصفوفة خلايا cell array . ان مصفوفة الخلايا هي بنى معطيات متوفرة ضمن matlab تسمح بمطابقة عدد كبير من الدخل الى الخرج الموافق له اي بشكل آخر العمود ذو الدليل i في خلية الدخل سيكون هدفه target من العمود i في خلايا الهدف .
من اجل دخل معطى من tapped delay line اي ni,ni-1,ni-2,ni-3 الشبكة ستتدرب لتعطي خرج mi
بتحديد 1 كقيمة لسلسة الدخل فإن الشبكة المعرفة يمكن تدريبها بدءً من شرط التاخير المعرف آنفاً .
net=newlin([min(n),max(n)],1); %assume input values
net.inputWeights{1,1}.delays=[0 1 2 3 ]; %3 delays
net.IW{1,1}=[1 1 1 1]; %give the various weights these vals
net.b{1}=[0]; %set bias to 0
Pi={1 1 1} %define the initial output of the delays
n=num2cell(n) %change arrays into the required cells
m=num2cell(m);
net.adaptparam.passes=1; %specify 1 pass
[net,y,E pf,af]=adapt(net,n,m,pi); %do trainingيمكن حساب الاخطاء من التالي :
temp=zeros(400,1);
for i=1 :400
temp(i,1)=y{1,i}(1,1);
end
temp=temp`; %transpose the array
m=cat(2,m{:});
error= (v-(m-temp)); %calculate error of signal
error2=0;
temp=zeros(400,1);
for i=1:400
error2=error2+abs(error(i))
end
error3=error2/400بعد إجراء التدريب نجد ان الضجيج تم إلغاءه وفق المخططات التالية :

المخطط التالي يبين الضجيج الملوث وخرج شبكة adaline

بيان فعالية معدل التعليم
إذا تم تصغير الثابت كتير مابتتغير الإشارة الناتجة عن الطرح متل 0.0001
اذا تك تكبير الثابت متل 0.6 و أكتر بيصير في تشويش افضل قيمة هي مابين 0.01 و الـ 0.35
إعداد م.وسيم أبوزينة
