google it!

9.06.2010

Konvolusyon (Convolution)



   Merhaba saygideger gencler,

  Elektronik ve haberlesme muhendislerinin onune sicak haliyle sunulan ve sogumasi beklenmeden yenen, dolayisiylada agizlari yakan bir kavram: konvulusyon hakkinda konusalim birazda. Ancak oncesinde birkac hatirlatma yapalim. Birim impuls fonksiyonu hakkinda daha once yazmistim. Haberlesmede veya kullandigimiz devrelerde impuls cevabi diye bir kavram vardir. Isminden de anlasilacagi gibi bu kavram bir harekete cevaptir, karsiliktir. Daha acik olmak gerekirse impuls cevabi bir sisteme birim impuls darbesi verdiginizde (giris olarak) alacaginiz cikistir. Seklen gosterelim;
Yukarida ki sekilde sisteme (biz daha cok bunu bir kanal olarak algilayalim keza bakir kablo,fiberoptik kablo, hava neyin olabilir.) Bu birim impulsu kanala verdigimizde elde ettigimiz kanal cikisi bize kanalin karakteristigi ile ilgili bilgi verir. Ornegin bir kutunun solundan bir kagit koyup sagindan almak isteyelim. Kagidi koyduktan sonra aldigimizda bir de bakiyoruz ki kagit islanmis. O zaman ne deriz kutunun icinde sivi bir madde var deriz. Gordugunuz gibi kagit kutu hakkinda bize bir fikir verdi ve boylece bir daha ki sefere ayni kutuya kagidi naylon poset ile koyariz. Iste h(t) ile gosterdimiz impuls cevabi bize kanalin zaman domenindeki karakteristigi ile bilgi verir. Eger frekans domeninde calisiyorsak h(t) nin Fourier transformunu aliriz ve kanalin hangi frekans araliklarina nasil tepki verdigini gorebiliriz.

δ(t – τ) bize birim basamak fonksiyonunun t = τ da 1 degerini aldigini geri kalan her yerde ise 0 (sifir) oldugunu gosteriyor. Oyleyse sisteme ya da kanala t aninda degilde t – τ aninda birim impuls verirsek cikistada h(t – τ) yu gozlemleriz. Neden? Cunku t nin τ dan farkli oldugu her zaman araliginda h (impulse cevabi) 0 (sifir) olacaktir. Bunu da soyle gosterelim;

Peki kanala her zaman birim impuls mu verecegiz? Tabiiki hayir bir bilgi tasiyan bir dalgaformu verebiliriz. Mesela bir kare darbe ya da sinusoidal verebiliriz. Bu dalgaformuna u(t) diyelim. Bu u(t) nin  t = τ  aninda alacagi deger u(τ) ile gosterilir.

Yukaridaki sekilde gordugunuz gibi u(τ) yu kanala birim impulse ile verdigimizde alicida impulse cevabinin τ anindaki degeri ile carpimini elde ediyoruz. Simdi her iki tarafinda integralini dt zaman sabitine gore –∞ dan +∞ a kadar alirsak ve δ(t – τ) = δ(τ – t)  esitligini goz onune alirsak sunu elde ederiz;

Birim impulsla ilgili yazimda eleme ozelliginden bahsetmistim. Hatirlatma acisindan tekrar vereyim;
 
Dolayisiyla kanala verdigimiz girisi u(t) ile gosterebiliriz. Ustteki sekli onun ustundeki seklin sol tarafinin nasil u(t) olacagini gormeniz acisindan verdim. Son haliyle artik;
           
sekilde de goruldugu gibin kanal cikisi icin iki farkli kalbe ancak ayni ruha sahip integral soz konusudur. Bu integrallere konvolusyon integrali denmektedir. Bu integraller bize su atasozunu hatirlatmaktadir;
 Bana kanal impulse cevabini soyle sana cikisin ne oldugunu soyleyeyim!
Konvolusyonun genel gosterimi u(t)*h(t) ya da h(t)*u(t) seklindedir. Aradaki isaret carpi degil yildizdir.

  Devam edecek...

Kaynak: Signals and Systems with Matlab Computing and Simulink Modeling Steven T. Karris

13.04.2010

Analog vs Digital 2

    Analog vs Digital konusuna devam ediyoruz...

  Evet nicemleme sonucu bir kayıp oluşuyor ancak bazı kriterleri yerine getirdiğimizde bu kayıptan ihmal edilebilecek kadar sıyrılabiliyoruz. Bunların hepsine ileride yazacağım sayısal haberleşme yazılarımda değineceğim. Ancak alıcıda mesaj sinyalinin kestirimi yazmamıza sebep olan durumlardan biriside bu nicemleme kaybı ya da nicemleme gürültüsü dediğimiz hadisedir. Analogtan dijitale dönüşümde bir sonraki adım ise kodlamadır. Nicemleme sonucu oluşan seviyeleri belli bir algoritma ile bit dizisine çeviririz. Bu işlemler sonucunda artık elimizde "discrete time" dediğimiz ayrık zamanlı bir bilgi bulunmaktadır. Bu bit dizisini modüle edip direkt kanala verebiliriz ya da üzerinde bazı işlemler yapabiliriz. Neler yapabiliriz peki?


  Mesela fazlalıkları atabiliriz. Bunu şöyle örneklendireyim. Mesela elimizde bir bilgi var ve bu bilginin dijital dönüşümü olarak elde ettimiz 0100110 şeklinde bir dizi var. Enformasyon teorisini kullanarak bu bilgi için gereken ölçüyü alırız ve bu diziden ölçtüğümüz değerin dışında kalan fazlalığı atarız. Buna da "source coding" yani kaynak kodlama diyoruz. Pek anlayamadığınızı hissediyorum ancak fazlalığı attığımızı, sıkıştırma yaptığımızı bilin, bu konuya da ilerleyen zamanlarda detaylı değineceğim. Şu an konumuz bu değil.

 
  Yapabileceğimiz diğer bir işlem ise "channel encoding" yani kanal kodlama diyoruz. Kanal kodlama da ise bit dizisine bir fazlalık atarız. Peki bu fazlalığı neden atarız? Cevap: Kanaldan ya da iletim sırasında ki herhangi bir durumdan kaynaklanan gürültünün etkisini azaltmak için. Buna da şöyle bir örnek vereyim, Diyelimki duvara sert bir yumruk atacaksınız ancak elinizde çok ince bir eldiven var. Bu durumda eliniz baya bir tahrip olacaktır ancak eldivenin kalınlığını arttırırsanız eliniz daha az tahrip olur. Umarım bu örnek siz sevgili okurlarıma bir fikir vermiştir.

  
   Şimdi analog ile dijital haberleşmeyi karşılaştıracak olursak, anladığınız üzere dijital ya da sayısal dediğimiz haberleşme sisteminde baya bir karmaşık elektronik devre gereksinimi vardır. Ancak bu günümüz teknolojisinde sorun değildir. Çünkü silikon çiplerin kullanıldığı VLSI (very large scale integrated) devreleri üzerinde bu işlemleri yapmamıza olanak sağlamaktadır ve ayrıca maliyeti ise çok fazla değildir (birazcık fazladır:)). Hakkaten de yarı iletken teknolojisinin gelişmesiyle birlikte sayısal haberleşme, analog haberleşmeden daha maliyet-verimlidir.

  
  Haberleşmenin bir de tipi vardır arkadaşlar. Örneğin bir sinyal bir vericiden bir çok alıcıya yayın yapabilir ki buna "broadcasting" denir. Bu durumda bilgiyi taşıyan sinyal sadece tek yönlüdür yani alıcılardan vericilere doğru bir kanal yoktur. Televizyon ve radyo yayınları böyledir mesela. Diğer bir tip ise sadece bir tane alıcının ve birden çok vericinin olduğu durumdur. Bu durumda vericiler aynı alıcıya bilgi taşıyan sinyali gönderirler. Bunada "Multi access" yani çoklu erişim diyebiliriz. Buna örnek olaraksa bir mobil hücrede kullanıcılardan yani cep telefonlarından baz istasyonuna olan akışı gösterebiliriz. Bir diğer tip ise noktadan noktaya dediğimiz "point to point" haberleşmedir. Burada bir verici ve bir alıcı arasında karşılıklı bilgi alışverişi yapılabilmektedir. 

  
   Yukarıda ki resimde ki robotun adı "Pathfinder" yani yol bulucudur. Bu robot NASA tarafından tam Amerika nın bağımsızlık günü (bizim cumhuriyet bayramı gibin) olan 4 Temmuz da Mars a araştırma ve incelemeler yapılmak üzere indirildi. Bu robot Nasa nın yeryüzünde ki birimiyle point to point haberleşme yapar. Mars ile dünya arasında baya bi uzaklık var. Bu tarz bir uzaklık için de en uygun haberleşme çeşidi sayısal haberleşmedir. Aşağıda ki resimde de bu robota direktif gönderen ve bilgi alan Nasa nın Avustralya nın Canberra şehrinde bulunan, 70 metre çapında  (aynen öle) halk diliyle çanak, jargonda parabolik reflektör antenini görüyorsunuz. Vay anasını demi :)) Bu anten aynı zamanda Nasa nın uzayda faaliyet gösteren robotik birimleriyle haberleşmek için kullandığı antenidir. Sadece pathfinder için kullanılmıyor yani. 

  

      Bugünlük bu kadar arkadaşlar. Bilmeniz gereken şu; evet dijital haberleşme biraz daha pahalı olabilir ama size muhteşem ekstralar sunar. Örneğin sinyal işleme dediğimiz kavram analog haberleşme de çok kısıtlıdır ancak sayısalda çok geniş imkanlar sunar. Sinyalinize takla attırır hatta amuda bile kaldırttırırsınız. Ayrıca sinyal işleme ile işaretinizi gürültüye daha dayanıklı hale de getirebilirsiniz.

 Kalin saglicakla...
 Kaynak: Signals and Systems, 2nd edition. Simon Haykin, Barry Van Veen







11.04.2010

Analog vs Digital

    Bu yazıyı dikkatlice okuyup muhasebesini yaptığınızda analog ve dijital haberleşme sistemleri hakkında yüzeysel de olsa bir fikriniz olacaktır. Hemen başlayalım. Haberleşme sistemi adlı yazımda bir haberleşme sisteminin verici, kanal ve alıcıdan oluştuğundan bahsetmiştik. Haberleşmeye başlamadan önce elimizde bir ses olur video olur, iletilecek bir dalga formu vardır. Kafamızda canlanması açısından çöyle bir sinyali gönderecek olabiliriz;

 Bu şekilde gördüğünüz bir ses sinyalidir arkadaşlar. Şimdi analog haberleşme yapacaksak eğer, vericide bir modülatör olacak ve bu modülasyon yapacak, modüleli sinyal kanala verilecek, ardından alıcı demodülasyon yaparak tekrar bu orjinal sinyali yakalamaya çalışacak. Modülasyon nedir önce buna açıklayalaım. Türkçeye birkaç kaynakta kipleme diye çevrilmiş ancak açıkçası hiç çevrilmeseymiş daha iyi olurmuş dedirten bir çeviri kanımca. Biz türkçesi üzerinde değilde ne anlama gelir ona bakalım. Bu yukarıdaki ses sinyalini yani mesaj sinyalini, kanalın iletim karakteristiklerine uyum sağlayabilecek bir dalga formuna çevirme işlemine modülasyon diyoruz. Şöyle günlük hayattan örnek verelim; diyelimki teflon bir tavanız var ve çizilmesini istemiyorsunuz. Ancak elinizde metal bir çatal var ve kullanmak zorundasınız. Ancak kullanırsanız tava çizilecek. Onun için çatalı modüle edip üzerine plastik ya da teflon kaplıyorsunuz ve böylece çatalınızı kullanıyorsunuz ve tavanızıda çizmiyorsunuz. İşte modülasyon böyle bir şey. Modülasyon sonucu oluşan iletilecek sinyali,  bir sinusoidal taşıyıcının genlik, frekans ve açısında ki değişimlere bağlı olarak gösteririz.

                                                                                                                     
 Bunlardan hangisini kullandığımıza göre modülasyonu; Genlik modülasyonu veya Frekans modülasyonu ve ya Açı modülasyonu diye ifade ederiz. Modüle edilen sinyal kanaldan geçip bir miktar gürültü ve girişim yedikten sonra, nevri dönmüş bir şekilde alıcıya gelir. Alıcı da bu zavallıyı kabul etmekle kalmaz, bir silkeler yedirir içirir giydirir ve sahibine teslim eder. Her modülasyon çeşidinin kendine göre avantajları ve dezavantajları vardır. Bunlarıda ilerde bu konuları işlediğimizde göreceğiz.

  Dijital haberleşme sistemleri ise biraz daha karmaşıktır ama daha fonksiyoneldir. Eğer elimizde ki sinyal analog formdaysa ve dijital haberleşme yapmak istiyorsak önceliklen bu sinyali dijital hale getirmemiz gerekir. 3 aşamada bu işin üstesinden geliriz;

    1. Sampling (Örnekleme)
    2. Quantization (Nicemleme)
    3. Coding (Kodlama)

  Sürekli bir eğri düşünün, atıyorum -10 ile 10 aralığında süreksizlik noktası yok yani hep bir değer alıyor. Böyle bir eğri analogdur. Şimdi diyelimki ben bu eğrinin -7.2, -5, -2.3, 3.1, 4.6 ve 9.4 teki değerlerini almak istiyorum ve de alıyorum. O zaman ben ne yapmış olurum bu eğriden örnekler almış olurum yani örnekleme yapmış olurum. Fark ne? İlk başta -10 ile 10 arasında ki sonsuz sayıda reel değerim varken şimdi sadece 6 tane değerim var. (6 az olabilir ancak anlaşılması açısından bu şekilde olsun) Sonrada diyorum ki örnek aldığım noktalardaki değerleri inceleyeyim. Bu değerlerden 5 in altında olanlara 0 diyeyim ve 5 in üstünde olanlara 1 diyeyim. Hemen bakalım;

 Şimdi bu mavi noktalara değerler verelim.(kafadan atıyorum) 6.9, 1.2 , -7, 3.4, 7.1, -1.5 olsun mesela. O zaman diyorumki bunun nicemlenmiş şekli (5 den büyük mü küçük mü?) 100010 şeklinde olacaktır. Gördüğünüz gibi -10 ile 10 arasındaki deve sırtı olan acayip eğriyi 100010 şeklinde, 1 ve 0 lardan oluşan digit ler yani rakamlar şeklinde ifade ettim. Adının dijital haberleşme olmasıda burdan geliyor zaten. Burada sorulması gereken soru örneğin; 6.9 değerini 5 e çektim, burada 1.9 luk bir kayıp olmadı mı? Cevap veriyorum: OLDU :)) Peki şimdi ne olacak? 

  Biraz merak edin arkadaşlar, ben yoruldum, bir sonraki yazımda akıllarda kalan soru işaretlerini noktaya çevireceğiz!
  Arrivederci!

 Kaynak: Signals and Systems, 2nd edition. Simon Haykin, Barry Van Veen
 Ses sinyali: www.egr.msu.edu/.../group12/media/soundwave.png


 


     

