⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tfgabor.m

📁 Gabor变换的Matlab实现,可以绘制信号的等高线等各种曲线,是一个非常适用的程序.
💻 M
字号:
%小波Gabor变换的实现程序
clf;
clear all ;
close all; 
fs=100;    %采样率
Ts=1/fs;   
t=0:Ts:10;  
gass=2^(1/4)*exp(-pi*(t).^2).*cos(5*pi*t);   % 生成一个高斯函数
subplot(221),plot(t,gass);
title('高斯函数');
xlabel('t');
ylabel('幅度');
T=0:Ts:10;
ft=cos(T.^2+2*T)+cos(T.^2);  % 生成要变换的信号函数
subplot(222),plot(t,ft);  
title('信号函数');
xlabel('time');
ylabel('幅度');
y=fft(ft);       %信号做FFT变换
amp=abs(y);
subplot(223);plot(amp);
title('信号的FFT变换');
xlabel('F(Hz)');
ylabel('幅度');
subplot(224),plot(t,imag(hilbert(ft)));


shl=100;           %高斯窗每次平移点数
shn=(length(t)-1)/shl;    %求高斯窗平移总次数
y2=zeros(shn,2001);
for k=0:shn-1;
    gassc=2^(1/4)*exp(-pi*(t-k*shl*Ts).^2).*cos(5*pi*t);    %平移后的高斯函数
    gassc2=gassc/sum(gassc.^2)                           %归一化
    yl=conv(hilbert(ft),gassc2);                         %短时傅立叶变换,即对信号与Gauss函数做卷积
    y2(k+1,:)=yl;
end

% 最后的图形显示
[F,T]=size(y2);
[F,T]=meshgrid(1:T,1:F);
figure(2),mesh(F,T,abs(y2))
title('信号 a-F图');
xlabel('F(Hz)');
ylabel('尺度')
zlabel('幅度');
figure(3),contour(F,T,abs(y2))    % 等高线图

% Dinga's Blog http://www.dinga.cn +++++++

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -