Posts tagged ‘Matlab’

Membangkitkan Dan Menampilkan Gelombang Multi Frekuensi Pada Matlab


Contoh berikut adalah bagaimana membuat sebuah gelombang dengan nilai frekuensi yang berbeda-beda kemudian digabungkan menjadi sebuah sinyal multifrekuensi.

close all;
clear;
a=1; %amplitudo
%—-(<7Hz), 8-12 Hz, 12-44Hz dan tinggi (>44Hz).
f1=3; % frekuensi
f2=9;
f3=25;
f4=60;
f5=150;
Fs = 80; % Sampling frequency
Fs = f5*20;
Fs=1000;
T = 1/Fs; % Sample time
L1 = 5000; % Panjang gelombang
t = (0:L1-1)*T; % Time vector
t=0:0.001:1;
t=(1:1000)*T;
x1 = a*sin(2*pi*f1*t);
x2 = a*sin(2*pi*f2*t);
x3 = a*sin(2*pi*f3*t);
x4 = a*sin(2*pi*f4*t);
x5 = a*sin(2*pi*f5*t);
x_all=x1+x2+x3+x4+x5;

figure;
subplot(3,2,1);
plot(x1);
title([‘Gelombang Sine x1 (freq=’ num2str(f1) ‘)’] )
xlabel(‘time (seconds)’)
ylabel(‘Amplitudo (Volt)’)

subplot(3,2,2);
plot(x2);
title([‘Gelombang Sine x2 (freq=’ num2str(f2) ‘)’])
xlabel(‘time (seconds)’)
ylabel(‘Amplitudo (Volt)’)

subplot(3,2,3);
plot(x3);
title([‘Gelombang Sine x3(freq=’ num2str(f3) ‘)’])
xlabel(‘time (seconds)’)
ylabel(‘Amplitudo (Volt)’)

subplot(3,2,4);
plot(x4);
title([‘Gelombang Sine x4 (freq=’ num2str(f4) ‘)’])
xlabel(‘time (seconds)’)
ylabel(‘Amplitudo (Volt)’)

subplot(3,2,5);
plot(x5);
title([‘Gelombang Sine x5 (freq=’ num2str(f5) ‘)’])
xlabel(‘time (seconds)’)
ylabel(‘Amplitudo (Volt)’)

subplot(3,2,6);
plot(x_all);
title(‘Gelombang Sine x1+x2+x3+x4+x5’)
xlabel(‘time (seconds)’)
ylabel(‘Amplitudo (Volt)’)

Pertama dibuat sebuah gelombang dengan frekuensi 3Hz. Dengan fungsi:

a=1; %amplitudo

f1=3; % frekuensi

Fs = 80; % Sampling frequency
Fs = f5*20;
Fs=1000;
T = 1/Fs; % Sample time
L1 = 5000; % Panjang gelombang
t = (0:L1-1)*T; % Time vector
t=(1:1000)*T;
x1 = a*sin(2*pi*f1*t);

figure;
subplot(3,2,1);
plot(x1);
title([‘Gelombang Sine x1 (freq=’ num2str(f1) ‘)’] )
xlabel(‘time (seconds)’)
ylabel(‘Amplitudo (Volt)’)

Selanjutnya untuk gelombang frekuensi 9Hz:

x2 = a*sin(2*pi*f2*t);

subplot(3,2,2);
plot(x2);
title([‘Gelombang Sine x2 (freq=’ num2str(f2) ‘)’])
xlabel(‘time (seconds)’)
ylabel(‘Amplitudo (Volt)’)

Gelombang dengan frekuensi 25Hz dibuat dengan script:

x3 = a*sin(2*pi*f3*t);

subplot(3,2,3);
plot(x3);
title([‘Gelombang Sine x3(freq=’ num2str(f3) ‘)’])
xlabel(‘time (seconds)’)
ylabel(‘Amplitudo (Volt)’)

Gelombang dengan frekuensi 60Hz:

f4=60;

x4 = a*sin(2*pi*f4*t);

