【数字信号处理】基于matlab数字信号同步压缩变换【含Matlab源码 1534期】
一、获取代码方式
获取代码方式1:
完整代码已上传我的资源: 【数字信号处理】基于matlab数字信号同步压缩变换【含Matlab源码 1534期】
获取代码方式2:
通过订阅紫极神光博客付费专栏,凭支付凭证,私信博主,可获得此代码。
备注:订阅紫极神光博客付费专栏,可免费获得1份代码(有效期为订阅日起,三天内有效);
二、同步压缩变换简介
SST以WT为基础,利用同步压缩算子提高时频脊线在时频谱上的分辨率,实现了对瞬时频率的提取与重构。设ψ(b)为小波母函数,则信号x(t)的连续小波变换为:
式中:
x(t)——振动信号;
W(a,b)——x(t)的连续小波变换结果;
t——时间变量;
a——尺度因子;
b——平移因子;
通过分析可知,在小波域中(a,b)位置的瞬时频率信息为:
式中:
ωx(a,b)——瞬时频率;
j——虚数单位。
文献[10]发现,无论a取何值,W(a,b)在b上的振荡特性均指向初始频率Ω,因此:
根据定义的同步压缩变换,小波逆变换为:
式中:
x(b)——小波逆变换结果;
Cψ——相差系数;
ψ(aξ)——小波母函数。
对ωx(a,b)沿尺度a方向整合,归划到频域中ω=ωx(a,b)的位置上,则同步压缩变换定义为:
式中:
Sst (ω,b)——信号b的同步压缩函数;
ω——角频率。
通过式(6)的结果与相差系数Cψ,将信号的幅值归化到时频域中所在位置,最终获得高分辨率的时频谱。
三、部分源代码
% A numerical signal.
clear;
SampFreq = 100;
t = 0 : 1/SampFreq : 14-1/SampFreq;
Sig = [sin(2*pi*(25*t))];
[m,n]=size(Sig);
time=(1:n)/SampFreq;
fre=(SampFreq/2)/(n/2):(SampFreq/2)/(n/2):(SampFreq/2);
Ts = SST(Sig',100);
figure
imagesc(time,fre,abs(Ts));
axis xy
ylabel('Freq / Hz');
xlabel('Time / Sec');
title('SST');
%signal reconstruction.
s=real(sum(Ts));
%Reconstructed signal.
figure
plot(s);
title('Reconstructed signal');
%Original signal
figure
plot(Sig,'r-');
title('Original signal');
function [Ts] = SST(x,hlength);
% Computes the SST (Ts) of the signal x.
% INPUT
% x : Signal needed to be column vector.
% hlength: The hlength of window function.
% OUTPUT
% Ts : The SST
[xrow,xcol] = size(x);
if (xcol~=1),
error('X must be column vector');
end;
if (nargin < 1),
error('At least 1 parameter is required');
end;
if (nargin < 2),
hlength=round(xrow/5);
end;
Siglength=xrow;
hlength=hlength+1-rem(hlength,2);
ht = linspace(-0.5,0.5,hlength);ht=ht';
% Gaussian window
h = exp(-pi/0.32^2*ht.^2);
% derivative of window
dh = -2*pi/0.32^2*ht .* h; % g'
[hrow,hcol]=size(h); Lh=(hrow-1)/2;
N=xrow;
t=1:xrow;
[trow,tcol] = size(t);
tfr1= zeros (N,tcol) ;
tfr2= zeros (N,tcol) ;
tfr= zeros (round(N/2),tcol) ;
Ts= zeros (round(N/2),tcol) ;
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
四、运行结果
五、matlab版本及参考文献
1 matlab版本
2014a
2 参考文献
[1] 沈再阳.精通MATLAB信号处理[M].清华大学出版社,2015.
[2]高宝建,彭进业,王琳,潘建寿.信号与系统——使用MATLAB分析与实现[M].清华大学出版社,2020.
[3]王文光,魏少明,任欣.信号处理与系统分析的MATLAB实现[M].电子工业出版社,2018.
[4]高彦彦,张晶,李莉,贾英茜.基于GUI的《数字信号处理》教学演示系统的设计[J].教育教学论坛. 2019,(48)
[5]李俊,张淑玲,帅晶.基于Matlab GUI界面的数字信号处理辅助教学系统[J].信息通信. 2020,(08)
[6]李亦佳,王静,王正方,隋青美.基于多重同步压缩变换的微震信号去噪方法研究[J].应用基础与工程科学学报
文章来源: qq912100926.blog.csdn.net,作者:海神之光,版权归原作者所有,如需转载,请联系作者。
原文链接:qq912100926.blog.csdn.net/article/details/121590419
- 点赞
- 收藏
- 关注作者
评论(0)