Store spectrogram with image data format in the MATLAB workspace
7 次查看(过去 30 天)
显示 更早的评论
Hi.
I want to analyze spectrograms of multiple audio files in a folder.
Audio files share the word "SPTGRM" in their names.
Audio files are stereo-type and I will take one channel data.
I saved data in the "AudioData" and also saved spectrogram data of these audio files.
I want to store spectrogram image in the cell with image data format (like [512 512 3]).
However, spectrograms are saved in "complex double" matrix like the figure below.
How can I get image data format?
Address = 'C:\Users\KOH\Desktop\MATLABcode\Soundsample';
Directory = dir(fullfile(Address,'SPTGRM*.wav'));
windowSize = 256;
windowOverlap = [];
freqRange = 1000:20000;
for i = 1:numel(Directory)
F = fullfile(Address,Directory(i).name);
[y,Fs] = audioread(F);
endtime = numel(y)/(2*Fs);
t = 1/Fs:1/Fs:endtime;
AudioData{i}=y(:,1);
Spectrogram{i}=spectrogram(AudioData{i}, windowSize, windowOverlap, freqRange, Fs, 'yaxis');
end
0 个评论
采纳的回答
更多回答(1 个)
yanqi liu
2022-1-4
Address = 'C:\Users\KOH\Desktop\MATLABcode\Soundsample';
Directory = dir(fullfile(Address,'SPTGRM*.wav'));
windowSize = 256;
windowOverlap = [];
freqRange = 1000:20000;
for i = 1:numel(Directory)
F = fullfile(Address,Directory(i).name);
[y,Fs] = audioread(F);
endtime = numel(y)/(2*Fs);
t = 1/Fs:1/Fs:endtime;
AudioData{i}=y(:,1);
data=spectrogram(AudioData{i}, windowSize, windowOverlap, freqRange, Fs, 'yaxis');
Spectrogram{i} = im2uint8(mat2gray(abs(data)));
end
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Audio and Video Data 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!