subplot(3,2,4);
plot(x4);
title([‘Gelombang Sine x4 (freq=’ num2str(f4) ‘)’])
xlabel(‘time (seconds)’)
ylabel(‘Amplitudo (Volt)’)

Gelobang frekuensi 150Hz:

f5=150;

x5 = a*sin(2*pi*f5*t);

subplot(3,2,5);
plot(x5);
title([‘Gelombang Sine x5 (freq=’ num2str(f5) ‘)’])
xlabel(‘time (seconds)’)
ylabel(‘Amplitudo (Volt)’)

Dan untuk membuat gelombang dengan komposisi dari frekuensi 3Hz, 9Hz, 25Hz, 60Hz dan 150Hz adalah dengan cara menambahkan masing-masing gelombang menjadi satu gelombang:

x_all=x1+x2+x3+x4+x5;

subplot(3,2,6);
plot(x_all);
title(‘Gelombang Sine x1+x2+x3+x4+x5’)
xlabel(‘time (seconds)’)
ylabel(‘Amplitudo (Volt)’)

Demikian semoga bermanfaat.

 

 

Membuat Dan Menampilkan Gelombang Pada Matlab


Tulisan ini mencoba untuk memberikan contoh bagaimana membuat sebuah gelombang menggunakan script Matlab. Gelombang dapat digunakan untuk melakukan simulasi analisis sinyal pada proses selanjutnya.

Gelombang yang dibuat dapat dipilih antara gelombang periodik atau gelombang aperiodik.

Gelombang Periodik

Gelombang periodik dapat berupa gelombang sinus, cosinus, gigi gergaji ataupun gelombang kotak. Periode gelombang juga dapat diatur sesuai kebutuhan sehingga dapat dibuat gelombang dengan banyak variasi gelombang .

Berikut adalah sebuah contoh script untuk membangkitkan gelombang gigi gergaji dan gelombang kotak.

fs = 10000;
t = 0:1/fs:1.5;
x1 = sawtooth(2*pi*50*t);
x2 = square(2*pi*50*t);
subplot(2,1,1)
plot(t,x1)
axis([0 0.2 -1.2 1.2])
xlabel('Time (sec)')
ylabel('Amplitude') 
title('Sawtooth Periodic Wave')
subplot(2,1,2)
plot(t,x2)
axis([0 0.2 -1.2 1.2])
xlabel('Time (sec)')
ylabel('Amplitude')
title('Square Periodic Wave')

Gelombang Gigi Gergaji dan Kotak

Gelombang Aperiodik

Sedangkan untuk membuat sebuah gelombang Aperiodik bisa menggunakan contoh berikut:

fs = 10000;
t = -1:1/fs:1;
x1 = tripuls(t,20e-3);
x2 = rectpuls(t,20e-3);
subplot(2,1,1)
plot(t,x1)
axis([-0.1 0.1 -0.2 1.2])
xlabel('Time (sec)')
ylabel('Amplitude')
title('Triangular Aperiodic Pulse')
subplot(2,1,2)
plot(t,x2)
axis([-0.1 0.1 -0.2 1.2])
xlabel('Time (sec)')
ylabel('Amplitude')
title('Rectangular Aperiodic Pulse')

Sinyal Aperiodik

Untuk membuat gelombang pulsa misalnya pulsa Gauss atau  gelombang fungsi sinus adalah sebagai berikut:

tc = gauspuls(‘cutoff’,50e3,0.6,[],-40);
t1 = -tc : 1e-6 : tc;
y1 = gauspuls(t1,50e3,0.6);
t2 = linspace(-5,5);
y2 = sinc(t2);
subplot(2,1,1)
plot(t1*1e3,y1)
xlabel(‘Time (ms)’)
ylabel(‘Amplitude’)
title(‘Gaussian Pulse’)
subplot(2,1,2)
plot(t2,y2)
xlabel(‘Time (sec)’)
ylabel(‘Amplitude’)
title(‘Sinc Function’)

 

Referensi:

Signal Generation and Visualization

Tutorial Pemrograman GUI dengan Matlab: Update Static Text


Pada bagian ini akan disampaikan serial tutorial pemrograman GUI menggunakan Matlab.

