✅作者简介:热爱数据处理、建模、算法设计的Matlab仿真开发者。
🍎更多Matlab代码及仿真咨询内容点击 🔗:Matlab科研工作室
🍊个人信条:格物致知。
🔥 内容介绍
时频变换 (TFR) 是一种强大的信号分析工具,可同时显示信号的时间和频率信息。参数化重采样时频变换 (PR-TFR) 是一种 TFR 方法,它利用重采样和参数化模型来提高时频分辨率。本文将深入探讨 PR-TFR 的原理、优点和应用。
原理
PR-TFR 的核心思想是将信号重采样到不同的采样率,然后应用参数化模型来估计每个采样率下的时频分布。通过对重采样信号进行参数化,可以获得比原始信号更高的时频分辨率。
具体来说,PR-TFR 的步骤如下:
-
**重采样:**将原始信号重采样到一系列不同的采样率。
-
**参数化:**在每个采样率下,使用参数化模型(如小波或 Gabor 变换)估计时频分布。
-
**插值:**将不同采样率下的时频分布插值到一个统一的采样率。
优点
PR-TFR 相比于传统 TFR 方法具有以下优点:
-
**更高的时频分辨率:**通过重采样和参数化,PR-TFR 可以获得比原始信号更高的时频分辨率。
-
**自适应性:**PR-TFR 可以根据信号的特征选择合适的重采样率和参数化模型,从而实现自适应时频分析。
-
**鲁棒性:**PR-TFR 对噪声和干扰具有较强的鲁棒性,即使在低信噪比条件下也能提供清晰的时频表示。
应用
PR-TFR 在信号处理和分析领域有着广泛的应用,包括:
-
**语音识别:**识别语音中的音素和单词。
-
**音乐分析:**分析音乐中的音符、和弦和节奏。
-
**生物医学信号处理:**分析脑电图 (EEG) 和心电图 (ECG) 等生物信号。
-
**机械故障诊断:**检测和诊断机械设备中的故障。
-
**雷达信号处理:**分析雷达信号中的目标信息。
结论
参数化重采样时频变换 (PR-TFR) 是一种先进的时频分析方法,它通过重采样和参数化模型提高了时频分辨率。PR-TFR 具有自适应性、鲁棒性和广泛的应用,使其成为信号处理和分析领域中一个有价值的工具。随着技术的不断发展,PR-TFR 将在未来继续发挥重要作用,为更深入的信号理解和分析提供新的可能性。
📣 部分代码
<span style="color:#333333"><span style="background-color:#fafafa"><code>function [Spec,f] = P_PRTFtransform(Sig,SampFreq,coef_f,WinLen, overlap)</code><code></code><code>% Calculating the paramerterized resampling time-frequency transform with the polynomial kernel(P-PRTF transform)</code><code>% Authors: Tianqi Li and Qingbo He</code><code>% mailto:ltqing103@sjtu.edu.cn; qbhe@sjtu.edu.cn</code><code>% https://www.researchgate.net/profile/Tianqi-Li-9; https://www.researchgate.net/profile/Qingbo-He</code><code>%</code><code>%%%%%%%%%%%%%%%%%%%%%%% input %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</code><code>% Sig: The signal to be analyzed</code><code>% SampFreq: Sampling frequency </code><code>% coef_f: Coefficients of polynomial</code><code>% WinLen: The length of window used to locate the signal in time.</code><code>% overlap: Overlap rate of the window</code><code>%%%%%%%%%%%%%%%%%%%%%%% output %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%</code><code>% Spec: The absolute value of the spectrogram result of the transform</code><code>% f: Frequency axis</code><code></code><code>% When using this code, please do cite our papers:</code><code>% -----------------------------------------------</code><code>% T. Li, Q. He and Z. Peng, Parameterized Resampling Time-Frequency Transform,</code><code>% in IEEE Transactions on Signal Processing, 2022, doi: 10.1109/TSP.2022.3220027</code><code>% T. Li, Z. Peng, H. Xu and Q. He, <span style="color:#dd1144">"Parameterized domain mapping for order tracking of rotating machinery,"</span> </code><code>% in IEEE Transactions on Industrial Electronics, 2022, doi: 10.1109/TIE.2022.3201311</code><code></code><code>%% Initializing</code><code>f_wait = waitbar(0,'1',<span style="color:#dd1144">"Name"</span>,<span style="color:#dd1144">"P-PRTF transform"</span>);</code><code></code><code>Sig = Sig(:);</code><code>SigLen = length(Sig);</code><code>Sig = real(Sig);</code><code>t = (0:SigLen-1)/SampFreq;</code><code></code><code>% Calculate parameters</code><code>coef_r = coef_f;</code><code>shift = ceil((1-overlap)*WinLen);</code><code>for i = 1:length(coef_f)</code><code> coef_r(i) = coef_f(i)/i;</code><code>end</code><code>coef_r = [0 coef_r];</code><code>coef_r = flip(coef_r);</code><code>coef_f = flip(coef_f);</code><code></code><code>% Zero padding</code><code>r_t = polyval(coef_r,t);</code><code>f_t = polyval(coef_f,t);</code><code></code><code>t_tilde_tilde_len_max = r_t(end)/min(f_t);</code><code>padding_times = ceil(t_tilde_tilde_len_max/t(end)); </code><code>PLen = SigLen*padding_times;</code><code></code><code>PSig = [Sig; zeros(PLen-SigLen,1)]; </code><code></code><code>% Time axis after zero padding</code><code>Pt = (0:(PLen-1))/SampFreq; </code><code></code><code>% Window function</code><code>Win = gausswin(2*PLen-1,(2*PLen-1)/(WinLen/2));</code><code></code><code>% Initializing the spectrogram matrix</code><code>Spec = zeros(SigLen,SigLen) ; </code><code></code><code>%% Calculate</code><code>for iLoop = 1:SigLen</code><code></code><code> if(mod(iLoop,shift)==1)</code><code></code><code> waitbar(iLoop/SigLen,f_wait, strcat(<span style="color:#dd1144">"Calculating:"</span>,string(ceil(iLoop/SigLen*100)),<span style="color:#dd1144">"%"</span>));</code><code></code><code> % Windowed signal</code><code> SigWin = PSig.*Win(PLen-iLoop+1:2*PLen-iLoop);</code><code> </code><code> % Resampling function</code><code> r_d_t = polyval(coef_f,t(iLoop)); </code><code> tau_tilde = polyval(coef_r, Pt);</code><code> tau_tilde = [tau_tilde(1:SigLen) tau_tilde(SigLen)+(1:(PLen-SigLen))/SampFreq];</code><code> tau_tilde_tilde = tau_tilde/r_d_t;</code><code></code><code> % Amplitude modulation</code><code> Sig_Win_am = SigWin./sqrt(r_d_t).*sqrt(polyval(coef_f, Pt'));</code><code></code><code> % Resampling</code><code> if tau_tilde_tilde(end)<Pt(end)</code><code> tmp_Len = round(tau_tilde_tilde(end)*SampFreq);</code><code> re_Sig_Win_am = interp1(tau_tilde_tilde,Sig_Win_am,Pt(1:tmp_Len), <span style="color:#dd1144">"PCHIP"</span>);</code><code> re_Sig_Win_am = [re_Sig_Win_am'; zeros(PLen-tmp_Len,1)];</code><code> <span style="color:#ca7d37">else</span></code><code> re_Sig_Win_am = interp1(tau_tilde_tilde,Sig_Win_am, Pt, <span style="color:#dd1144">"PCHIP"</span>);</code><code> end</code><code></code><code> % Discrete freqency transform</code><code> Spec_iLoop = fft(re_Sig_Win_am);</code><code> Spec_iLoop_re = Spec_iLoop(1:padding_times:end);</code><code> </code><code> %Spec_iLoop_re = resample(Spec_iLoop,WinLen,SigLen);</code><code> Spec(:,iLoop) = Spec_iLoop_re;</code><code></code><code> <span style="color:#ca7d37">else</span></code><code> Spec(:,iLoop) = Spec_iLoop_re;</code><code> end</code><code>end</code><code></code><code>close (f_wait)</code><code></code><code>Spec = Spec(1:round(end/2),:);</code><code>f = (0:SigLen/2-1)/(SigLen/2) * SampFreq/2;</code></span></span>
⛳️ 运行结果
🔗 参考文献
T. Li, Z. Peng, H. Xu and Q. He, "Parameterized domain mapping for order tracking of rotating machinery," in IEEE Transactions on Industrial Electronics, 2022, doi: 10.1109/TIE.2022.3201311
🎈 部分理论引用网络文献,若有侵权联系博主删除
🎁 关注我领取海量matlab电子书和数学建模资料
👇 私信完整代码和数据获取及论文数模仿真定制
1 各类智能优化算法改进及应用
生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化、背包问题、 风电场布局、时隙分配优化、 最佳分布式发电单元分配、多阶段管道维修、 工厂-中心-需求点三级选址问题、 应急生活物质配送中心选址、 基站选址、 道路灯柱布置、 枢纽节点部署、 输电线路台风监测装置、 集装箱船配载优化、 机组优化、 投资优化组合、云服务器组合优化、 天线线性阵列分布优化、CVRP问题、VRPPD问题、多中心VRP问题、多层网络的VRP问题、多中心多车型的VRP问题、 动态VRP问题、双层车辆路径规划(2E-VRP)、充电车辆路径规划(EVRP)、油电混合车辆路径规划、混合流水车间问题、 订单拆分调度问题、 公交车的调度排班优化问题、航班摆渡车辆调度问题、选址路径规划问题
2 机器学习和深度学习方面
2.1 bp时序、回归预测和分类
2.2 ENS声神经网络时序、回归预测和分类
2.3 SVM/CNN-SVM/LSSVM/RVM支持向量机系列时序、回归预测和分类
2.4 CNN/TCN卷积神经网络系列时序、回归预测和分类
2.5 ELM/KELM/RELM/DELM极限学习机系列时序、回归预测和分类
2.6 GRU/Bi-GRU/CNN-GRU/CNN-BiGRU门控神经网络时序、回归预测和分类
2.7 ELMAN递归神经网络时序、回归\预测和分类
2.8 LSTM/BiLSTM/CNN-LSTM/CNN-BiLSTM/长短记忆神经网络系列时序、回归预测和分类
2.9 RBF径向基神经网络时序、回归预测和分类