📄 filter.m
字号:
% y=filter(sig,fmin,fmax)
% 对信号进行滤波,可完成低通,带通
% sig为被滤波信号
% fmin为下限频率,当fmin为0时为低通滤波器,当fmin>0时,为带通滤波器
% fmax为上限频率,fmax>fmin
% fs为信号的采样频率
% y为经过滤波后的信号
function y=fitlter(sig,fmin,fmax,fs)
n=length(sig); %取信号数据长度
t=(0:1/fs:(n-1)/fs)'; %建立离散时间列向量
nfft=2^nextpow2(n); %取大于并最接近n的2的幂次方为FFT长度
nmin=round(fmin*nfft/fs+1); %四舍五入取整求最小截止频率对应数组元素的下标
nmax=round(fmax*nfft/fs+1); %四舍五入取整求最大截止频率对应数组元素的下标
y=fft(sig,nfft); %进行FFT变换,结果存于y
vector=zeros(1,nfft); %建立一个长度为nfft,元素全为0的向量
vector(nmin:nmax)=y(nmin:nmax); %将y的正频率带通内的元素赋值给a
vector((nfft-nmax+2):(nfft-nmin+1))=y((nfft-nmax+2):(nfft-nmin+1)); %将y的负频率带通内的元素赋值给a
y=ifft(vector,nfft)'; %进行FFT逆变换,结果存于y
y=(real(y(1:n)));
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -