Merhaba yazılımcı arkadaşım;
Bu yazımda size Matlab da sinusoidal sinyal ile ilgili örnekler vereceğim okulda ödev olarak yaptığım bazı görevlere ait. Öncelikle, ilkez Matlab dan bahsedeçeğim için kısa bir bilgi vermek istiyorum Matlab hakkında.
MATLAB (matrix laboratory) sayısal hesaplama ve dördüncü nesil programlama dilidir. MathWorks tarafından geliştiriliyor. MATLAB, matrisişlenmesine, fonksiyonlar ve veri çizilmesine, algoritmalar uygulanmasına, kullanıcı arayüzü oluşturulmasına ve diğer dillerle yazılmış programlar ile etkileşim oluşturulmasına izin verir. C, C++, Java, ve Fortran dillerini içerir.
Şimdi gelelim örneklerimize ;
İlk örneğimizde sinüsoidal bir sinyal ile başka bir sinüsoidal sinyali birleştirerek çizdireçeğiz.
t = 0:0.1:6*pi; % X düzleminde aralağımız A = 0.2; % Dalgalanma şiddeti y1 = A * sin(t * 8); % İlk sinusoid y2 = sin(t/2); % İkinci sinusoid y3 = y1 + y2; % iki sinus sinyalinin birleştirilmesi plot(t,y3) % birleştirlen sinus sinyallerinin çizilmesi grid on % Çizilen verilerin anlaşılabilirliği için grid i açar
Bu kodun ekran çıktısı :
İkinci Örneğimiz de yukarıda ki örnekte ki sinyalimize gürültü eklemek istiyoruz bunun için y3 değerine random olarak değerler ekleyip çizdirmemiz yeterli.
Kaynak Kod :
t = 0:0.1:6*pi; % X düzleminde aralağımız A = 0.2; % Dalgalanma şiddeti y1 = A * sin(t * 8); % İlk sinusoid y2 = sin(t/2); % İkinci sinusoid y3 = y1 + y2; % iki sinus sinyalinin birleştirilmesi plot(t,y3 + rand(1,size(y3,2)))%Gürültülü sinyalin çizdirilmesi grid on % Çizilen verilerin anlaşılabilirliği için grid i açar
Bu kodun ekran çıktısı :
Üçüncü örneğimiz şimdi ilk örnekte verdiğimiz sinyalin pozitif ve negatif değerlerini ayrı ayrı çizdirelim bunun için elde ettiğimiz matrisi for döngüsü ile gezerek her elemanın değerini kontrol ediyoruz.
Kaynak kod:
t = 0:0.1:6*pi; % X düzleminde aralağımız A = 0.2; % Dalgalanma şiddeti y1 = A * sin(t * 8); % İlk sinusoid y2 = sin(t/2); % İkinci sinusoid y3 = y1 + y2; % iki sinus sinyalinin birleştirilmesi %Sinyalin pozitif elemanları y4 = y3; % orginal sinyali bozmamak için for i=1: size(y4,2) if y4(i) < 0 y4(i) = 0; end end subplot(2,1,1) % bu kod parçaçığı aynı ekranda iki tane çıktı göstermemizi sağlar plot(t, y4 ) title('Sinyalin Pozitif Değerleri') % Çıktımıza isim verir xlabel('t') ylabel('y') grid on %Sinyalin negatif elemanları y5 = y3; for i=1: size(y5,2) if y5(i) > 0 y5(i) = 0; end end subplot(2,1,2) plot(t, y5 ) title('Sinyalin Negatif Değerleri') xlabel('t') ylabel('y') grid on
Bu kodun ekran çıktısı :
Dördüncü örneğimiz şimdi Matlab da sinyalimizin belli bir elemanını ekrana çizdirelim mesela ilk 50 değerini.
Kaynak kod :
t = 0:0.1:6*pi; % X düzleminde aralağımız A = 0.2; % Dalgalanma şiddeti y1 = A * sin(t * 8); % İlk sinusoid y2 = sin(t/2); % İkinci sinusoid y3 = y1 + y2; % iki sinus sinyalinin birleştirilmesi % Y3 sinyalinin ilk 50 değerini çizdirme t1 = 1:1:50; % çizdirilecek eleman sayısı plot(t1,y3(1:50)); title('Sinyalin ilk 50 noktası') xlabel('t') ylabel('y') grid on
Ekran çıktısı :
Umarım faydalı bir yazı olmuştur.
Kolay gelsin….