past/SASPL

'MATLAB을 이용한 디지털 신호처리(제2판)'에 나오는 내용을 복습하기 위한 포스팅이다.

이번에 소개할 코드는 신호의 자리이동반전이다.
먼저 자리이동에 대한 M-file 코드를 보자.



< 그림1. sigshitf.m 파일 소스 코드 >


아주 짧은 코드이다.
이동되는 신호의 값은 변화없이 인덱스만을 변화시켜 신호의 자리이동을 수행한다.
여기서 사용되는 입력 m은 입력신호 x의 인덱스를 말한다.
y를 표현하는데 x라는 신호를 자리이동, 또는 평행이동 시키는 것이라고 생각하면,
y의 인덱스는 6번째 줄의 코드 중 n = m+k로 구할 수 있다.
이는 y(n) = x(n-k)라는 식에서 m = n-k로 두고, 식을 다시 표현하면 쉽게 확인할 수 있다.
y(m+k) = x(m)


신호의 반전에 대하여 보도록 하겠다.
신호의 반전이란 0을 기준으로 신호를 뒤집는 것을 말한다.
x,y축을 가지는 직각좌표계를 생각해 보았을 때 y축 대칭이 되는 신호를 만드는 것이다.
이것에 대한 코드 또한 매우 간단하게 끝난다.



< 그림2. sigfold.m 파일 소스 코드 >


6,7번째 줄을 보면, fliplr이라는 built-in 함수를 사용하고 있는 것을 볼 수 있다.
이처럼 MATLAB에서 미리 만들어둔 함수를 이용해서 신호와 인덱스를 간단히 반전시킬 수 있다.
신호값은 뒤집어 주기만 하면 되지만, 인덱스는 부호를 바꾸어주어야 0을 기준으로 folding 시킬 수 있음을 유의해야한다.

여기서 사용된 fliplr 함수에 대한 내용과 사용법은 아래 그림3을 통해 확인할 수 있으며,
MATLAB commnad 창에 doc fliplr 또는 help fliplr을 이용하면 그 내용을 언제든지 확인할 수 있다.


< 그림3. fliplr.m에 대한 설명 >

0 0