안녕하세요~ 도정진입니다.
최근에 맥놀이 현상에 대해서 실험을 해 보면서 정리한 것들을 올려보려 합니다.
맥놀이 현상은 진동수 차이가 있는 두 파형이 겹쳤을 때 나타나는 현상으로 감쇄 혹은 보강현상이 일어나서 웅~ 웅~ 소리가 나는 것을 의미합니다.
피아노의 경우에도 건반 두 개를 눌렀을 때 소리가 커졌다 작아졌다하는 것을 들을 수 있습니다.
이것을 식으로 나타내면 아래와 같아요!
두 파형의 합으로 나타내고 이를 합공식으로 2번째 식으로 정의가 가능합니다.
이를 매틀랩 코드로 작성하면 아래와 같습니다.
f1=1000; // 진동수가 1000인 첫 번째 함수 설정 f2=1002; // 진동수가 1002인 두 번째 함수 설정 t=0:1/48000:1-1/48000; // 상세한 점을 보기 위해 0부터 1간극을 1/48000 으로 설정했다. x1=sin(2*pi*t*f1); // x1 에 관한 식 x2=sin(2*pi*t*f2); // x2 에 관한 식 plot(t,x1); // t와 x1 에 대해서 그래프를 그린다. grid, hold; // 그 위에 그래프를 이어 그리는데 plot(t,x2, 'r'); // t와 x2 에 대해서 그린다. 색은 빨간색으로 |
이를 매틀랩에서 플로팅을 하게 되면 아래와 같은 그래프가 플로팅 됩니다.!
위 사진은 두 파형의 진동수 차이가 2Hz 가 차이나는 것으로 실제로 그래프에 대해서 줌을 해 보면 2번째 그래프가 뒤로 밀리는 것을 보실 수 있습니다!
그리고 이에 대해서 FFT 를 적용해 보고 싶죠?
FFT 란 가로축을 주파수로 하고 세로축을 그에 대한 db 값으로 나타내는 것입니다.
이는 흔히, 레벨미터의 막대 라고 할까요? 그게 오르락 내리락 하는 현상과 같습니다. 즉 한 음악에 대해서 주파수 분포를 분석하여 스펙트럼으로 보여주거나 하는 것입니다.
물론 이 기능은 오실로스코프에도 있습니다 ㅋㅋㅋ
이를 매틀랩으로 플로팅 해 보기 위해서 아래의 코드를 덧붙입니다!
N = 0:1:48000-1; // t는 주기임으로 진동수로 바꾸기 위해 48000을 곱한 범위를 N의 범위로 k=abs(fft(y)); // FFT 수식을 쓴다. plot(N,k); // N과 k에 대해서 그래프를 그린다. |
이렇게 하신 후 플로팅을 해 보면 아래와 같이 플로팅 됩니다!
양쪽으로 두 개의 선이 보임을 알 수 있고 두 파형이 겹친것에 대해서 정확히 진동수 구분이 됨을 알 수 있습니다.
맨 처음 코드에서 첫번째 식은 1000Hz, 1002Hz 였습니다. 이 두 개를 합친 것에 대해서 FFT 를 실행하였는데
입력 된 파형에 대해서 주파수 분석이 정확히 됨을 알 수 있습니다.
감사합니다. 즐거운 매틀랩 시간 가지시길..
'일기장' 카테고리의 다른 글
티스토리 블로그 , 원노트 & 워드 연동하기 (6) | 2014.10.03 |
---|---|
P-Spice 피스파이스 Student Edition 다운로드 주소입니다! (0) | 2014.07.11 |
아날로그컴퓨터의 Overdamped, Underdamped 파형 (0) | 2014.07.11 |
OneNote(원노트) 와 네이버 블로그 연동하기 (0) | 2014.07.11 |
카카오톡 부계정 만들기! , 멀티계정 , 멀티카톡 (새로운 인증방법 공개) (2014년 6월 19일 인증성공) (9) | 2014.07.11 |
댓글