Setelah mengikuti serial tutorial ini sampai selesai, pembaca diharapkan dapat membuat GUI sendiri menggunakan Matlab dan mengembangkannya sesuai dengan kebutuhan.

Pada sesi ini akan diberikan tutorial tentang Static Text. Biasanya digunakan untuk membuat sebuah informasi kepada user melalui tulisan. Properties dari text dapat diganti melalui script saat program sedang berjalan ataupun ketika program dibuat dari awal.

Suatu kasus jika text informasi harus berganti sesuai dengan kondisi tertentu, maka informasti text melalui Static Text dapat update dengan mudah dengan mengikuti langkah-langkah berikut:

 

Demikian, semoga bermanfaat.

 

Contoh Array dalam Labview


Pada labView, bekerja terkait dengan array adalah suatu yang penting, tidak terkecuali dengan program yang lain. Sama halnya dengan Matlab, pada LabView penggunaan array juga merupakan suatu hal yang sangat penting.

Pada panel LabView, kita dapat membuat sebuah array dengan langkah-langkah seperti berikut:

[Baca selengkapnya tutorial]

 

Membuat Empat Grafik Pada GUI Matlab – bagian 2


  1. Memberikan nama grafik

menggunakan code:

axes(handles.axes1);
set(gca,'Title',text('String','Grafik 1'))

plo4

Membuat Empat Grafik Pada GUI Matlab – bagian 1


axes4Matlab adalah salah satu program yang menyediakan desain GUI. Dengan tool yang disediakan kita dapat menmbuat sebuah program aplikasi yang lebih menarik. Menariknya lagi, ketika kita telah membuat sebuah program menggunakan script maka kita tidak perlu khawatir jika script tersebut tidak dapat dipakai pada GUI.

Menampilkan suatu hasil dalam bentuk visual adalah salah satu hal terpenting dalam sebuah aplikasi matlab. Hasil bisa berupa image ataupun grafik. Matlab menyediakan sebuah komponen untuk menampilkannya baik berupa image ataupun sebuah grafik.

[Baca selengkapnya]

 

 

 

 

 

Script lengkap yang dapat digunakan adalah:


% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
plot(handles.axes1,rand(10,2));
title(handles.axes1,'Grafik rand(10,2)');

% --- Executes on button press in pushbutton2.
function pushbutton2_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton2 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
plot(handles.axes2,rand(8,3));
title(handles.axes2,'Grafik rand(8,3)');

% --- Executes on button press in pushbutton3.
function pushbutton3_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton3 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
plot(handles.axes3,rand(9,4));
title(handles.axes3,'Grafik rand(9,4)');

% --- Executes on button press in pushbutton4.
function pushbutton4_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton4 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
plot(handles.axes4,rand(7,5));
title(handles.axes4,'Grafik rand(7,5)');

Membandingkan Dua Image Dengan Matlab


Pada tulisan ini akan diberikan contoh sederhana bagaimana dua buah image dapat dibedakan dengan menggunakan script Matlab. Pada dasarnya dua buah image dapat diketahui dengan mengurangkan image B dari image A.

image_hasil = image_A – image_B

untuk lebih jelasnya, akan diberikan dua buah image yang identik PCB.
image A

Image_A

image B

image_B

Dari kedua image dapat diketahui dimana letak perbedaannya.

Langkah-langkahnya adalah:

1. load image_A dan komversi ke dalam format gray dengan script

A=imread(‘image A.JPG’);

A=rgb2gray(A);

image_A_figure

2. load image_B dan komversi ke dalam format graydengan script

B=imread(‘image B.JPG’);

B=rgb2gray(B);

image_B_figure

3.  samaka ukuran kedua image

A=imresize(A,[990,600]);
B=imresize(B,[990,600]);

4. kurangkan image_B pada image_B

obj=A-B;

5. tampilkan hasilnya

imshow(obj);

result

 

Demikian, semoga bermanfaat.

— Rohmadi —

Source

Menampilkan Image Pada GUI Matlab


logoMatlabUntuk dapat menampilkan sebuah image/citra pada GUI matlab sebenarnya tidak sulit. Kita hanya perlu menambahkan sebuah axes dan sebuah button.

Pada tulisan ini akan diberikan contoh simpel bagaimana membuat sebuah GUI untuk menampilkan citra/image.

Matlab menyediakan tool untuk membuat GUI layaknya VB, VC, Delphi atau yang lain, tapi dengan beberapa keterbatasan yang dimiliki.

Yang pertama harus dilakukan adalah mengetik guide pada command window.

  1. ketik guide

guide command

  1. Kemudian akan muncul dialog sebagai berikut

guide

pilih Blank GUI (Default), kemudian klik OK

  1.  Selanjutnya akan muncul window desain GUI

untitled GUI

  1. Tambahkan Axes, Static Text dan Button kedalam desain

desain

  1. Munculkan window Properties Inspector, melalui menu View –> Properties Inspector, akan muncul berikut

properties inspector

  1. Atur properties String pada pushbutton1, dengan menulis Buka

Buka

7. Atur properties String pada pushbutton1, dengan menulis MENAMPILKAN IMAGE

menampilkan image

  1. Simpan project dengan nama BukaImage.m

  2. Klik kanan pada pushbutton1, pilih View callbacks –> Callback

  3. Masukkan script berikut

axes(handles.axes1);
clear gca;

[FileName,PathName,FilterIndex] = uigetfile(‘*.jpg,*.bmp’,’Pilih Citra’,’*.jpg’);
handles.NamaFile=FileName;
handles.PathName=PathName;
guidata(hObject,handles);

if isequal(FileName,0)
disp(‘User selected Cancel’)
else
axes(handles.axes1);
clear gca;
set(gca,’ytick’,[]);
set(gca,’xtick’,[]);

axes(handles.axes1);
handles.Citra.RGB = imread([PathName FileName]);
image(handles.Citra.RGB),
set(gca,’ytick’,[]);
set(gca,’xtick’,[]);
guidata(hObject,handles);
%disp([‘User selected’, fullfile(PathName, FileName)])
end

  1. Hasilnya adalah

hasil

Demikian Semoga bermanfaat.

— Rohmadi —

Source

Template

Membuat Grafik Pada Matlab


Pada tulisan sebelumnya, ada sebuah pertanyaan dari seorang pengunjung yang menanyakanBagaimana cara membuat sebuah grafik pada Matlab dari data yang telah ada?

Pada dasarnya untuk membuat sebuah grafik di Matlab sangatlah mudah. Hal ini karena, di Matlab sudah disediakan fasilitas untuk menampilkan grafik dari kumpulan data yang ada. Selain grafik yang ditampilkan, dapat juga ditambahkan aksesoris yang lain untuk memberikan informasi yang jelas.

Dengan menggunakan command plot, bar, atau yang lain kita bisa menampilkan sebuah grafik dalam bentuk 2D maupun 3D. Tentunya, masing-masing memiliki syarat-syarat yang harus terpenuhi. Misalnya, untuk menampilkan grafik 2D harus tersedia data matriks 2 dimensi. Jika akan menampilkan grafik 3D maka harus tersedia data matriks 3 dimensi pula.

Sebagai contoh, kita akan menampilkan data pengukuran 2D dari data berikut:

Jam = kW
0  = Setting Daya 553
2  = Setting Daya 534
4  = Setting Daya 538
6  =  Setting Daya 543
8  =  Setting Daya 605
10= Setting Daya 609
12=  Setting Daya 590
14=  Setting Daya 670
16=  Setting Daya 789
18= Setting Daya 889
20= Setting Daya 883
22= Setting Daya 868

Untuk menampilkan data di atas dalam grafik di Matlab, terlebih dahulu data harus dibuat menjadi sebuah matriks. Karena data di atas terdiri dari dua variabel, maka data tersebut dibuat dalam matriks 2 dimensi. Untuk membuat matriks pada Matlab, ikuti langkah berikut:

ketik pada Command Window Matlab:

>>Time=0:2:22

kemudian data berikutnya:

>>Daya=[553 534 538 548 606 609 590 670 789 889 883 868]

>>axes

kemudian akan muncul tampilan berikut

