智能信息处理的一点总结,前两种方法属于经典法,后面是现代法
信号的频域处理可分为经典方法和现代方法。经典方法以傅利叶变换为核心,只处理线性时不变问题。对非线性时变问题的处理是正在发展中的现代方法内容。经典的谱估计方法对采样得到序列进行处理隐含了一个加窗的操作,窗外的数据默认为零。所以可靠经典的谱估计方法在采样点数比较少的情况下,对频率的估计变得不可靠。现代谱估计方法以模型为基础,利用采样的数据建立模型,使谱估计的结果更能体现随机信号全局性的性质。
各自特点:经典谱估计法简单,复杂度低,在采样点较多时有很好的效果,但是在采样时间短的情况下,经典法的分辨率较低,因此使用现代谱估计比较好。同时,现代谱估计的方法比经典法要平滑,而且可以处理非线性时变的序列。
1、FFT
电类工科学生必备技能,记得学习数字信号处理时曾老师反复强调。一种快速的傅里叶变换方法
2、非参数功率谱(周期图法,韦尔奇法)
在matlab中,pwelch()是提供的韦尔奇方法实现的函数
[P13,f] = pwelch(data1,hamming(256),N,1004,fs);
3、参数功率谱估计法(Burg,yale-worker AR)
基于AR模型
matlab中有 pburg ()和pyulear()
[P21,f] = pburg(data2,8,1004,100); % 14th order model
[P22,f] = pyulear(data2,8,1004,100); % 14th order model
4、短时傅里叶变换方法
win_sz = 60;
han_win = hanning(win_sz); % 选择海明窗
nfft = win_sz;
nooverlap = win_sz - 1;
[S1, F, T] = spectrogram(data1, window, nooverlap, nfft, fs);
figure,imagesc(T, F, log10(abs(S1)));hold on
set(gca, 'YDir', 'normal')
xlabel('Time (secs)')
ylabel('Freq (Hz)')
title('short time fourier transform spectrum of EEG1');
5、小波变换
小波变换里面我记得还要在MATLAB里面装一个工具箱(Wavelet analysis?)
matlab例程 C:\Users\yang\Doucuments\MATLAB\Examples\wavelet
[cfs1,f] = cwt(data1,'bump',fs);
figure,helperCWTTimeFreqPlot(cfs1,t,f,'surf','CWT of EEG1','Seconds','Hz')
4、5主要参考了
STFT & CWT
6.希尔伯特黄变换
https://blog.csdn.net/lvsehaiyang1993/article/details/80875679
在matlab官网上可以下载hht的相关代码,一共有三个,目前还没看懂。