9.04.2010

Haberleşme Sistemi

             Herkese Merhaba,

    Arkadaşlar uzun bir ara verdim ancak tekrar sizlerleyim. Bu arada ben mezun oldum, işsiz oldum biraz da stres oldum, dolayısıyla blogla pek ilgilenemedim ancak şu an gaza gelmiş bir biçimde tekrar yazıyorum. Blogda her ne kadar konuları sırayla vermek istesemde bazen bu mümkün olmayacak gibi gözüküyor ancak istediğiniz konuya içerik zenginleştikçe arşivi inceleyerek ulaşabileceğinizi düşünüyorum. Herneyse kaldığımız yerden devam edelim.

    Haberleşme teorisine geçmeden önce sinyal, sistem ve haberleşme sistemi ne anlama gelir bunları inceleyelim. Öncelikle sinyale bir tanım uyduralım. Bilgi içeren herşey sinyaldir sevgili arkadaşlar. Örneğin odanızda oturuyorsunuz ve burnunuza soğan kokusu geldi. İşte bu koku bir sinyaldir ve taşıdığı bilgi ise mutfakta ya da yakınlarda bir yerde soğan olduğudur. Yada babanız annenize sofrayı hazırlaması için direktif verir işte bu ses dalgaları da sinyaldir ve içerdiği bilgi babanın e karnının acıktığıdır. Ya da araba kullanıyorsunuz ve sağa döneceksinizdir. Ön ve arkada sağ taraftaki lambalar yanıp söner. Bu da bir sinyaldir :)) ve içerdiği bilgi ise bu aracın birazdan sağa döneceğidir. Anlaşılacağı üzere bir sinyalin en önemli özelliği bilgi taşımasıdır. Birkaç örnek daha;
 
  -Bir hastanın kalp atış diyagramı ya da kan basıncı doktora bilgi sağlayan sinyallerdir
  -Radyodan veya internetten yahut tv den dinlediğimiz ya da izlediğimiz hava durumu verileri bizler için dışarımı çıksak ya da evde mi kalsak diye karar verdirttiren bilgi taşırlar, bunlar da sinyaldir yani.

   Bir de sinyaller tek değişken içerikli bir bilgi taşıyorsa yani taşıdığı bilgi tek bir değişkene bağlıysa (örneğin sadece cm) o zaman bu sinyal tek boyutludur. Örneğin bir ses sinyali tek boyutludur çünkü genliği,söylenilen kelime ve söyleyen kişiye bağlı olarak zaman değişkeninin değişimine bağlı olarak değişir. Ama sinyal iki veya daha fazla değişkene bağlı ise o zaman sinyalimiz multi-dimensional dir yani çok boyutludur. Buna örnek olarakta resimleri gösterebiliriz.

   Sinyalin ne olduğunu anladıktan sonra bir de sistemin ne olduğunu anlayalım. Şimdi sistem dediğimiz kavram bir kere bilgi taşıyor dediğimiz sinyalleri alıp işleyip ileten ya da alıp direkt ileten bir olgudur. Mesela örnek verelim. Bir haberleşme sisteminde bir verici vardır, kanal vardır, birde alıcı vardır. Bu bir sistemdir. Bir uçak iniş sisteminde sisteme giren sinyal inilmek istenilen pistin bilgisini taşır, uçak burda sistemdir ve bu bilgiyi alıp işler ve çıkış sinyali ise uçağın o pistin tam ortasına çekilen çizgiyi ortalayıp ortalamadığının doğruluğudur. Örneğin bir ses tanımlama sisteminde giriş sinyali kişinin sesidir. Sistem bilgisayardır, çıkış sinyali ise o kişinin kimliğidir. Şunu da şiddetle eklemek istiyorum sistemler zamanla değişirler. Örneğin adaptive dediğimiz yani uyum gösteren sistemler vardır. Bunlar sürekli döneklik yaparlar ve nabza göre şerbet verirler. Örneğin hamile bir bayanın karnındaki bebeğin kalp atışlarını resmetmek istiyoruz. (EKG olsa gerek) . Neyse, bu durumda göğüse takılan objeleri (adlarını bilmiyorum) bebeğe takamayacağımıza göre anneye takmak zorundayız. Dolayısıyla çıkış sinyalimiz anne+bebek+gürültü (pirizden gelen,kablodaki elektronlar titreşince termal gürültü oluşuyor,ilerde bahsedeceğiz) olacak. Bizim istediğimiz çıkış sadece bebekti ancak. Bu durumda sistem adaptive olur ve dolayısıyla zamanla uyum göstere göstere gürültüyü tanır, anneyi tanır ve çıkış sinyalinden bunları çıkarır ve sadece bebeğin sinyalleri elde edilir. Sadece sistemin zamanla değişebileceğini anlamanız açısından kabaca bahsettim umarım anlatabilmişimdir.

    Şimdi bir haberleşme sistemi hangi bileşenlerden oluşur, haberleşme nasıl yapılır bunları inceleyelim.

  Şimdi bu haberleşme sistemi temeli yukarıda ki şekilde olduğu gibidir. Bir verici vardır uzayda herhangi bir yerde konumlanmış, daha sonra ise fiziksel bir ortam vardır ki buna kanal diyoruz. Bu kanal ilettiğimiz mesajın taşındığı ortamdır. Ondan sonra ise bu mesajı bekleyen birileri olmalıdır. Bu birimede alıcı diyoruz, bu da vericiden farklı bir yerde konumlanmıştır. Dikkat ederseniz alıcıdan sonra "mesaj sinyalini kestirimi yazdık". Neden mesaj sinyali yazmadık ta kestirimi yazdık? Çünkü arkadaşlar kanala verdiğimiz sinyal bir takım etkilere maruz kalıp tahrip oluyor. Yani orjinalinden bazen tamamen sapıyor bazen biraz sapıyor. Bu durumda aldığımız sinyale mesaj sinyali diyemeyiz. Bir nesnenin benzerine o nesne diyebilirmiyiz, hayır. İşte alıcıda kanaldan gelen sinyali inceliyor ve belli bir algoritmaya dayanarak bunun orjinali olsa olsa şöledir diyor ve son kararını veriyor. Şimdi arkadaşlar neden böle bir durum oluyor onu anlatalım. Mesaj sinyalinde ki tahribat rastgeledir. İlerde rastsal dediğimiz süreçlere de deyineceğiz. Bu süreçleri Olasılık bilim dalıyla inceliyoruz. Orjinal mesaj sinyalini ya da kanala verilen asıl sinyali tahrip eden gürültü rastgele olduğu için, bu gürültüden kurtulmak için bu gürültünün olasılık dağılım fonksiyonunu bilmemiz gerekir ki tahrip edilmiş sinyalden gürültüyü arındıralım. Yani olası bir durumu incelediğimiz için alıcı çıkışına mesaj sinyali değilde mesaj sinyalinin kestirimi dedik.

  Burada mesaj sinyali bir ses sinyali olabilir ya da bir televizyon sinyali olabilir. Vericiye gelen bu sinyal kanala göre uygun bir forma çevrilir ve kanala verilir. Kanal hava, fiberoptik, koaksiyel kablo, uydu kanalı ya da gezgin haberleşme kanalı olabilir. Herbirin kanalın kendine özgü karakteristikleri vardır. Kanaldan çıkan yukarıda "alınan sinyal diye ifade ettiğimiz" sinyal kanalın olumsuz etkisinden ya da diğer kaynakların sebep olduğu girişimden dolayı bozulmuş olabilir. (Bu girişim olayı kafanızı karıştırcak biliyorum ilerde ayrıntılandırıcaz ancak şöyle düşünün. Bir italyan bakkal üst kattaki evinde bulunan oğluna Antonio diye sesleniyor. Tam o seslendiği sırada bakkalın yanındaki kasap karısına Francesca diye bağırıyor. Bu iki seside duyan Antonio duyduğu sesi Frantonio diye düşünüyor. Kendisine seslenilmediği kararnı veriyor. :))) Böylece babasının ses sinyalleri çöpe gidiyor. ) Devam edelim. İşte bu noktada alıcı bu tahrip olmuş sinyalden bir takım işlemlerle orjinaline en yakın kesitirimi yapıyor.

  Bir sonraki yazımda haberleşme sistemlerinin mimarisinde rol oynayan iki kavram üzerinde duracağız; analog versus digital! Görüşmek üzere...

Kaynak: Signals and Systems, 2nd edition. Simon Haykin, Barry Van Veen

6.03.2010

Temel Sinyaller ve Matlab

        Herkese Merhaba,

  Bu yazımda sizlere birim basamak ve birim impuls (ya da Dirac) fonksiyonunu Matlab da nasıl temsil edebileceğimizi anlatacağım. Öncelikle birim basamak fonksiyonunundan başlayalım. Hatırlarsanız eğer, birim basamak fonksiyonu zaman ekseninde 0 (sıfır) noktasından dan önce sıfır, sonrasında ise 1 değerini alıyordu. Matlab da bulunan heaviside(x) fonksiyonu da x < 0 durumunda 0 değerini, x > 0 durumunda ise 1 değerini alıyor. Aslında bu fonksiyon tam olarak birim basamak fonksiyonuna karşılık değildir, bir diziyi birim basamak cinsinden elde etmemizi sağlar. Bir Matlab örneği ile pekiştirelim;
    Gördüğünüz gibi x değerinin 0 dan küçük olması durumunda 0 üretirken, 0 dan büyük olması durumunda 1 üretiyor. x diye bir dizi tanımlayalım ve birim basamak cinsinden ifade edelim;
 
    Yukarıda ki şekilde öncelikle -10 ile 10 arasında 0 da dahil olmak üzere toplam 21 elemandan oluşan bir dizi oluşturdum. Bu dizi bizim şeklimizde yatay eksenimiz olacak. Daha sonra y dizimize rastgele kafadan değerler atadık ki bunlarda bizim düşey eksendeki değerlerimiz olacak. Kullandığımız stairs(x,y) çizim komutuyla y eksenindeki değerleri düz çizgilerle, merdiven basamakları gibi birleştireceğiz. Hatırlarsanız eğer axis komutuda x ve y eksenini içine girdiğimiz değerler çerçevesinde sınırlandırıyor. Bu komutu çalıştırırsak şu şekli elde ederiz;

 
  Bir de Matlab da ki komutumuza heaviside(y) komutunu ekleyelim ve tekrar çizdirelim;

 
     Gördüğünüz gibi birim basamak cinsinden ifade etmiş olduk yukarıda ki y dizimizi. Özetle negatif değerleri 0 a, pozitif değerleri 1 e çektik. Birim impuls ya da biz ona dirac diyelim, Matlab da dirac(t) biçiminde ifade edilir. Dirac ı da kısaca hatırlayalım; dirac(t) demek, t nin 0 a eşit olmadığı heryerde 0 iken sadece t=0 da Inf (infinite) yani sonsuz genlikli ayrıca alanı bir ve 0 genişliği olan bir impuls demektir. Bu fonksiyonla ilgili örnek için Matlab Help i kullanabilirsiniz. Bir sorun olursa mail yoluyla haberleşebiliriz. Görüşmek üzere hoşçakalın...

2.03.2010

Temel Sinyaller-Birim impuls

            Herkese Merhabalar,


      Bu yazımda daha çok örnekleme yaptığımız durumlarda, yani sürekli bir olay içerisinden bir değeri çekip almak istediğimizde kullandığımız birim impuls fonksiyonunu inceleyeceğiz. Ne demek istediğimi anlayacaksınız. Hemen başlayalım...
     
      Öncelikle bu fonksiyonun matematiksel resmi, δ(t) şeklindedir. Bu fonksiyon t=0 durumunda sonsuz genlikli bir değer alırken diğer her t değerinde sıfır (0) dır. Bu durumu şu şekilde gösterebiliriz

   Birim impuls fonksiyonu aynı zamanda birim basamak fonksiyonunun türevidir. Şimdi Steven amcam bu fonksiyonu daha iyi anlamamız için şöle anlatmış hemen bende size nakledeyim. 
 
     Bu yukarıda ki şeklin a kısmında ε değeri sıfıra yaklaştıkça, şekil birim basamak fonksiyonu şekline geliyor. b deki şekil ise a da ki şeklin türevidir. ε → 0 a gittikçe, 1⁄2ε değeri sınırsızlaşıyor yani yukarı doğru çıkıyor ancak alanı hep sabit, yani 1 kalıyor. Bu sebepten ötürüdür ki limit açısından düşündüğümüz de, δ(t) orijin noktasında genliği sonsuz, genişliği sıfır ve alanı 1 olan çok büyük bir impulse şekline dönüşüyor. Birim impuls fonksiyonunun çok kullanışlı iki özelliği vardır. Bunlardan biri örnekleme ve diğeri eleme (unu elekte elemek gibi) özelliğidir.

     Birim impulse fonksiyonunun örnekleme özelliğinden önce şunu iyi anlamamız lazım arkadaşlar. δ(t–a) bize ne demek istiyor. Bu ifade t-a=0 yani t=a da birim impulse fonksiyonunun 1 olduğunu diğer bütün noktalarda ise 0 olduğunu belirtiyor. Dolayısıyla, eğer;
f(t)δ(t–a)
biçiminde bir ifadenin t=a da değer alacağını ve diğer bütün t değerlerinde 0 değerini alacağını görebilmemiz gerekir. O zaman madem t=a da bu ifade değer alıyor ve birim impulsun değeri 1, o zaman bu değer f(.) nin t=a da ki değerini alacaktır, yani f(a) olacaktır. Bu durumda 
f(t)δ(t–a) = f(a)δ(t) 
şeklinde olacaktır ve bu birim impulsun örnekleme özelliğidir. Diğer bir değişle, f fonksiyonundan t=a anında bir örnek aldığımızı göstermek için f(t)δ(t–a) ifadesini kullanırız. a=0 olduğunda bu ifade
f(t)δ(t) = f(0)δ(t)
biçimine gelir. İlerleyen yazılarımda bahsedeceğim ayrık zamanlı sistemleri tanımlamak için de hep bu gösterimi kullanacağız, aklınızda bulunsun, önemsiz deyip geçmeyin lütfen. Ayrıca bu özelliğin birde ispatı var. Eğer ilgilenenler olursa mail atabilirsiniz ya da yorum yazarak ilginizin çeşidini ifade edebilirsiniz.

   Diğer özelliğimiz eleme özelliği ise şöyledir; herhangi bir fonksiyonu diyelim ki f(t) olsun, δ(t – α) değeri ile çarpar ve
–∞ dan +∞ a kadar integralini alırsak f fonksiyonunun t=α da ki değerini elde etmiş oluruz.

 
    Gene bunun da ispatıyla ilgilenirseniz bağlantı kurabilirsiniz. Birim impuls la ilgili bir kaç örnek çözelim ve daha sonrasında hem birim basamak  hem de birim impulsu içeren bir örnek çözecez ve bu yazıyı sonlandıracağız.

      
    Yukarıda ki 2 şıkta ki ifadelerin sonuçlarını elde edeceğiz. Öncelikle a şıkkına bakalım arkadaşlar. a şıkkında birim impulse fonksiyonu t-1 biçiminde. Yani t-1=0, t=1 de değer alıyor diğer her yerde 0 olacak. Örnekleme özelliğimizden, f(t) miz 3 t üzeri 4. Hatırlarsanız, f(t)δ(t–a) = f(a)δ(t) dı. Bizim örneğimizde a=1. O zaman ifademiz

 
biçiminde olacaktır. b şıkkında ise az önce anlattığımız eleme özelliği söz konusudurç Burada α=2 değerini almış ve f(t)=t olduğuna göre demekki eleme özelliğinden sonuç f(2) olacak yani  f(t)=t den f(2)=2 olacaktır. Gördüğünüz gibi çok basit. Şimdi öğrendiğimiz her iki fonksiyonu da kullanarak bir örnek yapalım. Aşağıdaki şekilde resmedilen sinyali önce birim basamak şeklinden daha sonra ise elde ettiğimiz sonucun türevini alalım bakalım be çıkıyor. Önce şekli görelim;

 Buna benzer bir örnek daha önce çözmüştük hatırlarmısınız bilemem. Bu dalga formunu ya da sinyali her ne derseniz artık birim basamak biçiminden yazabilmemiz için öncelikle monoton olduğu yerlerde ayrı ayrı ele alıyoruz. Aralıklar ve denklemleri de şöyle gösterelim;


   v(t) yi düzenlersek;

