검색결과 리스트
글
이제 다음주면, 각 대학들은 개학입니다. 저도 이번학기에 또 수업을 몇 개 진행하게 되었습니다. 항상 부족한 수업때문에 학생들에게 미안한 마음을 가질 때가 있습니다. 뭐 한가지 아이러니 한것은 정말 열심히 스스로의 생각에.. 정말 열심히 수업준비를 한 것은 학생들의 수업평가가 별로 안좋고... 뭔가 바쁜일에 지쳐가며 정작 수업준비는 약간 소흘히 한 것은 희한하게 수업평가가 좋은.... 음... 전.. 수업준비를 하면 안되는가봅니다..ㅠㅠ 하여간..
예전에 MATLAB의 문자연산에 관해 다루었었습니다. 간단히 소개[관련글]를 하고, 그후 특별히 미분의 기술 중 제가 필요에 의해 많이 사용하는 것에 대한 이야기[관련글]도 했었습니다.
이번엔 그저 다시 정리도 할겸.. 간단한 명령어 몇 개 소개할려고 합니다.
문자연산을 사용하기 위해 syms 명령으로 s,t,a,b,z를 선언하고, f1과 f2를 그냥 연습용으로 또 선언해 두었습니다.
미분과 적분한 결과입니다. 문자가 여러개 사용되었으니, t에 관해 미분/적분을 하라고 명령어 옵션에 't'를 넣어둔것이 보이실겁니다.
이번엔 극한문제 푸는 명령입니다. limit(f2, t, 0)은 f2함수에서 t를 0으로 보내는 극한을 풀어달라고 한것입니다.
거기서 하나 옵션이 더 붙을 수 있는데, 'left' 혹은 'right'를 넣어주면 좌극한, 혹은 우극한이 됩니다.
무한대로 보내는 극한 문제도 많죠.. 그건 inf 라는 글자로 명령을 주면 됩니다.^^
위의 세 명령은 선형변환의 대표 주자인 푸리에, z-변환, 라플라스변환을 수행하는 명령입니다. fourier(f1, t, s)는 f1함수를 t에 관해 푸리에 변환을 해달라는 이야기고, 그때 주파수영역의 변수는 s를 사용하라는 것입니다. ztrans나 laplace 역시 같은 의미의 옵션을 가집니다.^^
다음번엔 MuPAD에 대해 이야기를 해드릴께요. 텍스트환경에서 수식을 보는것이 좀 슬플때가 있죠. 그럴때 많이 사용하는 것이 MuPAD입니다. 꽤 재미있습니다.^^ 사실, 수식 표현이 예쁜건 울프럼알파[관련글]인데요. 그래도, 울프럼알파보다는 많은 기능을 가지고 있으니 한번 소개해 드리겠습니다... (시간은 약속해드리지 못한다는...ㅠㅠ)
'The Robot > Prog.Lang.' 카테고리의 다른 글
Simulink의 scope 창에서 제목 달기 (10) | 2011/05/17 |
---|---|
MATLAB으로 시계를 만들어 보자. (36) | 2010/11/01 |
행렬에서 원하는 데이터의 위치를 알아볼까요??? (MATLAB/Find 명령 사용하기) (14) | 2010/09/13 |
MATLAB 문자연산, -Laplace, Fourier, Z-Trans (18) | 2010/08/27 |
고급언어 습관을 배워볼까요? MATLAB-Blog 소개 (14) | 2010/08/01 |
MATLAB의 MAT화일 관리 어떻게 하십니까. (8) | 2010/07/31 |
MATLAB Current Folder 윈도우의 정렬기능을 사용하자 (8) | 2010/07/21 |
SimMechanics에서 마찰(friction)력을 구현하기 (8) | 2010/06/09 |
저도 개강이라....
이제 곧 학교에 가면 수식과 프로그램과 친해져야겠군요.....,ㅜㅜ
무시무시한 개강이지요^^
ㅋㅋ 라라윈님도
늘 어렵지만 흥미롭게 보고 있어요,,, 이해는 하나,,ㅋㅋ
핑구야날자님 조언대로.. 글 앞에 신변잡기적인 이야기를 살짝 적을려고 애쓰는 중입니다...^^
개강이라 더욱 바빠지겠네요.
화이팅하세요
네... 또 치열한 한 학기를 보내야지요^^
학생들이 항상 약간 느슨한 걸 좋아하죠.^^
아무래도 그렇겠죠??? ㅋㅋㅋ
저희는 개학햇는데... 대학은 아직이군요...
개강 준비에 바쁘시겠습니다. 힘내세요.
화이팅~~~
네.. 그러게요^^ 그래도... 방학때 나오지 않던 월급이라는 좋은 선물이 또 있으니까요...^^
매트랩 2010을 쓰고 있는데요; syms가 undefined function or method라고 오류가 나요ㅜㅜ
다른 문법적 오류가 아니라면... 그런데도.. syms에서 undefined function이라는 에러가 뜨면 symbolic 툴박스가 안깔렸을 수도 있습니다.
number = [3 8 2 8];
len = length(number);
% order : {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, *, #}
timeLow = [941 697 697 697 770 770 770 852 852 852 941 941];
timeHigh = [1336 1209 1336 1477 1209 1336 1477 1209 1336 1477 1209 1477];
% sampling frequency
fs = 8000;
ts = 1/ fs;
indexSignal = fs / 2;
indexDelay = fs / 5;
indexTotal = indexSignal + indexDelay;
for i = [1:1:len]
unitLow = timeLow(number(i)+1) / fs;
unitHigh = timeHigh(number(i)+1) / fs;
for j = [1:1:indexTotal]
if(j <= indexSignal)
freqLow(((i-1) * indexTotal) + j) = sin(2*pi*unitLow*(j-1));
freqHigh(((i-1) * indexTotal) + j) = sin(2*pi*unitHigh*(j-1));
else freqLow(((i-1) * indexTotal) + j) = 0;
freqHigh(((i-1) * indexTotal) + j) = 0;
end
end
end
% output file generating
output = (freqLow + freqHigh) / 2;
wavwrite(output, fs, 'dtmf.wav');
이렇게 쳐서 실행을 하니...
In wavwrite>PCM_Quantize at 293
In wavwrite>write_wavedat at 309
In wavwrite at 138
위와 같이 나오는데 무슨 문제인지 질문드려도 되겠습니까?
참고로 DTMF관련 내용입니다.
부탁드리겠습니다 (__)
이 코드를 그대로 돌렸을때, dtmf.wav가 생성되면서 음이 나오던데요^^
메세지는 warning으로 wavwrite라는 명령어의 help문서를 확인해보시면, output이 소숫점을 가지고 있는 경우는 -1부터 1까지의 범위여야한다고 되어있더군요. 아... 비트가 32이하인 경우... 그래서 MATLAB이 범위에 어긋나는 데이터는 잘라(clip) 버렸다고 주의(warning)를 준듯 합니다.
답변감사드립니다!
도움이 되었으면 좋겠습니다.
ztrans 명령어에 대해 ztrans ( ) 괄호 안에 있는 문자들의 역할이 궁금합니다
어떻게 사용하는건가요
f1은 포스팅 본문 상단에 보면 정의되어 있습니다. z-변환하고 싶은 함수죠. 그 함수의 변수는 시간 t라는 걸 두번째로 알려주는 겁니다. 그리고 그 결과는 z변수로 받고 싶다는 뜻입니다.