شبیهسازی شبکههای کامپیوتری (متلب)
تابع تبدیل کد دسیمال به کد خاکستری
function GC = DecimalCode_To_GrayCode(Decimal_Code)
Binaty_Code = de2bi(Decimal_Code,’left-msb’,8)
GC(1) = Binaty_Code(1)
for i=2:length(Binaty_Code)
x = xor( Binaty_Code(i-1), Binaty_Code(i) )
GC(i) = x
end
end
مثال)
DecimalCode_To_GrayCode(6)
تابع پیدا کردن ماکزیمم مقدار یک آرایه
function [Max,In] = Maximum_Array(Array_Value)
In = 1
Max = Array_Value(1)
for i=2:length(Array_Value)
if Array_Value(i)> Max
In = i
Max = Array_Value(i)
end
end
ادامه
مثال)
Array = [2 5 0 1 8]
[Maximum_Value,Index] = Maximum_Array(Array)
تابع پیدا کردن مینیم مقدار یک آرایه
function [Min,In] = Minimum_Array(Array_Value)
In = 1
Min = Array_Value(1)
for i=2:length(Array_Value)
if Array_Value(i)< Min
In = i
Min = Array_Value(i)
end
end
مثال)
Array = [2 5 0 1 8]
[Minimum_Value,Index] = Minimum_Array(Array)
تابع محاسبه احتمال رخداد یک متغییر تصادفی
function [P] = Probability(Array_Value)
[Frequeny,Random_Variables] = hist (Array_Value, unique(Array_Value))
i=1
while ( i<= length(Random_Variables))
x(i,1)= Random_Variables(i)
x(i,2)= Frequeny(i)/length(Array_Value)
i=i+1
end
P = x
end
مثال)
Array = [10 10 20 30 30 40 40 50 50 50 50]
[P] = Probability(Array)
تابع محاسبه آنتروپی یک متغییر تصادفی
function [E_Detail,E_Total] = Entropy(Array_Value)
[Frequeny,Random_Variables] = hist (Array_Value, unique(Array_Value))
P = Frequeny/length(Array_Value)
for i=1:length(P)
E_Detail(i) = -(P(i).*log2(P(i)))
end
E_Total = -sum(P.*log2(P))
end
مثال)
Array = [10 20]
[E_Detail,E_Total] = Entropy(Array)
پاک کردن تمام عناصر یک آرایه
مثال)
Array = [1 2 3]
Array = []
پاک کردن تمام عناصر ستون دوم
مثال)
Matrix = [ 1 2 3;4 5 6;7 8 9]
Matrix(:,2) = []
ساختار حلقه For در متلب
for i=1:100
disp(num2str(i))
end
ساختار حلقه While در متلب
While (i<=10)
x = x + 1
end
ساختار سوئیچ در متلب
مثال)
switch i
case 1
x = x + 1
case 2
y = y + 1
otherwise
z = z + 1
end
تابع محاسبه نرخ عدم تطابق
function [MR] = Mismatch_Rate(Array_Value)
Count = 0
for i=1:length(Array_Value)-1
Count = Count + xor(Array_Value(i),Array_Value(i+1))
end
MR = (Count / length(Array_Value)) * 100
end
مثال)
Array = [1 1 1 0 1 0 1 0 1 0 1 1 1 0 0 0 1 1 0 0 0 1 1 1]
[Mismatch_Rate_Value] = Mismatch_Rate(Array)
بررسی میزان شباهت دو سیگنال
clear all
close all
clc
Y1=[0.06 0.13 0.15 0.29 0.31 0.42 0.54 0.51 0.54 0.52 0.44 0.37 0.13 0.03 0.01 0.06 0.28 0.50 0.69 0.59 0.39 0.25 0.20 0.09 0.01]
Y2=[0.09 0.11 0.11 0.22 0.40 0.49 0.56 0.54 0.53 0.56 0.48 0.32 0.18 0.13 0.13 0.19 0.30 0.40 0.64 0.51 0.35 0.22 0.11 0.02 0.01]
Y1_Sum = cumsum(Y1)
Y2_Sum = cumsum(Y2)
for i=1:25
a = Y1_Sum(i)
b = Y2_Sum(i)
if b>a
d(i)=diff([a,b])
else
d(i)=diff([b,a])
end
end
figure;
plot(Y1,’blue’);
title(‘Data’)
hold on
plot(Y2,’red’);
hLegend=legend(‘Y1′,’Y2′);
hLegend.Position = [0.15 0.815 0.1 0.1]
figure;
plot(Y1_Sum,’blue’);
title(‘Cumulative Values’)
hold on
plot(Y2_Sum,’red’);
hLegend=legend(‘Y1′,’Y2’);
hLegend.Position = [0.15 0.815 0.1 0.1]
format longg
disp(1-max(d))