Haberler:

Foruma Resim Yükleme ve Boyut Sınırlaması ( ! )  https://bit.ly/2GMFb8H

Ana Menü

Matlab tanım aralığı.

Başlatan rooest, 17 Aralık 2012, 20:57:02

rooest

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?

berat23

nerde lazım bu fonksiyon? ona göre cevap vereceğim.

rooest

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.

berat23

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.

rooest

m(t) fonksiyonunu matlab içerisinde nasıl tanımlayabileceğimi/çizdirebileceğimi  bilmiyorum.

http://imageshack.us/photo/my-images/585/modfrek.png/


AsHeS

#5
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.

rooest

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.

AsHeS

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.

pisayisi

Sgn(x) kullanarak uygun şekilde zaman aralıklarını süperpoze ettiğinde istediğin fonksiyonu elde edebilirsin...

http://mathworld.wolfram.com/RectangleFunction.html
Murat

rooest

#9
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.

AsHeS

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.

rooest

Sanıyorum ödevin not getirisi yok, alttan aldığım için. Daha ziyade matlabı öğrenmek/ilerletmek için faydalı olacağını düşünüyorum.