طلب مساعدة


(system) #1

السلام عليكم
كيف حالكم جميعا
انا مهندس حاسوب و الكترونيات من فلسطين-قطاع غزة
انظممت لمنتدى المهندس كعضو
راجيا منكم مساعدة وبارك الله فيكم
عندى سؤال بدى احله عن طريق الماتلاب
وهو كتاالي
مشروع عملي على الترميز coding
نريد فوائد الترميز في تصحيح الأخطاء إثناء إرسال البيانات
الخطوات:نريد إرسال البيانات التالية "This is my coding project" باستخدام ال linear coding
حيث أن (n=7,k=4) g(x)=1+x+x2 ,
نحول البيانات إلي مكافئتها في نظام ASCII
نفرض حدوث خطا كل 8 بت أثناء الإرسال
بوجود الأخطاء نفك الترميز ونصحح الأخطاء
بعني نحول كل حرف الي مكافئه بنظام الاسكي كود
في برنامج الماتلاب راح يعمل كل حرف محول للااسكي تحت بعض يعني مثلا
1011
1101
0110
وهكذا
بس لازم بطريقة معينة نجعل الارقام هاى بسطر واحد حتى نحدث خطأ كل 8 بت اثناء الارسال
ارجوامنكم المساعدة


(المهندس سعود) #2

سؤال مش مفهوم؟؟؟
هل تريد كل ماقلته ؟؟؟
أو
تريد الامر الذي يحول المصفوفة الى سطر واحد؟؟؟

ارجو التوضيح


#3

ما هو البرنامج التى تحاول تنفيذه وما هو الذى ترغب فى عمله ؟


(system) #4

السلام عليكم جميعا
وشكرا جزيلا على الرد
السؤال كالتالي
"الخطوات:نريد إرسال البيانات التالية "This is my coding project" باستخدام ال linear coding
حيث أن (n=7,k=4) g(x)=1+x+x2 ,
نحول البيانات إلي مكافئتها في نظام ASCII
نفرض حدوث خطا كل 8 بت أثناء الإرسال
بوجود الأخطاء نفك الترميز"coding "ونصحح الأخطاء
نقارن النتائج في حالة إرسال المعلومات بدون ترميز وحصول نفس الأخطاء مع الحالة التي نستخدم بها الترميز
هل الجملة في حالة إرسال البيانات بدون ترميز ما زالت مقروءة؟"

طبعا الحل عن طريق الماتلاب


#5

نرجو التوضيح بالكود ؟؟


(system) #6

للاختصار اكثر اريد كود بالماتلاب يقوم بتخزين الجملة التالية كما هي" This is my coding project"
ثم نحول تلك الجملة الي النظام الاسكي كود عن طريق امر معين من الماتلاب
ثم نجعل الكود الاسكي وهو يتكون من اصفار ووحدات في سطر واحد
ثم نغير قيه كل بت ثامن
يعني بعد مثلا لو كان الكود التالي هو ناتج تحويل الجملة السابقة الي نظام الاسكي
11001011011000101011010101101110
كل بت تحته خط نغير قيمته
ان كان 1 نضعه 0 والعكس صحيح
طبعا نريد كود يعمل كجملة if بأى لغة برمجة معروفة
ثم بوجود الاخطاء نريد ان نصحح الخطا ونفك الترميزencoding
ومعطى بالسؤال قيمة كل من
n=7,k=4
وايضا معطى
) g(x)=1+x+x2
وهي مصفوفة التوليد
generation matrix


#7

يمكنك القاء نظرة على الملف الاتى سيكون مفيد لك


(system) #8

الف شكر وبارك الله فيك سيد أحمد
انا بدى اسهل الموضوع اكثر
فقط اريد ان احول بيانات معينة الي نظام الاسكي كود
طبعا عند التحويل في الماتلاب يكون الكود عمودي مثلا
1110101
1110001
0001110
ولكن اريد ان اجعله افقيا
111010111100010001110
ثم اريد ان اغير بت واحد كل 8 بت
بحيث ان كان البت واحد نحوله صفر و العكس
حتى يصبح الكود السابق كالتالي
111010101100010101110
ملخص ما اريده
تحويل جملة معينة مثلا Hello world الي نظام الاسكي كود
ثم جعل الكود كسطر واحد بلا ان يكون كل حرف بسطر "عمودي"
ثم نغير نعكس قيمة بت كل 8 بت


#9

أخى العزيز الكود الذى ارسلته لك بيقوم بتحول الاسكى كود الى نظام ثنائى كما تريد فى نفس السطر وقمت بتجربته بنفسى
حيث الجملة الاتية : Hello world

01001000011001010110110001101100011011110010000001110111011011110111001001101100
0110010000001010

تقدر تطلع على الكود وتشوف عملوها ازاى وتعمل زيها وبعد كده ممكن ننتقل للنقطة الثانية


(system) #10

شكرا بسمهندس احمد وبارك الله فيك
يا ريت لو ترسلي الكود اللى انت جربته ,لانه لسة ما صار غير محاظرة وحدة عن الماتلاب عنا بالجامعة ,فانا لسة مبتدئ بالماتلاب
ولسة ما تعلمنا اوامر كثير
لكن بعد ان اكتب الاسكي كود بسطر واحد اريد ان اغير بت واحد كل 8 بت "اي ان اعكس حالته ,ان كان واحد اجعله صفر و العكس"
وبارك الله فيك مرة اخرى


#11

هذا الكود انا ارسلته لك فى هذه المشاركة
http://www.almohandes.org/vb/showpost-p_235339-postcount_7.html

ستجد دالتين encode و decode

أقرا الدالة جيدا وتعرف عليها وان شاء الله ستفيدك


#12
% Convert the binary number to a string
str = num2str(010010000110010101101100011011000110111100100000011101110110111101110010011011000110010000001010);

% Insert zero in the begaining because it was removed
str = strcat ('0', str);

% Find the size of the string
[m n] = size(str);

% Change the bit number 8
for i = 8 : 8 : n
    switch str(i)
        case '0'
            str(i) = '1';
        case '1'
            str(i) = '0';
    end
end


(system) #13

الله يزيدك علمك وينفع فيك الاسلام و المسلمين يا رب العالمين
اللهم آمين


#14

جزاك الله خيرا