1. 下载tftb-0.2安装包
链接地址1:tftb-0.2
下载第三个解压就好
链接地址2:Matlab时频工具箱tftb-0.2
2. 解压下载的安装包
2.1 解压
2.2 打开matlab所在位置
2.3 添加到matlab相邻位置
3. 添加工具箱tftb的路径
打开matlab主页,点击设置路径
最后点击确认,即完成
4. 测试
我们已经知道,⼩波变换专业处理时变信号。时变信号就是信号的频率是随着时间变化的,单纯从时域来看只能通过观察图像变紧缩或舒张来判断频率是否变化,这是不精确的!如果能绘制⼀张横坐标是时间/采样点、纵坐标是频率的图像,那样就可以很好的观察频率随时间的变化!这样的需求就需要做"时频分析"来实现,得到的图像叫作"时频图"。
clear all; clc; N = 1024; % 总采样点 fs = 1000; % 采样频率 tt = (0:N-1)'/fs; % 时间刻度 % 构成信号: 注意x和tt都是列向量 f1 = 400 ; f2 = 200 ; f3 = 100 ; f4 = 50 ; x = sin(2*pi*f1*tt).*(tt<=0.3) + sin(2*pi*f2*tt).*(tt>0.3&tt<=0.6) + ... sin(2*pi*f3*tt).*(tt>0.6&tt<=0.8) + sin(2*pi*f4*tt).*(tt>0.8); figure(4); plot(tt,x); axis([0 max(tt) -inf inf]); xlabel('时间/s'); ylabel('振幅'); title('原始时域信号'); % 短时傅里叶变换操作: figure(5); % 因为tfr把频率轴限制在-0.5~0.5之间,因此恢复"真实频率"的时候要x2 h = hanning(63); % 63个节点的汉宁窗 [tfr,t,f] = tfrstft(x,1:N,N,h); % 参数一个都不能少 subplot(2,2,1); contour( tt, f(1:N/2)*fs*2, abs(tfr(1:N/2,:)) ); % 等值线图 xlabel('时间/s'); ylabel('频率/Hz'); title('63节点汉宁窗时频图'); grid on; h = hanning(127); % 127个节点的汉宁窗 [tfr,t,f] = tfrstft(x,1:N,N,h); % 参数一个都不能少 subplot(2,2,2); contour( tt, f(1:N/2)*fs*2, abs(tfr(1:N/2,:)) ); % 等值线图 xlabel('时间/s'); ylabel('频率/Hz'); title('127节点汉宁窗时频图'); grid on; h = hanning(255); % 255个节点的汉宁窗 [tfr,t,f] = tfrstft(x,1:N,N,h); % 参数?个都不能少 subplot(2,2,3); contour( tt, f(1:N/2)*fs*2, abs(tfr(1:N/2,:)) ); % 等值线图 xlabel('时间/s'); ylabel('频率/Hz'); title('255节点汉宁窗时频图'); grid on; h = hanning(511); % 511个节点的汉宁窗 [tfr,t,f] = tfrstft(x,1:N,N,h); % 参数?个都不能少 subplot(2,2,4); contour( tt, f(1:N/2)*fs*2, abs(tfr(1:N/2,:)) ); % 等值线图 xlabel('时间/s'); ylabel('频率/Hz'); title('511节点汉宁窗时频图'); grid on;