【参数化重采样时频变换】利用多个成分来检测IF的共享趋势,并递归逼近核参数(Matlab代码实现)

  💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

 ⛳️赠与读者

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码、文章


 ⛳️赠与读者

👨‍💻做科研,涉及到一个深在的思想系统,需要科研者逻辑缜密,踏实认真,但是不能只是努力,很多时候借力比努力更重要,然后还要有仰望星空的创新点和启发点。当哲学课上老师问你什么是科学,什么是电的时候,不要觉得这些问题搞笑。哲学是科学之母,哲学就是追究终极问题,寻找那些不言自明只有小孩子会问的但是你却回答不出来的问题。建议读者按目录次序逐一浏览,免得骤然跌入幽暗的迷宫找不到来时的路,它不足为你揭示全部问题的答案,但若能让人胸中升起一朵朵疑云,也未尝不会酿成晚霞斑斓的别一番景致,万一它居然给你带来了一场精神世界的苦雨,那就借机洗刷一下原来存放在那儿的“躺平”上的尘埃吧。

     或许,雨过云收,神驰的天地更清朗.......🔎🔎🔎

💥1 概述

 摘要:许多信号包含多个成分,这些成分具有随时间变化的瞬时频率(IF),且共享一个共同的轨迹趋势,例如机械振动信号、语音信号和生物医学信号。为了分析这类信号并实现高时间-频率分辨率,本文提出了一种称为参数化重采样时频变换(PRTF变换)的方法。借鉴广义参数化时频变换(GPTF变换)的思想,我们使用参数化的核函数来表示重采样函数,并进一步构建时变和时不变的重采样算子以消除IF变化并重新定位IF位置。这些算子能够同时提高时频表示(TFR)中多个成分的能量集中度。针对不同类型的信号,提供了包含多项式函数和傅里叶级数在内的典型核函数。提出了一种相应的核估计方法,该方法利用多个成分来检测IF的共享趋势,并递归逼近核参数。数值仿真和实际实验均表明,所提方法能有效提升非平稳多成分信号的时频表示时间-频率分辨率。

在本论文中,我们研究了包含单趋势非线性调频模式(MTNCMs)的信号。我们提出了参数化重采样时频变换(PRTF变换),旨在以高时间-频率分辨率找到MTNCMs的时频表示(TFR)。与单独检测不同成分的瞬时频率(IF)不同,我们分析了多个成分共有的实时频率(RTF)。基于重采样在消除IF变化方面的作用,我们构建并应用了时变和时不变的重采样算子至信号中。这些算子能同时增强所有MTNCMs的能量集中度。提出的变换被证明具有多种性质,包括频率偏移性质和能量守恒性质。为了构建合适的算子,我们提出了一种核估计方法,通过缩放和平比不同时间点的瞬时幅值谱直接检测RTF。数值模拟和实际实验均显示了我们方法的有效性。进一步探索并验证了实际应用,如IF估计、模式提取及去噪。如上述实际案例所示,所提出的方法适用于具有一个共同RTF的非平稳多成分信号,如振动信号和声音信号。未来工作中,我们将进一步发展此方法,以实现对含有多个RTF的多成分信号进行非线性调频模式分解,并将其应用于各个领域。此外,鉴于解调是除GPTF变换之外许多时频分析方法中的基本操作,希望本文讨论的重采样理论能促进其他先前的TFR方法适应自然非平稳信号分析。详细文章见第4部分。

📚2 运行结果

部分代码:

%   Window function
Win = gausswin(2*PLen-1,(2*PLen-1)/(WinLen/2));

% Initializing the spectrogram matrix
Spec = zeros(SigLen,SigLen) ;  

%%  Calculate
for iLoop = 1:SigLen
    if(mod(iLoop,shift)==1)
        waitbar(iLoop/SigLen,f_wait, strcat("Calculating:",string(ceil(iLoop/SigLen*100)),"%"));
        %   Windowed signal
        SigWin = PSig.*Win(PLen-iLoop+1:2*PLen-iLoop);

        %   Resampling function
        r_d_t = FSval(F0,coef_f,t(iLoop)); 
        tau_tilde = FSval(F0,coef_r,Pt )+coef_f(1)*Pt';
        tau_tilde_tilde = tau_tilde/r_d_t;

        %   Amplitude modulation
        Sig_Win_am = SigWin;%./sqrt(r_d_t).*sqrt(FSval(F0,coef_f,Pt));

        %   Resampling
        if tau_tilde_tilde(end)<Pt(end)
            tmp_Len = round(tau_tilde_tilde(end)*SampFreq);
            re_Sig_Win_am = interp1(tau_tilde_tilde,Sig_Win_am,Pt(1:tmp_Len), "PCHIP");
            re_Sig_Win_am = [re_Sig_Win_am'; zeros(PLen-tmp_Len,1)];
        else
            re_Sig_Win_am = interp1(tau_tilde_tilde,Sig_Win_am, Pt, "PCHIP");
        end

        % Discrete freqency transform
        Spec_iLoop = fft(re_Sig_Win_am);
        Spec_iLoop_re = Spec_iLoop(1:padding_times:end);
        Spec(:,iLoop) = Spec_iLoop_re;

🎉3 参考文献

文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。

🌈4 Matlab代码、文章

资料获取,更多粉丝福利,MATLAB|Simulink|Python资源获取

                                                           在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值