از پارسکدرز بیشترین بهره را ببرید و رویای کاری خود را زندگی کنید.
نه سال پیش منتشر شده
تعداد بازدید: 837
کد پروژه: 27404
شرح پروژه
ترجمه فايل متني Readme.txt :
• اين سورس کد داراي الگوريتمي بر پايه حسگري فشرده براي بازسازي سيگنال مي باشد( متد NESTA)
• براي اجراي برنامه شما بايد فايل "main.cpp" را اجرا کرده و سپس از ان يک شماره پورت را که الگوريتم از آن براي گوش دادن به داده هاي ورودي استفاده مي کند مشخص کنيد ( مجموعه ناقصي از ديتا که از آن برايتقريب سيگنال اصلي استفاده مي شود)
• بسته هاي ورودي بايد از فرمت زير پيروي کنند:
0|numSensors(int32_t)|numMeasures(int32_t)|ToM(int32_t)|
3|sensorId(int16_t)|value(float)|timestamp(int64_t)|
3|sensorId(int16_t)|value(float)|timestamp(int64_t)|
3|sensorId(int16_t)|value(float)|timestamp(int64_t)|
3|sensorId(int16_t)|value(float)|timestamp(int64_t)|
....
2|
• "numMeasures" :که تعداد اندازه گيري هاي(معيار)هر سنسور است (شما بايد حداقل 3 اندازه گيري براي هر سنسور توليد کنيد در غير اين صورت قادر به ساخت مجموعه يادگيري (training set) نخواهيد شد)
• "ToM": نشان دهنده 3 نوع اندازه گيري(معيار) مي باشد، که بطور ويژه:
• مقدار"0" براي دما
• مقدار "1" براي رطوبت
• مقدار "2" براي درخشندگي
• "sensorId " :Id منحصر به فرد هر سنسوري است که داده را ارسال مي کند
• “value” : مقدار خوانده شده توسط هر حسگر
• "timestamp":
• اين فرمت بسته توسط الگوريتم بازسازي سيگنال بازگشت داده مي شود:
4|next_p_tx(float)|
3|sensorId(int16_t)|value(float)|timestamp(int64_t)|
3|sensorId(int16_t)|value(float)|timestamp(int64_t)|
3|sensorId(int16_t)|value(float)|timestamp(int64_t)|
3|sensorId(int16_t)|value(float)|timestamp(int64_t)|
....
2|
• “next_p_tx”: احتمال انتقالات براي سنسور ها در دور بعدي جمع آوري داده مي باشد.
توجه: شما ممکن است علاقمند به پياده سازي تنها روتين بازسازي CS Nesterov در کد خود باشيد
• در ابتدا، بايد هدر هاي زير در فايل C++ شما موجود باشد:
1. newmat.h
2. newmatap.h
3. newmatio.h
4. nesta.h
و متد را به صورت زير صدا بزنيد:
"Nesterov(A,y)"
• “A” يک شي C++ از نوع ماتريس و "y" يک شي ديگر از نوع "ColumnVector" مي باشد.
• اين متد يک شي از نوع "ColumnVector" بر مي گرداند که شامل حل مسئله بهينه سازي محدب مي باشد:
argmin |s|_l1
s.t. y = As
اطلاعات بيشتر در مورد اشيا و نحوه استفاده از آن در کتابخانه "newmat_lib" موجود مي باشد( در زير پوشه ها موجود مي باشد).
قسمتي از مقاله که در مورد کد توضيح مي دهد:
در اين مقاله ما به طراحي يک فريم ورک WSN-Control که يک معماري کنترل WSN سرور خارجي متصل به اينترنت است، ميپردازيم.
در اين معماري ما تکنيک هاي فشردهسازي و بازيابي را با ترکيب الگوريتمهاي تحليل مؤلفه اصلي (Principal Analysis Component -PCA) و حسگري فشرده (Compressive Sensing -CS) براي بازسازي سيگنال تعداد زيادي از قطعات از طريق جمع آوري نمونه گيري هاي نسبتا کوچک پياده سازي کرده ايم.
مباحث اصلي مقاله حاضر عبارتند از:
• طراحي و پياده سازي معماري WSN-Control براي دستيابي و کنترل تمامي فعاليت هاي WSN از يک سرور خارجي متصل به اينترنت
• ادغام تکنيک هاي فشردهسازي و بازيابي سيگنال [5] در داخل بلاک هاي بازيابي سيگنال و کنترل بازخورد(Feedback control) ، که بطور مستقيم براي نظارت و سنجش(Sense) هر نوع وابستگي فضايي و زماني سيگنال مورد استفاده قرار مي گيرد
• ادغام تکنيک الگوريتم NESTAو CS-recovery در بلاک بازيابي سيگنال براي بازيابي online سيگنال هاي مورد علاقه سرور، به همراه الگوريتمهاي مورد نياز شبکه مانند مسيريابي و کنترل بازخورد در يک سيستم مبتني بر وب براي WSN
• آناليز کارايي WSN-Control با استفاده از سيگنال هاي واقعي از يک شبکه WSN مستقر در محل
هسته اصلي سيستم WSN-Control يک برنامه کاربردي تحت سرور است( به شکل1 نگاه کنيد). اين سرور يک برنامه کاربردي تحت وب ميباشد که از اجزاي روبرو تشکيل شده است :1) مصور سازي(Visualization) .2) ارتباطات(Communication) . 3) بازيابي سيگنال و کنترل بازخورد (Signal Reconstruction and Feedback Control)
1)مصور سازي: ايجاد يک نمايش تصويري از داده هاي جمع آوري شده و مسئول پاسخگويي به ايترفيس کاربر براي Applet ها و صفحات Java
2)ارتباطات: اين بلاک مسئول پذيرش داده ها ازشبکه WNS و انتقال درخواست جمع آوري داده به گره هاي سنسور ميباشد. علاوه بر اين به همراه اين درخواست پيام هاي بازخورد(Feed back) را نيز که رفتار انتقالات تمامي نود هاي حسگر را در دوره بعدي تنظيم مي نمايد، بردکست مي کند.
3)بازيابي سيگنال و کنترل بازخورد : اين بلاک در هر دور جمع آوري داده مسئول بازسازي کل سيگنال هاي WSN را که از اندازه گيري ها بدست مي آيد، بازسازي مي کند. پيام هاي بازخورد در باز هاي زماني بر اساس تکنيکي در مقاله [5] ساخته شده و به نود هاي حسگر که وظيفه تطبيق رفتار براي هر دور جمع آوري را دارد انتقال مي يابد.به طور خاص، هدف ما به حداقل رساني تعداد نود ها براي هر دور جمع آوري اطلاعات اندازه گيري هاي خود را ارسال مي کنند، در حالي که همچنين انتظار داريم که خطاي بازيابي سيگنال زير يک آستانه خاص باشد
بلاک بازسازي سيگنال و کنترل بازخورد به 3 بخش تقسيم مي شود: 1) يک ديتابيس که مسئول ذخيره داده هاي رسيده شده از شبکه WSN است ,2) بازخورد و قطعه کنترلي که مسئول مديريت داده هاي ورودي را مديريت (handles) و آنها را به بلاک بازسازي سيگنال مي دهد و همچنين درخواست جمع آوري داده ها به گره هاي WSN ارسال مي کند,3) قطعه بازيابي سيگنال، که سيگنال اصلي با استفاده از PCA و CS از سيگنال فشرده بازيابي مي کند.
• ديتابيس: اين قطعه در زمان هاي گسسته اندازه گيري هاي شبکه WSN را دريافت مي کند. هر اندازه گيري به وسيله 4 فيلد توصيف مي شود: ID: مشخصه سنسوري است که داده را انتقال مي دهد. Type: نوع داده انتقال داده شده. به عنوان مثال در تست ما مي تواند دو مقدار دما و درخشندگي باشد که داراي دو رنج متفاوت (320–730 or 320–1100 nm) و نيز ولتاژ باطري و رطوبت. Value: مربوط به مقدار اندازه گيري شده يک پارامتر توسط يک سنسور با ID خاص ميباشد. Time span: نشان دهنده واحد هاي گسسته زمان k=1,2,……,n ميباشد.
• کنترل بازخورد: اين جزء مسئول همروند سازي کل فرايند بازسازي سيگنال مي باشد. پياده سازي تکنيک جمع آوري داده در [5] جايگزيني بين فاز آموزش(training) و نظارت (monitoring) ميباشد.
• بازيابي سيگنال: يک بلاک بازيابي سيگنال مسئول بازيابي سيگنال اصلي با يک تقريب خوب از داده هاي ذخيره شده در ديتابيس است.
زیرساخت:
نده اين کد را با محيط برنامه نويسي(IDE) Eclipse در محيط Ubuntu اجرا کردم چون هدرهاي سور تحت لينوکس بود، کد اجرا مي شود و فقط نياز مند يک کلاينت مي باشد که بسته ها را با فرمتي که در ابتدا ذکر کردم به سرور ارسال کند. ولي اسراري ندارم که محيط لينوکس باشد
قابل تحویل:
این پروژه شامل 1 فایل مهم است، لطفا قبل از ارسال پیشنهاد حتما نسبت به بررسی این فایل اقدام فرمایید.
مهارت ها و تخصص های مورد نیاز
بودجه
5,000 تومان تا 100,000 تومان
مهلت برای انجام
20روز
وضعیت مناقصه
بسته
درباره کارفرما
عضویت نه سال پیش
قادر به انجام این پروژه هستید؟
مهلت ارسال پیشنهاد قیمت برای این پروژه تمام شده است
به رایگان یک حساب کاربری بسازید
مهارتها و تخصصهای خود را ثبت کنید، رزومه و نمونهکارهای خود را نشان دهید و سوابق کاری خود را شرح دهید.
به شیوهای که دوست دارید کار کنید
برای پروژههای دلخواه در زمان دلخواه پیشنهاد قیمت خود را ثبت کنید و به فرصتهای شغلی منحصر به فرد دسترسی پیدا کنید.
با اطمینان دستمزد دریافت کنید
از زمان شروع کار تا انتهای کار به امنیت مالی شما کمک خواهیم کرد. وجه پروژه را از ابتدای کار به امانت در سایت نگه خواهیم داشت تا تضمین شودکه بعد از تحویل کار دستمزد شما پرداخت خواهد شد.
میخواهید شروع به کار کنید؟
یک حساب کاربری بسازید
بهترین مشاغل فریلنسری را پیدا کنید
رشد شغلی شما به راحتی ایجاد یک حساب کاربری رایگان و یافتن کار (پروژه) متناسب با مهارتهای شما
است.
پیدا کردن کار (پروژه)
تماشای دمو روش کار