⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 filter.m

📁 % y=filter(sig,fmin,fmax) % 对信号进行理想滤波
💻 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 + -