close all
load dr2.dat;
Xt=dr2;
Fs=5000;
dt=1/Fs;
N=length(Xt);
% Xf=fft(Xt);
% close all
% clear all
% clc
% [fid1,message] = fopen('dr2.dat','r');
% if fid1 == -1
% disp(message);
% end
% Xt = fread(fid1,inf,'uint16');
% fclose(fid1)
% Fs=6000000;
% dt=1/Fs;
% N=length(Xt);
y=fft(Xt);
figure(1)
subplot(2,2,1),plot([0:N-1]/Fs,Xt);
xlabel('时间/s'),title('时间域');
% grid on;
subplot(2,2,2),plot([0:N-1]/(N*dt),abs(y)*2/N);
xlabel('频率/kHz'),title('幅频图');
ylabel('振幅');
f1=0.0;f2=10;
yy=zeros(1,length(y));
for m=0:N-1 %将频率落在该频率范围及其大于Nyquist频率的波滤去
if(m/(N*dt)>f1&m/(N*dt)<f2)... %小于Nyquist频率的滤波范围
|(m/(N*dt)>(1/dt-f2)&m/(N*dt)<(1/dt-f1)) %大于Nyquist频率的滤波范围
%1/dt为一个频率周期
yy(m+1)=0.; %置在此频率范围内的振动振幅为零
else
yy(m+1)=y(m+1); %其余频率范围的振动振幅不变
end
end
subplot(2,2,4),plot([0:N-1]/(N*dt),abs(yy)*2/N)
xlabel('频率/kHz');
ylabel('振幅');
% gstext=sprintf('频率为%4.1f-%4.1f Hz 的波被滤除'f1,f2);
% title(gstext)
subplot(2,2,3),plot([0:N-1]/Fs,real(ifft(yy)))
title('通过IFFT回到时间域');
xlabel('时间/s');
- 1
- 2
前往页