MATLAB 信号分析FFT STFT

MATLAB 信号分析FFT STFT

首先得到一串(time,data)的数据,选择有效地信号区域,然后显示有效地原始信号和有效地FFT或者STFT信号。

ginput:利用鼠标选择输入点;

semilogy,loglog,spectrogram分别为显示ylog显示,xylog显示,spectrom显示STFT

Tstart Tend 设置原始信号需要选择的时间范围

plot(time,data);
Tstart = 40/(time(2) - time(1));%get the position
Tend = 50/(time(2) - time(1));%get the position
figure(1);
plot(time(Tstart:Tend),data(Tstart:Tend));

a = ginput(4);
Position = a(:,1)/1.25e-4;
x1 =  time(Position(1):Position(2));
y1 =  data(Position(1):Position(2));
figure(2);
plot(x1,y1);
title('primary signal ');


N=length(Position(1):Position(2)); %样点个数
fs = 8000;%采样频率
df=fs/(N-1);%分辨率
f=(0:N-1)*df;%其中每点的频率
Y=fft(data(Position(1):Position(2)))/N*2; %真实的幅值
figure(3);
loglog(f(1:N/2),abs(Y(1:N/2)),'r');
title('FFT');
hold on;

x2 =  time(Position(2):Position(3));
y2 =  data(Position(2):Position(3));
figure(4);
plot(x2,y2);
title('primary signal ');

fs = 8000;%采样频率
df=fs/(N-1);%分辨率
f=(0:N-1)*df;%其中每点的频率
Y=fft(data(Position(2):Position(3)))/N*2; %真实的幅值
figure(3);
N
loglog(f(1:N/2),abs(Y(1:N/2)));
title('FFT');


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值