赞
踩
目录
【若觉文章质量良好且有用,请别忘了点赞收藏加关注,这将是我继续分享的动力,万分感谢!】
其他:
1.时间序列转二维图像方法及其应用研究综述_vm-1215的博客-CSDN博客
2.将时间序列转成图像——小波变换方法 Matlab实现_vm-1215的博客-CSDN博客
3.将时间序列转成图像——希尔伯特-黄变换方法 Matlab实现_vm-1215的博客-CSDN博客
短时傅里叶变换(Short Time Fourier Transform, STFT)是傅里叶变换(Fourier Transform, FT)的一种变形,以确认时变信号的频率和相位在时间轴上的变化情况。其基本思想是:选择一个合适的窗函数(常见有方形、三角形、高斯函数等),假设时变信号在这个短时间间隔的窗内是一个平稳的信号,通过傅里叶变换计算出信号的频率和相位信息,然后在时间轴上移动窗函数,计算出不同短时间段内信号的频率和相位,最终实现信号的时频分析,得到其对应的时频图。
其中,
短时傅里叶变换的实现流程简单, 处理时间短且应用广泛, 但其时频分析后的时间-频 率窗口大小不变, 很难捕捉到一些细小的局部信息。
- clear, close all
-
- %% initialize parameters
- samplerate = 500; % in Hz
-
- nfft = 64; % try to use 32 or 16 to investigate the trade off between time and frequency resolution
- noverlap = round(nfft*0.5); % number of overlapping points (50%)
-
- %% generate simulated signals with step changes in frequency
-
- data = csvread('3_1_link6_28_5_30min.csv'); % input the signal from the Excle
-
- data = data'; % change the signal from column to row
-
- N = length(data); % calculate the length of the data
-
- taxis = [1:N]/samplerate; % time axis for whole data length
-
- figure, % plot the origianl signal
- plot(taxis,data),xlim([taxis(1) taxis(end)])
- xlabel('Time (s)')
-
-
- %% calculate spectrogram using STFT
- [spec,faxis,taxis]=spectrogram(data,hamming(nfft),noverlap,nfft,samplerate);
- Mag=abs(spec); % get spectrum magnitude
-
- im = figure;
- imagesc(taxis,faxis,Mag) % plot spectrogram as 2D imagsc
- colorbar
- title('Time-frequency analysis(STFT)')
- xlabel('Time (s)'),xlim([taxis(1) taxis(end)])
- ylabel('Frequency (Hz)')
-
- saveas(im,'STFT_1.bmp')
【若觉文章质量良好且有用,请别忘了点赞收藏加关注,这将是我继续分享的动力,万分感谢!】
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。