Get STFT plot with matrix Input
4 ビュー (過去 30 日間)
古いコメントを表示
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 件のコメント
回答 (2 件)
Priyanshu Mishra
2019 年 9 月 19 日
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 件のコメント
Sara James
2019 年 10 月 21 日
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)
x = [chirp(t,100,1,300,'quadratic',45,'concave');
chirp(t,200,1,600,'quadratic',[],'convex');
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)')
shading flat
colorbar
caxis(caxisLims)
title(sprintf('Channel %d',ii))
end
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!