Wednesday, August 30, 2017

WATAK KONVOLUSI SIRKULAR DFT











GUI MATLAB untuk memverifikasi watak ini telah dirancang. Berikut adalah kode sumber callback dari tombol TAMPILKAN KONVOLUSI SIRKULAR. Hasil dari GUI ini ketika dijalankan ditampilkan pada Gambar 3.27.

function HASIL_KONVOLUSI_Callback(hObject, eventdata, handles)
% hObject    handle to HASIL_KONVOLUSI (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

%Membersihkan sumbu-sumbu
cla(handles.axes1,'reset');
set(handles.axes1,'visible', 'off');
cla(handles.axes6,'reset');
set(handles.axes6,'visible', 'off');

%Menampilkan dan mengaktifkan sumbu axes8
set(handles.axes8,'visible', 'on');

%Membaca data global
global n1_x
n1 = n1_x;

global n2_x
n2 = n2_x;

global x_2
x2 = x_2;

global x_1
x1 = x_1;

%Menghitung konvolusi sirkular
n=n1:n2; N=length(n);
konv_sirkular=sirkonv(x1,x2,N);

%=========================================================================
%Menampilkan y pada sumbu axes8 dengan tebal garis 2 warna merah
axes(handles.axes8)
stem(n,konv_sirkular,'r','LineWidth',2); grid on;

%Memberikan grid x dan y dengan warna biru
set(gca, 'XColor', 'b')
set(gca, 'YColor', 'b')

%Menambahkan label dan judul
xlabel('Cuplik');ylabel('Amplitudo');
title('Hasil Konvolusi Sirkular')

%Memberikan warna keabuan  pada latar sumbu
set(gca,'Color',[0.5 0.5 0.5]);

%Menyimpan data global
global y
y = konv_sirkular;

Berikut adalah kode sumber callback dari tombol TAMPILKAN DFT:

function TAMPILKAN_DFT_Callback(hObject, eventdata, handles)
% hObject    handle to TAMPILKAN_DFT (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

%Membaca data global agar dapat dipakai untuk callback berikutnya
global x_1
x1 = x_1;

global n1_x
n1 = n1_x;

global n2_x
n2 = n2_x;

global x_2
x2 = x_2;

global y
hasil_konvolusi = y;

%Membaca N
N = str2num(get(handles.editBanyakTitik,'String'));

%==========================================================================
%Menghitung DFT[KONVOLUSI_SIRKULAR(x1,x2)]
xn=hasil_konvolusi;
L=length(xn);
xn=[xn,zeros(1,N-L+1)];
k=[-N/2:N/2];
Xk=dft(xn,N+1);                           %DFT[WNmn*xn]

%==========================================================================
%Menampilkan Real dari DFT[KONVOLUSI SIRKULAR(x1,x2)]
axes(handles.axes2), stem(k,abs(Xk), 'c', 'LineWidth',2); grid
xlabel('k');
title('Nilai absolut dari DFT[KONVOLUSI SIRKULAR(x1,x2)]'); ylabel('Magnitudo')

%Memberikan grid x dan y dengan warna biru
set(gca, 'XColor', 'b')
set(gca, 'YColor', 'b')

%Memberikan warna keabuan  pada latar sumbu
set(gca,'Color',[0.5 0.5 0.5]);

%==========================================================================
%Menampilkan Imajiner dari DFT[KONVOLUSI SIRKULAR(x1,x2)]
axes(handles.axes3), stem(k,angle(Xk), 'c', 'LineWidth',2); grid
xlabel('k');
title('Nilai sudut dari DFT[KONVOLUSI SIRKULAR(x1,x2)]'); ylabel('Radian')

%Memberikan grid x dan y dengan warna biru
set(gca, 'XColor', 'b')
set(gca, 'YColor', 'b')

%Memberikan warna keabuan  pada latar sumbu
set(gca,'Color',[0.5 0.5 0.5]);

%==========================================================================
%Menghitung DFT[x1]*DFT[x2]
%==========================================================================
xn=x1;
L=length(xn);
xn=[xn,zeros(1,N-L+1)];
k=[-N/2:N/2];
Xk1=dft(xn,N+1);        % DFT[x1]

xn=x2;
L=length(xn);
xn=[xn,zeros(1,N-L+1)];
k=[-N/2:N/2];
Xk2=dft(xn,N+1);        % DFT[x2]

Yk=Xk1.*Xk2;

%==========================================================================
%Menampilkan Riil dari DFT[x1]*DFT[x2]
axes(handles.axes4), stem(k,abs(Yk), 'c', 'LineWidth',2); grid
xlabel('k');
title('Nilai absolut dari DFT[x1]*DFT[x2]'); ylabel('Magnitudo')

%Memberikan grid x dan y dengan warna biru
set(gca, 'XColor', 'b')
set(gca, 'YColor', 'b')

%Memberikan warna keabuan  pada latar sumbu
set(gca,'Color',[0.5 0.5 0.5]);

%==========================================================================
%Menampilkan Imajiner dari DFT[x1]*DFT[x2]
axes(handles.axes5), stem(k,angle(Yk), 'c', 'LineWidth',2); grid
xlabel('k');
title('Nilai sudut dari DFT[x1]*DFT[x2]'); ylabel('Radian')

%Memberikan grid x dan y dengan warna biru
set(gca, 'XColor', 'b')
set(gca, 'YColor', 'b')

%Memberikan warna keabuan  pada latar sumbu

set(gca,'Color',[0.5 0.5 0.5]);






No comments: