19
3 이산시간 푸리에 해석 (D) 3.4 연속시간(아날로그) 신호의 샘플링과 복원(reconstruction) 이산 시간 신호는 여러 가지 상황에서 발생하지만 연속 시간 신호를 샘플링하여 생기는 이산 시간 신호일 경우가 가장 보편적이다. 연속 시간 신호를 처리하는데 있 어, 이를 직접 처리하지 않고 먼저 샘플링하여 이산 시간 신호를 얻은 다음, 이를 이산 시간 처리하는 경우가 많이 있다. 어떤 제약조건만 성립하면 연속 시간 신호는 그의 샘플에 의해서 이산 시간 신호로 완전하게 표현할 수 있다. 여러 응용에서, 예컨대 디지털 통신에서, 실제 세계의 아날로그 신호는 샘플링과 양 자화(quantization) 연산(종합해서 아날로그-디지털 전환 또는 ADC 라고 불린다)을 이용하여 이산 신호로 바뀐다. 이 이산 신호는 디지털 신호 처리기에 의해 처리되고 처리된 신호는 복원 연산(디지털- 아날로그 전환 또는 DAC 라고 불린다)을 이용하 여 아날로그 신호로 바뀐다. 푸리에 해석을 이용하여 주파수 영역의 관점으로부터 샘플링 연산을 기술하고 그 영향을 해석하고 복원 연산에 대해도 해석할 수 있다. 또한 양자화로 인한 이산 신호에 대한 영향이 무시할 수 있을 정도로 양자화 단계 의 수가 충분히 크다고 가정한다. 샘플링 가 아날로그(절대적으로 적분가능, absolutely inte grable) 신호라 하자. 이의 연속시간 푸리에 변환(CTFT)은 다음과 같다. 여기서 Ω 은 radian/sec 단위의 아날로그 주파수이다. 역 연속시간 푸리에 변환은 다음과 같다. 이제 이산시간 신호 을 구하기 위해 을 샘플링 간격 초 만큼 떨어져 서 샘플링한다. 의 이산시간 푸리에 변환이라 하자. 그러면 가 푸리에 변환 의 크기가 스케일되고 주파수가 스케일되고 평행이동된 변형의 가산 합임 을 보일 수 있다[19].

3 이산시간 푸리에 해석 (D) - ICDEVICE · 연속시간 푸리에 변환(CTFT)은 다음과 같다. 여기서 Ω은 radian/sec 단위의 아날로그 주파수이다. 역 연속시간

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 3 이산시간 푸리에 해석 (D) - ICDEVICE · 연속시간 푸리에 변환(CTFT)은 다음과 같다. 여기서 Ω은 radian/sec 단위의 아날로그 주파수이다. 역 연속시간

제 3 장 이산시간 푸리에 해석 (D)

3.4 연속시간(아날로그) 신호의 샘플링과 복원(reconstruction) 이산 시간 신호는 여러 가지 상황에서 발생하지만 연속 시간 신호를 샘플링하여 생기는 이산 시간 신호일 경우가 가장 보편적이다. 연속 시간 신호를 처리하는데 있어, 이를 직접 처리하지 않고 먼저 샘플링하여 이산 시간 신호를 얻은 다음, 이를 이산 시간 처리하는 경우가 많이 있다. 어떤 제약조건만 성립하면 연속 시간 신호는 그의 샘플에 의해서 이산 시간 신호로 완전하게 표현할 수 있다. 여러 응용에서, 예컨대 디지털 통신에서, 실제 세계의 아날로그 신호는 샘플링과 양자화(quantization) 연산(종합해서 아날로그-디지털 전환 또는 ADC 라고 불린다)을 이용하여 이산 신호로 바뀐다. 이 이산 신호는 디지털 신호 처리기에 의해 처리되고 처리된 신호는 복원 연산(디지털-아날로그 전환 또는 DAC 라고 불린다)을 이용하여 아날로그 신호로 바뀐다. 푸리에 해석을 이용하여 주파수 영역의 관점으로부터 샘플링 연산을 기술하고 그 영향을 해석하고 복원 연산에 대해도 해석할 수 있다. 또한 양자화로 인한 이산 신호에 대한 영향이 무시할 수 있을 정도로 양자화 단계의 수가 충분히 크다고 가정한다.

