본문 바로가기
신호 및 시스템

01 (신호 및 시스템) 신호의 특성과 신호처리

by Dr.햄스터 2024. 3. 14.
반응형

들어가며..

이번 장에서는 신호(특히 주기신호)의 특성과 신호처리에 대해서 배우고 간단한 시뮬레이션을 할 것이다. 우리 모두 중고등학교 필수 교과 과정에서 주기함수 Sin Cos을 배운 기억이 있을 것이다.

 

극적으로 말하면 이세상 모든 신호는 이 주기함수로 이루어졌다고 볼 수 있다. 신호처리의 근본이자 꼭 알아야 할 개념이기 때문에 교과 과정에서 배웠다 해도 다시한번 집고 넘어가자.

 

주기신호

우리는 sin cos함수에 대해 이미 알 것이다. 두 함수는 주기함수로 비슷한 성질을 가지고 있다. 보통 sin cos을 통틀어 sinusoids라고 부른다. Sinusoids는 일반적으로 아래와 같이 표기할 수 있다.

 

x(t) = A cos(ω0t + ϕ)

 

여기서 cos는 우리가 알고 있는 그 cos맞다. 연속시간 t에 대한 cos함수이다. A는 진폭, w0는 주파수(라디안), ϕ 위상을 의미한다. 그리고 ω0 = 2πf0 이다. (f0 = 주파수)

 

아래는 sin cos의 특징을 나타낸다.

 

●  d sin θ/ dθ = cos θ , d cos θ/ dθ =  sin θ
 sin (θ) = cos(θ  π/2) or cos(θ ) = sin(θ + π/2)
●  cos(θ + 2πk) = cos( θ), when k is an integer
●  cos(θ ) = cos( θ) 
●  sin(θ ) =  sin θ
●  sin(πk) = 0, when k is an integer
●  cos(2πk) = 1, when k is an integer
●  cos[2π(k + 1/2 )]=1, when k is an integer

 

그리고 아래는 삼각함수 수식을 정리한 내용이다.

●  sin² θ + cos ² θ = 1$$ 
●  cos 2θ = cos ² θ  sin ² θ
●  sin 2θ = 2 sin θ cos θ
●  sin(α ± β) = sin α cos β ± cos α sin β
●  cos(α ± β) = cos α cos β  sin α sin β

 

 

생각보다 이 수식들은 현업에서 많이 쓰인다. 외우지는 않더라도 이런 것이 있었다는 것을 숙지해 두자.

 

 

주기와 주파수의 관계

T0 = 2π / ω0 = 2π / 2πf0 = 1/ f0

 

T0는 신호의 한 주기에 대한 시간이므로 f0 = 1/T0는 초당 진동의 수 이다. 이는 1960년대에 Hz라고 부르기로 약속하였다. ω0의 경우 라디안 주파수로 단위는 rad/s이며 범위는 0 ≤ Ω ≤ 2π 이다.

 

참고로 주파수가 0일 때가 바로 우리가 알고 있는 DC신호이다. 주기함수 주파수에 0을 대입하면 1이 나오는데, 이는 진폭 A밖에 남지 않는다. A 5 5V, 3이면 3V를 출력한다.

 

Matlab을 이용해 주기함수 그리기

아래 연속 주기함수를 Matlab 코드로 돌려보자.

x(t) = 20 cos(2π(40)t 0.4π )

직관적으로 느꼈을 수 있겠지만 수식에 t가 들어가면 보통 연속신호, n이 들어가면 이산신호이다.(다 그런건 아니니 맹신은 하지말자. 일반적으로 그렇다는것이다.)

이 수식을 컴퓨터로 구현하기 위해 우리는 먼저 샘플링을 해줘야 한다.

x(nTs) = 20 cos(80πnTs 0.4π )

여기서 Ts가 바로 샘플링 시간이다. 이 샘플링 시간을 작게 잡을수록 우리는 더 높은 해상도의 주기함수를 볼 수 있다. 주파수와 혼동하지 말자! 주파수는 시간의 역수이다.

아래 Matlab 코드를 돌려보자.

 

n = -6:9;
Ts = 0.005;
tn = n*Ts;
xn = 20*cos(80*pi*tn - 0.4*pi);
plot(tn,xn)

 

위 코드에서는 샘플링 주기를 0.005s로 설정했다. 결과물은 아래 그림의 가장 윗 그림과 같다. 방금 위에서 설명했듯 샘플링 주기를 더 짧게 잡으면 아래 그림과 같이 더 촘촘한 신호를 얻을 수 있다.

 

20*cos(80*pi*tn - 0.4*pi) 그리기

 

샘플링을 높게 잡으면 해상도가 높은 신호를 얻을 수 있지만 그만큼 연산량이 많아진다는 단점이 있다. 아래 예시는 단순히 정현파만 그린것이라 체감하기 힘들 수도 있지만 연산속도와 해상도를 적당히 비교하여 적합한 샘플링 주기를 고르는 것은 굉장히 중요한 일이다.

 

시스템이 커지면 커질수록 이런 디테일한 선택으로 인해 발생하는 나비효과가 있기 때문이다.

 

 

반응형