Saturday, August 26, 2017

DFS ATAS RUNTUN-RUNTUN PERIODIK

Anda bisa mengunduh GUI MATLAB di sini:

https://www.4shared.com/rar/O3uhY_DBca/DFS_Periodik.html














GUI untuk kasus ini telah dirancang. Berikut adalah kode sumber callback dari tombol RUNTUN PERIODIK:

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

% Membaca L dan N dari kedua edit teks
L = str2num(get(handles.editL,'String'));
N = str2num(get(handles.editN,'String'));

% Membangkitkan runtun periodik
xn=[ones(1,L),zeros(1,N-L)];            % gelombang bujur-sangkar x(n)
xn1=[xn xn xn xn];
%=========================================================================
%Menampilkan runtun eksponensial riil x pada sumbu axes1 dengan tebal garis 2 warna merah
axes(handles.axes1)
stem(0:length(xn1)-1,xn1,'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('Runtun Kotak Periodik xn')

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

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

global L_x
L_x = L;

Berikut adalah kode sumber callback dari tombol HITUNG DFS:

function HITUNG_DFS_Callback(hObject, eventdata, handles)
% hObject    handle to HITUNG_DFS (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 DFS
xn=[ones(1,L),zeros(1,N-L)];            % gelombang bujur-sangkar x(n)
k=[-N/2:N/2];
Xk=dfs(xn,N);                           % DFS
magXk=abs([Xk(N/2+1:N) Xk(1:N/2+1)]);   % magnitudi DFS

%Menampilkan Magnitudo dari DFS
magX=magXk;
axes(handles.axes2), stem(k,magXk, 'c', 'LineWidth',2); grid
xlabel('k');
title(['DFS atas gelombang bujur-sangkar: ', '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 DFS N= 2 KALI
N2=2*N;
xn=[ones(1,L),zeros(1,N2-L)];            % gelombang bujur-sangkar x(n)
k=[-N2/2:N2/2];
Xk=dfs(xn,N2);                           % DFS
magXk=abs([Xk(N2/2+1:N2) Xk(1:N2/2+1)]);   % magnitudi DFS

%Menampilkan Magnitudo dari DFS
magX=magXk;
axes(handles.axes3), stem(k,magXk, 'c', 'LineWidth',2); grid
xlabel('k');
title(['DFS atas gelombang bujur-sangkar: ', '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 DFS N= 3 KALI
N3=3*N;
xn=[ones(1,L),zeros(1,N3-L)];            % gelombang bujur-sangkar x(n)
k=[-N3/2:N3/2];
Xk=dfs(xn,N3);                           % DFS
magXk=abs([Xk(N3/2+1:N3) Xk(1:N3/2+1)]);   % magnitudi DFS

%Menampilkan Magnitudo dari DFS
magX=magXk;
axes(handles.axes4), stem(k,magXk, 'c', 'LineWidth',2); grid
xlabel('k');
title(['DFS atas gelombang bujur-sangkar: ', '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 DFS N= 4 KALI
N4=4*N;
xn=[ones(1,L),zeros(1,N4-L)];            % gelombang bujur-sangkar x(n)
k=[-N4/2:N4/2];
Xk=dfs(xn,N4);                           % DFS
magXk=abs([Xk(N4/2+1:N4) Xk(1:N4/2+1)]);   % magnitudi DFS

%Menampilkan Magnitudo dari DFS
magX=magXk;
axes(handles.axes5), stem(k,magXk, 'c', 'LineWidth',2); grid
xlabel('k');
title(['DFS atas gelombang bujur-sangkar: ', '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: