# Get STFT plot with matrix Input

9 visualizzazioni (ultimi 30 giorni)
Nour il 16 Set 2019
Modificato: nur dsc il 6 Apr 2021
Hello,
I am working with a radar output Q/ I matrix and I want to apply stft on the complex matrix (I + j Q) using matlab.
The stft function didn't accept Matrix Input. Is there a way to do it ?
Thank you so much in advance :)
##### 0 CommentiMostra -2 commenti meno recentiNascondi -2 commenti meno recenti

Accedi per commentare.

### Risposte (2)

nur dsc il 6 Apr 2021
Modificato: nur dsc il 6 Apr 2021
Hi Nour,
You do not need a matrix format actually. I+j*Q is also in vector format and you can apply stft this complex data.
If you have orijinal x signal you can use hilbert(x).
result = hilbert(x)
then you can apply stft to result.
##### 0 CommentiMostra -2 commenti meno recentiNascondi -2 commenti meno recenti

Accedi per commentare.

Priyanshu Mishra il 19 Set 2019
Hi Nour,
In the documentation page of stft, under the input argument section, it is mentioned that x can take vector and matrix both. You may refer to examples given in the documentation page of stft.
##### 4 CommentiMostra 2 commenti meno recentiNascondi 2 commenti meno recenti
Nour il 20 Set 2019
Perfect I used this version and it works, but it does not plot the result. Do you have any idea how to get the plot? Thank you so much in advance :)
Sara James il 21 Ott 2019
The stft function in 2019b only supports plotting of vector inputs. If you want to use the convenience plot of stft for your matrix input, you could do so within a for loop. Alternatively, you could specify your own plots using pcolor and subplot like in the following example:
fs = 1e3; % Sampling frequency (Hz)
t = 0:1/fs:1-1/fs; % Time (sec)
chirp(t,300,1,500,'logarithmic')]'; % Multi-channel signal
[S,F,T] = stft(x,fs,'Window',hamming(128,'periodic'),'OverlapLength',50);
smag = mag2db(abs(S)); % Convert to dB
caxisLims = max(smag(:)) + [-60 0]; % Color axis limits
figure('Name','STFT')
numChannels = size(x,2);
for ii = 1:numChannels
subplot(2,2,ii)
pcolor(T,F,smag(:,:,ii))
xlabel('Time (s)')
ylabel('Frequency (Hz)')
colorbar
caxis(caxisLims)
title(sprintf('Channel %d',ii))
end

Accedi per commentare.

### Categorie

Scopri di più su Short-Time Fourier Transform in Help Center e File Exchange

### Community Treasure Hunt

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

Start Hunting!

Translated by