spectrogram of a matrix with 32 channels in one graph with color
11 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Fatemeh Yousef Zadeh
el 6 de Jul. de 2022
Editada: Prajakta Rathod
el 4 de Abr. de 2023
Hi all,
I have matrix of EEG data with 32 channels.
I want to create a stacked spectrogram for all 32 channels in one graph to find the hot spots.
I like the x-axis to show the frequency, the y-axis all my channels stacked on one another.
I really appreciate your help.
0 comentarios
Respuesta aceptada
Chunru
el 7 de Jul. de 2022
Editada: Chunru
el 8 de Jul. de 2022
% generate some data
fs = 500;
x = sin(2*pi*(0:1023)'*(1:32)/fs) + randn(1024, 32);
for i=1:size(x, 2)
[s,f,t] = spectrogram(x(:,i), 256,128,256, fs, 'psd');
if i==1
idx = find(f<=55); % get the freq range
nf = length(idx);
faxis = f(idx);
sall = zeros(nf, size(s,2), 32);
end
sall(:, :, i) = 20*log10(abs(s(idx, :)));
end
imagesc(faxis, [1:32], reshape(sall, nf, [])');
xlabel('f (Hz)');
ylabel('Ch')
6 comentarios
Chunru
el 4 de Abr. de 2023
[s,f,t] = spectrogram(x(:,i), 256,128,256, fs, 'psd'); return s as short-time-fouriour-transform. 20*log10(abs(s)) is spectrum density estimate (subject to a normalization factor of NFFT and sampling frequency).
if you want to get the ower spectral density or power spectrum direction, you cab use [s,f,t, ps] = spectrogram(x(:,i), 256,128,256, fs, 'psd'); Here ps is the one-sided (for real signal) modified periodogram (a power spectral density estimate).
To recap, the plot above show power spectrum in dB (subject to a constant factor)
doc spectrogram for more details.
Prajakta Rathod
el 4 de Abr. de 2023
Editada: Prajakta Rathod
el 4 de Abr. de 2023
Sir, thank you very much for your reply.
Más respuestas (0)
Ver también
Categorías
Más información sobre EEG/MEG/ECoG en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!