Picproje Elektronik Sitesi

SERBEST BÖLGE => Bilim Teknik => Matlab => Konuyu başlatan: rooest - 17 Aralık 2012, 20:57:02

Başlık: Matlab tanım aralığı.
Gönderen: rooest - 17 Aralık 2012, 20:57:02
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?
Başlık: Ynt: Matlab tanım aralığı.
Gönderen: berat23 - 17 Aralık 2012, 21:07:18
nerde lazım bu fonksiyon? ona göre cevap vereceğim.
Başlık: Ynt: Matlab tanım aralığı.
Gönderen: rooest - 17 Aralık 2012, 21:33:43
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.
Başlık: Ynt: Matlab tanım aralığı.
Gönderen: berat23 - 17 Aralık 2012, 23:46:17
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.
Başlık: Ynt: Matlab tanım aralığı.
Gönderen: rooest - 18 Aralık 2012, 01:56:39
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/)

Başlık: Ynt: Matlab tanım aralığı.
Gönderen: AsHeS - 18 Aralık 2012, 02:45:36
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.
Başlık: Ynt: Matlab tanım aralığı.
Gönderen: 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.
Başlık: Ynt: Matlab tanım aralığı.
Gönderen: AsHeS - 18 Aralık 2012, 03:03:02
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.
Başlık: Ynt: Matlab tanım aralığı.
Gönderen: pisayisi - 18 Aralık 2012, 12:07:53
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)
Başlık: Ynt: Matlab tanım aralığı.
Gönderen: 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.
Başlık: Ynt: Matlab tanım aralığı.
Gönderen: AsHeS - 19 Aralık 2012, 00:38:22
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.
Başlık: Ynt: Matlab tanım aralığı.
Gönderen: rooest - 19 Aralık 2012, 10:36:04
Sanıyorum ödevin not getirisi yok, alttan aldığım için. Daha ziyade matlabı öğrenmek/ilerletmek için faydalı olacağını düşünüyorum.