【通信】基于时间重新分配的多同步压缩变换附matlab代码

1 内容介绍

时频分析方法在信号处理领域有着举足轻重的地位,是处理和分析信号的重要工具.它提供信号时频域的分布信息,清楚地描述着信号的频率随着时间变化的关系.本文对时频分析方法开展了一系列的研究.首先介绍并分析了一些常用的时频分析方法:短时傅里叶变换,连续小波变换,S变换与三参数广义S变换.紧接着引入近两年新兴的一种高精度时频分析方法-多重同压缩变换(MSST).此方法是在短时傅里叶变换的基础上提出的,其对得到的短时傅里叶时频谱进行同步压缩变换,将分布在真实频率周围的发散能量挤压到真实频率中心,得到一个精度较高的时频谱,在此基础上重复"挤压"过程,以此迭代来提高时频谱的时频精度,且减少了交叉项和模态混叠造成的影响​

2 部分代码

%Figures 1-5

clear;

load('vib_data1.mat')

fs = 12000; N = 2400;      % sampling frequency and points

time = (1:N)/fs;              % time sequence

fre = (fs/2)/(N/2):(fs/2)/(N/2):(fs/2);    % frequency sequence

fre2=fliplr(fre);

data=data(1:N);

[tfr]=STFT_Y(data,150);

%Figure 1

figure;

subplot(211)

plot(time,data);

xlabel('Time (s)');

ylabel('Amp (g)');

subplot(212)

imagesc(time,fre/1000,abs(tfr));

xlabel('Time (s)');

ylabel('Fre (kHz)');

axis xy

axis([time(1) time(end) 2.4 4]);

.................................................................

x1=0.0205; x2=0.03958;

y1=3;   y2=3.8;

x11=0.1605; x22=0.1787;

y11=3;   y22=3.8;

[Ts1]=TMSST_Y(data,170,1);

%[Ts1]=TMSST_Z(data,170,1);

%Ts1=Ts1(1:round(N/2),:);

%Figure 2

figure;

subplot(2,2,[1 2])

imagesc(time,fre/1000,abs(Ts1));

xlabel('Time (s)');

ylabel('Fre (kHz)');

axis xy

axis([time(1) time(end) 2.4 4]);

rectangle('Position',[x1 y1 x2-x1 y2-y1],'EdgeColor','red','Linewidth',1);

rectangle('Position',[x11 y11 x22-x11 y22-y11],'EdgeColor','red','Linewidth',1);

ha=subplot(2,2,3);

imagesc(time,fre/1000,abs(Ts1));

xlabel('Time (s)');

ylabel('Fre (kHz)');

axis xy

set(ha,'xlim',[x1 x2],'ylim',[y1 y2]);

ha=subplot(2,2,4);

imagesc(time,fre/1000,abs(Ts1));

xlabel('Time (s)');

ylabel('Fre (kHz)');

axis xy

set(ha,'xlim',[x11 x22],'ylim',[y11 y22]);

..............................................................

[Ts10]=TMSST_Y(data,170,10);

%[Ts10]=TMSST_Z(data,170,10);

%Ts10=Ts10(1:round(N/2),:);

%Figure 3

figure;

subplot(2,2,[1 2])

imagesc(time,fre/1000,abs(Ts10));

xlabel('Time (s)');

ylabel('Fre (kHz)');

axis xy

axis([time(1) time(end) 2.4 4]);

rectangle('Position',[x1 y1 x2-x1 y2-y1],'EdgeColor','red','Linewidth',1);

rectangle('Position',[x11 y11 x22-x11 y22-y11],'EdgeColor','red','Linewidth',1);

ha=subplot(2,2,3);

imagesc(time,fre/1000,abs(Ts10));

xlabel('Time (s)');

ylabel('Fre (kHz)');

axis xy

set(ha,'xlim',[x1 x2],'ylim',[y1 y2]);

ha=subplot(2,2,4);

imagesc(time,fre/1000,abs(Ts10));

xlabel('Time (s)');

ylabel('Fre (kHz)');

axis xy

set(ha,'xlim',[x11 x22],'ylim',[y11 y22]);

..................................................................

[Ts10]=TMSST_Y(data,170,10);

for i=1:round(N/2)

K11(i)=max(abs(fft(detrend(abs(Ts10(i,:))))));

end

[~,index]=max(K11);

x1=0.0205; x2=0.03958;

y1=0;   y2=1.5;

x11=0.1605; x22=0.1787;

y11=0;   y22=1.5;

%Figure 4

figure;

subplot(3,2,[1 2]);

plot(fre,K11);

xlabel('Fre (Hz)');

ylabel('Amp (g)');

axis([0 6000 0 30]);

subplot(3,2,[3 4]);

plot(time,abs(Ts10(index,:)));

xlabel('Time (s)');

ylabel('Amp (g)');

rectangle('Position',[x1 y1 x2-x1 y2-y1],'EdgeColor','red','Linewidth',1);

rectangle('Position',[x11 y11 x22-x11 y22-y11],'EdgeColor','red','Linewidth',1);

ha=subplot(3,2,5);

plot(time,abs(Ts10(index,:)));

xlabel('Time (s)');

ylabel('Amp (g)');

set(ha,'xlim',[x1 x2],'ylim',[y1 y2]);

ha=subplot(3,2,6);

plot(time,abs(Ts10(index,:)));

xlabel('Time (s)');

ylabel('Amp (g)');

set(ha,'xlim',[x11 x22],'ylim',[y11 y22]);

.......................................................

[Ts10]=TMSST_Z(data,170,10);

[mode, TFM] = TCD_Z(Ts10,1.18);

Ts10=Ts10(1:round(N/2),:);

TFM=squeeze(TFM(1,1:round(N/2),:));

%Figure 5

figure;

subplot(2,1,1)

imagesc(time,fre/1000,abs(TFM));

ylabel('Fre (kHz)');

axis xy

axis([time(1) time(end) 2.4 4]);

colorbar;

subplot(2,1,2)

plot(time,data,'b-','Linewidth',1);hold on;plot(time,mode,'r-','Linewidth',1);

xlabel('Time (s)');

ylabel('Amp (g)');

axis([time(1) time(end) -3 3]);

legend('Original signal','Reconstructed signal');

3 运行结果

4 参考文献

[1]钱红艳. 多重同步压缩变换的提升算法及其在地震信号处理中的应用. 

博主简介:擅长智能优化算法神经网络预测信号处理元胞自动机图像处理路径规划无人机雷达通信无线传感器等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

matlab科研助手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值