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
7,632
Mesajlar
127,361
Üyeler
3,086
Son üye
tb5byo

Son kaynaklar

Son profil mesajları

Python Geliştirmeye eklediğim yapay zeka sunucusu, yeni başlayanlar için roket etkisi
Bir insanın zeka seviyesinin en kolay tesbiti, sorduğu sorulardır.
yapay zeka interneti yedi bitirdi, arama motoru kullanan, forumlara yazan kaldı mı ?
Freemont2.0 herbokolog Freemont2.0 wrote on herbokolog's profile.
nick iniz yakıyor
:D
az bilgili çok meraklı
Back
Top