Store spectrogram with image data format in the MATLAB workspace
7 views (last 30 days)
Show older comments
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 Comments
Accepted Answer
More Answers (1)
yanqi liu
on 4 Jan 2022
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 Comments
See Also
Categories
Find more on Audio and Video Data in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!