샘플링

가 아날로그(절대적으로 적분가능, absolutely integrable) 신호라 하자. 이의 연속시간 푸리에 변환(CTFT)은 다음과 같다.

여기서 Ω은 radian/sec 단위의 아날로그 주파수이다. 역 연속시간 푸리에 변환은 다음과 같다.

이제 이산시간 신호 을 구하기 위해 을 샘플링 간격 초 만큼 떨어져서 샘플링한다.

가 의 이산시간 푸리에 변환이라 하자. 그러면 가 푸리에 변환

의 크기가 스케일되고 주파수가 스케일되고 평행이동된 변형의 가산 합임을 보일 수 있다[19].

Page 2: 3 이산시간 푸리에 해석 (D) - ICDEVICE · 연속시간 푸리에 변환(CTFT)은 다음과 같다. 여기서 Ω은 radian/sec 단위의 아날로그 주파수이다. 역 연속시간

위 관계는 에일리어싱(aliasing) 공식으로 알려져 있다. 아날로그와 디지털 주파수는

을 통하여 관계된다.

반면에 샘플링 주파수 는 다음과 같다.

(3.26)을 그림으로 나타내면 그림 3.10과 같은데, 여기서 일반적으로, 만약 겹침이 있으면 높은 주파수는 낮은 주파수로 에일리어스 되기 때문에 이산 신호는 대응하

는 아날로그 신호의 에일리어싱된 변형임을 알 수 있다. 그러나, 만약 의

무한 "복제(replica)"가 을 만들기 위해 서로 겹치지 않는다면, 로부

터 푸리에 변환 을(또는 대등하게 아날로그 신호 을 이의 신호

로부터) 복원하는 것이 가능하다. 대역이 제한된 아날로그 신호의 경우 의

무한 "복제(replica)"가 을 만들기 위해 서로 겹치지 않는다. 그림 3.10 시간 영역과 주파수 영역에서 샘플링 연산

정의 2 대역제한(band-limited) 신호

신호는 만약 |Ω|> 에 대해 가 0인 유한의 라디안 주파수 가 존재하

면 대역제한이다. 주파수 는 Hz 단위의 신호 대역폭이라 불린다.

그림 3.10을 참조하여, 만약 , 또는 이와 대등하게 이면, 다음이 성립한다.

이는 대역제한 신호에 대해 샘플링 정리로 이어진다. 정리 3 샘플링 정리

대역폭이 인 대역제한 신호 는 만약 샘플링 주파수 가

의 대역폭 의 2배보다 크면 샘플 값 로부터 복원될 수 있다.

Page 3: 3 이산시간 푸리에 해석 (D) - ICDEVICE · 연속시간 푸리에 변환(CTFT)은 다음과 같다. 여기서 Ω은 radian/sec 단위의 아날로그 주파수이다. 역 연속시간

만약 그렇지 않으면 에일리어싱이 에 일어날 것이다. 아날로그 대역제한 신호

의 샘플링 속도 2 가 나이키스트 속도(Nyquist rate)라 불린다. 위의 결과는 다음 증명으로 설명된다.

식 (3.29) 이외의 구간, 즉, 이외의 구간에서는 =0이기 때문에 다음과 같은 관계가 성립한다.

와 의 관계로부터 위 식은 다음과 같이 된다.

여기서 이고 일 때

이므로

을 얻게 되며, 윗식에서 적분항을 수행하면 다음과 같이 된다.

Page 4: 3 이산시간 푸리에 해석 (D) - ICDEVICE · 연속시간 푸리에 변환(CTFT)은 다음과 같다. 여기서 Ω은 radian/sec 단위의 아날로그 주파수이다. 역 연속시간

다음에 정의 되는 sinc 함수

를 사용하면 는 다음과 같이 표현될 수 있다.

따라서, 만약 신호 가 ( 는 대역폭) 일 때

=0인 대역제한된 주파수 응답 를 갖는다면,

일 때 는 균등하게 간격지어진 샘플,

로부터 유일하게 복원되어질수 있다. 즉, 샘플링 주파수

는 보다 적어도 두 배가 되어야 한다.

가 샘플링된 후 이 표시하는 가장 높은 아날로그 주파수는 /2Hz(또는 ω=π)임을 주목해야 한다. 이는 이 장의 첫 번째 절에서 이산시간 푸리에 변환의 성질 2에서 말한 의미와 일치한다. 만약 매끄러운 그림을 만들 정도로 충분히 작은 시간 증가와 모든 모드(mode)를 보

일 정도로 충분히 큰 최대 시간을 갖는 세밀한 격자에서 을 샘플링한다면, 이

의 해석을 근사할 수 있다. 가 를 만족하는 격자 간격이라 하자. 그러면 다음은

(3.30) 아날로그 신호를 흉내내는(simulate) 행렬로 사용될 수 있다. 마찬가지로, 푸리에 변환 관계 (3.24) 역시 (3.30)의 관점에서 다음과 같이 근사되어야 한다.

Page 5: 3 이산시간 푸리에 해석 (D) - ICDEVICE · 연속시간 푸리에 변환(CTFT)은 다음과 같다. 여기서 Ω은 radian/sec 단위의 아날로그 주파수이다. 역 연속시간

이제 만약 (따라서 )가 유한이면, (3.31)은 이산시간 푸리에 변환 관계(3.3)과 비슷하다.

예제 3.17 라 하자. 이의 푸리에 변환을 구하고 그려라.

다음은 CEMTool 로 계산된 결과입니다. 예제 3.17의 해 CEMTool>> /* Analog Signal */ CEMTool>> Dt = 0.00005; CEMTool>> t = -0.005:0.005:Dt; CEMTool>> xa = exp(-1000*abs(t)); CEMTool>> /* Continuous-time Fourier Transform */ CEMTool>> Wmax = 2*pi*2000; CEMTool>> K = 500; k = 0:K:1; CEMTool>> W = k*Wmax/K; CEMTool>> Xa = xa * exp(-j*t'*W) * Dt; CEMTool>> Xa = real(Xa); CEMTool>> W = [-fliplr(W), W(2:501)]; /* Omega from -Wmax to Wmax */ CEMTool>> Xa = [fliplr(Xa), Xa(2:501)]; CEMTool>> subplot(1,1,1) CEMTool>> subplot(2,1,1); plot(t*1000,xa); CEMTool>> xtitle("t in msec."); ytitle("xa(t)") CEMTool>> title("Analog Signal") CEMTool>> subplot(2,1,2); plot(W/(2*pi*1000),Xa*1000); CEMTool>> xtitle("Frequency in KHz"); ytitle("Xa(jW)*1000"); CEMTool>> title("Continuous-time Fourier Transform"); 결과 그림은 그림 3.11에 보여진다. (3.24)로부터

가 실수 우함수 신호이므로 이는 실수 함수이다. 을 수치적으로 계

산하기 위해, 먼저 을 유한 격자 신호 로 근사해야 한다. 근사

을 사용하여, 가 -0.005=t=0.005(또는 등가적으로 [-5,5] msec)구간에서 유한 신호로 근사될 수 있음을 주목한다. (3.32)로부터 마찬가지로, O=2p(2000)

에 대해 이다. 따라서 다음과 같이 선택하면,

Page 6: 3 이산시간 푸리에 해석 (D) - ICDEVICE · 연속시간 푸리에 변환(CTFT)은 다음과 같다. 여기서 Ω은 radian/sec 단위의 아날로그 주파수이다. 역 연속시간

을 얻을 수 있다.

그림 3.11은 와 의 그림을 보이고 있다. 계산의 수를 줄이기 위해,

그림을 그릴 목적으로 을 [0,4000p]radians/sec (또는 마찬가지로 [0,2] KHz) 구간에서 계산하고 그후 이를 [-4000p,0]구간으로 복사했음을 주목하라. 표

시된 의 그림은 (3.32)와 일치한다.

다음은 MatLab 으로 계산된 결과입니다. 예제 3.17의 해

% Analog Signal

>> Dt = 0.00005; t = -0.005:Dt:0.005; xa = exp(-1000*abs(t));

% Continuous-time Fourier Transform

>> Wmax = 2*pi*2000; K = 500; k = 0:1:K; W = k*Wmax/K;

>> Xa = xa * exp(-j*t'*W) * Dt; Xa = real(Xa);

>> W = [-fliplr(W), W(2:501)]; % Omega from -Wmax to Wmax

>> Xa = [fliplr(Xa), Xa(2:501)]; % Xa over -Wmax to Wmax interval

>> subplot(1,1,1)

>> subplot(2,1,1);plot(t*1000,xa);

>> xlabel('t in msec.'); ylabel('xa(t)')

>> title('Analog Signal')

Page 7: 3 이산시간 푸리에 해석 (D) - ICDEVICE · 연속시간 푸리에 변환(CTFT)은 다음과 같다. 여기서 Ω은 radian/sec 단위의 아날로그 주파수이다. 역 연속시간

>> subplot(2,1,2);plot(W/(2*pi*1000),Xa*1000);

>> xlabel('Frequency in KHz'); ylabel('Xa(jW)*1000')

>> title('Continuous-time Fourier Transform')

그림: 예제 3.17 의 그림

예제 3.18 샘플링이 주파수 영역의 양(quantities)에 끼치는 영향을 공부하기 위해,

예제 3.17의 을 두 가지 다른 샘플링 주파수로 샘플링할 것이다. 다음은 CEMTool 로 계산된 결과입니다. 예제 3.18의 해 CEMTool>> /* Analog Signal */ CEMTool>> Dt = 0.00005; CEMTool>> t = -0.005:0.005:Dt; CEMTool>> xa = exp(-1000*abs(t)); CEMTool>> /* Discrete-time Signal */ CEMTool>> Ts = 0.0002; n = -25:25:1; CEMTool>> x = exp(-1000*abs(n*Ts)); CEMTool>> /* Discrete-time Fourier transform */

Page 8: 3 이산시간 푸리에 해석 (D) - ICDEVICE · 연속시간 푸리에 변환(CTFT)은 다음과 같다. 여기서 Ω은 radian/sec 단위의 아날로그 주파수이다. 역 연속시간

CEMTool>> K = 500; k = 0:K:1; CEMTool>> w = pi*k/K; CEMTool>> X = x * exp(-j*n'*w); CEMTool>> X = real(X); CEMTool>> w = [-fliplr(w), w(2:K+1)]; CEMTool>> X = [fliplr(X), X(2:K+1)]; CEMTool>> subplot(1,1,1) CEMTool>> subplot(2,1,1);plot(t*1000,xa); CEMTool>> xtitle("t in msec."); ytitle("x1(n)") CEMTool>> title("Discrete Signal"); CEMTool>> subplot(2,1,2);plot(w/pi,X); CEMTool>> xtitle("Frequency in pi units"); ytitle("X1(w)") CEMTool>> title("Discrete-time Fourier Transform") 결과 그림은 그림 3.12, 3.13에 보여진다.

a. 을 구하기 위해 을 로 샘플링하라. 을 구하고 그려라.

의 대역폭이 2KHz 이므로, 나이키스트 속도는 4000 sam/sec 인데, 이는 주

어진 보다 작다. 따라서 에일리어싱은 (거의) 없을 것이다. 그림 3.12의 맨위 그

림에서 샘플링을 강조하기 위해 이산 신호 을 위에 포개놓았다.

의 그림은 의 스케일된 변형( =5000만큼 스케일되었다)이다. 명백히 에일리어싱이 없다.

b. 을 구하기 위해 을 =1000sam/sec로 샘플링하라. 을 구하고 그려라

여기서 =1000<4000이다. 따라서 상당한 양의 에일리어싱이 있을 것이다. 이는

그림 3.13으로부터 명확하다. 이 그림에서 의 모양은 의 모양과 다

르고, 겹치는 의 복사를 더한 결과로 볼 수 있다.

Page 9: 3 이산시간 푸리에 해석 (D) - ICDEVICE · 연속시간 푸리에 변환(CTFT)은 다음과 같다. 여기서 Ω은 radian/sec 단위의 아날로그 주파수이다. 역 연속시간

다음은 MatLab 으로 계산된 결과입니다. 예제 3.18의 해

Page 10: 3 이산시간 푸리에 해석 (D) - ICDEVICE · 연속시간 푸리에 변환(CTFT)은 다음과 같다. 여기서 Ω은 radian/sec 단위의 아날로그 주파수이다. 역 연속시간

% Analog Signal

>> Dt = 0.00005; t = -0.005:Dt:0.005; xa = exp(-1000*abs(t));

% Discrete-time Signal

>> Ts = 0.0002; n = -25:1:25; x = exp(-1000*abs(n*Ts));

% Discrete-time Fourier transform

>> K = 500; k = 0:1:K; w = pi*k/K;

>> X = x * exp(-j*n'*w); X = real(X);

>> w = [-fliplr(w), w(2:K+1)];

>> X = [fliplr(X), X(2:K+1)];

>> subplot(1,1,1)

>> subplot(2,1,1);plot(t*1000,xa);

>> xlabel('t in msec.'); ylabel('x1(n)')

>> title('Discrete Signal'); hold on

>> stem(n*Ts*1000,x); gtext('Ts=0.2 msec'); hold off

>> subplot(2,1,2);plot(w/pi,X) ;

>> xlabel('Frequency in pi units'); ylabel('X1(w)')

>> title('Discrete-time Fourier Transform')

그림 예제 3.18a 의 그림

Page 11: 3 이산시간 푸리에 해석 (D) - ICDEVICE · 연속시간 푸리에 변환(CTFT)은 다음과 같다. 여기서 Ω은 radian/sec 단위의 아날로그 주파수이다. 역 연속시간

그림: 예제 3.18b 의 그림

복원

샘플링 정리와 위의 예제로부터 만약 대역제한인 를 나이키스트 속도 위로 샘

플링한다면, 이의 샘플 로부터 를 복원할 수 있다. 이 복원은 두 단계 과정으로 생각할 수 있다. 먼저 샘플은 가중 임펄스 열(train)로 전환된다.

그리고 나서 임펄스열은 대역으로 대역제한된 이상 아날로그 저역통과 필터를 통해 여파된다. →임펄스열전환 →이상저역통과필터→ 이 두 단계 과정은 보간(interpolating) 공식[19]을 사용하여 수학적으로 기술된다.

Page 12: 3 이산시간 푸리에 해석 (D) - ICDEVICE · 연속시간 푸리에 변환(CTFT)은 다음과 같다. 여기서 Ω은 radian/sec 단위의 아날로그 주파수이다. 역 연속시간

여기서 은 보간 함수이다. 위 복원(3.33)의 물리적 해석은 그림 3.14에 주어지는데, 이 그림에서 우리는 전체 시스템이 인과적이지 않고 따라서 실현가능하지 않으므로 이 이상 보간은 실제 실현가능하지 않다는 것을 관찰할 수 있다. 실용적 D/A 전환기: 실제로 우리는 (3.33)과 다른 접근방법이 필요하다. 두 단계 과정은 여전히 실현가능하지만 이제 우리는 이상 저역통과 필터를 실용적 아날로그 저역통과 필터로 바꾼다. (3.33)의 또다른 해석은 이것이 무한 차수의 보간이다는 것이다. 우리는 유한 차수의(그리고 사실은 낮은 차수의) 보간을 원한다. 이를 행하는 여러 가지 접근방식이 있다.

그림 3.14 샘플으로부터 대역제한 신호의 복원

?? 0차 홀드(hold) (ZOH) 보간: 이 보간에서 주어진 샘플 값은 다음 샘플을 받을 때까지 샘플 간격만큼 유지된다.

이는 임펄스열을 다음과 같은 형태의 보간 필터를 통해 여파함으로써 구해질 수 있다.

이는 사각 펄스이다. 결과로 나오는 신호는 정확한 파형 복원을 위해 적절히 설계된 아날로그 후(post)필터를 필요로 하는 불연속(piecewise)-상수 (계단) 파형이다.

?? 1차 홀드(FOH) 보간: 이 경우 인접한 샘플은 직선으로 연결된다. 이는 임펄스열을 다음을 통해 여파함으로써 얻을 수 있다.

다시 한 번 적절히 설계된 아날로그 후필터가 정확한 복원을 위해 필요하다. 이 보간은 높은 차수까지 확장될 수 있다.

Page 13: 3 이산시간 푸리에 해석 (D) - ICDEVICE · 연속시간 푸리에 변환(CTFT)은 다음과 같다. 여기서 Ω은 radian/sec 단위의 아날로그 주파수이다. 역 연속시간

?? 3차 스플라인(spline) 보간: 이 접근 방법은 샘플사이에서 보다 매끄러운, 그러나 반드시 더 정확하지는 않은 아날로그 신호의 추정을 위해 스플라인 보간을 사용한다. 따라서 이 보간은 아날로그 후필터가 필요하지 않다. 보다 매끄러운 복원은 3차 스플라인이라고 불리는 단편적으로(piecewise) 연속인 3차 다항식의 집합을 이용하여 구한다. 이는 [5]에 주어졌다.

여기서 은 다항식 계수인데 샘플값의 최소제곱 해석을 이용하여 구한다.

만약 가 주어지고 격자 간격이 인 매우 세밀한 격자로

을 보간하기를 원하다면, (3.33)으로부터

유한 개의 샘플을 가정한 사실에 비추어 정확한 아날로그 을 얻는 것은 불가능함을 주목해야한다.

예제 3.19 예제 3.18a 의 샘플 로부터, 을 복원하고 결과에 대해 논하라

다음은 CEMTool 로 계산된 결과입니다. 예제 3.19의 해 CEMTool>> n = n1:n2; t = t1:t2; Fs = 1/Ts; nTs = n*Ts; /* Ts is the sampling interval */ CEMTool>> xa = x * sinc(Fs*(ones(length(n),1)*t-nTs'*ones(1,length(t)))); CEMTool>> /* Discrete-time Signal x1(n) */ CEMTool>> Ts = 0.0002; n = -25:25:1; nTs = n*Ts; CEMTool>> x = exp(-1000*abs(nTs)); CEMTool>> /* Analog Signal reconstruction */ CEMTool>> Dt = 0.00005; t = -0.005:0.005:Dt; CEMTool>> xa = x * sinc(Fs*(ones(length(n),1)*t-nTs'*ones(1,length(t)))); CEMTool>> /* check */ CEMTool>> error = max(abs(xa - exp(-1000*abs(t)))) error = 0.0363 결과 그림은 그림 3.15에 보여진다.

이 을 =1/ =0.0002 sec로 샘플링하여 얻어졌음을 주목하라. 우리

Page 14: 3 이산시간 푸리에 해석 (D) - ICDEVICE · 연속시간 푸리에 변환(CTFT)은 다음과 같다. 여기서 Ω은 radian/sec 단위의 아날로그 주파수이다. 역 연속시간

는 -0.005=t=0.005구간에서 0.00005초의 격자 간격을 사용할 것인데, 이는 을 -25=n=25구간에서 만든다. 복원된 신호와 실제 아날로그 신호 사이의 최대 오

차는 0.0363 인데, 이는 가 엄밀히 대역제한이 아니라는(그리고 또한 유한 개의 샘플을 갖는다) 사실에 기인한다. 그림 3.15에서 시각적으로 복원이 훌륭함에 주목한다.

다음은 MatLab 으로 계산된 결과입니다. 예제 3.19의 해

% Discrete-time Signal x1(n)

>> Ts = 0.0002; n = -25:1:25; nTs = n*Ts;

>> x = exp(-1000*abs(nTs));

% Analog Signal reconstruction

>> Dt = 0.00005; t = -0.005:Dt:0.005;

>> xa = x * sinc(Fs*(ones(length(nTs),1)*t-nTs'*ones(1,length(t))));

% check

>> error = max(abs(xa - exp(-1000*abs(t))))

error = 0.0363

복원된 신호와 실제 아날로그 신호 사이의 최대 오차는 0.0363 인데, 이는

가 엄밀히

대역제한이 아니라는(그리고 또한 유한 개의 표본을 갖는다.) 사실에 기인한다.

Page 15: 3 이산시간 푸리에 해석 (D) - ICDEVICE · 연속시간 푸리에 변환(CTFT)은 다음과 같다. 여기서 Ω은 radian/sec 단위의 아날로그 주파수이다. 역 연속시간

그림: 예제 3.19 의 복원된 신호

예제 3.20 예제 3.18b 의 샘플 로부터 을 복원하고 결과에 대해 논하라. 다음은 CEMTool 로 계산된 결과입니다. 예제 3.20의 해 CEMTool>> /* Discrete-time Signal x2(n) */ CEMTool>> Ts = 0.001; n = -5:5:1; nTs = n*Ts; CEMTool>> x = exp(-1000*abs(nTs)); CEMTool>> /* Analog Signal reconstruction */ CEMTool>> Dt = 0.00005; t = -0.005:0.005:Dt; CEMTool>> xa = x * sinc(Fs*(ones(length(n),1)*t-nTs'*ones(1,length(t)))); CEMTool>> /* check */ CEMTool>> error = max(abs(xa - exp(-1000*abs(t)))) error = 0.1852 결과 그림은 그림 3.16에 보여진다.

이 을 =1/ =0.001 sec로 샘플링하여 얻어졌음을 주목하라. -0.005=t=0.005구간에서 0.00005초의 격자 간격을 다시 사용할 것인데, 이는

을 -5=n=5구간에서 만든다. 복원된 신호와 실제 아날로그 신호 사이의 최대

Page 16: 3 이산시간 푸리에 해석 (D) - ICDEVICE · 연속시간 푸리에 변환(CTFT)은 다음과 같다. 여기서 Ω은 radian/sec 단위의 아날로그 주파수이다. 역 연속시간

오차는 0.1852 인데, 이는 상당히 크고 가 대역제한이 아니라는 것만으로 돌릴 수 없다. 그림 3.16에서 복원된 신호가 보간 영역의 많은 곳에서 실제의 신호와 다름을 관찰하라. 이는 시간 영역에서 에일리어싱의 시각적 예증이다.

다음은 MatLab 으로 계산된 결과입니다. 예제 3.20의 해 % Discrete-time Signal x2(n)

>> Ts = 0.001; n = -5:1:5; nTs = n*Ts;

>> x = exp(-1000*abs(nTs));

% Analog Signal reconstruction

>> Dt = 0.00005; t = -0.005:Dt:0.005;

>> xa = x * sinc(Fs*(ones(length(nTs),1)*t-nTs'*ones(1,length(t))));

% check

>> error = max(abs(xa - exp(-1000*abs(t))))

error = 0.1852

복원된 신호와 실제 아날로그 신호 사이의 최대 오차는 0.1852 인데, 이는 상당히

크고 가

대역제한이 아니라는 것만으로 돌릴 수 없다. 그림에서 복원된 신호가 보간 영역의

많은 곳에서

실제의 신호와 다름을 관찰하라. 이는 시간 영역에서 에일리어싱의 시각적

예증이다.

Page 17: 3 이산시간 푸리에 해석 (D) - ICDEVICE · 연속시간 푸리에 변환(CTFT)은 다음과 같다. 여기서 Ω은 radian/sec 단위의 아날로그 주파수이다. 역 연속시간

그림 예제 3.20 의 복원된 신호

예제 3.21 예제 3.18 의 샘플 로부터 ZOH 와 FOH 보간을 이용하여 복원된 신호를 그려라. 그림에 대해 논하라. 다음은 CEMTool 로 계산된 결과입니다. 예제 3.21의 해 CEMTool>> /* Discrete-time Signal x1(n) : Ts = 0.0002 */ CEMTool>> Ts = 0.0002; n = -25:25:1; nTs = n*Ts; CEMTool>> x = exp(-1000*abs(nTs)); CEMTool>> /* Plots */ CEMTool>> subplot(2,1,1); stairs(nTs*1000,x); CEMTool>> xtitle("t in msec."); ytitle("xa(t)") CEMTool>> title("Reconstructed Signal from x1(n) using zero-order-hold"); CEMTool>> /* Discrete-time Signal x2(n) : Ts = 0.001 */ CEMTool>> Ts = 0.001; n = -5:5:1; nTs = n*Ts; CEMTool>> x = exp(-1000*abs(nTs)); CEMTool>> /* Plots */ CEMTool>> subplot(2,1,2); stairs(nTs*1000,x); CEMTool>> xtitle("t in msec."); ytitle("xa(t)"); CEMTool>> title("Reconstructed Signal from x2(n) using zero-order-hold");

Page 18: 3 이산시간 푸리에 해석 (D) - ICDEVICE · 연속시간 푸리에 변환(CTFT)은 다음과 같다. 여기서 Ω은 radian/sec 단위의 아날로그 주파수이다. 역 연속시간

결과 그림은 그림 3.17에 보여진다. 이 복원에서 을 계산하지 않지만 이의 샘플을 이용하여 단지 그리기만 함을 주목하라. 그림은 그림 3.17에 보여지고 있는데 ZOH 복원이 불완전하고 추가적인 아날로그 신호의 처리가 필요함을 알 수 있다. FOH 복원은 좋은 것처럼 보이나 t = 0 근처에서 주의깊게 관찰하면 신호의 최대점이 올바르게 재생되지 않음을 알 수 있다. 일반적으로, 만약 샘플링 주파수가 나이키스트 속도보다 훨씬 높으면 FOH 보간은 받아들일 만한 복원을 제공한다.

다음은 MatLab 으로 계산된 결과입니다. 예제 3.21의 해

% Discrete-time Signal x1(n) : Ts = 0.0002

>> Ts = 0.0002; n = -25:1:25; nTs = n*Ts;

>> x = exp(-1000*abs(nTs));

% Plo ts

>> subplot(2,1,1); stairs(nTs*1000,x);

>> xlabel('t in msec.'); ylabel('xa(t)')

>> title('Reconstructed Signal from x1(n) using zero-order-hold'); hold on

>> stem(n*Ts*1000,x); hold off

%

% Discrete-time Signal x2(n) : Ts = 0.001

Page 19: 3 이산시간 푸리에 해석 (D) - ICDEVICE · 연속시간 푸리에 변환(CTFT)은 다음과 같다. 여기서 Ω은 radian/sec 단위의 아날로그 주파수이다. 역 연속시간

>> Ts = 0.001; n = -5:1:5; nTs = n*Ts;

>> x = exp(-1000*abs(nTs));

% Plots

>> subplot(2,1,2); stairs(nTs*1000,x);

>> xlabel('t in msec.'); ylabel('xa(t)')

>> title('Reconstructed Signal from x2(n) using zero-order-hold'); hold on

>> stem(n*Ts*1000,x); hold off

그림에 보여지고 있는데 ZOH 복원이 불완전하고 추가적인 아날로그 신호의

처리가 필요함을 알 수 있다. FOH 복원은 좋은 것처럼 보이나 t = 0 근처에서

주의깊게 관찰하면 신호의 최대점이 올바르게 재생되지 않음을 알 수 있다.

일반적으로, 만약 표본화 주파수가 나이키스트 속도보다 훨씬 높으면 FOH 보간은

받아들일 만한 복원을 제공한다.

그림: 예제 3.21 의 신호 복원