【通信】Matlab实现多同步压缩变换

简介: 【通信】Matlab实现多同步压缩变换

1 内容介绍

时频分析作为非平稳信号处理的一种重要方法,它提供了时域与频域的联合分布信息,清楚的刻画了信号频率随时间的变化关系,能给出每个时刻下信号的瞬时频率及其幅值。本文把时频分析作为研究对象,在对传统时频分析方法做出深入分析的基础上,重点研究同步压缩连续小波变换的时频分析方法,并将其应用到解决多分量非平稳信号的时频聚集性、分离以及瞬时频率估计的问题上。

2 部分代码

clear

load('vib_data1.mat')

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

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

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

data=data(1:N);

[MTs tfr]=MSST_Y_new(data,95,50);


gamma = 10^(-2);

sigma = 0.025;


[~,~,~,~,~,Ts1,Ts2,Ts3,Ts4] = sstn(data,gamma,sigma);

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

figure

suptitle('Fig. 19');

subplot(211)

plot(time,data);

ylabel('Amp / g');

xlabel('Time / s');

axis([0 0.1 -4 4]);

subplot(212)

ft=abs(fft(data))/600;

plot(fre,ft(1:end/2));

ylabel('Amp / g');

xlabel('Fre / Hz');

axis([0 6000 0 0.3]);

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

x1=0.06; x2=0.065;

y1=2.6;   y2=3.7;

dd=0.1;


figure

suptitle('Fig. 20');

subplot(511);

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

%xlabel('Time / s');

ylabel('Fre / kHz');

axis xy;axis ([0 0.1 y1-dd y2+dd]);

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

axes('position',[0.92,0.805,0.07,0.15]);

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

%xlabel('Time / s');

ylabel('Fre / kHz');

axis xy

axis off;

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

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


subplot(512);

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

%xlabel('Time / s');

ylabel('Fre / kHz');

axis xy;axis ([0 0.1 y1-dd y2+dd]);

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

axes('position',[0.92,0.61,0.07,0.15]);

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

%xlabel('Time / s');

ylabel('Fre / kHz');

axis xy

axis off;

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

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


subplot(513);

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

%xlabel('Time / s');

ylabel('Fre / kHz');

axis xy;axis ([0 0.1 y1-dd y2+dd]);

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

axes('position',[0.92,0.44,0.07,0.15]);

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

%xlabel('Time / s');

ylabel('Fre / kHz');

axis xy

axis off;

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

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


subplot(514);

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

%xlabel('Time / s');

ylabel('Fre / kHz');

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

axis xy;axis ([0 0.1 y1-dd y2+dd]);

axes('position',[0.92,0.26,0.07,0.15]);

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

%xlabel('Time / s');

ylabel('Fre / kHz');

axis off;

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

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


subplot(515);

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

%xlabel('Time / s');

ylabel('Fre / kHz');

axis xy;axis ([0 0.1 y1-dd y2+dd]);

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

axes('position',[0.92,0.09,0.07,0.15]);

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

%xlabel('Time / s');

ylabel('Fre / kHz');

axis xy

axis off;

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

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


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

MTs1=MTs;

MTs1(1:310,:)=0;

MTs1(360:end,:)=0;


MTs2=MTs;

MTs2(1:260,:)=0;

MTs2(310:end,:)=0;


[Cs2] = brevridge_mult(abs(MTs2), (1:2)/13.9, 2, 1, 5);

[Cs1] = brevridge_mult(abs(MTs1), (1:2)/13.9, 2, 1, 5);


IF1=[Cs1(1,1:1130) Cs1(2,1131:end)];

IF2=[Cs2(2,1:176) Cs2(1,177:end)];


Cs(1,:)=IF1;Cs(2,:)=IF2;


n=1200;

ds=3;

for k=1:2

for j=1:n

MTs_sig(k,j)=sum(real(MTs(max(1,Cs(k,j)-ds):min(round(n/2),Cs(k,j)+ds),j)));

end

end


figure

suptitle('Fig. 21');

subplot(411)

plot(time,fre(IF1)/1000,'b-');hold on;plot(time,fre(IF2)/1000,'b-');

axis ([0 0.1 y1-dd y2+dd]);

ylabel('Fre / kHz');

subplot(412)

plot(time,MTs_sig(1,:),'b-');

ylabel('Amp / g');

