wavwrite 기능 사용법, Octave

wavwrite 기능 사용법, Octave

안녕하세요, 스레드를 계속하기 위해 wavwrite에 관해 질문하고 싶습니다. 재생할 매트 파일(T01DATA.mat)을 가져오려고 합니다. sound()실제 솔루션 없이 시도했습니다 . 덕분에 이유를 알겠습니다. 다음과 같이 파일을 변수로 가져오도록 수정했습니다.

s = load("T01DATA.mat");

s를 확인하고 해당 방법이 성공했다는 꽤 괜찮은 증거를 얻었습니다. 그런 다음 wav 파일로 가져오려고 하면 혼란이 나타납니다.

wavwrite(s,"out.wav");

나는 이것을 얻습니다 :

스크린샷

그래서 저는 다음과 같이 했습니다.

wavwrite("T01DATA.mat","out.wav");

이제 wav 파일을 얻었지만 신호가 올바르게 작성되었는지 100% 확신할 수 없습니다. 내가 얻는 것은 0초 녹음뿐이다.

답변1

이것을 확인하는 사람: 해결책은 생각보다 간단합니다. Octave에 파일을 로드하는 방법:

load("filename.ext");

옥타브는 이를 변수 "y"에 자동으로 저장합니다. 이는 Octave가 .mat 파일에서 변수를 가져올 수 있기 때문입니다. 파일을 로드할 때 Octave는 열 이름과 벡터를 확인하므로 자동으로 변수 내부의 데이터를 가져옵니다.

s = load("T01DATA.mat"); #Making this whole code unnecessary)

.mat에서 .wav 파일을 가져오려면 "y"를 사용하여 wavwrite()만 구현하면 모든 것이 완벽해집니다.

wavwrite(y,Fs,"out.wav");

그러면 작업 중인 폴더 안에 out.wav가 생성됩니다. 당신은 그것을 확인할 수 있습니다

pwd

관련 정보