elde ederiz. Bu v(t) nin birim basamak fonksiyonu cinsinden gösterimidir. Bunun türevini alırsak birim impuls cinsinden elde edebiliriz. Türevini aldığımzda (t ye göre);

  biçinde olur. Altında da bu ifadenin şekli resmedilmiştir. Şekilden de görebileceğiniz gibi t=-1 de negatif 2 şiddetinde bir impulse, t=2 ve t=7 de ise pozitif 1 şiddetinde 2 adet impulse oluşmuştır. Bu impulse lara sebep olan etmen ise bu noktalardaki süreksizliklerdir.

    Bana müsade der gözlerinizden öperim. Bir sonraki yazımda bu 2 temek sinyalin Matlab komutlarını inceleyeceğiz. Şimdilik bu kadar. ciao ciao...

Kaynak: Signals and Systems with Matlab Applications Steven T. Karris

23.02.2010

Temel Sinyaller-Birim basamak

     Merhabalar herkese,

    Daha önceki konularda Matlab a giriş yaptık. Umarım bir sorun yoktur matlab la ilgili, zaten çok kolay. Önemli olan teoriyi anlamamız, matlab tarafı çok kek. Tabii matlabla yapabileceğimiz daha çok şey var ancak onları da zamanı gelince irdeleyeceğiz.Şimdi birkaç altbaşlıkla sinyallere bir giriş yapacağız. Haberleşme öğreneceksek önce sinyalleri bilmemiz gerekir, dolayısıyla bu da nerden çıktı demeyiniz lütfen. Şimdi aşağıda bir besleme kaynağı, bir direnç ve bir anahtardan oluşan bir devre var. Onu önce bir inceleyin bakalım.

   Şimdi bu devrede Vs devreye verilen gerilimin kaynağı (zamanla değişmeyen gerilim-DC), R direncimiz, anahtarımız var, bide devre çıkışında  Vout diye bir gerilim ölçüyoruz. t=0 anında anahtarı kapattığımızı düşünelim. Yani t=0 anına kadar devre akım akıtmayacaktır, açık devre durumundadır. Ancak anahtar kapandıktan sonra Vout da bir gerilim değeri oluşacaktır. Bu değerde Vs olacaktır. Bunları hepimiz biliyoruz zaten. o zaman Vout da ki gerilim zamana bağlı olarak aşağıda ki gibi olacaktır.
      Siz değerli arkadaşlarımında gördüğü gibi bu işaret t=0 anından önce 0 olacak yani olmayacak, var olmayacak ancak t=0 anından sonra zamanla değişmeyen bir işaret olacaktır. Devam edelim. Bu şekilde görülen işaret, sürekli zamanlı bir işarettir. Adında anlaşılacağı gibi sürekli, hiç değer almadığı bir zaman aralığı yok. O zaman diyeceksiniz ki t=0 dan önce hiç değer almamış. Öle değil işte, şunu demek istiyorum. Mesela başladığı noktadan sonra hiç durmamış, 0 olmamış. t=0 anında başlamış ve hep değer almış sonsuz kadar buraya dikkat edelim. Bu şekil size tanıdık geldi değil mi? İşte o şekil birim basamak fonksiyonuna ait! Hep u(t) ile gösterdik biz biraz daha farklı göstereceğiz; şöyleki;
                                                                                           

  t=0 sinyalimiz için referans noktamız. örneğin sinyalimiz t=4 anında da başlamış olabir. o zaman sinyalimizin zaman açısından örneğin 4 sn ötelendiğini düşünmemiz gerekebilir. tabii nereye göre t=0 noktasına göre. bu durumda birim basamak fonksiyonunu şu şekilde göstermemiz gerekiyor;
                                                                                      
 burada tsıfır değerimiz 4 olacak tabi, yukarıda verdiğimiz örnek için. t-tsıfır durumu, sinyalimizin tsıfır kadar gecikme ile başladığını gösteriyor. t+tsıfır olsaydı, sinyalimizin referans noktası 0 a göre tsıfır kadar erken başladığını gösterecekti.  önce tsıfır kadar gecikme de birim basamak fonksiyonunun nasıl gösterildiğini görelim ondan sonra tsıfırdan önce ki görümüne bakalım; ve matematiksel ifadesini görelim;
                                                                                             
                                                                                 
                                                                           
  Bir örnek yapalım. Aşağıda ki şekilde bir devre resmedilmiştir. Devrede ki anahtar t=T anına kadar açık olup, t=T anında kapatılmaktadır. Bu durumda ne olacak? Devreden T anından sonra akım akmaya başlayacaktır. Çıkış gerilimi Vout u birim basamak cinsinden gösterelim.
                                                                                               
  Şimdi burada t>T anından sonra ise anahtar kapandığı için devreden akım akacak ve birim basamak fonksiyonu 1 değerini alacaktır. yani Vout matematiksel olarak;
                                                                                                       
 biçiminde olur. Birim basamak fonksiyonunun değeri 1 olduğu için Vs ile çarpmamız sonucu değiştirmez sadece olayı zaman açısından açıklar. Bu örnekteki birim basamak fınksiyonu;
                                                                                         
  Birde şekil olarak birim basamak fonksiyonu başka nasıl durumlarda olabilir onların şekillerini ve hemen altlarında matematiksel gösterimlerini verelim;
                                                                  
   Hani hep karşılaşırız işte haberleşmede 1 ve 0 ları kullanırız diye. Bu 1 leri kare darbelerle gösteririz. İşte bu darbeleride birim basamak fonksiyonları ile elde edebiliriz. Mesela şu şekli inceleyelim;
                                                                     
  Şeklin a sında  haberleşmede kullanılan 1 bitini görmekteyiz. İşte bu biri elde etmek için b ve c deki birim basamak fonksiyonlarını toplarız. Matematiksel olarak gösterimi ise şu biçimdedir;
                                                                                                                      
    Birim basamak fonksiyonu bir devredeki gerilim veya akım kaynaklarının anlık uygulamarını göstermek için uygun bir metoddur. Mesela bir devreye t=0 anında 24V luk bir gerilim verirsek biçiminde gösteririz. Ya da diyelimki t=tsıfır anında V=Vm*coswt lik bir alternatif gerilim uyguluyoruz. Bu durumu ise  biçiminde birim basamak fonksiyonu cinsinden yazabilirsiniz.
  Son olarak bir soru çözelim. Örneğin aşağıdaki şekilde verilen sinyali birim basamak cinsinden gösterelim.
                                                                
   Öncelikle sinyali 3 parçaya böleceğiz. Zaman ekseninde 0 ile 1 aralığı, 1 ile 2 aralığı, 2 ile 3 aralığına bakalım. Bu aralıkları almamızın sebebi sinyalin bu aralıklarda sabit olması. Demek istediğim mesela 0 ile 1/2 aralığı ve 1/2 ile 1 aralığında sinyal aynıdır. Dolayısıyla 0 ile 1 aralığını alıyoruz. Diğer aralıklar içinde aynı şekilde düşünün. Öncelikle 0-1 aralığını ele alalım. Bu aralıkta ki doğrunun denklemi 2t+1 dir. Birim basamak fonksiyonu cinsinden ise şöyle düşünün;
                                                                 
  Gördüğünüz gibi 0-1 aralığını iki birim basamak fonksiyonu cinsinden gösterip doğrunun denklemi ile çarptığımızda 0-1 aralığının matematiksel gösterimini elde ediyoruz. Diğer 2 aralığın gösterimini size bırakıyorum. Yapamazsanız bir mail kadar uzağınızdayım biliyorsunuz. Bu sinyalin birim basamak cinsinden gösterimi şu şekilde olacak;
                                                                  
   Bir dahamki yazımda birim dürtü fonksiyonuna değineceğim. Kendinize iyi bakın,hoşçakalın.

  Kaynak: Signals and Systems with Matlab Applications Steven T. Karris




                                                                                                                    

