Sunday, August 27, 2017

DFT (DISCRETE FOURIER TRANSFORM) ATAS RUNTUN DISKRET

Anda bisa mengunduh GUI MATLAB di sini:

https://www.4shared.com/rar/7FS52FACei/DFT_Runtun.html



















Kode sumbuer GUI MATLAB berikut:

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

%Membaca parameter-parameter global
global N_x
N = N_x;

global L_x
L = L_x;

%==========================================================================
%Menghitung DFT
xn=sin(2*pi*1*(1:L)/L);
xn = [xn, zeros(1,N-L)]; % gelombang sinusoidal periodik x(n)
k=[-N/2:N/2];
Xk=dft(xn,N);                           % DFT
magXk=abs([Xk(N/2+1:N) Xk(1:N/2+1)]);   % magnitudi DFS

%Menampilkan Magnitudo dari DFT
magX=magXk;
axes(handles.axes2), stem(k,magXk, 'y', 'LineWidth',2); grid
xlabel('k');
title(['DFT atas Sinusoidal: ', 'L = ', num2str(L),' N = ', num2str(N)])

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

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

%==========================================================================
%Menghitung DFT N= 2 KALI
N2=2*N;
xn=sin(2*pi*1*(1:L)/L);
xn = [xn, zeros(1,N2-L)]; % gelombang sinusoidal periodik x(n)
k=[-N2/2:N2/2];
Xk=dft(xn,N2);                           % DFT
magXk=abs([Xk(N2/2+1:N2) Xk(1:N2/2+1)]);   % magnitudi DFS

%Menampilkan Magnitudo dari DFT
magX=magXk;
axes(handles.axes3), stem(k,magXk, 'y', 'LineWidth',2); grid
xlabel('k');
title(['DFT atas Runtun Sinusoidal: ', 'L = ', num2str(L),' N = ', num2str(N2)])

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

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

%==========================================================================
%Menghitung DFT N= 3 KALI
N3=3*N;
xn=sin(2*pi*1*(1:L)/L);
xn = [xn, zeros(1,N3-L)]; % gelombang sinusoidal periodik x(n)
k=[-N3/2:N3/2];
Xk=dft(xn,N3);                           % DFT
magXk=abs([Xk(N3/2+1:N3) Xk(1:N3/2+1)]);   % magnitudi DFS

%Menampilkan Magnitudo dari DFT
magX=magXk;
axes(handles.axes4), stem(k,magXk, 'y', 'LineWidth',2); grid
xlabel('k');
title(['DFT atas Runtun Sinusoidal: ', 'L = ', num2str(L),' N = ', num2str(N3)])

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

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


%==========================================================================
%Menghitung DFT N= 4 KALI
N4=4*N;
xn=sin(2*pi*1*(1:L)/L);
xn = [xn, zeros(1,N4-L)]; % gelombang sinusoidal periodik x(n)
k=[-N4/2:N4/2];
Xk=dft(xn,N4);                           % DFT
magXk=abs([Xk(N4/2+1:N4) Xk(1:N4/2+1)]);   % magnitudi DFS

%Menampilkan Magnitudo dari DFT
magX=magXk;
axes(handles.axes5), stem(k,magXk, 'y', 'LineWidth',2); grid
xlabel('k');
title(['DFT atas Runtun Sinusoidal: ', 'L = ', num2str(L),' N = ', num2str(N4)])

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

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










No comments: