close all;                                        % 모든 생성된 창을 닫음 
clear all;                                        % 열려있는 작업영역(workspace)을 모두 비움 
clc;                                              % 명령(command) 창을 비움

N=21; Nh=(N-1)/2;                                 % 필터 임펄스 응답 길이 설정
n=0:N-1;                                          % 시간축 설정
m=1:Nh;                                           % 길이 반인 시간축 설정
w_ham=0.54+0.546*cos(pi*m/Nh);                    % 해밍 창 생성
hp=((-1).^m./m).*w_ham;                           % 임펄스 응답 n>0 생성
hn=-((-1).^(-m)./m).*w_ham;                       % 임펄스 응답 n<0 생성
h=[fliplr(hn) 0 hp];                              % 임펄스 응답 생성
M=512; w=[0:M-1]*pi/M;                            % 주파수축 설정
Hf=h*exp(-j*n'*w);                                % h[n]의 DTFT H(Omega) 계산 

subplot(3,1,1);                                   % 3행 1열 분할 그림 창의 1번 창
plot(w/(2*pi),abs(Hf));                           % 디지털 미분기의 진폭 응답을 그림
hold on                                           % 현재 창 유지
plot(w/(2*pi),w,'r');                             % 디지털 미분기의 진폭 응답을 그림
title('\bf{디지털 미분기의 진폭 응답}');           % 그림 제목
xlabel('\bf{F}'); grid on;                        % x축 라벨 및 그리드 표시 
hold off
subplot(3,1,2);                                   % 3행 1열 분할 그림 창의 2번 창
plot(w/(2*pi),angle(Hf));                         % 디지털 미분기의 위상 응답을 그림
%title('\bf{디지털 미분기의 위상 응답}');           % 그림 제목
xlabel('\bf{F}'); grid on;                        % x축 라벨 및 그리드 표시 
subplot(3,1,3);                                   % 3행 1열 분할 그림 창의 3번 창
stem(n,h);                                        % 디지털 미분기의 임펄스 응답을 그림
title('\bf{디지털 미분기의 임펄스 응답}');          % 그림 제목
xlabel('\bf{n}'); grid on;                        % x축 라벨 및 그리드 표시 