شبیه‌سازی شبکه‌های بی سیم و کامپیوتری
شبیه سازی تخصصی شبکه‌های بی سیم و کامپیوتری مقاطع کارشناسی تا دکترا
  • شبیه سازی تخصصی شبکه‌های بی سیم و کامپیوتری مقاطع کارشناسی تا دکترا

مشخصات بلاگ
شبیه‌سازی شبکه‌های بی سیم و کامپیوتری

امکان سفارش، شبیه سازی مقاله و پایان نامه وجود دارد،
مطالب، با ذکر منبع قابل انتشار در سایت ها و وبلاگ ها و.. می باشد.
جهت دریافت مشاوره رایگان تماس بگیرید:

شماره تماس: 09147082079-0098
آیدی تلگرامی:https://t.me/MuosSA_NbO
جی میل :mo30no@gmail.com

تمامی کدهای این وبلاگ در حال حاضر به زبان متلب می باشد

«آنچه می‌دانیم ناچیز و آنچه نمی‌دانیم عظیم و وسیع است»
$$پیر سیمون لاپلاس$$

۱۸ مطلب در آذر ۱۳۹۸ ثبت شده است

دوشنبه, ۱۸ آذر ۱۳۹۸، ۰۲:۲۰ ب.ظ

کد یک ویلای نیمه کاره در متلب

 

%%%%%%%%%%%%%%%%%%%%%%%%%%-----------simulation area-----------%%%%%%%%%%%%%%%%%%%%%%
% devloped in Iran(ardebil)                                 %
% Copyright (C) 2017(1396) by moussa hasanzadeh.           %
%All rights reserved.                                      %
%programed in mathlab 2016                                %
%gmail:mo30no@gmail.com
%phone: 09147082079


function vlia1
        clc
        clear;
        delete(allchild(0));
        sideN=4;
        t1=linspace(0,1,sideN+1);%vector between 0 and 1
        X=-sin(2*pi*t1+(pi/sideN));%node X coordinates with phaze shift
        Y=-cos(2*pi*t1+(pi/sideN));%node Y coordinates with phaze shift
        X=((((X-min(X))/(max(X)- min(X)))*2)-1)./5;%normalize  and schale X
        Y=((((Y-min(Y))/(max(Y)- min(Y)))*2)-1)./5;%normalize and schale Y
        Z= (1:length(Y))*0 ;

        for x=0:20:40
            for y=0:20:40
                for z=1:15
                    plot3(X+x,Y+y,Z+z,'k');hold on
                    plot3([X+x;X+x],[Y+y;Y+y],[Z+z*0;Z+z],'k');hold on
                end
            end
        end



        xVec=[0,20,40,40,20,0,0];
        yVec=[0,0,0,40,40,40,0];
        zVec1=yVec*0;
        zVec1([2,5])=zVec1([2,5])+3;
        [xVec,yVec]=dividerE(xVec,yVec,10);

        zVec=yVec*0;
        [~,zVec1]=dividerE(xVec,zVec1,10);



        hj1=fill3([xVec],[yVec],[zVec+5],'w');alpha(hj1 ,1)
        hj1=fill3([xVec],[yVec],[zVec+5+0.2],'k');alpha(hj1 ,0.2)

        hj3=fill3([xVec;xVec],[yVec;yVec],[zVec+5;zVec+5+0.2],'k');alpha(hj3 ,0.7)

        hj2=fill3([xVec],[yVec],[zVec+10],'w');alpha(hj2 ,1)
        hj2=fill3([xVec],[yVec],[zVec+10+0.2],'k');alpha(hj2 ,0.2)

        hj3=fill3([xVec;xVec],[yVec;yVec],[zVec+10;zVec+10+0.2],'k');alpha(hj3 ,0.7)

        hj3=fill3([xVec],[yVec],[zVec+15],'k');alpha(hj3 ,0.2)
        hj3=fill3([xVec;xVec],[yVec;yVec],[zVec+15;zVec+15+0.2],'k');alpha(hj3 ,0.7)

        xVecPentHous=[0,20,40,20,0];
        yVecPentHous=[0,0,0,0,0] ;
        zVecPentHous=[15,15,15,18,15];
        for mm=1:39
            % fill3(xVecPentHous,yVecPentHous+mm,zVecPentHous,'k--')
            km=fill3(xVecPentHous,yVecPentHous+mm,zVecPentHous,'g-');hold on
            alpha(km,0.2)
        end

        fill3([xVec],[yVec],[zVec+15],'r')



        zVec1=zVec1+15;

        fill3([xVec],[yVec],[zVec1],'r-','edgecolor','k')
        fill3([xVec],[yVec],[zVec1-0.2],'r-','edgecolor','k')

        hj1=fill3([xVec*2]-20,[yVec*2]-20,[zVec],'g');alpha(hj1 ,1)
        yardVect=[13:length(xVec),1:10]

        hj1=fill3([[xVec(yardVect)*2]-20;[xVec(yardVect)*2]-20],[[yVec(yardVect)*2]-20;[yVec(yardVect)*2]-20],[zVec(yardVect);zVec(yardVect)+2],'r');




        for difIndex=1:10
            zVec=zVec+0.2;
            hj1=plot3([xVec(yardVect)*2]-20,[yVec(yardVect)*2]-20,[zVec(yardVect)],'ks-','lineWidth',1);alpha(hj1 ,1);hold on

        end
        zVec(11:12)=zVec(11:12)+1;
        xVec(11)= xVec(10);
        xVec(12)= xVec(13);
       
        hj1=plot3([xVec*2]-20,[yVec*2]-20,[zVec],'k-','lineWidth',2);alpha(hj1 ,1);hold on
         zVec([10,13])=0;
        
         door=[10,11,12,13,10]
         matrixObj.x=[xVec(door)*2]-20;
         matrixObj.y=[yVec(door)*2]-20;
         matrixObj.z=[zVec(door)];
         [ newx, newy, newz]=rotateParameter(matrixObj,[0,0,1],90);
         
         hj1=fill3(newx-sqrt((xVec(10)-xVec(13)).^2)*1.3, newy-32, newz ,'w','lineWidth',2);alpha(hj1 ,1);hold on

        

        end


        function   [X,Y]=dividerE(X,Y,n)

        T1=0;
        T2=0;

        for i=1:length(X)-1
            temp1=0;
            temp1=linspace(X(i),X(i+1),n+2)  ;

            T1=[T1,temp1(1:end-1)];
        end
        T1=[T1,temp1(end)];
        X=T1(2:end);


        for i=1:length(Y)-1
            temp2=0;
            temp2=linspace(Y(i),Y(i+1),n+2)  ;

            T2=[T2,temp2(1:end-1)];
        end
        T2=[T2,temp2(end)];
        Y=T2(2:end);

        end






            function [ newx, newy, newz]=rotateParameter(matrixObj,azel,alpha)

            u = azel(:)/norm(azel);
            alph = alpha*pi/180;
            cosa = cos(alph);
            sina = sin(alph);
            vera = 1 - cosa;
            x = u(1);
            y = u(2);
            z = u(3);
            rot = [cosa+x^2*vera x*y*vera-z*sina x*z*vera+y*sina; ...
                x*y*vera+z*sina cosa+y^2*vera y*z*vera-x*sina; ...
                x*z*vera-y*sina y*z*vera+x*sina cosa+z^2*vera]';

            x = matrixObj.x;
            y = matrixObj.y;
            z = matrixObj.z;

            [m,n] = size(z);
            if numel(x) < m*n
                [x,y] = meshgrid(x,y);
            end

            [m,n] = size(x);
            newxyz = [x(:) , y(:) , z(:) ];
            newxyz = newxyz*rot;
            newx =   reshape(newxyz(:,1),m,n);
            newy =  reshape(newxyz(:,2),m,n);
            newz =  reshape(newxyz(:,3),m,n);

            end



این هم یک تصویر از نتیجه کار:

 

 

 

۰ نظر موافقین ۰ مخالفین ۰ ۱۸ آذر ۹۸ ، ۱۴:۲۰
موسی حسن زاده
پنجشنبه, ۱۴ آذر ۱۳۹۸، ۱۰:۴۱ ق.ظ

کد الگوریتم RSA در متلب

دو عدد اول از شما درخواست می کنه، بعد از آماده سازی کلید های خصوصی و عمومی یک متن را از شما خواهد خواست یا اینکه شما می تونید با یک سری تغییراتی یک بردار عددی را مستقیما به الگوریتم تحویل بدید، چون متن در نهایت به کد اسکی اون تبدیل می شه، بعد الگوریتم، متن رمزگذاری شده و متن رمزگشایی  شده را به همراه کد اسکی متن رمزگذاری شده و رمزگشایی شده به شما برمی گردونه...

 

clc;% clear theconsol
clear;%clear the memory and variables
delete(allchild(0)); %close all open diologs

file=matlab.desktop.editor.getActive;
try
      fileDetail=dir(file.Filename);
      folderName=fileDetail.folder;
catch
      index=strfind( file.Filename,'\');
      folderName=file.Filename(1:index(end)-1);
end
paths=genpath(folderName);
addpath(paths);
cd(folderName);

disp('RSA algorithm');
p=input('Enter the prime no. for p: ');
q=input('Enter the prime no. for q: ');
n=p*q;
fprintf('\nn=%d',n);
phi=(p-1)*(q-1);
fprintf('\nphi(%d) is %d',n,phi);

e=randsample( primes(n-1),1);

val1=0;
d=0;
while(val1~=1)
d=d+1;
val1=mod(d*e,phi);
end
fprintf('\nd=%d',d);
fprintf('\nPublic key is (%d,%d)',e,n);
fprintf('\nPrivate key is (%d,%d)',d,n);
m=input('\nEnter the message: ','s');
m1=m-0;
disp('ASCII equivalent of message ');
disp(m1);
over=length(m1);
 o=1;
 while(o<=over)
    m=m1(o);
    diff=0;
    if(m>n)
        diff=m-n+1;
    end
    m=m-diff;
      
    
    
    % beacause matlab dont support larg number modulus operation then
    % encription and deription is done in bit level
qm=dec2bin(e);
len=length(qm);
c=1;
xz=1;
while(xz<=len)  
    if(qm(xz)=='1')
      c=mod(mod((c^2),n)*m,n);
    elseif(qm(xz)=='0')
        c=(mod(c^2,n));
    end
    xz=xz+1;
end
c1(o)=c;
c1(o)=mod(m^e ,n);
% nm2(o)=mod(c1(o)^d ,n)+diff; 


% Public key is (e,n) => (7,33)
% Private key is (d,n) => (3,33)
% The encryption of m = 2 is c = 27 % 33 = 29
% The decryption of c = 29 id m =293 % 33 = 2




qm1=dec2bin(d);
len1=length(qm1);
nm=1;
xy=1;
while(xy<=len1)    
    if(qm1(xy)=='1')
       nm=mod(mod((nm^2),n)*c,n);
    elseif(qm1(xy)=='0')
        nm=(mod(nm^2,n));
    end
     xy=xy+1;    
end
nm=nm+diff;
nm1(o)=char(nm);
o=o+1;
 end
 
 
o=1;

fprintf('\nThe encrypted message in ASCII is \n');
 while(o<=over)
   fprintf('\t%d',c1(o)); 
   o=o+1;
end
o=1;

fprintf('\nThe encrypted message is \n');
disp(char(c1))


fprintf('\nThe decrypted message in ASCII is \n');
while(o<=over)
fprintf('\t%d',nm1(o));
o=o+1;
end
fprintf('\nThe decrypted message is: ');
disp(nm1);
fprintf('\n');

 

۰ نظر موافقین ۰ مخالفین ۰ ۱۴ آذر ۹۸ ، ۱۰:۴۱
موسی حسن زاده

یک راز مهمی که انمیشن های امروزی با کیفیت بالایی تولیدو توسعه داده می شوند، استفاده از حسگرهایی هست که حرکات  انسان و حیوان   حتی اندامکهای چهره و..  را به کامپیوتر منتقل می کنند.
در این حالت حسگرها به بدن حیوان و انسان نصب می شوند و موقعیت فضایی بخش های مختلف بدن به یک مدل رایانه‌ای منتقل می شوند. و به عبارتی باهم دیگر ست می شوند، حالا با تغییر موقعیت انسان یا حیوان مدل رایانه ای رفتار و حرکات آنها را تقلید می‌کنه.

این حسگرها می توانند حسگرهای بی سیمی یا سیمی باشند  که کمی کند عمل می کنند یا حسگرهایی باشند که با استفاده از دوربین های مادونقرمز عمل می کنند و ....

نمونه ابتدائی ورود اطلاعات حرکات بدن در فیلم زیر را مشاهده کنید، همچنین کد متلب به همراه دیتاست پیاده روی و دویدن انسان می‌توانید دانلود کنید.

 

۰ نظر موافقین ۰ مخالفین ۰ ۱۲ آذر ۹۸ ، ۰۱:۱۱
موسی حسن زاده
شنبه, ۹ آذر ۱۳۹۸، ۰۶:۵۱ ب.ظ

نحوه نوشتن پشته پروتکلی در متلب

نوشتن پشته پروتکلی، قانون خاصی  داره، دانستن این قانون ساده، خودش نصف مسیر!

برای این کار، باید ابتدا یک سرایند ایجاد کنید، سرایند در متلب اسم یک پوشه است که با علامت + شروع می‌شه، بعد در داخل این سرایند باید یک پوشه هم‌تام کلاس ایجاد کنید، سپس چند اسکریپت باز کرده و کد کلاس مربوط به هر لایه را در داخل اون میارید.

در پشته پروتکلی که خودم نوشتم،حدود 20 پروتکل اصلی اینترنت را در خودش داره، که از جمله می‌توان به پروتکل http, ip, icmp, tcp, udp ,... اشاره کرد، از یک سرایند تحت عنوان tcpIp استفاده کردم و چهار لایه کاربردی ، اینترنت، انتقال و لینک را در داخل اون پیاده‌سازی کردم.

شمای کله این پشته پروتکلی به شکل زیر:

 حالا در داخل هر یک از کلاس‌ها پروتکل‌های هر لایه در قالب توابع نوشته می‌شوند که برای نمونه می توان پروتکل dhcp را در دخل کلاس application به شکل زیر مشاهده کرد:
 

اما هر لایه یک تابع ورودی داره که معمولا به نام اون لایه inport اضافه می‌شه ، وظیفه این تابع بررسی اولیه پکت دریافتی از لحاظ نوع، محتوا و... هستش، سپس بر مبنای نتیجه حاصله، این تابع ، پکت ره به پروتکل‌های همان لایه یا به لایه بالاتر ارسال می‌کنه، زمانی که به لایه هدف رسید، که می تونه لایه لینک، اینترنت، انتقال یا هر لایه دیگه ای باشه، اون لایه بعد از ایجاد پاسخ اون را از همان مسیر به پایین ترین لایه ارسال می کنه تا در نهایت در اینترنت رها بشه و..
ولی وقتی قرار یک کامپیوتر یا گوشی پکتی را ارسال کنه هر لایه از طریق تابعی هم نام لایه + outport استفاده می‌کنه تا در نهایت به پایین ترین لایه برسه در این حین از طریق لایه لینک در اینترت رها می شه

 

در ادامه اجرای پروتکل tcp, http , icmp, arp را با استفاده از شبیه‌سازه netGate_nbo تحت این پشته پروتکل، در فیلم کوتاه زیر مشاهده کنین، حجم این فیلم 9 مگابایت..


یادآوری می‌شه که تمام شبیه‌سازی‌های مرتبط با شبکه کامپیوتر و امنیت در محیط این شبیه ساز که باز زبان متلب آن را توسعه دادم انجام می گیره...
برای سفارش پروژه های امنیت در شبکه‌های کامپیوتری می تونید با این شماره تماس بگیرید یا در واتس اپ و تلگرام پیام بدید 09147082079 

۰ نظر موافقین ۰ مخالفین ۰ ۰۹ آذر ۹۸ ، ۱۸:۵۱
موسی حسن زاده