مساعده ف الماتلاب


(mohamed777) #1
x=1.02254785;
y=fi(x,1,15,3);
error=(y-x)^2

فى ايرور بيطلع ف السطر الاخير بس مش عارف سببة اية ممكن تساعدونى ف حلة

تانى حاجة انا لو عامل فور لوب على مثلا x
مثلا

for x=1:10
for z=1:100
y=x*(z-1)
end 
end 

عايز ارسم x ,y
يعنى ارسم لما x 1 قيم الy
وهكذا بستخدم امر plot(x,y)
ولا فى حاجة تانية

شكرا مقدما


#2

بالنسبة للجزء الاول يمكن تنفيذه كما يلى

x=1.02254785;
y=fi(x,1,15,3);
z = y - x;
error=z.data ^2

والجزء الثانى يكون كما يلى

hold on
for x=1:10
for z=1:100
y=x*(z-1);
plot(x,y)
end 
end
hold off

(mohamed777) #3

شكرا لردك السريع
بس هتقل عليك شوية

هو الكود اللى باستخدم الحاجات دى فية

هو ده

clc;close all;clear all;
% n=4
for t=-pi:0.01: pi
    x=sin(t);
    figure;
        plot(t,x);
      hold on   
    grid on
    for ii=1:length(t)
               for n=1:10
    y=fi(x,1,(2^(n+1)),(2^(n/2)));
    figure;
       plot(t,y,'r');
    hold on
               end
   z = y - x;
error=z.data ^2;
figure;
plot(n,error)
hold on 
gride on 
    end
end

المفروض انى بارسم الشكل الاول و التانى و التالت كل واحد فى figure
بس المشكلة الاولى انة بيرسم كل نقطة فى شكل
تانى حاجة بيطلع ايرور

هو ده اللى المفروض الكود يعملة “” 1) Generate any signal , quantize it to 2^(n+1 )bits (Hint: search for the fi command) , assume 1 sign bit and the other bits are equally divided between the integer and the fraction part( n bits each).Draw the quantization error on the Y axis versus n bits on the horizontal axis , the quantization error is defined as( quantized value-true value).^2""

ااااسف انى طولت عليك اوى كده


#4

ضع الامر figure; خارج ال for
لانه عند كل مرة تنفيذ سيتم فتح figure جديد


#5

لقد قمت بعمل بعض التعديلات فى البرنامج

clc; close all; clear all;
% n=4
t = -pi : 0.01 : pi;
x = sin(t);
figure;
plot(t, x);
grid on 

for n = 1 : 10
    y = fi(x, 1, (2 ^ (n + 1)), (2 ^ (n / 2)));
end
figure;
plot(t, y, 'r');
grid on

z = y.data - x;
error=z.^2;  
figure;
plot(t, error)  
grid on

(mohamed777) #6

شكراا ليك
الحمد لله بعد اللى قولتهولى قدرت اضبط الشكل


#7

الحمد لله وبالتوفيق ان شاء الله فى دراستك
ونتمنى ان تشارك معنا فى المنتدى وتفيد الاخرين بما لديك


(mohamed777) #8

ان شاء الله


(mohamed777) #9

السلام عليكم شكرا لمساعدتك لى ف الكود ده

clc;close all;clear all;
n=5;
t=-pi:0.01: pi;
x=sin(t);
figure;
plot(t,x);
hold on
grid on
for ii=1:length(t)
for n=1:10
y=fi(x,1,(2^(n+1)),(2^(n/2)));
end
end
figure;
plot(t,y,‘r’);
hold on
grid on
z = y.data - x;
error=z.^2;
figure;
plot(t, error)
grid on

انا عملت فية حبة تعديلات بس بيطلعلى ايرور
التعديلات اللى عملتها انى خليت الn for 1 to 10
و حاولت احطها فى ماتريكس
بس طلعلى ايرور
انا اللى عايز اعملى
ان ال n تبقى متغير ب فور لوب
و الerror زى ما هو
بس اخر رسم يبقى مع n مش مع ال t
فى حاجة زياده لو تقدر تعدلهالى ف الفور لوب بتاعة ال n
المفروض بارسم plot(t,y,‘r’);
لو ينفع ارسم لما كل n يرسم كل واحده ف شكل يعنى n =1 فى شكل n=2 فى شكل لو ينفع

لو ما تقدرش تعملى التعديلات دى قولى ازاى تتعمل

شكرا مقدما …


#10

جرب الاتى


clc;close all;clear all;
n=5;
t=-pi:0.01: pi;
x=sin(t);
figure;
plot(t,x);
grid on

for n=1:10
y(n, :)=fi(x,1,(2^(n+1)),(2^(n/2)));
figure;
plot(t,y(n, :),'r');
grid on
z(n, :) = y.data(n, :) - x;
error(n, :) = z(n, :) .^ 2;
end


figure;
plot(error)
grid on