💥💥💞💞欢迎来到本博客❤️❤️💥💥
🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳️座右铭:行百里者,半于九十。
📋📋📋本文目录如下:🎁🎁🎁
目录
💥1 概述
摘要:
本文解决了在时间和频率上有效地联合表示非平稳多组分信号的问题。我们引入了一种新颖的改进方法,即设计了用于计算冲击或强调制信号的锐化和可逆表示的时间重新分配同步挤压方法。在建立了新方法与我们之前结果的理论关系之后,我们通过数值实验说明了我们提议的方法在应用于合成和真实信号时所带来的改进。我们的实验涉及对Draupner波记录的分析,我们提供了开创性的时间频率分析结果。
时间频率和时间尺度分析旨在开发处理非平稳多组分信号的高效创新方法。在常见的方法中,短时傅里叶变换(STFT)和连续小波变换(CWT)是最简单的线性变换,已经在各种应用中得到广泛应用,如音频、生物医学、地震或雷达。
不幸的是,这些工具受到海森堡-盖伯不确定性原理的限制。因此,得到的表示模糊不清,能量集中度低,并且需要在时间或频率定位的准确性之间进行权衡。另一种方法,重新分配方法,被引入为改善时间频率表示(TFR)的可读性的数学上优雅且高效的解决方案。不便之处在于重新分配提供的TFR是不可逆的,这限制了其对分析或建模应用的兴趣。
更近期,同步挤压被引入作为重新分配技术的一种变体,因为它能够提供锐化和可逆的TFR。这种重构能力使得该方法持续受到关注,因为它为基于同步挤压的无限多个应用铺平了道路,如噪声去除、信号成分提取或分离。
📚2 运行结果
部分代码:
%% 3 - time-reassigned synchrosqueezed STFT
fprintf(1, 'time-reassigned synchrosqueezing...\n', L);
tic
[~, stfr, lost, lost2] = tfrtsgab2(sz, M, L, gamma_K);
toc
figure(3)
imagesc(n/(60*Fs), nfreqs*Fs, abs(stfr(1:M2,n_range).^2).^alpha);
if process == 2, ylim([0.2 1]); end
set(gca,'YDir','normal')
xlabel('time [min]', 'FontSize', 16)
ylabel('frequency [Hz]', 'FontSize', 16)
title(sprintf('L=%0.02f', L), 'FontSize', 14);
colormap gray;
cmap = colormap;
colormap(flipud(cmap));
%saveas(gcf, sprintf('%s/time-reassigned-spectrogram%d.eps', chemin,index), 'epsc');
if reconstruct
%% reconstruct signal
stfr(:,end) = stfr(:,end) + lost2;
s_hat = real(rectfrhsgab(stfr, M));
s_hat = s_hat(n_range);
figure(31)
plot(s)
hold on
plot(s_hat, 'r-.')
legend('ref', 'reconstruction')
rqf_s = RQF(s.',s_hat);
title(sprintf('Signal RQF=%.2f', rqf_s), 'FontSize', 14);
%%saveas(gcf, sprintf('%s/reconstruction_time-reassigned-SST%d.eps', chemin,index), 'epsc');
end
%% 4 - second-order horizontal synchrosqueezed STFT
[~, stfr2, lost] = tfrthsgab2(s, M, L,gamma_K, q_method);
figure(4)
imagesc(n/(60*Fs), nfreqs*Fs, abs(stfr2(1:M2,:).^2).^alpha);
if process == 2, ylim([0.2 1]); end
set(gca,'YDir','normal')
xlabel('time [min]', 'FontSize', 16)
ylabel('frequency [Hz]', 'FontSize', 16)
title(sprintf('L=%0.02f', L), 'FontSize', 14);
colormap gray;
cmap = colormap;
cmap = flipud(cmap);
colormap(cmap);
%saveas(gcf, sprintf('%s/second_order_time-reassigned-SST%d.eps', chemin,index), 'epsc');
if reconstruct
%% reconstruct signal
s_hat = real(rectfrhsgab(stfr2, M));
figure(42)
plot(s)
hold on
plot(s_hat, 'r-.')
legend('ref', 'reconstruction')
rqf_s = RQF(s.',s_hat);
title(sprintf('Signal RQF=%.2f', rqf_s), 'FontSize', 14);
%saveas(gcf, sprintf('%s/reconstruction_second-order-time-reassigned-synch.eps', chemin), 'epsc');
end
%% 5 - (classical) synchrosqueezed STFT
[~, stfr, lost] = tfrsgab2(s, M, L, gamma_K);
figure(5)
imagesc(n/(60*Fs), nfreqs*Fs, abs(stfr(1:M2,:).^2).^alpha);
if process == 2, ylim([0.2 1]); end
set(gca,'YDir','normal')
xlabel('time [min]', 'FontSize', 16)
ylabel('frequency [Hz]', 'FontSize', 16)
title(sprintf('L=%0.02f', L), 'FontSize', 14);
colormap gray;
cmap = colormap;
cmap = flipud(cmap);
colormap(cmap);
%saveas(gcf, sprintf('%s/synchrosqueezing%d.eps', chemin, index), 'epsc');
if reconstruct
%% reconstruct signal
s_hat = real(rectfrsgab(stfr, L, M));
figure(51)
plot(s)
hold on
plot(s_hat, 'r-.')
legend('ref', 'reconstruction')
rqf_s = RQF(s.',s_hat);
title(sprintf('Signal RQF=%.2f', rqf_s), 'FontSize', 14);
%saveas(gcf, sprintf('%s/reconstruction_synchrosqueezing.eps', chemin), 'epsc');
end
%% 6 - second-order vertically synchrosqueezed STFT
%[tfr, stfr2, lost] = tfrvsgab(s, M, L,gamma_K);
[tfr, stfr2, lost, ~, ~] = tfrvsgab2(s, M, L, q_method, 2, gamma_K, gamma_K);
figure(6)
imagesc(n/(60*Fs), nfreqs*Fs, abs(stfr2(1:M2,:).^2).^alpha);
if process == 2, ylim([0.2 1]); end
set(gca,'YDir','normal')
xlabel('time [min]', 'FontSize', 16)
ylabel('frequency [Hz]', 'FontSize', 16)
title(sprintf('L=%0.02f', L), 'FontSize', 14);
colormap gray;
cmap = colormap;
cmap = flipud(cmap);
colormap(cmap);
%saveas(gcf, sprintf('%s/second-order-synchrosqueezing%d.eps', chemin, index), 'epsc');
if reconstruct
%% reconstruct signal
s_hat = real(rectfrsgab(stfr2, L, M));
figure(61)
plot(s)
hold on
plot(s_hat, 'r-.')
legend('ref', 'reconstruction')
rqf_s = RQF(s.',s_hat);
title(sprintf('Signal RQF=%.2f', rqf_s), 'FontSize', 14);
end
index = index + 1;
end
🎉3 参考文献
文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。