📄 低通滤波程序.txt
字号:
%频域低通和带通滤波
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clear
clc
close all hidden
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
fni=input('输入数据文件名:','s');
fid=fopen (fni,'r');
fs=100
fmin=fscanf (fid,'%f',1); %最小截至频率
fmax=fscanf (fid,'%f',1); %最大截至频率
fno=fscanf (fid,'%s',1); %输出数据文件名
x=fscanf (fid,'%f',[1,inf]);%输入数据存入行向量
status=fclose(fid);
n=length(x);%数据长度
t=(0:1/fs:(n-1)/fs)';
nfft=2^nextpow2(n);
ni=round(fmin*nfft/sf+1);
na=round(fmin*nfft/sf+1);
y=fft(x,nfft);
a=zeros(1,nfft);
a(ni,na)=y(ni,na);
a(nfft-na+1:nfft-ni+1)=y(nfft-na+1:nfft-ni+1);
y=ifft(a,nfft);
y=(real(y(1:n)))';
%绘制滤波前的时程曲线
subplot(2,1,1);
plot(t,x);
%添加标注
xlable(sx);
ylable(sy);
grid on;
%绘制滤波后的时程曲线
subplot(2,1,2);
plot(t,y);
%添加标注
xlable(sx);
ylable(sy);
grid on;
%添加图例
legend('滤波前','滤波后');
%打开文件输出滤波后的数据
fid=fopen (fno,'w');
for k=1:n
fprintf (fid,'%f%f\n',t(k),y(k));
end
status=fclose(fid);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -