• 【通信】基于时间重新分配的多同步压缩变换附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代码问题可私信交流。

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

  • 相关阅读:
    2022-06-28 网工进阶(十三)IS-IS-路由过滤、路由汇总、认证、影响ISIS邻居关系建立的因素、其他命令和特性
    Kafka3.0.0版本——消费者(Range分区分配策略以及再平衡)
    事务 还有这些用法,之前都不知道
    uvm_event和uvm_event_pool
    25、Camunda Service Task、任务监听器和执行监听器
    小程序源码:人生重开模拟器
    JAVA-信息录入
    操作系统【OS】中断和异常
    Java自幂数计算及其算法改进
    我与 COSCon 的故事【我们的COSCon】
  • 原文地址:https://blog.csdn.net/matlab_dingdang/article/details/126694276