没有合适的资源?快使用搜索试试~ 我知道了~
实现短时傅里叶变换的一个小程序,信号可自己添加,然后可以分析出短时Fourier结果,采用Hamming窗。
资源推荐
资源详情
资源评论
%信号自己写 即x
subplot(2,2,1),plot(x),xlabel('时间/s');
grid on;
X = fft(x);
subplot(2,2,2),plot([0:N-1/2]/N/dt,abs(X*2/N));
grid on;
xlabel('频率/Hz');ylabel('振幅')
Nw = 121;
nstep = 1;
h = window(@hamming,Nw);
Ts = [];
L = floor(Nw / 2);
F = [0:(Nw-1) / 2] / (Nw*dt);
TF = [];
for ii=1:nstep:N
if(ii<L+1)
xw = [zeros(1,L-ii+1),x(1:ii+L)].*h';
elseif(ii>N-L)
xw = [x(ii-L:N),zeros(1,(ii+L)-N)].*h';
else
xw = x(ii-L:ii+L).*h';
end
Ts = [Ts,ii];
temp = fft(xw,Nw);
TF = [TF,[temp(1:(Nw+1)/2)*2/Nw]'];
end
subplot(2,2,3),mesh(Ts,F,abs(TF));
xlabel('时间/s'),ylabel('频率/Hz'),zlabel('振幅')
subplot(2,2,4),pcolor(Ts,F,abs(TF));
shading interp;
subplot(2,2,1),plot(x),xlabel('时间/s');
grid on;
X = fft(x);
subplot(2,2,2),plot([0:N-1/2]/N/dt,abs(X*2/N));
grid on;
xlabel('频率/Hz');ylabel('振幅')
Nw = 121;
nstep = 1;
h = window(@hamming,Nw);
Ts = [];
L = floor(Nw / 2);
F = [0:(Nw-1) / 2] / (Nw*dt);
TF = [];
for ii=1:nstep:N
if(ii<L+1)
xw = [zeros(1,L-ii+1),x(1:ii+L)].*h';
elseif(ii>N-L)
xw = [x(ii-L:N),zeros(1,(ii+L)-N)].*h';
else
xw = x(ii-L:ii+L).*h';
end
Ts = [Ts,ii];
temp = fft(xw,Nw);
TF = [TF,[temp(1:(Nw+1)/2)*2/Nw]'];
end
subplot(2,2,3),mesh(Ts,F,abs(TF));
xlabel('时间/s'),ylabel('频率/Hz'),zlabel('振幅')
subplot(2,2,4),pcolor(Ts,F,abs(TF));
shading interp;
资源评论
alnlll
- 粉丝: 5
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功