18.02.2010

Matlab da ressamlık

               Merhaba Sevgili Arkadaşlar,

     Bu yazımı tamamen okuyup anladığınızda Matlab ın çizim özelliklerine hakim olacaksınız. Hemen başlayalım.

 Bazen elde ettiğiniz verilerin zamanla, frekansla, güçle ya da akım la ya da herhangi bir veri çeşidine bağlı olarak nasıl değiştiğini dünya gözü ile görmek istersiniz. Ya da görmek istersiniz ki acaba bir veri bir veriye bağlımıdır değilmidir? Bunları görmek isteyebilirsiniz yani insanlık hali. O zaman en çok kullanılan komutlardan biri plot() ile başlayalım.  plot(x,y) şeklinde bir komut y değişkeninin x değişkenine bağlı olarak nasıl değiştini gösteren bir figür çizdirir. Burada plot un içine yazdığınız ilk değişken x eksenini, virgül koyup yanına eklediğiniz değişken ise y eksenini temsil etmektedir.
        Yukarıda ki şekilde bir devre temsili olarak gösterilmiştir ve altında bu devreye ait 2 değişkenden oluşan çeşitli değerlerin olduğu bir tablo verilmiştir. Devreye uygulanan alternatif gerilimin genliği sabit kalırken, açısal frekansı ω (radians/second) 300 ile 3000 arasında 100 er 100 er artmaktadır ya da değişmektedir. Devredeki ampermetre ise her artışta bir ölçüm almaktadır. Devrenin empedansı Z nin genliğini hesaplamak için ise formülünü kullanıyoruz. Ancak biz hesaplama yapmayacağız, empedans verisi yukarıda ki tabloda zaten verilmiş. Şimdi o zaman plot() komutumuzu kullanarak empedans genliğinin ya da şiddetinin açısal frekansa bağlı olarak nasıl değiştiğini görelim. Aşağıda Matlab porogramı kullanılarak çözüm üretilmiştir. Görünüz;
                                          
  Şekilde görüldüğü gibi önce kodu yazıyoruz ve ardından enter tuşuna bastığımız da Matlab programı çalıştırıp görmek istediğimiz figure u önümüze çıkarttırıyor. Burada bahsetmek istediğim birkaç nokta var. Matlabda komut satırına (command window da) uzun bir dizi yazıyorsanız ve satırın sizin gördüğünüz kısmından çıkıp bilinmeyen uzaklara gittiğini hissediyorsanız ve buna engel olmak istiyorsanız yani alt satıra geçmek istiyorsanız bu işlemi 4 adet nokta (....) ile halledebilirsiniz. Şöyle oluyor;
                                                                           
