Python 과 함께 배우는 신호
해석 박섭형
신호의 분류 신호의 상관 함수
Python과 함께 배우는 신호 해석
제 6 강. 신호의 분류와 신호의 상관 함수 (제 3 장. 신호의 기초)
박섭형
한림대학교 전자공학과
한림대학교 박섭형 Python과 함께 배우는 신호 해석 제 6 강. 신호의 분류와 신호의 상관 함수 1
Python 과 함께 배우는 신호
해석 박섭형
신호의 분류 신호의 상관 함수
배울 내용
신호의 분류 신호의 상관 함수
상호 상관 함수 자기 상관 함수
주요 신호
단위 임펄스 신호 단위 계단 신호
신호의 주파수
정현파 신호의 샘플링과 그래프 그리기
한림대학교 박섭형 Python과 함께 배우는 신호 해석 제 6 강. 신호의 분류와 신호의 상관 함수 2
Python 과 함께 배우는 신호
해석 박섭형
신호의 분류 신호의 상관 함수
주기 신호와 비주기 신호
주기 신호는 동일한 파형의 모습이 일정 간격으로 반복되는 신호를 말한다.
연속시간 주기 신호
˜x(t) = ˜x(t + mT), m =±1, ±2, · · · , (3.1) 여기에서 이 식을 만족하는 T 의 최소값 T0를 이 신호의 기본 주기 (fundamental period) 라 하고, f0 = 1
T0
을기본주파수 (fundamental frequency)라고 한다.
t
˜
x(t) = A sin(2πt/T0) A
T0
2 T0 3T0
−T20 2
−T0 0
T0
그림 3.1:연속시간 주기 신호의 예 : ˜x(t) = A sin(2πt/T0).
한림대학교 박섭형 Python과 함께 배우는 신호 해석 제 6 강. 신호의 분류와 신호의 상관 함수 3
Python 과 함께 배우는 신호
해석 박섭형
신호의 분류 신호의 상관 함수
주기 신호와 비주기 신호
이산시간 주기 신호
˜x[n] = ˜x[n + mN], m =±1, ±2, · · · , (3.2) 여기에서 이 식을 만족하는 N 의 최소값 N0를 이 신호의 기본 주기라 하고, ˆf0=N1
0을기본주파수라고 한다.
˜x[n] ={· · · , 1, 2, 3, 1, 2, 3, 1, 2, 3, · · · } (3.3) 이 신호는 1, 2, 3 세 개의 값이 반복되어 나타나는 이산시간 주기 신호이다.
반복되는 샘플의 갯수가 3 개이므로 이 주기 신호의 기본 주기는 N0= 3 이고, 기본 주파수는 ˆf0=N1
0 = 13이다.
한림대학교 박섭형 Python과 함께 배우는 신호 해석 제 6 강. 신호의 분류와 신호의 상관 함수 4
Python 과 함께 배우는 신호
해석 박섭형
신호의 분류 신호의 상관 함수
주기 신호와 비주기 신호
비주기 신호는 동일한 파형의 모습이 일정 간격으로 반복되지 않는 신호를 말한다.
또 다른 표현으로 비주기 신호는 주기가 무한대인 주기 신호이다.
한림대학교 박섭형 Python과 함께 배우는 신호 해석 제 6 강. 신호의 분류와 신호의 상관 함수 5
Python 과 함께 배우는 신호
해석 박섭형
신호의 분류 신호의 상관 함수
우측 (Right-handed) 신호와 좌측 (Left-handed) 신호
우측 신호
x(t) =
0 아닌 값 , t≥ t1
0, t < t1
(3.4)
x[n] =
0 아닌 값 , n≥ n1
0, n < n1 (3.5)
좌측 신호
x(t) =
0, t≥ t1
0 아닌 값 , t < t1
(3.6)
x[n] =
0, n≥ n1
0 아닌 값 , n < n1
(3.7)
한림대학교 박섭형 Python과 함께 배우는 신호 해석 제 6 강. 신호의 분류와 신호의 상관 함수 6
Python 과 함께 배우는 신호
해석 박섭형
신호의 분류 신호의 상관 함수
인과 신호, 반인과 신호, 비인과 신호
인과 신호 (causal signal)
x(t) =
0 아닌 값 , t≥ 0
0, t < 0 (3.8)
x[n] =
0 아닌 값 , n≥ 0
0, n < 0
(3.9)
반인과 신호 (anticausal signal)
x(t) =
0, t≥ 0
0 아닌 값 , t < 0 (3.10)
x[n] =
0, n≥ 0
0 아닌 값 , n < 0 (3.11) 비인과 신호 (noncausal signal) 는 시간 축에서 양수와 음수 모두에서 신호의 크기가 0이 아닌 신호를 말한다.
한림대학교 박섭형 Python과 함께 배우는 신호 해석 제 6 강. 신호의 분류와 신호의 상관 함수 7
Python 과 함께 배우는 신호
해석 박섭형
신호의 분류 신호의 상관 함수
기신호 (Odd Signal) 와 우신호 (Even Signal)
기신호 : 기신호의 그래프는 원점에 대해서 대칭이다.
x(t) =−x(−t) (3.12)
x[n] =−x[−n] (3.13)
우신호 : 우신호의 그래프는 세로 축에 대해서 대칭이다.
x(t) = x(−t) (3.14)
x[n] = x[−n] (3.15)
한림대학교 박섭형 Python과 함께 배우는 신호 해석 제 6 강. 신호의 분류와 신호의 상관 함수 8
Python 과 함께 배우는 신호
해석 박섭형
신호의 분류 신호의 상관 함수
기신호 (Odd Signal) 와 우신호 (Even Signal)
모든 신호는 기신호 성분과 우신호 성분의 합으로 표현할 수 있다.
연속 시간 신호의 경우
x(t) = xe(t) + xo(t), (3.16) 여기에서 xe(t) =12{x(t) + x(−t)}이고, xo(t) = 12{x(t) − x(−t)}이다.
xe(−t) = xe(t)이므로, xe(t)는 우신호이고, xo(−t) = −xo(t)이므로, xo(t) 는 기신호이다.
이산 시간 신호의 경우
x[n] = xe[n] + xo[n], (3.17) 여기에서 xe[n] =12{x[n] + x[−n]}는 우신호, xo[n] = 12{x[n] − x[−n]}은 기신호이다.
한림대학교 박섭형 Python과 함께 배우는 신호 해석 제 6 강. 신호의 분류와 신호의 상관 함수 9
Python 과 함께 배우는 신호
해석 박섭형
신호의 분류 신호의 상관 함수
기신호 (Odd Signal) 와 우신호 (Even Signal)
예제 3.1
다음과 같이 주어지는 신호 x[n] 을 기신호 xo[n]과 우신호 xe[n]으로 분해하고 각 신호의 그래프를 그려라.
−4 −2 0 2 4
1 2 3 4
n x[n]
그림 3.2:신호를 기신호와 우신호로 분리하는 예.
x[n] 을 수열 형식으로 표현해 보면 다음과 같다.
x[n] ={0, 0, 0, 0, 1
↑, 3, 4, 3, 2}
한림대학교 박섭형 Python과 함께 배우는 신호 해석 제 6 강. 신호의 분류와 신호의 상관 함수 10
Python 과 함께 배우는 신호
해석 박섭형
신호의 분류 신호의 상관 함수
기신호 (Odd Signal) 와 우신호 (Even Signal)
그러면 x[−n]은 다음과 같다.
x[−n] = {2, 3, 4, 3, 1
↑, 0, 0, 0, 0} 따라서 xo[n]과 xe[n]은 각각 다음과 같이 구할 수 있다.
xo[n] =1
2{x[n] − x[−n]}
={0, 0, 0, 0,1 2↑
,3 2, 2,3
2, 1} − {1,3 2, 2,3
2,1 2↑
, 0, 0, 0, 0} (3.18)
={−1, −3
2,−2, −3 2, 0
↑,3 2, 2,3
2, 1}
xe[n] =1
2{x[n] + x[−n]}
={0, 0, 0, 0,1 2↑
,3 2, 2,3
2, 1} + {1,3 2, 2,3
2,1 2↑
, 0, 0, 0, 0} (3.19)
={1,3 2, 2,3
2, 1
↑,3 2, 2,3
2, 1}
한림대학교 박섭형 Python과 함께 배우는 신호 해석 제 6 강. 신호의 분류와 신호의 상관 함수 11
Python 과 함께 배우는 신호
해석 박섭형
신호의 분류 신호의 상관 함수
유한 길이 (Finite-length) 신호와 무한 길이 (Infinite-length) 신호
연속시간 신호 x(t) 가 다음 유한 길이 구간에서 0인 아니면 x(t) 를 유한 길이 신호라고 한다.
−∞ < t1< t < t2<∞. (3.20) 이산시간 신호 x[n] 이 다음 유한 길이 구간에서 0인 아니면 x[n] 을 유한 길이 신호라고 한다.
−∞ < n1< n < n2<∞. (3.21)
연속 시간 신호 x(t) 가 모든 실수 t 에 대해서 x(t)̸= 0을 만족하면 무한 길이 신호라고 한다.
이산 시간 신호 x[n] 이 모든 정수 n 에 대해서 x[n]̸= 0을 만족하면 무한 길이 신호라고 한다.
한림대학교 박섭형 Python과 함께 배우는 신호 해석 제 6 강. 신호의 분류와 신호의 상관 함수 12
Python 과 함께 배우는 신호
해석 박섭형
신호의 분류 신호의 상관 함수
결정 (Deterministic) 신호와 불규칙 (Random) 신호
결정 신호는 신호의 크기가 수식이나 규칙 또는 테이블 등으로 결정되는 신호로서, 신호의 미래 값을 과거값들로부터 계산할 수 있다.
불규칙 신호는 신호의 미래 값을 정확히 예측할 수 없는 신호로서 신호의 미래 값은 그 신호들의 평균적인 성질들로 부터 짐작할 수 밖에 없다.
한림대학교 박섭형 Python과 함께 배우는 신호 해석 제 6 강. 신호의 분류와 신호의 상관 함수 13
Python 과 함께 배우는 신호
해석 박섭형
신호의 분류 신호의 상관 함수
에너지 신호와 전력 신호
x(t) 의 순간 전력 P(t) 와 x[n] 의 순간 전력 P[n]
P(t) =|x(t)|2, (3.22)
P[n] =|x[n]|2. (3.23)
구간 [t1, t2]에서 x(t) 의 에너지 E(t1, t2)와 평균 전력 P(t1, t2)
E(t1, t2) =
∫ t2
t1 |x(t)|2dt, (3.24)
P(t1, t2) = 1 t2− t1
∫ t2
t1
|x(t)|2dt. (3.25)
구간 [n1, n2]에서 x[n] 의 에너지 E(n1, n2)와 평균 전력 P(n1, n2)
E(n1, n2) =
n2
∑
n=n1
|x[n]|2dt, (3.26)
P(n1, n2) = 1 n2− n1+ 1
n2
∑
n=n1
|x[n]|2dt. (3.27)
한림대학교 박섭형 Python과 함께 배우는 신호 해석 제 6 강. 신호의 분류와 신호의 상관 함수 14
Python 과 함께 배우는 신호
해석 박섭형
신호의 분류 신호의 상관 함수
에너지 신호와 전력 신호
x(t) 의 에너지 E∞와 평균 전력 P∞는 각각 다음과 같이 정의한다.
E∞=
∫ ∞
−∞|x(t)|2dt, (3.28)
P∞= lim
T→∞
1 2T
∫ T
−T|x(t)|2dt. (3.29) x[n] 의 에너지 E∞와 평균 전력 P∞는 각각 다음과 같이 정의한다.
E∞=
∑∞ n=−∞
|x[n]|2dt, (3.30)
P∞= lim
N→∞
1 2N + 1
∑N n=−N
|x[n]|2dt. (3.31)
신호의 에너지와 평균 전력을 이용하여 신호를 다음과 같이 분류한다.
에너지 신호 (energy signal): E∞<∞인 신호를 에너지 신호라고 한다.
전력 신호 (power signal): 0 < P∞<∞인 신호를 전력 신호라고 한다.
한림대학교 박섭형 Python과 함께 배우는 신호 해석 제 6 강. 신호의 분류와 신호의 상관 함수 15
Python 과 함께 배우는 신호
해석 박섭형
신호의 분류 신호의 상관 함수
에너지 신호와 전력 신호
예제 3.2
다음과 같이 주어지는 정현파 신호 x(t) 의 한 주기에서 평균 전력을 구하라.
x(t) = 220√
2 cos(120πt + θ).
x(t) 의 주파수는 f0= 60 Hz이므로, 한 주기는 1/60 초이다.
Px= 1 1/60
∫1/60
0
|220√
2 cos(120πt + θ)|2dt
= 60
∫ 1/60
0
(220√
2)2cos2(120πt + θ)dt. (3.32)
한림대학교 박섭형 Python과 함께 배우는 신호 해석 제 6 강. 신호의 분류와 신호의 상관 함수 16
Python 과 함께 배우는 신호
해석 박섭형
신호의 분류 신호의 상관 함수
에너지 신호와 전력 신호
cos2(α) =12(1 + cos(2α))이므로, 이 식을 다음과 같이 쓸 수 있다.
Px= 60
∫1/60
0
(220√ 2)21
2[1 + cos(240πt + 2θ)] dt
= 30(220√ 2)2
∫ 1/60
0
dt + 30(220√ 2)2
∫ 1/60
0
cos(240πt + 2θ)dt (3.33)
=30(220√ 2)2
60 =2202× 2
2 = 2202.
한림대학교 박섭형 Python과 함께 배우는 신호 해석 제 6 강. 신호의 분류와 신호의 상관 함수 17
Python 과 함께 배우는 신호
해석 박섭형
신호의 분류 신호의 상관 함수
신호의 상호 상관 (Cross-correlation) 함수
연속 시간 주기 신호 ˜x(t), ˜y(t) (주기 : T)
rxy(τ ) = 1 T
∫ t0+T
t0
˜x(t)˜y∗(t− τ)dt = 1 T
∫ t0+T
t0
˜x(t + τ )˜y∗(t)dt
연속 시간 비주기 신호 x(t), y(t):
rxy(τ ) =
∫ ∞
−∞
x(t)y∗(t− τ)dt =
∫ ∞
−∞
x(t + τ )y∗(t)dt
이산 시간 주기 신호 ˜x[n], ˜y[n] (주기 : N)
rxy[k] = 1 N
n0+N∑−1 n=n0
˜x[n]˜y∗[n− k] = 1 N
n0∑+N−1 n=n0
˜x[n + k]˜y∗[n]
이산 시간 비주기 신호 x[n], y[n]:
rxy[k] =
∑∞ n=−∞
x[n]y∗[n− k] =
∑∞ n=−∞
x[n + k]y∗[n]
한림대학교 박섭형 Python과 함께 배우는 신호 해석 제 6 강. 신호의 분류와 신호의 상관 함수 18
Python 과 함께 배우는 신호
해석 박섭형
신호의 분류 신호의 상관 함수
신호의 자기 상관 (Auto-correlation) 함수
연속 시간 주기 신호 ˜x(t) (주기 : T)
rxx(τ ) = 1 T
∫ t0+T
t0
˜x(t)˜x∗(t− τ)dt = 1 T
∫ t0+T
t0
˜x(t + τ )˜x∗(t)dt
연속 시간 비주기 신호 x(t), y(t):
rxx(τ ) =
∫ ∞
−∞
x(t)x∗(t + τ )dt =
∫ ∞
−∞
x(t + τ )x∗(t)dt
이산 시간 주기 신호 ˜x[n] (주기 : N)
rxx[k] = 1 N
n0+N∑−1 n=n0
˜x[n]˜x∗[n− k] = 1 N
n0∑+N−1 n=n0
˜x[n + k]˜x∗[n]
이산 시간 비주기 신호 x[n]:
rxx[k] =
∑∞ n=−∞
x[n]x∗[n− k] =
∑∞ n=−∞
x[n− k]x∗[n]
한림대학교 박섭형 Python과 함께 배우는 신호 해석 제 6 강. 신호의 분류와 신호의 상관 함수 19
Python 과 함께 배우는 신호
해석 박섭형
신호의 분류 신호의 상관 함수
이산 시간 신호의 상호 상관 함수
예제
다음 두 이산 시간 신호의 상호 상관 함수 rxy[k]를 구하라.
x[n] ={1
↑, 2, 3}, y[n] = {2
↑, 1,−1, 4}
n −5 −4 −3 −2 −1 0 1 2 3 4 5
x[n] 1 2 3
y[n + 4] 2 1 −1 4
y[n + 3] 2 1 −1 4
y[n + 2] 2 1 −1 4
y[n + 1] 2 1 −1 4
y[n] 2 1 −1 4
y[n− 1] 2 1 −1 4
y[n− 2] 2 1 −1 4
y[n− 3] 2 1 −1 4
한림대학교 박섭형 Python과 함께 배우는 신호 해석 제 6 강. 신호의 분류와 신호의 상관 함수 20
Python 과 함께 배우는 신호
해석 박섭형
신호의 분류 신호의 상관 함수
이산 시간 신호의 상호 상관 함수
rxy[n] = 0,
rxy[−3] =
∑2 n=0
x[n]y[n + 3] = (1)(4) = 4
rxy[−2] =
∑2 n=0
x[n]y[n + 2] = (1)(−1) + (2)(4) = 7
rxy[−1] =
∑2 n=0
x[n]y[n + 1] = (1)(1) + (2)(−1) + (3)(4) = 11
rxy[0] =
∑2 n=0
x[n]y[n] = (1)(2) + (2)(1) + (3)(−1) = 1
rxy[1] =
∑2 n=0
x[n]y[n− 1] = (2)(2) + (3)(1) = 7
rxy[2] =
∑2 n=0
x[n]y[n− 1] = (3)(2) = 6 rxy[n] = 0, n≥ 3
한림대학교 박섭형 Python과 함께 배우는 신호 해석 제 6 강. 신호의 분류와 신호의 상관 함수 21
Python 과 함께 배우는 신호
해석 박섭형
신호의 분류 신호의 상관 함수
이산 시간 신호의 상호 상관 함수
>>> x = np.array([1, 2, 3])
>>> y = np.array([2, 1, -1, 4])
>>> np.correlate(x,y) array([11, 1])
>>> np.correlate(x,y, "same") array([ 7, 11, 1, 7])
>>> np.correlate(x,y, "full") array([ 4, 7, 11, 1, 7, 6])
>>>
앞에서 구한 결과와 같은 결과를 얻기 위해서는 correlate(x, y, "same")을 사용해야 한다.
한림대학교 박섭형 Python과 함께 배우는 신호 해석 제 6 강. 신호의 분류와 신호의 상관 함수 22
Python 과 함께 배우는 신호
해석 박섭형
신호의 분류 신호의 상관 함수
연속 시간 신호의 상호 상관 함수
예제
다음 두 연속 시간 신호의 상호 상관 함수를 구하라.
x(t) =
1.5, 0≤ t ≤ 2
0, elsewhere, y(t) =
2, 0≤ t ≤ 3 0, elsewhere
τ의 구간을 나누어서 다음과 같이 계산한다.
rxy(τ ) =
0, τ <−3 3(τ + 3), −3 ≤ τ < −1 6, −1 ≤ τ < 0 3(2− τ), 0 ≤ τ < 2 0, τ≥ 2
한림대학교 박섭형 Python과 함께 배우는 신호 해석 제 6 강. 신호의 분류와 신호의 상관 함수 23
Python 과 함께 배우는 신호
해석 박섭형
신호의 분류 신호의 상관 함수
Python에서 연속 시간 신호의 상호 상관 함수의 수치 계산
import numpy as np
import matplotlib.pyplot as plt
dt = 0.05
t = np.arange(-7, 7+dt, dt) xx = ((0 <= t) & (t<2)) * 1.5 yy = ((0 <= t) & (t<3)) * 2.0 r = np.correlate(xx,yy, "same")*dt plt.plot(t, r)
plt.axis([-7, 7, r.min()-0.5, r.max()+0.5]) plt.grid(True)
plt.tight_layout() plt.show()
여기에서 dt는 샘플링 구간이고, 시간 구간을 지정할 때 반드시 [−t0, t0]로 지정해야 한다.
한림대학교 박섭형 Python과 함께 배우는 신호 해석 제 6 강. 신호의 분류와 신호의 상관 함수 24
Python 과 함께 배우는 신호
해석 박섭형
신호의 분류 신호의 상관 함수
Python에서 연속 시간 신호의 상호 상관 함수의 수치 계산
한림대학교 박섭형 Python과 함께 배우는 신호 해석 제 6 강. 신호의 분류와 신호의 상관 함수 25
Python 과 함께 배우는 신호
해석 박섭형
신호의 분류 신호의 상관 함수
Python에서 연속 시간 신호의 상호 상관 함수의 수치 계산
연습 문제
앞의 예제에서 주어진 신호 x(t), y(t) 로부터 구한 rxy, rxx, ryy의 그래프는 다음과 같이 주어진다.
이 그래프를 그리는 Python 스크립트를 작성해 보자.
한림대학교 박섭형 Python과 함께 배우는 신호 해석 제 6 강. 신호의 분류와 신호의 상관 함수 26