Untuk menampilkan data dalam grafik, perlu diketahui fungsi perintah dalam Matlab.

Kita gunakan perintah plot untuk menampilkan grafik. Perintahplot memiliki beberapa fungsi yang dapat digunakan. Diantaranya adalah untuk menampilkan data X dan Y dalam sebuah axes.

ketik pada command window:

>>plot(Time,Daya)

hasil tampilan adalah

Sekarang tinggal memberikan keterangan pada grafik.

1. Memberi judul grafik

ketik:

>>title(‘Grafik Hubungan Daya Terhadap Daya’)

2. Menambah keterangan sumbu X

ketik:

>>xlabel(‘Time (s)’)

3. Menambah keterangan sumbu Y

ketik:

>>ylabel(‘Daya’)

 

hasil akhirnya adalah

Demikian semoga bermanfaat.

Komunikasi Serial Antara ATMega8 dengan Simulink Matlab


Simulink merupakan salah satu toolbox bawaan Matlab sebagai pelengkap yang dapat digunakan untuk berbagai macam keperluan. Salah satunya adalah berkomunikasi dengan peralatan eksternal. Komunikasi dapat dilakukan dengan berbagai macam cara, diantara salah satunya adalah dengan port serial. Dengan menggunakan toolbox simulink, kita dapat mengakuisisi data tanpa perlu berurusan dengan rumitnya coding. Jika pada tulisan sebelumnya telah diberikan contoh mengakuisisi data dengan script Matlab, maka pada kesempatan kali ini akan diberikan sedikit contoh komunikasi serial antara ATmega8 dengan Simulink Matlab.

Untuk dapat membuat komunikasi serial antara ATmega8 dengan Simulink, maka kita harus membuat model simulink. Hanya 2 buah library model saja untuk dapat mengakuisisi dan menampilkannya. Library yang dibutuhkan adalah Query Instrument dan Display.

Untuk membuatnya, ikuti langkah-langkah berikut:

1. Buka Maltab, kemudian buka Simulink dengan cara

a. Mengetik simulink pada Command Window, atau dengan

b. Klik Start pada Matlab –> Simulink –> Library Browser,

kemudian buat sebuah file model baru dengan cara klik File –> New –> Model

2. Pada Simulink Library Browser, cara library dengan mengikuti langkah berikut

1) Ketika Instrument

2) klik icon search

3) drag Query Instrument ke berkas Model

 

3. Tampilan setelah mengambil Query Instrumenti adalah sebegai berikut

 

4. Dengan langkah yang sama pada poin 2 & 3, cari library Display

 

5. Setelah ditemukan, drag pada media model seperti berikut

 

6. Kemudian tambahkan koneksi antara Query Instrument dan Display

 

7. Kemudian double klik pada Query Instrument untuk mengatur setting serial baud rate 115200. Samakan setting seperti tampilan berikut

 

8.  Kemudian langkah selanjutnya adalah membuat project pada ATmega8. Dengan menggunakan Code Vision Wizard, kita bisa dengan mudah membuat program serial. Pertama, atur Chip sesuai dengan tipe ATmega8 yang dipakai, kemudian clock yang digunakan adalah 11.059200 M

 

9. Kemudian klik Tab USART. Beri tanda cek pada Transmintter, kemudian pilih baud rate dengan nilai 115200

Kemudian klik File –> Save dan Generate

10. Kemudian pada coding, tambahkan

      #include <delay.h>

 

11. Tambahkan code berikut

      int i;
for(i=1; i<100; i++)
{
printf(“%d”,i*50);
putchar(0x0A);
delay_ms(250);
}

Kemudian compile dan flash ke ATmega8, dan verify sehingga sukses.

12. Kemudian pindah pada window model simulink. isikan nilai time simulation dengan nilai 100. Kemudian klik icon Start Simulation.

 

13. Hasil simulasi pada t=12, tampil nilai pada display

 

14. Hasil simulasi pada t=59, tampil nilai pada display

 

Demikian semoga bermanfaat.

 

Download Code ATmega8

Download Model Simulink

%d blogger menyukai ini: