F fonksiyonumuz:
t0 < t < 2*t0 aralığında --> 3
2*t0 < t < 4*t0 arlığında --> 1
diğer durumlarda --> 0
değerini almakta. Biz böyle bir fonksiyonu matlabta nasıl oluşturabiliriz?
nerde lazım bu fonksiyon? ona göre cevap vereceğim.
Bahsi geçen fonksiyon 'm(t)' bilgi işareti ve bu fonksiyon ile c(t) fonksiyonu modüle edilecek.
m(t), c(t) ve modüleli işaret s(t) zaman düzleminde çizdirilecek.
matlab ayrık zamanda çalışıyor doğal olarak,bu durumda sizin bu veriyi örneklenmiş haliyle yazmanız lazım mesela t0=1000 gibi.bu şekilde bir t vektörü tanımlayıp istediğiniz değerlerini değiştirebilirsiniz.
mesela
t=linspace(0,3*to,3*to);
dediğiniz zaman bildi vektörünüz oluşur.
t(0:to,1)=3;
t(to+1:3*to,1)=1;
bu yazdıklarımda istediğiniz değerleri atar.indisin 0dan başlamasına takılmayın,çizerken istediğiniz gibi değiştirsiniz.bence matematiksel olarak ne istediğinizi detaylıca yazın,ben matlaba dökerim.
m(t) fonksiyonunu matlab içerisinde nasıl tanımlayabileceğimi/çizdirebileceğimi bilmiyorum.
http://imageshack.us/photo/my-images/585/modfrek.png/ (http://imageshack.us/photo/my-images/585/modfrek.png/)
mt fonksiyonu sadece ilk elemanı 1 oluyor 0.0001 s aralıklarla bakılırsa 0.15 ms değeri sadece 1 kere gerçekleşiyor.
clc;
clear;
fs=10^4;
t=0:1/fs:0.1;
for i=1:size(t,2)
if t(i)<0.05*10^-3
mt(i)=1;
elseif t(i)>=0.05*10^-3 &&t(i)<0.1*10^-3
mt(i)=-2;
else
mt(i)=0;
end
end
for i=1:size(t,2)
x=0;
for a=1:size(t,2)
x=x+mt(a)*(1/fs);
if t(a)>=t(i)
break;
end
end
ut(i)=cos(2*pi*200*t(i)+2*pi*50*x);
end
plot(t,ut);
Eğer t0=0.15 msn kabul edilirse mt(1)=1 olur diğer elemanlar 0 a tekabül eder.
Sanıyorum örnekleme aralığından kasıt 0.0001 sn değil, 0' dan 0.15' kadar 0.0001 aralıklarla örnekleme.
Yani 0 ile 0.15 arasında 1500 değer. Tabi yanılıyor da olabilirim.
Alıntı yapılan: rooest - 18 Aralık 2012, 03:01:24
Sanıyorum örnekleme aralığından kasıt 0.0001 sn değil, 0' dan 0.15' kadar 0.0001 aralıklarla örnekleme.
Yani 0 ile 0.15 arasında 1500 değer. Tabi yanılıyor da olabilirim.
200 Hz gibi düşük değerde 0.15 ms zamanlama pek iş yapmaz çünkü bir periyot bile yaklaşık 0.5 ms bir periyodu bile bitirmez.
Sgn(x) kullanarak uygun şekilde zaman aralıklarını süperpoze ettiğinde istediğin fonksiyonu elde edebilirsin...
http://mathworld.wolfram.com/RectangleFunction.html (http://mathworld.wolfram.com/RectangleFunction.html)
Hepinize teşekkürler.
AsHeS hocam sizin kodunuzda
if t(i) < 0.05 * 10^-3 yerine
if t(i) < 0.05
yazarak m(t) yi oluşturup grafiğini çizdirebildim. Çok sağolun.
Alıntı yapılan: rooest - 18 Aralık 2012, 22:59:52
Hepinize teşekkürler.
AsHeS hocam sizin kodunuzda
if t(i) < 0.05 * 10^-3 yerine
if t(i) < 0.05
yazarak m(t) yi oluşturup grafiğini çizdirebildim. Çok sağolun.
Hocanızın verdiği değerleri msn olarak değilde sn cinsinden değerlendirirseniz fm modülatör kodu olarak çalışıyorda hocanız bunu kabul eder mi onu bilemem.
Sanıyorum ödevin not getirisi yok, alttan aldığım için. Daha ziyade matlabı öğrenmek/ilerletmek için faydalı olacağını düşünüyorum.