axis ([0 0.1 -2.5 2.5]);

subplot(413)

plot(time,MTs_sig(2,:),'b-');

ylabel('Amp / g');

axis ([0 0.1 -1.5 1.5]);

subplot(414)

plot(time,data,'k-','linewidth',1);hold on;

plot(time,sum(MTs_sig),'r-');

ylabel('Amp / g');

axis ([0 0.1 -2.5 2.5]);

legend('Measured signal','S1 + S2');

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

figure

suptitle('Fig. 22');

subplot(211)

plot(time,real(MTs_sig(1,:))/max(real(MTs_sig(1,:))),'b-','Linewidth',2);hold on;

plot(time,detrend(fre(Cs(1,:)))/max(detrend(fre(Cs(1,:))))/1.25,'r-','Linewidth',1.5);

axis ([0 0.1 -1 1]);

xlabel('Time / s');

subplot(212)

plot(time,real(MTs_sig(2,:))/max(real(MTs_sig(2,:))),'b-','Linewidth',2);hold on;

plot(time,detrend(fre(Cs(2,:)))/max(detrend(fre(Cs(2,:))))/1.25,'r-','Linewidth',1.5);

axis ([0 0.1 -1 1]);

legend('Mono-component mode','Detected IF');

xlabel('Time / s');

3 运行结果

4 参考文献

[1]王智慧. 小波时频同步压缩变换方法研究及应用[D]. 西安电子科技大学, 2020.

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



相关文章
|
3月前
|
异构计算
基于MATLAB的NSCT(非下采样轮廓波变换)实现
基于MATLAB的NSCT(非下采样轮廓波变换)实现
104 5
|
3月前
|
机器学习/深度学习 编解码 算法
【GUI】通过Hough变换在SEM显微图像上检测滑移线研究(Matlab代码实现)
【GUI】通过Hough变换在SEM显微图像上检测滑移线研究(Matlab代码实现)
149 0
|
3月前
|
编解码 算法 自动驾驶
【雷达通信】用于集成传感和通信的OFDM雷达传感算法(Matlab代码实现)
【雷达通信】用于集成传感和通信的OFDM雷达传感算法(Matlab代码实现)
395 125
|
2月前
|
算法
基于MATLAB/Simulink平台搭建同步电机、异步电机和双馈风机仿真模型
基于MATLAB/Simulink平台搭建同步电机、异步电机和双馈风机仿真模型
|
2月前
|
机器学习/深度学习 编解码 算法
基于OFDM技术的水下声学通信多径信道图像传输研究(Matlab代码实现)
基于OFDM技术的水下声学通信多径信道图像传输研究(Matlab代码实现)
142 8
|
2月前
|
编解码 算法 数据可视化
MATLAB 实现同步压缩小波变换
MATLAB 实现同步压缩小波变换
179 3
|
2月前
|
开发框架 算法 .NET
基于ADMM无穷范数检测算法的MIMO通信系统信号检测MATLAB仿真,对比ML,MMSE,ZF以及LAMA
简介:本文介绍基于ADMM的MIMO信号检测算法,结合无穷范数优化与交替方向乘子法,降低计算复杂度并提升检测性能。涵盖MATLAB 2024b实现效果图、核心代码及详细注释,并对比ML、MMSE、ZF、OCD_MMSE与LAMA等算法。重点分析LAMA基于消息传递的低复杂度优势,适用于大规模MIMO系统,为通信系统检测提供理论支持与实践方案。(238字)
|
3月前
|
计算机视觉
【图像处理】基于MATLAB的短时傅里叶变换和小波变换及图像处理(Matlab实现)
【图像处理】基于MATLAB的短时傅里叶变换和小波变换及图像处理(Matlab实现)
100 2
|
2月前
|
存储 人工智能 移动开发
利用 Hough 变换处理量测得到的含杂波的二维坐标,解决多目标航迹起始问题(Matlab代码实现)
利用 Hough 变换处理量测得到的含杂波的二维坐标,解决多目标航迹起始问题(Matlab代码实现)
|
3月前
|
机器学习/深度学习 算法 安全
【无人机通信】最佳高度和功率中继无人机通信位置部署研究(Matlab代码实现)
【无人机通信】最佳高度和功率中继无人机通信位置部署研究(Matlab代码实现)

热门文章

最新文章