Kayıtlar

4 - Açık Cezeri Kütüphanesi (rand ve randn komutları ile tek boyutlu sinyal işlemleri)

Resim
Herkese Merhaba, Açık Cezeri Kütüphanesi ile ilgili düzenlenen yeni yazı dizimize hoş geldiniz. Not: OCL çok sık güncellendiği için, bu derse başlamadan önce github sitesinden OCL'nin son sürümünü indirip sisteminize kurmanız gerekmektedir. Bunun için 2.dersimiz olan OCL kurulumu dersine  https://open-cezeri-library.blogspot.com.tr/2018/03/ack-cezeri-kutuphanesinin-kurulumu.html bakabilirsiniz. Bu dersimizde OCL ile çeşitli istatistiksel işlemlerin tek boyutlu diziler üzerinde nasıl gerçekleştirildiğini inceleyeceğiz. Geçen derslerimizde hatırlarsanız OCL'de tek boyutlu diziler CMatrix cm=CMatrix.getInstance(start,end,value); CMatrix cm=CMatrix.getInstance().zeros(100,1); CMatrix cm=CMatrix.getInstance().ones(100,1); CMatrix cm=CMatrix.getInstance().ones(100,1).multiplyScalar(value); CMatrix cm=CMatrix.getInstance().vector(0,0.1,360); CMatrix cm=CMatrix.getInstance().linspace(0,360,1500); yapılabiliyordu. Bunun dışında rand ve randn metotlarını kullanarak ta tek b

3 - Açık Cezeri Kütüphanesi (tek boyutlu sinyaller nasıl üretilir)

Resim
    Bu yazımızda Açık Cezeri Kütüphanesi (OCL) kullanılarak, tek boyutlu sinyallerin üretilmesi ve onlar üzerinde geçekleştirilen sinyal işleme uygulamalarından bahsedeceğiz. Eğer 1. ve 2. derslerimizde önerilenleri tamamıyla uygulamış iseniz bugünkü yazımızda kodlayacağımız komutlar sorunsuz bir şekilde çalışacaktır.     OCL'de tek boyutlu bir sinyal (1 boyutlu dizi, one dimensional array) üretmenin birden fazla yolu bulunmaktadır. Geleneksel olarak, Java dilinde bir boyutlu dizi: double[] dizi=new double[n];   n sıfırdan farklı tamsayı şeklinde üretilir. Varsayılan olarak dizi değişkeninin tüm elemanlarına sıfır değeri atanmaktadır. Bir dizideki elemanları 0 değil de istediğimiz bir sayı ile mesela 1 ile doldurmak istersek döngü kullanmamız gerekir. n=100 olduğunu kabul edersek mesela: for (int i=0;i<100;i++){    dizi[i]=1; } Diğer taraftan Matlab ve Python gibi dillerde bir boyutlu dizi yapmak için Matlab  ==>  dizi=ones(100,1); Python  ==>  import numpy

2 - Açık Cezeri Kütüphanesinin Kurulumu

Resim
OCL'yi bilgisayarınıza sorunsuz bir şekilde kurmak, çalıştırmak ve kullanabilmek için aşağıda listelenen yönergeleri başarılı bir şekilde uygulamanız gerekir. 1- Sisteminizde JDK yüklü değilse  http://www.oracle.com/technetwork/java/javase/downloads/index.html adresinde Netbeans editörünün çalışabileceği ve işletim sisteminize uygun jdk'yı indirip kurmalısınız. Bu tarih itibariyle Netbeans IDE 8.2 sürümü jdk 8 ile uyumlu olduğu için JDK 8 i indirmeniz gerekmektedir. Netbeans'in sonraki versiyonları hangi jdk ya uyumlu ise oracle sitesinden uygun jdk'yi kurmanız gerekmektedir. 2-  Netbeans'in son sürümünü  https://netbeans.org/downloads/ linkinden indirip kuruyorsunuz. 3- OCL'yi sadece https://github.com/hakmesyo/open-cezeri-library linkinden indirmenizi öneriyorum. Farklı kaynaklardaki sürümler çok eski sürüm olduklarından çeşitli sorunlarla karşılaşabilirsiniz. Github'dan OCL'yi iki farklı yöntem ile bilgisayarınıza indirebilirsiniz. Birincisi

1 - Açık Cezeri Kütüphanesi çalışma mantığı nedir ne işe yarar ve kimler OCL'yi kullanmalıdır?

Resim
   Open Cezeri Library (OCL), Java programlama dili ile hazırlanmış, açık erişimli matris, veri görselleştirme, sinyal ve görüntü işleme, makine öğrenmesi ve derin öğrenme alt konularını ve modüllerini kapsayan başta öğrenciler, akademisyenler, bilim adamları ve araştırmacılar için geliştirilen bir yazılım kütüphanesidir.   Asıl ortaya çıkış hikayesi, El-Cezeri Sibernetik ve Robotik Laboratuvarında geliştirilen projelerde kullanılmak üzere ortak bir yazılım çatısı ve tekrar kullanılabilir (reusable) sınıf ve metodlar'dan meydana gelen alan spesifik dil (Domain Specific Language DSL) geliştirmek olarak özetlenebilir. OCL tasarım deseni olarak, FactoryMethod, Facade, Singleton, Observer, ve Fluent Interface veya method chain kalıplarını kullanmıştır.     Java programlama dilinde vektörizasyon işlemleri Matlab, R veya Python dillerine göre belirgin ölçüde zor ve zahmetlidir. Özellikle matris ve vektör tabanlı aritmetiğin yoğun olarak kullanıldığı makine öğrenmesi, sinyal ve