✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,代码获取、论文复现及科研仿真合作可私信。
🍎个人主页:Matlab科研工作室
🍊个人信条:格物致知。
更多Matlab完整代码及仿真定制内容点击👇
🔥 内容介绍
Time-frequency (TF) analysis (TFA) method is an important tool in industrial engineering fields. However, restricted to Heisenberg uncertainty principle or unexpected cross terms, the classical TFA methods often generate blurry TF representation, which heavily hinder its engineering applications. How to generate the concentrated TF representation for a strongly time-varying signal is a challenging task. In this paper, we propose a new TFA method to study the nonstationary features of strongly time-varying signals. The proposed method is based on synchrosqueezing transform and employs an iterative reassignment procedure to concentrate the blurry TF energy in a stepwise manner, meanwhile retaining the signal reconstruction ability. Two implementations of the discrete algorithm are provided, which show that the proposed method has limited computational burden and has potential in real-time application. Moreover, we introduce an effective algorithm to detect the instantaneous frequency trajectory, which can be used to decompose monocomponent modes. Numerical and real-world signals are employed to validate the effectiveness of the proposed method by comparing with some advanced methods. By comparisons, it is shown that the proposed method has the better performance in addressing strongly time-varying signals and noisy signals.
📣 部分代码
%Figures 18-23
clear;
load('batdata2.mat');
SampFreq = 1000000/7;
n=length(data);
time=(1:n)/SampFreq;
fre=(SampFreq/2)/(n/2):(SampFreq/2)/(n/2):(SampFreq/2);
time=time*1000;
fre=fre/1000;
x1=0.00105; x2=0.001673;
y1=31790; y2=49640;
x1=x1*1000;x2=x2*1000;
y1=y1/1000;y2=y2/1000;
p1 = -1.69e+011 ;p2 = 4.045e+009 ;p3 = -2.715e+007 ;p4 = 7.072e+004 ;
x=time/1000;
I = p1*x.^3 + p2*x.^2 + p3*x + p4;
p=INT(I,x);
c1=3*p1*x.^2 + 2*p2*x + p3;
c2=6*p1*x + 2*p2;
c3=6*p1*ones(1,400);
c4=zeros(1,400);
[Tr] = RS_Y(data,45);
[Ts] = SST_Y(data,45);
Ptfr = PTFA(data,150,SampFreq,c1,c2,c3,c4);
Dtfr = DTFA(data,150,SampFreq,I,p);
[SEO Te tfr] = SET_Y(detrend(data),45);
[Cs1, Es1] = brevridge_mult(abs(Te), 1:400, 4, 1, 5);
[Cs2, Es2] = brevridge_mult(abs(Ts), 1:400, 4, 1, 5);
[Cs3, Es3] = brevridge_mult(abs(Tr), 1:400, 4, 1, 5);
[Cs4, Es4] = brevridge_mult(abs(Dtfr), 1:400, 4, 1, 5);
%.......................Fig. 18....................
figure
suptitle('Fig. 18');
subplot(121)
plot(time,data);
xlabel('Time / ms');
ylabel('Amplitude');
axis([0 time(end) -0.25 0.15]);
ft=abs(fft(data))/200;
subplot(122)
plot(fre,ft(1:end/2));
xlabel('Fre / kHz');
ylabel('Amplitude');
axis([0 fre(end) 0 0.018]);
%....................Fig. 19.........................
figure
suptitle('Fig. 19');
ha=subplot(221);
imagesc(time,fre,abs(tfr));
xlabel('Time / ms');
ylabel('Fre / kHz');
axis xy
colormap jet;
ha=subplot(222);
imagesc(time,fre,abs(SEO));
xlabel('Time / ms');
ylabel('Fre / kHz');
axis xy
colormap(gca, 1-hot(256));
ha=subplot(223);
imagesc(time,fre,abs(Te));
xlabel('Time / ms');
ylabel('Fre / kHz');
axis xy
rectangle('Position',[x1 y1 x2-x1 y2-y1],'EdgeColor','red','Linewidth',1);
colormap jet;
ha=subplot(224);
imagesc(time,fre,abs(Te));
xlabel('Time / ms');
ylabel('Fre / kHz');
axis xy
set(ha,'xlim',[x1 x2],'ylim',[y1 y2]);
colormap jet;
%......................Fig. 20....................
figure
suptitle('Fig. 20');
ha=subplot(221);
imagesc(time,fre,abs(Ts));
xlabel('Time / ms');
ylabel('Fre / kHz');
axis xy
rectangle('Position',[x1 y1 x2-x1 y2-y1],'EdgeColor','red','Linewidth',1);
colormap jet;
ha=subplot(222);
imagesc(time,fre,abs(Ts));
xlabel('Time / ms');
ylabel('Fre / kHz');
axis xy
set(ha,'xlim',[x1 x2],'ylim',[y1 y2]);
colormap jet;
ha=subplot(223);
imagesc(time,fre,abs(Tr));
xlabel('Time / ms');
ylabel('Fre / kHz');
axis xy
rectangle('Position',[x1 y1 x2-x1 y2-y1],'EdgeColor','red','Linewidth',1);
colormap jet;
ha=subplot(224);
imagesc(time,fre,abs(Tr));
xlabel('Time / ms');
ylabel('Fre / kHz');
axis xy
set(ha,'xlim',[x1 x2],'ylim',[y1 y2]);
colormap jet;
%.......................Fig. 21........................
figure
suptitle('Fig. 21');
ha=subplot(221);
imagesc(time,fre,abs(Ptfr));
xlabel('Time / ms');
ylabel('Fre / kHz');
axis xy
rectangle('Position',[x1 y1 x2-x1 y2-y1],'EdgeColor','red','Linewidth',1);
colormap jet;
ha=subplot(222);
imagesc(time,fre,abs(Ptfr));
xlabel('Time / ms');
ylabel('Fre / kHz');
axis xy
set(ha,'xlim',[x1 x2],'ylim',[y1 y2]);
colormap jet;
ha=subplot(223);
imagesc(time,fre,abs(Dtfr));
xlabel('Time / ms');
ylabel('Fre / kHz');
axis xy
rectangle('Position',[x1 y1 x2-x1 y2-y1],'EdgeColor','red','Linewidth',1);
colormap jet;
ha=subplot(224);
imagesc(time,fre,abs(Dtfr));
xlabel('Time / ms');
ylabel('Fre / kHz');
axis xy
set(ha,'xlim',[x1 x2],'ylim',[y1 y2]);
colormap jet;
%....................Fig. 22........................
c=200/fre(end);
figure
suptitle('Fig. 22');
subplot(221)
plot(time,Cs1/c,'b-');
xlabel('Time / ms');
ylabel('Fre / kHz');
axis([0 time(end) 0 fre(end)]);
subplot(222)
plot(time,Cs2/c,'b-');
xlabel('Time / ms');
ylabel('Fre / kHz');
axis([0 time(end) 0 fre(end)]);
subplot(223)
plot(time,Cs3/c,'b-');
xlabel('Time / ms');
ylabel('Fre / kHz');
axis([0 time(end) 0 fre(end)]);
subplot(224)
plot(time,Cs4/c,'b-');
xlabel('Time / ms');
ylabel('Fre / kHz');
axis([0 time(end) 0 fre(end)]);
%.....................Fig. 23.......................
for k=1:4
for j=1:400
Te_sig(k,j)=real(Te(Cs1(k,j),j));
end
end
Te_sig(4,1:200)=0;
rSig=sum(Te_sig);
figure
suptitle('Fig. 23');
subplot(321);
plot(time,Te_sig(1,:));
axis([0 2.8 -0.11 0.11]);
subplot(322);
plot(time,Te_sig(2,:));
axis([0 2.8 -0.13 0.13]);
subplot(323);
plot(time,Te_sig(3,:));
axis([0 2.8 -0.05 0.05]);
subplot(324);
plot(time,Te_sig(4,:));
axis([0 2.8 -0.03 0.03]);
subplot(325);
plot(time,data,'color','k');hold on;
plot(time,sum(Te_sig),'r--');
axis([0 2.8 -0.22 0.15]);
subplot(326);
plot(time,sum(Te_sig)-data','r--');
axis([0 2.8 -0.22 0.15]);
⛳️ 运行结果
🔗 参考文献
[1] Gang Yu, Zhonghua Wang, and Ping Zhao. "Multisynchrosqueezing transform." IEEE Transactions on Industrial Electronics, 66.10 (2019): 5441 - 5455.
昨夜寒蛩不住鸣。惊回千里梦,已三更。
🎈 部分理论引用网络文献,若有侵权联系博主删除
🎁 关注我领取海量matlab电子书和数学建模资料
👇 私信完整代码和数据获取及论文数模仿真定制
1 各类智能优化算法改进及应用
生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化、背包问题、 风电场布局、时隙分配优化、 最佳分布式发电单元分配、多阶段管道维修、 工厂-中心-需求点三级选址问题、 应急生活物质配送中心选址、 基站选址、 道路灯柱布置、 枢纽节点部署、 输电线路台风监测装置、 集装箱船配载优化、 机组优化、 投资优化组合、云服务器组合优化、 天线线性阵列分布优化
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径向基神经网络时序、回归预测和分类