傅里叶-贝塞尔级数展开是一种以零阶贝塞尔函数为正交基的变换方法,特别适合处理定义在有限区间上的非平稳信号,因为贝塞尔函数在边界处自然衰减,不需要对信号进行周期延拓。S变换(Stockwell Transform)是一种结合了短时傅里叶变换和小波变换优点的时频分析方法,它通过频率自适应的高斯窗同时获得时间和频率分辨率。将两者结合,就形成了傅里叶-贝塞尔域S变换。该算法先将信号投影到贝塞尔基函数上得到傅里叶-贝塞尔级数展开系数,再在傅里叶-贝塞尔级数域中构造一个频率自适应的Toeplitz矩阵与高斯窗相乘,最后通过逆变换得到时频矩阵。这样做的好处是:既利用了贝塞尔基函数处理边界效应的天然优势,又继承了S变换的高时频分辨率特点,尤其适合分析心电、地震等非平稳且边界效应显著的信号。整个算法无需预设参数,能自适应地提取信号的时频特征。
算法步骤
第一步:计算贝塞尔函数的零点。通过牛顿迭代法求解零阶贝塞尔函数的根,得到一系列递增的零点。这些零点决定了基函数的频率分布。
第二步:构造贝塞尔基矩阵。将每个零点对应的基函数在时间轴上的取值计算出来,形成基矩阵。每一行代表一个基函数,每一列对应一个样本点。
第三步:计算傅里叶-贝塞尔级数展开系数。利用正交性公式,将信号投影到每个基函数上,得到系数a3。这个系数反映了信号在不同频率成分上的能量大小。
第四步:在傅里叶-贝塞尔级数域构建高斯加权矩阵。先用系数a3构造一个Toeplitz矩阵(实现类似卷积的结构),再根据频率构造高斯窗矩阵,将两者逐点相乘。这一步相当于在变换域对系数进行局部平滑,实现频率自适应。
第五步:逆变换得到时频矩阵。将加权后的系数矩阵乘以基矩阵,取绝对值,得到二维的时频幅度谱。每一行对应一个时间点,每一列对应一个频率点,值的大小表示该时刻该频率的强度。
第六步:频率轴转换。将贝塞尔零点映射到实际频率值(Hz),得到可读的频率坐标,便于绘图和分析。