Umarım ne demek istediğimi anlamışsınızdır. Birde sevgili arkadaşlar görüldüğü üzere açısal frekansımızı tanımlarken bir dizi oluşturduk. Ve 300 den 3000 e kadar artan değerlerimizi teker teker girdik. Sorarım size ne gerenk var? linspace() komutumuz varken buna ne gerenk var? linspace(x,y,z) şeklinde kullanılır. Eğer 2 değer arasında sabit bir artışla artan bir diziniz varsa bu komutu kullanabilirsiniz. Örneğin yukarıda ki tabloda açısal frekans 300 den başlıyor. x yerine 300 yazacaz. 3000 e kadar devam ediyor. y yerine 3000 yazacağız. ve 100 er 100 er artış miktarı hiç değişmeden artıyor. o zaman z yerine öyle bir değer yazmalıyız ki bu değer 300 ile 3000 arasını 100 er 100 er artan şekilde parçalasın. ufak bir hesap yaptığımızda 300 ile 3000 arasında 28 tane 100 ün katı olan sayı var. yani 300,400,500,600.... gibi. o zaman z yerinede 28 yazıyoruz. Görelim;

                                                            
  Ne kadar hoş değilmi? Bu komutu örneğimiz deki Z değerleri için kullanabilirmiyiz? hayır çünkü Z nin nasıl değiştiğini Z bile bilmiyor. Sabit bir artış yok Z de. linspace(x,y) şeklinde yani z yi eklemeden kullanırsanız x ve y aralığını 100 eşit aralıklı parçaya böler. Şimdi birde bu grid komutu var o da çizilen figure ü karelere ayırıyor, bölüyor yani. Yukarıda yazdığım komutta plot(w,z); den sonra birde grid; şeklinde ekleme yapıyorum. Birde öyle görelim figürü;
                                                     
 Çizdirdiğiniz şeklin üst kısmına başlık yazdırmak istiyorsanız title('başlık konusu') komutunu, aynı şekilde x eksenine ve y eksenine de birer isim koymak istiyorsanız sırasıyla xlabel('başlık konusu') ve ylabel('başlık konusu') komutlarını girmemiz gerekir. Bazı durumlarda çizdirdiğimiz şekil logaritmik ölçekli olarak değişir. Mesela bit hata olasılığı şekilleri. Bu durumda ise semilogy(x,y) komutunu kullanırız. Bu durumda y ekseni logaritmik olarak değişirken x ekseni lineer olarak değişir. Eğer x ekseni logaritmik ve y ekseni lineer olarak değişiyorsa semilogx(x,y) şeklinde kullanırız. Her iki ekseninde logaritmik olarak değişmesi durumunda ise loglog(x,y) komutunu kullanmamız gerekir. Bu arada logaritmaya ait fonksiyonları tanıtalım. Matlab da log(x) doğal logaritmayı yani e tabanında, log10(x) 10 tabanında, log2(x) ise 2 tabanında logaritma almayı temsil eder. Logaritması alınacak değeri x kısmına yazıp enter tuşuna bastıkmıydı herşey yoluna girer. Öğrendiğimiz komutlarla örnek tablomuzdaki değerleri bir de şu şekilde çözdirelim.
                                     
  Gördüğünüz gibi semilogx komutuyla x eksenini logaritmik olarak ölçeklendirdik ve grid fonksiyonu ile şekle bakınca daha iyi anlayabilmek için şekli logaritmik olarak parça pinçik ettik. title ile şekle başlık verdik, xlabel ve ylabel ile x ve y eksenine hayat verdik. Matlab da birde DB(x) komutu vardır. Bu komutta x değerini ya da x dizisi içerisindeki değerleri dB karşılıklarına dönüştürür. Bu komutun algoritması şu şekildedir: dB=20*log10(x) . Bir diğer ilginç komut ise gtext('açıklama') komutudur. Anlatması biraz karışık. Açıklama kısmına bişeler yazın deneyin derim. Güzel bişi ama mutlaka deneyin. Diyelimki çizdirdiğimiz şekil üzerinde x=3, y=5 noktasında bişiler yazsın. Bunu da text(3,5,’bişiler’) şeklinde yapabiliriz. Yani komutumuz genel şekliyle text(x,y,’açiklama’) biçimindedir.
   Şimdi bir örnek yapacağız ve olayı daha iyi anlamaya çalışacağız. Gelin sinüs çizdirelim. Bir sinüsün yatay ekseninde pi nin katları düşey ekseninde ise genlik değerleri yazar. O zaman sinüs çizdirmek için öncelikle yatay eksenin aralığını tanımlayalım. Düşey ekseni tanımlamaya gerek yok, çünkü sin yazdınız mı atıyorum sin(pi) değerini matlab kendisi hesaplar ve şekle koyar. Yatay ekseni linspace(x,y,z) şeklinde tanımlayacağız. Bir de bir adet değil de 3 adet sin çizdirelim yanlız bunların fazları farklı olsun. Görelim;
                                                                       
  Gordüğnüz deeemi, bizde yalan yok. Şimdi bide arkadaşlar bu Matlab da çizim yaparkene çizgileri farklı renklerde yapabilirsiniz. Ya da düz çizgi değilde noktalı çizgi ya da kısa çizgi şeklinde felan çizdirebiliriz. Bide bunlara bakalım. Önce bir aşağıdaki tabloyu inceleyelim.
                                        
Bu çizelgeyi nasıl kullanıcaz sorun bu. plot komutunun parantezlerinin içine x,y yi yazdıktan sonra bir virgül açar iki apostrof koyarız. Bu apostrofların arasına tablodaki sembolleri koyarız. Örnek verelim. Mesela diyelimki çizgimiz kırmızı renkte olsun, o zaman hemen tablodan kırmızıya gidiyorum ve r harfini görüyorum. plotun içine apostrofların arasına r yazıyorum ve şu hale geliyor plot(x,y,'r'). Sonra nasıl olsa bedava diyorum. Bu çizgimin üstünde baklava işareti olsun diyorum. hemen r nin yanına birde d ekliyorum ve şu hale geliyor: plot(x,y,'rd') . Bide diyorum ki bu çizgi tireli noktalı olsun. Ve en sonunda şöyle bir komut ortaya çıkıyor: plot(x,y,'rd-.') Çok güzel değil mi? Bence münkemmel! :))

   Diyelimki çizdirdiğiniz şekilin x ekseni 1 den 100 e y ekseni 10 dan 50 ye kadar. Ama size x eksenini 5 ten 20 ye, y ekseninide 10 dan 30 a kadar görmek yeterli oluyor. Buralarda kesmek istiyorsunuz. O zaman axis([]) komutunu kullanıyoruz. Bu sorun için şöyle yaparız: axis([5 20 10 30]);    Gördüğünüz üzere önce x ekseninin sınırlarını ve sonra y ekseninin sınırlarını girerek bu sorunu hallediyoruz. Ayrıca plot(x,y) komutu çizimi noktaları birleştirerek yapar. Ama direkt birleştirir. stem(x,y) komutu ise nokta şeklinde bırakır. stairs(x,y) ise basamak şeklinde çizdirir. Denemenizi ve görmenizi tavsiye ederim. Son olarak arkadaşlar bir Matlab figure penceresinde 1 den fazla şekil olsun istiyorsak subplot(x,y,z) komutunu kullanırız. Burada x satır sayısını y sütun sayısını ve z ise 1. satırın elemanlarından başlamak üzere saydığınızda kaçıncı şekle denk geliyorsa çizdireceğiniz şekil onun sırasını temsil eder. Mesela diyelimki 4 tane şekli aynı pencereye çizdircem ve 2. satır ve 2. sütundaki şekle sıra geldi. Diğer 3 ünü daha önce çizdirdim(varsayım). yani bu şekil 4. sıradadır. Dolayısıyla komutum 2 satır 2 sütun 4. sıra  ==> subplot(2,2,4); şeklinde olacaktır. Görelim;
                                             


      Ben yoruldum, bana müsade kendinize iyi bakın, örneklerle değişik denemeler yapın derim. Bir de 3 boyutlu çizimler var onlarada daha sonra değineceğiz. Ciaooo!

  Kaynak: Signals and Systems with Matlab Applications Steven T. Karris

  

Blogu faydali buldunuz mu?

İzleyiciler