전자과에서 수학을 접하다 보면 sinc 함수를 접하게 됩니다. 특히 신호처리 과목을 듣는 사람들이라면 거의 백퍼 접하게 되는게 sinc 함수 입니다.
Sinc 함수는 아래 주소에 설명이 잘 나와있습니다.
http://ko.wikipedia.org/wiki/%EC%8B%B1%ED%81%AC%ED%95%A8%EC%88%98
sinc 함수를 푸리에 변환하면 직사각형 함수(Rectangular Function)가 되게 되고~ 처음 이 사실을 알고 참~ 신기하다는 생각을 한적이 있습니다.
오늘은 위에 설명한 사실을 MATLAB 을 사용하여 확인 해 보려 합니다.
MATLAB 에서 sinc 함수는 Signal Processing Toolbox에 들어있습니다. Signal Processing Toolbox가 없는 분들은 간단한 함수이니 위 수식대로 만들어서 사용해도 될 겁니다.
다만 x=0 인 경우 분모도 0 이 되므로 이 부분만 주의해서 사용하시면 됩니다.
따라서 다음과 같이 작성 할 수 있습니다. 함수명은 기존 sinc 함수와의 충돌을 방지하기 위해 sinc_ 로 했습니다.
function y=sinc_(x)
i=find(x==0);
x(i)= nan;
y = sin(pi*x)./(pi*x);
y(i) = 1;
간단하게 x=0 인 경우만 아래 포스팅에서 배웠던 NaN(Not-a-Number)을 넣어줬다가 그 값만 1 로 바꿔주는 거죠. Nan 이 아니라 아무 값이나 넣고 싶은 값을 넣어도 결과는 같고~ 그냥 x(i)= nan; 을 없애도 상관 없습니다.
2011/04/20 - [programming language/MATLAB] - MATLAB NaN
그럼 sinc 함수를 그려보죠~
x=-6:0.1:6;
y=sinc_(x);
figure,
plot(x,y), grid on
다음으로 위에서 얘기했던 sinc() 함수의 푸리에 변환이 구형함수가 되는지 확인해 보죠~ 구형 함수를 나타내기 위해 좀 긴~~ sinc 함수의 x 축을 좀 길게 잡습니다.
x=-80000*pi:0.1:8000*pi;
y=sinc_(x);
ffty=fft(y);
fftShifted=fftshift(ffty);
plot(abs(fftShifted)), grid on
다음과 같이 sinc 함수의 푸리에 트랜스폼 결과가 직사각파가 되는 것을 확인 할 수 있습니다. Sinc 함수 … 참~~ 신기하죠?? 나만 신기한가…
'programming language > MATLAB' 카테고리의 다른 글
MATLAB 다각형 내부의 점들 찾기 inpolygon (8) | 2014.05.01 |
---|---|
MATLAB Communication Systems Reference Curves (0) | 2014.04.29 |
MATLAB PSK(Phase-shift keying) BER simulation (13) | 2014.04.17 |
MATLAB 원(Circle), 다각형(Polygon) 그리기 (11) | 2014.04.09 |
MATLAB 16 QAM BER Simulation (8) | 2014.04.04 |
MATLAB sparse matrix(희소 행렬) (0) | 2014.02.19 |
MATLAB 프랙탈(Fractal) Dragon Curve (0) | 2014.01.16 |
MATLAB 테트리스(Tetris) 게임 (0) | 2014.01.15 |
댓글