Temel MATLAB Programlama

Diyelim yarım dalga doğrultulmuş bir sinüs dalgasının etkin ve ortalama değerini bulmaya çalışıyoruz. Bunu MATLAB ile nasıl yapabiliriz görelim. Bu problemi çözmenin MATLAB'de birçok yolu var. Aşağıda üç tane metot anlatılmıştır.


Prosedürel programlama tarzı ile

C gibi prosedürel bir programlama dili mantığı ile bu problemi çözmek için şöyle bir program yazılabilir. Bu metotta, belli bir örnekleme hızı ile çalışarak dijital olarak sinüs sinyali üretiyoruz. Burada f üretilecek sinüsün frekansı, fs sinüsü üretirken kullandığımız örnekleme frekansı, n de üretilecek döngü sayısı.

Kod:
clear

f = 50;
fs = 50000;
n = 5;

for t = [0:1:(n * fs / f - 1)]
    d = sin(2 * pi * f * t / fs);
    if d > 0
        w(t + 1) = d;
    else
        w(t + 1) = 0;
    end
end

plot(w);

rms(w)

mean(w)

Programı çalıştırınca hem üretilen sinüsün grafiğini görüyoruz hem de RMS değeri 0.5, ortalama değeri de 0.3183 olarak görüntüleniyor.

1654885059010.png


MATLAB dilinin özelliklerini kullanarak

Burada MATLAB'in matris ve vektörlerin işlenmesinde sağladığı özellikleri kullanarak çok daha etkili bir şekilde sonuca gidiyoruz. Önce örnekleme anlarını temsil eden bir t vektörü oluşturuyoruz. Sonra da bu anlardaki sinüs değerlerini içeren bir w vektörü oluşturuyoruz. Sonra da w nin negatif olan değerlerini atmak için MATLAB'in "conditional statement" özelliğini kullanarak w_rec vektörünü elde ediyoruz. Bu vektör yarım dalga doğrultulmuş sinüs'tür. Bunun üzerinde de gene rms ve ortalama değer hesabı yapıyoruz ve aynı sonucu alıyoruz.

Kod:
clear

f = 50;
fs = 50000;
n = 5;

t = 0:1 / fs:(n / f - 1 / fs);
w = sin(2 * pi * f * t);
w_rec = w .* (w > 0);

plot(w_rec);

rms(w_rec)

mean(w_rec)

1654885785186.png



MATLAB sembolik hesaplama özelliğini kullanarak

MATLAB'in en ilginç ve ileri seviye özelliklerinden birisi de sembolik olarak işlem yapması. Tabi işlemler karmaşıklaştıkça net sonuç almak her zaman mümkün olmuyor, biraz deneme yapıp sorun çıkıyorsa sağda solda değişiklikler yapmak gerekebiliyor. Mesela bir sinüsün RMS değerinin genel formülü oldukça karmaşıktır. Wikipedia'dan bakalım:

1654889806858.png


MATLAB bunda baya zorlandı ve hatta 5 alternans üzerinde çalışmadı, alternans sayısını 2 ye indirmek zorunda kaldım. Ama bu sembolik işlemin sonunda, ortalama ve efektif değerin FORMÜLÜNÜ bize doğrudan veriyor. İşlemleri de bir live script içinde yaparak doğrudan sonuçları işlemler yapıldıkça görebiliyoruz.

Sembolik işlem yapmanın bir başka özelliği de, daha önce oluşturulmuş olan örnekler üzerinde çalışma yapılmıyor, Genel formül üzerinde işlem yapılıyor.

1654889528034.png
 
Değerli paylaşımın için teşekkür ederim abi.
Yeni başlayanlar/fikri olmayanlar için harika paylaşım olmuş.:)
 

Forum istatistikleri

Konular
8,662
Mesajlar
141,554
Üyeler
3,455
Son üye
HaKo

Son kaynaklar

Son profil mesajları

Abdullah karaoglan falcon_browning Abdullah karaoglan wrote on falcon_browning's profile.
selamın aleyküm ses sistemindeki cızırtıyı hallettınızmi
"Araştırma, ne yaptığını bilmediğinde yaptığın şeydir." - Wernher von Braun
“Kendi yolunu çizen kişi, kimsenin izinden gitmez.” – Nietzsche
Kim İslâm’da güzel bir çığır açarsa (güzel bir alışkanlık başlatırsa), onun sevabı ve kendisinden sonra ona uyanların sevapları, onların sevaplarından hiçbir şey eksilmeksizin ona da yazılır.
erdemtr55 taydin erdemtr55 wrote on taydin's profile.
Merhaba Taydin bey,
Gruba spms serisi yapıcak mısınız?
ben 3 sargılı toroid ile 2 adet flyback sürücek bir devre yapmayı düşünüyorum.size soracak sorularım vardı?
Back
Top