function num=lxcfir(fp,fs,Fs,s)
%fp为通带截止频率,fs阻带截止频率,Fs=1/T
%s=1 for lowpass filter,s=-1 for highpass filter
%sample hxcfir(25,20,100,1)
wp=2*pi*fp/Fs;
ws=2*pi*fs/Fs;
if s==1
kuan=ws-wp;
end
if s==-1
kuan=wp-ws;
end
M=ceil(6.6*pi/kuan)+1;%确定窗宽为M
%ceil(X) 求出离X最近的整数值
n=[0:1:M-1];%表示0-(M-1)这M个数
wc=(ws+wp)/2;%临界频率
%wc=central w
if s==1
hd=lixiang(wc,M,1);%调用lixiang(wc,M,1) 子函数
end
if s==-1
if rem(M,2)==0%M除以2的余数,即M为偶数
M=M+1;%变为奇数
end
hd=lixiang(wc,M,-1);
end
window=(hamming(M))';%选出海明窗函数,"'"表示转置矩阵
h=hd.*window;%.* 表示数组乘法
fenzid=h;%分子
fenmud=1;%分母
t=0:0.01:1;%采样时间0.01
%输入信号
s1=sin(2*pi*t*6);
s2=sin(2*pi*t*33);
s=s1+s2;
temp1=0;
temp2=0;
y=zeros(1,length(s));%length(x)=max(size(x)),返回矢量s的长度,
%zeros(1,3)=(0,0,0)
%滤波器的频率响应
%FIR滤波器的输出列可以按卷积写成:y(n)= h(0)x(n) +h(1)x(n-1)+...+h(N-1)x(n-(N-1))
%因为FIR是线性相位的,其冲击响应具有中心对称特点,上式可写成:y(n)=h(0)[x(0)+x(n-(N-1))]+h(1)[x(n-1)+x(
%-(N-2))]+...+h((N-1)/2)[x(N-1)/2+x(N+1)/2]
for i=1:length(s)
if i<length(fenzid)%fenzid=h=numerator
for j=1:i
temp1=temp1+fenzid(j)*s(i-j+1);
end
else
for j=1:length(fenzid)
temp1=temp1+fenzid(j)*s(i-j+1);
end
end
y(i)=temp1-temp2;
temp2=0;
if i<length(fenmud)-1
for k=1:i
temp2=temp2+fenmud(k+1)*y(i-k+1);
end
else
for k=1:length(fenmud)-1
temp2=temp2+fenmud(k+1)*y(i-k+1);
end
end
temp1=0;
end
figure(1)
subplot(2,1,1)
plot(s);
subplot(2,1,2)
plot(y);
%子函数程序
function h=lixiang(wc,N,s)
M=(N-1)/2;%确定冲击相应位移系数,N为窗宽
for k=-M:M
if k==0
h(k+M+1)=(1-s)/2+s*wc/pi;
else
h(k+M+1)=s*sin(wc*k)/(pi*k);
end
end
低通滤波器
需积分: 0 37 浏览量
2008-01-08
21:49:35
上传
评论
收藏 2KB RAR 举报
zhangxiaoerzi
- 粉丝: 1
- 资源: 21
最新资源
- 基于yolov5识别算法实现的DNF自动脚本源码.zip
- 基于Python实现的自动化办公项目.zip
- 基于python实现的基于PyQt5和爬虫的小说阅读系统.zip
- 机械设计整经机上纱自动化sw20非常好的设计图纸100%好用.zip
- Screenshot_20240427_031602.jpg
- 网页PDF_2024年04月26日 23-46-14_QQ浏览器网页保存_QQ浏览器转格式(6).docx
- 直接插入排序,冒泡排序,直接选择排序.zip
- 在排序2的基础上,再次对快排进行优化,其次增加快排非递归,归并排序,归并排序非递归版.zip
- 实现了7种排序算法.三种复杂度排序.三种nlogn复杂度排序(堆排序,归并排序,快速排序)一种线性复杂度的排序.zip
- 冒泡排序 直接选择排序 直接插入排序 随机快速排序 归并排序 堆排序.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