关于时频分析的一些感想

最近有活,以前总是对一个较好的信号进行分析,这次遇到了实际信号不知道怎么分析,被老师教育了,所以记录一下。

首先我们的信号是一个间隔0.1s的一个离散信号,总共信号长度是100,只有十秒的时间。

主要采用的分析工具是matlab自带的spectrogram函数和stft函数,这两个函数的使用可以参考链接Matlab中短时傅里叶变换 spectrogram和stft的用法 - 知乎 (zhihu.com),讲的很清楚,我主要记录一下自己没有注意到的。

首先对采样频率,因为原始信号较短,所以采样频率应该直接设置为我们的信号本身的采样率,即10Hz,这样最后spectrogram返回的f值即是本身信号的频率值。如果信号较长,可以设置为更高的采样率,因为采样率越高,频域分辨率更高。本次我们的信号无法用到这个方法。如果对信号进行补零对于频域分辨率是没有增益的。插值补零对信号的频率分析会有影响。比如我设置三倍插零,频率显示出来应该是原始信号频率的1/3。

再就是窗的长度选择,窗越长,频率分辨率越高,所以直接FFT得到的分辨率是最高的。但是考虑到不同时间的频率变化,短时傅里叶变换(STFT)需要设置不同的窗长度来判断。一定要注意,如果Fs不是按照本来数据的采样率设置,那么返回的f并不是实际频率(就是因为这个没考虑清除被教育了),

代码如下:i就是窗长。

window = i;
noverlap = window/2;
nfft = window;
[ss, f, t] = spectrogram(s_repay,hanning(window), noverlap, nfft, Fs);
figure;
imagesc(t, f, abs(ss));xlabel('t'); ylabel('Freqency');
title('使用spectrogram画出的短时傅里叶变换图形',i);
colorbar;
end

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值