Need help converting matrix of i2s values to sound
3 次查看(过去 30 天)
显示 更早的评论
Hi, I have a 32768x1 matrix in matlab, ( 32768 samples of a i2s microphone that i captured from an FPGA, values are currently in decimal but they represent a 18 bit vector of the i2s PCM sample from the microphone). I need to convert this matrix to sound to test the microphone, but i need help to get it done.
Thanks to everybody.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/171242/image.jpeg)
3 个评论
Walter Roberson
2019-8-8
Is it linear PCM, LPCM ? If so then divide by 2^18, then multiply by 2 and then subtract 1 to get data suitable for playing.
(or just divide by 2^17 and subtract 1)
Walter Roberson
2019-9-10
By the way, does the fi hint that the data is stored as FixedPoint instead of as int32 or uint32 ?
回答(1 个)
Ted Shultz
2019-9-10
You could try to use the audioplayer function. You would need to scale your data, and know the sample frequency.
You code may look something like this:
Fs = 48000; % Hz (use your value here)
Y =2*( fi-min(fi)) / (max(fi)-min(fi))-1; % scale data
player = audioplayer(Y,Fs); %make audio player
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 PCM 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!