پرو هوسٽر > بلاگ > انٽرنيٽ خبرون > "منشور سان لاڳاپيل خاصيتن کان پروگرامرز شروع ڪرڻ لاء" يا مون کي زندگي ۾ هن نقطي تي ڪيئن حاصل ڪيو
"منشور سان لاڳاپيل خاصيتن کان پروگرامرز شروع ڪرڻ لاء" يا مون کي زندگي ۾ هن نقطي تي ڪيئن حاصل ڪيو
منهنجو آرٽيڪل اڄ هڪ شخص کان بلند آواز آهي جنهن تقريبن حادثي سان پروگرامنگ جو رستو ورتو (جڏهن ته قدرتي طور تي).
ها، مان سمجهان ٿو ته منهنجو تجربو صرف منهنجو تجربو آهي، پر اهو مون کي لڳي ٿو ته اهو عام رجحان سان چڱي طرح ٺهڪي اچي ٿو. ان کان علاوه، هيٺ بيان ڪيل تجربو سائنسي سرگرمين جي ميدان سان وڌيڪ تعلق رکي ٿو، پر اهو ڪهڙو مذاق نه آهي - اهو ٻاهران مفيد ٿي سگهي ٿو.
عام طور تي، اڳوڻي شاگرد کان سڀني موجوده شاگردن لاء وقف!
اميدون
جڏهن مون 2014 ۾ Infocommunication Technologies and Communication Systems ۾ بيچلر جي ڊگري مڪمل ڪئي، مون کي پروگرامنگ جي دنيا جي باري ۾ تقريباً ڪا به خبر نه هئي. ها، ٻين ڪيترن ئي ماڻهن وانگر، مون پنهنجي پهرين سال ۾ ”ڪمپيوٽر سائنس“ جو مضمون ورتو - پر، رب، اهو منهنجي پهرين سال ۾ هو! اهو هڪ ابديت ٿي چڪو آهي!
عام طور تي، مون کي بيچلر جي ڊگري کان خاص طور تي مختلف شيء جي اميد نه هئي، ۽ جڏهن مون ماسٽر جي پروگرام ۾ داخل ٿيو "ڪميونيڪيشن ۽ سگنل پروسيسنگ" جرمن-روسي انسٽيٽيوٽ آف نيو ٽيڪنالاجيز.
پر بيڪار...
اسان صرف ٻئي انٽيڪ هئاسين، ۽ پهرين جا ماڻهو اڃا تائين پري جرمنيءَ لاءِ پنهنجا ٿيلها ڀري رهيا هئا (ماسٽر ڊگري جي ٻئي سال ۾ انٽرن شپ ڇهه مهينا لڳندي آهي). ٻين لفظن ۾، ويجهي دائري مان اڃا تائين ڪنهن به يورپي تعليم جي طريقن کي سنجيدگي سان نه ڏٺو هو، ۽ ڪو به تفصيل بابت پڇڻ وارو نه هو.
اسان جي پهرين سال ۾، يقينا، اسان وٽ مختلف قسم جا طريقا هئا، جن ۾ اسان کي عام طور تي جمهوري طور تي اسڪرپٽ لکڻ جي وچ ۾ (خاص طور تي MATLAB ٻولي ۾) ۽ مختلف انتهائي خاص GUIs استعمال ڪرڻ جي وچ ۾ هڪ اختيار پيش ڪيو ويندو هو (انهي معني ۾ ته لکت لکڻ کان سواء - تخليق ماڊلنگ ماحول).
چوڻ جي ضرورت ناهي، اسان، مستقبل جي سائنس جا ماسٽر، اسان جي نوجوان بيوقوفيء کان ٻاهر، باھ وانگر ڪوڊ لکڻ کان پاسو ڪيو. هتي، مثال طور، MathWorks کان Simulink آهي: هتي بلاڪ آهن، هتي ڪنيڪشن آهن، هتي هر قسم جي سيٽنگون ۽ سوئچز آهن.
پهرين سيمسٽر جي عملي ڪمن مان هڪ OFDM سگنل ٽرانسيور جي ترقي هئي موضوع جي حصي جي طور تي “ماڊلنگ ۽ اصلاح لاءِ طريقا”. اهو خيال تمام ڪامياب آهي: ٽيڪنالاجي اڃا تائين لاڳاپيل آهي ۽ ان جي استعمال جي ڪري ڪافي مشهور آهي، مثال طور، وائي فائي ۽ LTE/LTE-A نيٽ ورڪن ۾ (OFDMA جي صورت ۾). هي ماسٽرز لاءِ بهترين شيءِ آهي انهن جي صلاحيتن کي ماڊلنگ ٽيليڪ سسٽم ۾ مشق ڪرڻ لاءِ.
۽ ھاڻي اسان کي ٽيڪنيڪل وضاحتن جا ڪيترائي اختيار ڏنا ويا آھن واضح طور تي غير عملي فريم پيرا ميٽرز سان (جيئن ته انٽرنيٽ تي ڪو حل نه ڳوليو)، ۽ اسان اڳ ۾ ئي ذڪر ڪيل Simulink تي ڇڪيون ٿا... حقيقت جي:
هر بلاڪ ڪيترن ئي اڻڄاتل پيٽرولن سان ڀريل آهي، جيڪي ٽوپي جي ڦوٽ تي تبديل ڪرڻ لاء خوفناڪ آهن.
انگن سان ٺاهه ڪرڻ جي ضرورت آهي، اهو لڳي ٿو، سادو، پر توهان کي اڃا تائين پريشان ڪرڻو پوندو، خدا نه ڪري.
ڪيٿڊرل مشينون خاص طور تي GUI جي استعمال کان سست ٿي وڃن ٿيون، جيتوڻيڪ دستياب بلاڪ جي لائبريرين ذريعي سرفنگ جي مرحلي ۾.
گهر ۾ ڪجهه ختم ڪرڻ لاء، توهان کي هڪ ئي Simulink جي ضرورت آهي. ۽، حقيقت ۾، ڪو متبادل ناهي.
ها، آخر ۾، اسان، يقينا، منصوبو مڪمل ڪيو، پر اسان ان کي مڪمل طور تي راحت جي بلند آواز سان مڪمل ڪيو.
ڪجهه وقت گذري ويو، ۽ اسان ماسٽر ڊگري جي پهرين سال جي پڄاڻي تي پهتاسين. GUIs استعمال ڪندي گھر جي ڪم جو مقدار جرمن مضمونن جي تناسب ۾ اضافو سان تناسب سان گھٽجڻ شروع ڪيو، جيتوڻيڪ اھو اڃا تائين ھڪڙو پيراڊم شفٽ جي نقطي تي نه پھتو آھي. اسان مان گھڻا، جن ۾ مون سميت، اسان جي وڏي پيماني تي قابو پائڻ، اسان جي سائنسي منصوبن ۾ (جيتوڻيڪ ٽول باڪس جي صورت ۾)، ۽ بظاهر واقف Simulink نه، وڌيڪ ۽ وڌيڪ استعمال ڪيو Matlab.
اسان جي شڪ ۾ نقطو سيڪنڊ سال جي شاگردن مان هڪ جو جملو هو (اهي ان وقت روس واپس آيا هئا):
وساريو، گهٽ ۾ گهٽ انٽرنشپ جي مدت لاءِ، Similink، MathCad ۽ ٻين LabView جي باري ۾ - مٿانهين ٽڪريءَ تي سڀ ڪجهه MATLAB ۾ لکيل آهي، MatLab پاڻ يا ان جو مفت ”ورزن“ Octave استعمال ڪندي.
بيان جزوي طور سچ ثابت ٿيو: Ilmenau ۾، اوزار جي چونڊ تي تڪرار به مڪمل طور تي حل نه ڪيو ويو. سچ، انتخاب گهڻو ڪري MATLAB، Python ۽ C جي وچ ۾ هو.
ساڳئي ڏينهن، مون کي هڪ قدرتي جوش سان ورتو ويو: ڇا مون کي OFDM ٽرانسميٽر ماڊل جو حصو اسڪرپٽ فارم ۾ منتقل نه ڪرڻ گهرجي؟ صرف تفريح لاءِ.
هڪ سائيڪل پريفڪس کي ماڊل ڪرڻ کان (جيڪڏهن توهان بنيادي ڄاڻو ٿا، اهو شامل ڪرڻ ڏکيو نه ٿيندو)
غور هيٺ ماڊل جي بلاڪ ڊراگرام. اسان انورس FFT (IFFT) بلاڪ تي روڪينداسين. تصوير کي مڪمل ڪرڻ لاء، هرڪو باقي پاڻ کي جاري رکي سگهي ٿو - مون ڊپارٽمينٽ جي استادن سان واعدو ڪيو ته شاگردن لاء ڪجهه ڇڏي ڏيو.
اچو ته انهن کي پنهنجي لاءِ تعريف ڪريون. ورزش:
ذيلي ڪيريئرز جو مقرر تعداد؛
مقرر ٿيل فريم ڊگھائي؛
اسان کي وچ ۾ هڪ صفر شامل ڪرڻ گهرجي ۽ فريم جي شروعات ۽ آخر ۾ صفر جو هڪ جوڙو (ڪل، 5 ٽڪر)؛
معلوماتي نشانيون M-PSK يا M-QAM استعمال ڪندي ماڊل ڪيون وينديون آهن، جتي M ماڊل جي ترتيب آهي.
clear all; close all; clc
M = 4; % e.g. QPSK
N_inf = 16; % number of subcarriers (information symbols, actually) in the frame
fr_len = 32; % the length of our OFDM frame
N_pil = fr_len - N_inf - 5; % number of pilots in the frame
pilots = [1; j; -1; -j]; % pilots (QPSK, in fact)
nulls_idx = [1, 2, fr_len/2, fr_len-1, fr_len]; % indexes of nulls
ھاڻي اسان ڄاڻ جي نشانين جي اشارن کي طئي ڪريون ٿا، ان بنياد کي قبول ڪندي ته پائلٽ سگنل لازمي طور تي صفر کان اڳ ۽/يا بعد ۾ وڃڻ گھرجي:
۽ اسان هڪ ننڍڙي ویکٹر جي وضاحت ڪريون ٿا جنهن ۾ صرف ٽيمپليٽ جو هڪ ٽڪرو آهي - "دم"، جيڪو مڪمل طور تي فريم ۾ نه ٿو اچي.
tail_len = fr_len - N_inf - length(nulls_idx) ...
- length(pilots)*pilots_len_psudo;
tail = pilots(1:tail_len); % "tail" of pilots vector
اسان پائلٽ اکر حاصل ڪريون ٿا:
vec_pilots = [resh; tail]; % completed pilots vector that frame consists
اچو ته ڄاڻ جي نشانين ڏانهن وڃو، يعني، اسان هڪ پيغام ٺاهينداسين ۽ ان کي ماڊل ڪنداسين:
message = randi([0 M-1], N_inf, 1); % decimal information symbols
if M >= 16
info_symbols = qammod(message, M, pi/4);
else
info_symbols = pskmod(message, M, pi/4);
end
تپ مان اسپروز کي مارڻ جي ڪا ضرورت ناهي (جيستائين اهڙو تعليمي مقصد نه هجي، يقيناً، ان جي لائق آهي): Simulink استعمال ڪندي، اسان هڪ نفيس اوزار سان هڪ سادي مسئلو حل ڪيو.
جيڪڏهن تعليمي پروگرام جي فريم ورڪ جي اندر نه هجي ته هڪ شروعاتي جي سڀني زخمن کي ختم ڪرڻ لاء ٻيو ڪٿي بهتر آهي؟ پنهنجون صلاحيتون ٺاهيو ۽ ان کي وڌايو - ٻيهر، جلدي توهان شروع ڪيو، بهتر.
سڀني ملڪن مان اميد رکندڙ پروگرامر، متحد!
پي ايس
شاگردن سان منهنجي سڌي تعلق کي رڪارڊ ڪرڻ لاءِ، مان 2017 جي هڪ يادگار تصوير ڳنڍي رهيو آهيان ٻن ريڪٽرن سان: پيٽر شارف (ساڄي) ۽ البرٽ خاريسووچ گلموتڊينوف (بائیں).
اهو پروگرام ختم ڪرڻ جي قابل هو گهٽ ۾ گهٽ انهن ڪپڙن لاء! (مذاق)