11
3 이산시간 푸리에 해석 (B) 3.2 DTFT의 성질 앞 절에서 두 가지 중요한 성질을 논하였다. 이제 나머지 유용한 성질에 대해 논하 겠다. 의 이산시간 푸리에 변환이라고 하자. 증명이 주어지지 않은 성질은 각자 확인해 보고 넘어가기 바란다. 1. 선형성: 이산시간 푸리에 변환은 선형 변환이다. 즉 모든 에 대하여 다음을 만족한다. 두 개의 신호 을 선형결합한 이산시간 푸리에 변환은 각각의 이산시간 푸리에 변환의 선형결합과 같다. (3.5) 위의 결과는 다음 증명으로 설명된다. 2. 시간 이동(shift): 시간 영역에서의 이동은위상의 이동에 대응한다. (3.6) 위의 결과는 다음 증명으로 설명된다. 에서 m=n - k 로 치환하면 3. 주파수 이동: 복소 지수 만큼의 곱셈은 주파수 영역에서의 이동에 해당한다. (3.7)

3 이산시간 푸리에 해석 (B) - ICDEVICE두 푸리에 변환 행렬 사이의 최대 절대 오차가 보다 작으므로, 두 행렬은 CEMTool의 제한된 수치 정확성

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 3 이산시간 푸리에 해석 (B) - ICDEVICE두 푸리에 변환 행렬 사이의 최대 절대 오차가 보다 작으므로, 두 행렬은 CEMTool의 제한된 수치 정확성

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

3.2 DTFT 의 성질 앞 절에서 두 가지 중요한 성질을 논하였다. 이제 나머지 유용한 성질에 대해 논하

겠다. 가 의 이산시간 푸리에 변환이라고 하자. 증명이 주어지지 않은 성질은 각자 확인해 보고 넘어가기 바란다.

1. 선형성: 이산시간 푸리에 변환은 선형 변환이다. 즉 모든

에 대하여 다음을 만족한다. 두 개의 신호 과 을 선형결합한 이산시간 푸리에 변환은 각각의 이산시간 푸리에 변환의 선형결합과 같다.

(3.5)

위의 결과는 다음 증명으로 설명된다.

2. 시간 이동(shift): 시간 영역에서의 이동은위상의 이동에 대응한다.

(3.6)

위의 결과는 다음 증명으로 설명된다.

에서 m=n-k로 치환하면

3. 주파수 이동: 복소 지수 만큼의 곱셈은 주파수 영역에서의 이동에 해당한다.

(3.7)

Page 2: 3 이산시간 푸리에 해석 (B) - ICDEVICE두 푸리에 변환 행렬 사이의 최대 절대 오차가 보다 작으므로, 두 행렬은 CEMTool의 제한된 수치 정확성

위의 결과는 다음 증명으로 설명된다.

4. 반전: 시간 영역에서의 반전은 주파수 영역에서의 반전에 해당한다.

(3.8)

위의 결과는 다음 증명으로 설명된다.

5. 켤레(conjugation): 시간 영역에서의 켤레는 주파수 영역에서 반전과 켤레에 해당한다.

(3.9)

위의 결과는 다음 증명으로 설명된다.

이 성질로부터 다음과 같은 두 가지 식을 유도할 수 있다.

Page 3: 3 이산시간 푸리에 해석 (B) - ICDEVICE두 푸리에 변환 행렬 사이의 최대 절대 오차가 보다 작으므로, 두 행렬은 CEMTool의 제한된 수치 정확성

6. 실수 신호의 대칭성 우리는 이미 실수 신호의 켤레 대칭성에 대해 공부하였다. 의 켤레 대칭성에 대해 공부하였다. 또한 실수 신호은 2장에서 논한 것처럼 다음과 같이 우함수 부분과 기함수 부분으로 분해될 수 있다.

여기에서

그러면, 다음의 푸리에 변환식이 성립한다.

위 변환식은 실수 신호 에 대한 DTFT, 가 켤레 대칭적이라는 사실로부터 쉽게 증명된다.

