close all;                                    % 모든 생성된 창을 닫음 
clear all;                                    % 열려있는 작업영역(workspace)을 모두 비움 
clc;                                          % 명령(command) 창을 비움
n=-30:30;                                     % 시간축 설정r
N=400; df=1/N; f=df*[-N/2:N/2-1];             % 주파수축 설정
fc=0.2;                                       % 차단 주파수 설정
hd=2*fc*sinc(2*fc*n);                         % 이상적인 필터의 임펄스 응답 hd[n]
wr=zeros(1,61); wr(11:51)=1;                  % 사각창 wr[n] 
hr=hd.*wr;                                    % 사각창을 씌운 임펄스 응답 hr[n]
Hd=zeros(1,N); Hd(N/2-0.2*N:N/2+0.2*N)=1;     % 이상적인 필터의 주파수 응답 Hd(Omega)
Wr=41*sinc(41*f)./sinc(f);                    % 사각창의 스펙트럼 Wr(Omega) 
Hr1=[conv(Hd,Wr) 0];                          % Hd(Omega)와 Wr(Omega)의 선형 컨벌루션 계산
Hr=(Hr1(1:N)+Hr1(N+1:2*N))/N;                 % 원형 컨벌루션으로 Hr(Omega) 계산 
Hr=fftshift(Hr);                              % Hr(Omega) 재정렬 (-0.5<=F<=0.5)

subplot(2,1,1);                               % 2행 1열 배열 그림창의 1번 창
stem(n,hr);                                   % 임펄스 응답 hr[n]을 그림  
title('\bf{사각창을 씌운 임펄스 응답}');        % 그림 제목
xlabel('\bf{n}'); grid on;                    % x축 라벨 및 그리드 표시 
subplot(2,1,2);                               % 2행 1열 배열 그림창의 2번 창
plot(f,Hr);                                   % 주파수 응답 Hd(Omega) 을 그림
title('\bf{사각창을 씌운 주파수 응답}');        % 그림 제목
xlabel('\bf{F}'); grid on;                    % x축 라벨 및 그리드 표시  