短时分数阶傅里叶变换(STFrFT)MATLAB工具箱
项目介绍
本项目实现了一个基于分数阶傅里叶变换(FrFT)的时频分析MATLAB工具箱。通过引入短时滑动窗口技术,将非平稳信号在分数阶傅里叶域进行局部频谱分析,提供比传统短时傅里叶变换(STFT)更灵活的时频表示能力。该工具箱特别适用于处理chirp类信号、非平稳信号分析等需要自适应时频分辨率的应用场景。
功能特性
- 灵活的分数阶变换:支持0到2范围内的任意分数阶阶数,p=1时退化为标准傅里叶变换
- 可定制窗口参数:支持自定义窗口长度、窗函数类型以及重叠点数
- 高分辨率时频分析:通过优化时频分辨率,提供更清晰的时频表示
- 多格式输出:输出包含复数时频矩阵、频率轴、时间轴及能量谱密度
- 参数可调:支持频率点数自定义,满足不同分辨率需求
使用方法
基本调用格式
[TFR, f, t, E] = STFrFT(signal, p, window, overlap, nfreq)
参数说明
- signal: 输入信号(一维实数或复数向量,N×1或1×N)
- p: 分数阶阶数(标量,0≤p≤2,默认p=1)
- window: 窗口参数(整数表示窗长,或自定义窗函数向量)
- overlap: 重叠点数(整数,0≤overlap<窗长)
- nfreq: 频率点数(整数,可选,指定频率轴分辨率)
输出结果
- TFR: 时频矩阵(复数矩阵,M×K)
- f: 频率轴向量(M×1)
- t: 时间轴向量(1×K)
- E: 能量谱密度矩阵(实数矩阵,M×K)
示例代码
% 生成测试信号
t = 0:0.001:1;
signal = chirp(t, 0, 1, 100);
% 执行STFrFT分析
p = 0.75; % 分数阶阶数
win_len = 128; % 窗长
overlap = 64; % 重叠点数
[TFR, f, t_axis, E] = STFrFT(signal, p, win_len, overlap);
% 绘制时频图
imagesc(t_axis, f, abs(TFR));
xlabel('时间(s)'); ylabel('频率(Hz)');
title('STFrFT时频分析结果');
系统要求
- MATLAB R2016a或更高版本
- 信号处理工具箱(Signal Processing Toolbox)
文件说明
主程序文件整合了分数阶傅里叶变换的核心算法与短时分析框架,实现了信号分段处理、窗函数应用、分数阶域变换以及时频矩阵构建等关键功能。该文件提供了完整的参数配置接口,能够根据用户设定的阶数、窗口参数和重叠比例,生成高精度的时频分布结果,并输出相应的频率与时间坐标信息。