의미: 만약 신호 이 실수이고 우함수이면, 또한 실수이고 우함수이다. 따라서 완전한 표현을 위해 단지 [0,p]구간에서의 하나의 그림만 필요하다. 복소수 신호의 비슷한 성질은 문제 3.7에서 다룬다. 7. 주파수 영역에서의 미분:

(3.10)

위의 결과는 다음 증명으로 설명된다. 식(3.1)의 양변을 ? 에 대해 미분하면

8. 콘벌루션: 이는 주파수 영역에서의 시스템 해석을 편리하게 하는 가장 유용한 성질 중의 하나이다.

Page 4: 3 이산시간 푸리에 해석 (B) - ICDEVICE두 푸리에 변환 행렬 사이의 최대 절대 오차가 보다 작으므로, 두 행렬은 CEMTool의 제한된 수치 정확성

위의 결과는 다음 증명으로 설명된다.

에서 q=n-k로 치환하면

9. 곱셈: 이는 콘벌루션 성질의 듀얼(dual)이다.

위의 콘벌루션과 비슷한 연산은 주기적 콘벌루션이라 불리고 따라서 로 표시된다. 이는 (이산 형태로) 5장에서 논한다. 10. 파시발(Parseval)의 정리 : 신호 의 에너지는 다음과 같다.

(3.13)으로부터 의 에너지 밀도 스펙트럼은 다음과 같이 정의된다.

(3.14)

그러면 [? ₁,? ₂] 대역에서 의 에너지는 다음과 같이 주어진다.

Page 5: 3 이산시간 푸리에 해석 (B) - ICDEVICE두 푸리에 변환 행렬 사이의 최대 절대 오차가 보다 작으므로, 두 행렬은 CEMTool의 제한된 수치 정확성

다음의 몇 예제에서 유한 신호 을 사용하여 이 성질 중 몇 가지를 확인할 것이다. 각각의 경우에 이산시간 푸리에 변환을 계산하기 위해 수치적 과정을 따를 것이다. 비록 이것이 각각의 성질의 타당성을 해석적으로 증명하지는 못하지만 우리에게 실제로 필요한 경험을 제공한다. 예제 3.7 이 예제에서 실수 유한 신호을 이용하여 선형성 (3.5)를 확인하여라. 다음은 CEMTool 로 계산된 결과입니다. 예제 3.7의 해 CEMTool>> x1 = rand(1,11); x2 = rand(1,11); n = 0:10; CEMTool>> alpha = 2; beta = 3; CEMTool>> k = 0:500; w = (pi/500)*k; CEMTool>> X1 = x1 * (exp(-j*pi/500)). (n'*k); /* DTFT of x1 */ CEMTool>> X2 = x2 * (exp(-j*pi/500)). (n'*k); /* DTFT of x2 */ CEMTool>> x = alpha*x1 + beta*x2; /* Linear combination of x1 & x2 */ CEMTool>> X = x * (exp(-j*pi/500)). (n'*k); /* DTFT of x */ CEMTool>> X_check = alpha*X1 + beta*X2; /* Linear Combination of X1 & X2 */ CEMTool>> error = max(abs(X-X_check)) /* Difference */ error = 7.1054e-015 다음은 MatLab 로 계산된 결과입니다. 예제 3.7의 해 >> x1 = rand(1,11); x2 = rand(1,11); n = 0:10;

>> alpha = 2; beta = 3;

>> k = 0:500; w = (pi/500)*k;

>> X1 = x1 * (exp(-j*pi/500)). (n'*k); % DTFT of x1

>> X2 = x2 * (exp(-j*pi/500)). (n'*k); % DTFT of x2

>> x = alpha*x1 + beta*x2; % Linear combination of x1 & x2

>> X = x * (exp(-j*pi/500)). (n'*k); % DTFT of x

>> % verification

>> X_check = alpha*X1 + beta*X2; % Linear Combination of X1 & X2

>> error = max(abs(X-X_check)) % Difference

error = 7.1054e-015

두 푸리에 변환 행렬 사이의 최대 절대 오차가 보다 작으므로, 두 행렬은 CEMTool의 제한된 수치 정확성 이내에서 같다.

과 가 0=n =10구간에서 [0,1]사이에 균일하게 분포된 불규칙 신호라 한

다. 그러면 수치적 이산시간 푸리에 변환 절차를 사용할 수 있다.

Page 6: 3 이산시간 푸리에 해석 (B) - ICDEVICE두 푸리에 변환 행렬 사이의 최대 절대 오차가 보다 작으므로, 두 행렬은 CEMTool의 제한된 수치 정확성

예제 3.8 이 0=n =10 구간에서 [0,1]사이에 균일하게 분포된 불규칙 신호이고 y(n)=x(n-2) 이라 하자. 그러면 샘플 이동 성질(3.6) 을 확인해 보아라. 다음은 CEMTool 로 계산된 결과입니다. 예제 3.8의 해 CEMTool>> x = rand(1,11); n = 0:10; CEMTool>> k = 0:500; w = (pi/500)*k; CEMTool>> X = x * (exp(-j*pi/500)). (n'*k); /* DTFT of x */ CEMTool>> /* signal shifted by two samples */ CEMTool>> y = x; m = n+2; CEMTool>> Y = y * (exp(-j*pi/500)). (m'*k); /* DTFT of y */ CEMTool>> /* verification */ CEMTool>> Y_check = (exp(-j*2). w).*X; /* mulplication by exp(-j2w)*/ CEMTool>> error = max(abs(Y-Y_check)) /* Difference*/ error = 5.7737e-015 다음은 MatLab 으로 계산된 결과입니다. 예제 3.8의 해 >> x = rand(1,11); n = 0:10;

>> k = 0:500; w = (pi/500)*k;

>> X = x * (exp(-j*pi/500)). (n'*k); % DTFT of x

>> % signal shifted by two samples

>> y = x; m = n+2;

>> Y = y * (exp(-j*pi/500)). (m'*k); % DTFT of y

>> % verification

>> Y_check = (exp(-j*2). w).*X; % multiplication by exp(-j2w)

>> error = max(abs(Y-Y_check)) % Difference

error = 5.7737e-015

예제 3.9 다음 신호에 대해서 주파수 이동 성질 (3.7)을 확인하여 보아라. 다음은 CEMTool 로 계산된 결과입니다. 예제 3.9의 해 CEMTool>> n = 0:100; x = cos(pi*n/2); CEMTool>> k = -100:100; w = (pi/100)*k; /* frequency between -pi and +pi */ CEMTool>> X = x * (exp(-j*pi/100)). (n'*k); /* DTFT of x */ CEMTool>> y = exp(j*pi*n/4).*x; /* signal mulitplied by exp(j*pi*n/4) */ CEMTool>> Y = y * (exp(-j*pi/100)). (n'*k); /* DTFT of y */ CEMTool>> /* Graphical verification */ CEMTool>> subplot(1,1,1) CEMTool>> subplot(2,2,1); plot(w/pi,abs(X));

Page 7: 3 이산시간 푸리에 해석 (B) - ICDEVICE두 푸리에 변환 행렬 사이의 최대 절대 오차가 보다 작으므로, 두 행렬은 CEMTool의 제한된 수치 정확성

CEMTool>> xtitle("frequency in pi units"); ytitle("|X|") CEMTool>> title("Magnitude of X") CEMTool>> subplot(2,2,2); plot(w/pi,angle(X)/pi); CEMTool>> xtitle("frequency in pi units"); ytitle("radiands/pi") CEMTool>> title("Angle of X") CEMTool>> subplot(2,2,3); plot(w/pi,abs(Y)); CEMTool>> xtitle("frequency in pi units"); ytitle("|Y|") CEMTool>> title("Magnitude of Y") CEMTool>> subplot(2,2,4); plot(w/pi,angle(Y)/pi); CEMTool>> xtitle("frequency in pi units"); ytitle("radians/pi") CEMTool>> title("Angle of Y") 결과 그림은 그림 3.5에 보여진다.

그림 3.5의 그림으로부터 가 크기와 각도 모두 정말 p/4만큼 이동한 것을 관찰할 수 있다.

예제 3.10 이 실수부와 허수부가 -5=n =10 구간에서 [0,1]사이에 균일하게 분포된 복소수 불규칙 신호라 하자. 켤레 성질(3.8) 을 확인하여 보아라. 다음은 CEMTool 로 계산된 결과입니다. 예제 3.10의 해 CEMTool>> n = -5:10; x = rand(1,length(n)) + j*rand(1,length(n));

Page 8: 3 이산시간 푸리에 해석 (B) - ICDEVICE두 푸리에 변환 행렬 사이의 최대 절대 오차가 보다 작으므로, 두 행렬은 CEMTool의 제한된 수치 정확성

CEMTool>> k = -100:100; w = (pi/100)*k; /* frequency between -pi and +pi */ CEMTool>> X = x * (exp(-j*pi/100)). (n'*k); /* DTFT of x */ CEMTool>> /* conjugation property */ CEMTool>> y = conj(x); /* signal conjugation */ CEMTool>> Y = y * (exp(-j*pi/100)). (n'*k); /* DTFT of y */ CEMTool>> /* verification */ CEMTool>> Y_check = conj(fliplr(X)); /* conj(X(-w)) */ CEMTool>> error = max(abs(Y-Y_check)) /* Difference */ error = 0 다음은 MatLab 으로 계산된 결과입니다. 예제 3.10의 해 >> n = -5:10; x = rand(1,length(n)) + j*rand(1,length(n)); >> k = -100:100; w = (pi/100)*k; % frequency between -pi and +pi >> X = x * (exp(-j*pi/100)). (n'*k); % DTFT of x >> % conjugation property >> y = conj(x); % signal conjugation >> Y = y * (exp(-j*pi/100)). (n'*k); % DTFT of y >> % verification >> Y_check = conj(fliplr(X)); % conj(X(-w)) >> error = max(abs(Y-Y_check)) % Difference error = 0

예제 3.11 이 -5=n =10 구간에서 [0,1]사이에 균일하게 분포된 복소수 불규칙 신호라 하자. 반전 성질(3.9)를 확인하여라. 다음은 CEMTool 로 계산된 결과입니다. 예제 3.11의 해 CEMTool>> n = -5:10; x = rand(1,length(n)); CEMTool>> k = -100:100; w = (pi/100)*k; /* frequency between -pi and +pi */ CEMTool>> X = x * (exp(-j*pi/100)). (n'*k); /* DTFT of x */ CEMTool>> /* folding property */ CEMTool>> y = lrflip(x); m = -lrflip(n); /* signal folding */ CEMTool>> Y = y * (exp(-j*pi/100)). (m'*k); /* DTFT of y */ CEMTool>> /* verification */ CEMTool>> Y_check = lrflip(X); /* X( -w) */ CEMTool>> error = max(abs(Y-Y_check)) /* Difference */ error = 0 다음은 MatLab 으로 계산된 결과입니다. 예제 3.11의 해 >> n = -5:10; x = rand(1,length(n)); >> k = -100:100; w = (pi/100)*k; % frequency between -pi and +pi

Page 9: 3 이산시간 푸리에 해석 (B) - ICDEVICE두 푸리에 변환 행렬 사이의 최대 절대 오차가 보다 작으므로, 두 행렬은 CEMTool의 제한된 수치 정확성

>> X = x * (exp(-j*pi/100)). (n'*k); % DTFT of x >> % folding property >> y = fliplr(x); m = -fliplr(n); % signal folding >> Y = y * (exp(-j*pi/100)). (m'*k); % DTFT of y >> % verification>> Y_check = fliplr(X); % X(-w) >> error = max(abs(Y-Y_check)) % Difference error = 0 예제 3.12 다음 신호에 대해서 실수 신호의 대칭성을 확인해보아라 다음은 CEMTool 로 계산된 결과입니다. 예제 3.12의 해 CEMTool>> n = -5:10; x = sin(pi*n/2); CEMTool>> k = -100:100; w = (pi/100)*k; /* frequency between -pi and +pi */ CEMTool>> X = x * (exp(-j*pi/100)). (n'*k); /* DTFT of x */ CEMTool>> /* signal decomposition */ CEMTool>> [xe,xo,m] = oddeven(x,n); /* even and odd parts */ CEMTool>> XE = xe * (exp(-j*pi/100)). (m'*k); /* DTFT of xe */ CEMTool>> XO = xo * (exp(-j*pi/100)). (m'*k); /* DTFT of xo */ CEMTool>> /* verification */ CEMTool>> XR = real(X); /* real part of X */ error1 = max(abs(XE-XR)) /* Difference */ error1 = 1.8974e-019 CEMTool>> XI = imag(X); /* imag part of X */ CEMTool>> error2 = max(abs(XO-j*XI)) /* Difference */ error2 = 1.8033e-019 CEMTool>> /* graphical verification */ CEMTool>> subplot(1,1,1); CEMTool>> subplot(2,2,1); plot(w/pi,XR); CEMTool>> xtitle("frequency in pi units"); ytitle("Re(X)"); CEMTool>> title("Real part of X"); CEMTool>> subplot(2,2,2); plot(w/pi,XI); CEMTool>> xtitle("frequency in pi units"); ytitle("Im(X)"); CEMTool>> title("Imaginary part of X"); CEMTool>> subplot(2,2,3); plot(w/pi,real(XE)); CEMTool>> xtitle("frequency in pi units"); ytitle("XE"); CEMTool>> title("Transform of even part"); CEMTool>> subplot(2,2,4); plot(w/pi,imag(XO)); CEMTool>> xtitle("frequency in pi units"); ytitle("XO"); CEMTool>> title("Transform of odd part") 결과 그림은 그림 3.6에 보여진다.

그림 3.6에서 의 실수부(또는 의 허수부)가 (또는 )의 이산시간 푸리에 변환과 같음을 관찰할 수 있다.

Page 10: 3 이산시간 푸리에 해석 (B) - ICDEVICE두 푸리에 변환 행렬 사이의 최대 절대 오차가 보다 작으므로, 두 행렬은 CEMTool의 제한된 수치 정확성

그림 3.6 예제 3.12의 그림

다음은 MatLab 으로 계산된 결과입니다. 예제 3.12의 해 >> n = -5:10; x = sin(pi*n/2); >> k = -100:100; w = (pi/100)*k; % frequency between -pi and +pi >> X = x * (exp(-j*pi/100)). (n'*k); % DTFT of x >> % signal decomposition >> [xe,xo,m] = evenodd(x,n); % even and odd parts >> XE = xe * (exp(-j*pi/100)). (m'*k); % DTFT of xe >> XO = xo * (exp(-j*pi/100)). (m'*k); % DTFT of xo >> % verification >> XR = real(X); % real part of X >> error1 = max(abs(XE-XR)) % Difference >> XI = imag(X); % imag part of X >> error2 = max(abs(XO-j*XI)) % Difference >> % graphical verification >> subplot(1,1,1) >> subplot(2,2,1); plot(w/pi,XR); grid; axis([-1,1,-2,2]) >> xlabel('frequency in pi units'); ylabel('Re(X)'); >> title('Real part of X') >> subplot(2,2,2); plot(w/pi,XI); grid; axis([-1,1,-10,10]) >> xlabel('frequency in pi units'); ylabel('Im(X)'); >> title('Imaginary part of X') >> subplot(2,2,3); plot(w/pi,real(XE)); grid; axis([-1,1,-2,2]) >> xlabel('frequency in pi units'); ylabel('XE'); >> title('Trans form of even part') >> subplot(2,2,4); plot(w/pi,imag(XO)); grid; axis([-1,1,-10,10]) >> xlabel('frequency in pi units'); ylabel('XO');

Page 11: 3 이산시간 푸리에 해석 (B) - ICDEVICE두 푸리에 변환 행렬 사이의 최대 절대 오차가 보다 작으므로, 두 행렬은 CEMTool의 제한된 수치 정확성

>> title('Transform of odd part')

그림에서 의 실수부(또는 의 허수부)가 (또는 )의 이산시간 푸리에 변환과 같음을 관찰할 수 있다.

그림: 예제 3.12 의 그림