Problems using the function audiowrite

조회 수: 13 (최근 30일)
ignacio
ignacio 2015년 11월 13일
댓글: ignacio 2015년 11월 20일
Hello, I'm working with Matlab R2014b and trying to create a wav file. I tried two posibilities:
- wavwrite(int32(signal),Fs,24,['test2.wav'])
- audiowrite(['test.wav'],int32(signal),Fs,'BitsPerSample',24)
But when I try to heard both files, I can only heard the first one created with the old function wavwrite.
In both case is the same signal.
any help?

채택된 답변

Nick Haddad
Nick Haddad 2015년 11월 13일
There is one subtle difference between writing 24-bit audio with audiowrite vs. wavwrite.
When writing int32 as 24-bit audio in wavwrite, the data range in y is interpreted as:
2^23 y ≤ 2^23–1
When writing an int32 as 24-bit audio in audiowrite, the data range in y is interpreted as:
-2^32 y ≤ 2^32–1
So your data is still being written but slightly quieter. If your 'signal' variable is in the 24-bit range you will need to rescale it to the 32-bit range to get the same results as using wavwrite. If 'signal' is just a normalized double (-1 ≤ y ≤ 1), the you can simply supply the double value and audiowrite will scale it for you properly:
audiowrite(['test.wav'],signal,Fs,'BitsPerSample',24)
  댓글 수: 1
ignacio
ignacio 2015년 11월 20일
Thanks Nick, the code works perfectly ;)

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Audio Plugin Creation and Hosting에 대해 자세히 알아보기

제품

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by