Wednesday, August 30, 2017

WATAK PERKALIAN DFT











GUI MATLAB untuk memverifikasi watak ini telah dirancang. Berikut adalah kode sumber callback dari tombol TAMPILKAN PERKALIAN RUNTUN. Hasil dari GUI ini ketika dijalankan ditampilkan pada Gambar 3.28.

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 perkalian runtun
n=n1:n2;
hasil_kali = x1.*x2;

%=========================================================================
%Menampilkan y pada sumbu axes8 dengan tebal garis 2 warna merah
axes(handles.axes8)
stem(n,hasil_kali,'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 Perkalian Dua Runtun')

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

%Menyimpan data global
global y
y = hasil_kali;

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_kali = y;

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

%==========================================================================
%Menghitung KONVOLUSI SIRKULAR[DFT[x1],DFT(x2)]]/N
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[x1]

%Menghitung konvolusi sirkular
Yk = sirkonv(Xk1,Xk2,length(xn))/length(xn);

%==========================================================================
%Menampilkan Absolut dari KONVOLUSI SIRKULAR[DFT[x1],DFT(x2)]]/N
axes(handles.axes2), stem(k,abs(Yk), 'c', 'LineWidth',2); grid
xlabel('k');
title('Nilai absolut dari KONVOLUSI SIRKULAR[DFT[x1],DFT(x2)]]/N'); 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 Sudut dari KONVOLUSI SIRKULAR[DFT[x1],DFT(x2)]]/N
axes(handles.axes3), stem(k,angle(Yk), 'c', 'LineWidth',2); grid
xlabel('k');
title('Nilai sudut dari KONVOLUSI SIRKULAR[DFT[x1],DFT(x2)]]/N'); 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*x2]
%==========================================================================
xn=hasil_kali;
L=length(xn);
xn=[xn,zeros(1,N-L+1)];
k=[-N/2:N/2];
Xk_kali=dft(xn,N+1);        % DFT[x1*x2]

%==========================================================================
%Menampilkan Absolut dari DFT[x1*x2]
axes(handles.axes4), stem(k,abs(Xk_kali), 'c', 'LineWidth',2); grid
xlabel('k');
title('Nilai absolut dari DFT[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 Sudut dari DFT[x1*x2]
axes(handles.axes5), stem(k,angle(Xk_kali), 'c', 'LineWidth',2); grid
xlabel('k');
title('Nilai sudut dari DFT[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]);



No comments: