반응형
오늘은 MATLAB 을 사용하여 계이름을 재생하는 방법에 대해 알아보려 합니다.
일단 음계에 대한 특징을 알아야 하는데요. 음성은 주파수에 따라 음계가 달라지고~ 음성의 크기는 신호의 크기에 영향을 받습니다.
즉 위상에 따른 음성의 차이가 없다는 거죠.
우리가 알고 있는 도레미파솔라시도~~ 는 다음과 같은 주파수를 갖습니다.
도 | 레 | 미 | 파 | 솔 | 라 | 시 | 도 |
260 Hz | 294 Hz | 330 Hz | 349 Hz | 392 Hz | 440 Hz | 495 Hz | 524 Hz |
이제 간단하게 MATLAB 을 사용하여 위 사실이 맞는지 테스트 해보죠.
테스트를 위한 코드는 다음과 같습니다.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Fs=44100; | |
ts=1/Fs; | |
t=0:ts:0.4; | |
A=1; | |
phaseV = 20; | |
d_vector =[]; | |
for fc=[260 294 330 349 392 440 495 524] | |
d= A*cos(2*pi*fc*t + phaseV); | |
d_vector=[d_vector d(:)]; | |
sound(d, Fs); | |
pause(0.5) | |
end | |
plot(t(1:800), d_vector(1:800,:)) | |
grid on | |
title(['Amplitude = ' num2str(A) ' Pahse = ' num2str(phaseV)]) |
Sample rate 는 CD 음질인 44.1 k 로 했고 주파수, 위상, 크기 에 따른 시뮬레이션을 해 보시길 바랍니다.
위 코드에서 A 라는 변수가 Amplitude 이며 phaseV 값이 위상 for 문 안의 fc 가 주파수 입니다.
A 를 변화 시켜 보면 소기라 커지고 작아지고 한다는 것을 느끼실 테고~
phaseV =0 인 경우와 phaseV =20 인 경우를 비교해보면 아래 그림과 같이 위상은 달라졌지만 소리를 들어보면 차이가 없다는 것을 느낄 수 있을 겁니다.
반응형
'programming language > MATLAB' 카테고리의 다른 글
MATLAB 64 QAM BER Simulation (0) | 2015.08.04 |
---|---|
MATLAB dbtype 을 사용한 파일 내용과 라인 넘버 확인 (0) | 2015.07.21 |
MATLAB Python 실행 (0) | 2015.07.20 |
MATLAB stateflow 현재 차트의 data 다 찾기 (0) | 2015.07.16 |
LMS Test Using Simulink (0) | 2015.06.14 |
무료 클라우드 MATLAB, freematlab (2) | 2015.06.07 |
MATLAB Code를 사용하여 Simulink model 구성하기 (0) | 2015.03.29 |
MATLAB Command History 표시 방법 (0) | 2015.01.11 |
댓글