滤波器

滤波器定义

“滤波器(filter),是一种用来消除干扰杂讯的器件,将输入或输出经过过滤而得到纯净的直流电。对特定频率的频点或该频点以外的频率进行有效滤除的电路,就是滤波器,其功能就是得到一个特定频率或消除一个特定频率。”

滤波器种类

滤波器按照频率来分类,可分为高通、低通、带通、带阻以及全通滤波器,根据所需选择合适滤波器。

滤波器设计

滤波器的设计方法可分为两大类,一类是IIR,另一类是FIR。对于FIR的设计,一般可以采用等波纹以及窗的方法。

滤波器设计要求

采样频率50khz,带通滤波器,通带15KHz,阻带20KHz,阻带衰减50dB,用凯撒窗设计带通滤波器。

Matlab程序设计滤波器

首先在Matlab中设置所需参数:

fs = 50000;

T = 1/fs;

L = 4000;

t = (0:L-1)*T;

然后从r32文件中读取信号数据:

filename=['文件路径'];

fid=fopen(filename,'r');

Na=4000;

dat=fread(fid,[32,Na],'float');

data=dat(1,:); %data即为所导入信号

绘制信号时域图:

plot(t,data)

得到:

再对其进行FFT:

NFFT = 2^nextpow2(L);

Y = fft(data,NFFT)/L;

f=fs/2*linspace(0,1,NFFT/2+1);

figure

plot(f,2*abs(Y(1:NFFT/2+1)))

title('Single-sided Amplitude Spectrum of y(t)')

xlabel('Frequency(Hz)')

ylabel('|Y(f)|')

得到:

设计滤波器:

fs = 50000;

f = [13000 15000 20000 22000];

dev = [0.01 0.02 0.01];

a = [0 1 0];

[n,wn,beta,ftype] = kaiserord(f,a,dev,fs);

b = fir1(n,wn,'bandpass');

freqz(b)

得到滤波器的幅值相位图:

所设计滤波器的分子系数存于b中,使所给信号通过所设计的滤波器,所用程序如下:

d=filter(b,1,data);

plot(t,d)

得到滤波后的信号时域图:

对其进行FFT:

Y _af= fft(d,NFFT)/L;

f_af=fs/2*linspace(0,1,NFFT/2+1);

figure

plot(f_af,2*abs(Y_af(1:NFFT/2+1)))

xlabel('Frequency(Hz)')

得到:

利用Matlab工具箱设计滤波器

另外,还有一种更加快捷的设计方法,即使用Matlab自带的工具箱filterDesigner来设计滤波器:

在Matlab的命令行窗口中输入filterDesigner,得到如下窗口:

通过选择设置,可以得到滤波器的系数,以本题为例:

其系数如下:

可对其到处头文件,进行数据处理。

总结

本人对于数字信号处理这门课的学习比较冲忙,对于很多知识点都是比较模糊,希望在后续所需时能够进一步的加深理解。

在FIR滤波器设计的过程中,遇到一个比较困惑的点是,根据其他的案例,滤波器系数是包含分子系数以及分母系数,但本例产生的滤波器仅含分母系数,比较困惑,请大佬们指教!

matlab编程设计fir滤波器,用MATLAB设计FIR滤波器相关推荐

  1. matlab设计风电机外部控制器,【matlab编程代做】步进电机控制器设计

    <[matlab编程代做]步进电机控制器设计>由会员分享,可在线阅读,更多相关<[matlab编程代做]步进电机控制器设计(8页珍藏版)>请在人人文库网上搜索. 1.步进电机控 ...

  2. MATLAB编程与应用系列-关于MATLAB编程入门教程的总体编写安排

    本系列教程来源于出版设计<基于MATLAB编程基础与典型应用书籍>,如涉及版权问题,请联系:156204968@qq.com. 出版社:人民邮电出版社, 页数:525. 本系列教程目前基于 ...

  3. fortran和matlab编程的区别,fortran和matlab

    MATLAB 与C C + + .FORTRAN语言混合编程_工学_高等教育_教育专区.综合使用Matlab与c语言 MATLAB 与C/ C + + .FORTRAN语言混合编程摘要:对MATLAB ...

  4. 汽车理论matlab编程,汽车理论课后作业matlab编程详解(带注释)[试题学习]

    <汽车理论课后作业matlab编程详解(带注释)[试题学习]>由会员分享,可在线阅读,更多相关<汽车理论课后作业matlab编程详解(带注释)[试题学习](11页珍藏版)>请在 ...

  5. 汽车理论matlab编程,汽车理论课后作业matlab编程详解带注释[10页]

    <汽车理论课后作业matlab编程详解带注释[10页]>由会员分享,可在线阅读,更多相关<汽车理论课后作业matlab编程详解带注释[10页](11页珍藏版)>请在读根文库上搜 ...

  6. 线性正切制导 matlab编程实现,数学建模之MATLAB编程

    EverydayOneCat ✖️N 「Sushi shop!」 知识点 1.下载 链接:https://pan.baidu.com/s/1DbfysOOwIoSvt8HQUw0jhw 提取码:75m ...

  7. 计算方法matlab编程徐萃薇,计算方法课程设计--用Newton插值多项式处理磁化曲线.docx...

    计算方法课程设计 题 目: 用Newton插值多项式 处理磁化曲线 学 院: 理学院 班 级: 数学 15-1 学 生 姓 名: 陈昌林 学 生 学 号: 2014028281 指 导 教 师: 石瑞 ...

  8. MFC与Matlab编程总结 (以《Matlab与C/C++混合编程技术(第三版)》-刘维 第五章 生成DLL为例)

    近期要完成一个任务,把人脸超分辨率的算法集成在一个系统中,嵌入人脸库及字典集等.老板的要求是有比较好的界面,目前也只能是VS那一套了,前一段时间完成的项目是用的MFC,这次也就是用MFC来完成吧.但是 ...

  9. matlab编程教程ppt,机械优化设计(MATLAB编程教程+习题).ppt

    --(完美WORD文档DOC格式,可在线免费浏览全文和下载)值得下载! 案例 如图,有一块边长为6m的正方形铝板,四角截去相等的边长为x的方块并折转,造一个无盖的箱子,问如何截法(x取何值)才能获得最 ...

  10. matlab编程的步骤,如何画matlab程序的流程图?求解答

    NF=input('请输入短路点的数目:NF=');   %输入短路点的数目NF for i1=1:NF     %给i1赋值短路点的数目,从1到NF clear; %清除 n1=input('请输入 ...

最新文章

  1. C 语言编程 — GCC 工具链
  2. POJ 1679 The Unique MST(次小生成树)
  3. 面试总结-腾讯产品群面
  4. JavaWeb黑马旅游网-学习笔记05【分类数据展示功能】
  5. 乱码 讯飞 语音识别_一段讯飞、百度等语音识别API无法识别的语音最终解决办法...
  6. tar 解压_关于Ubuntu下解压tar.xz方法记录
  7. 从函数调用来思考多态
  8. auxiliary variable(辅助变量)的引入
  9. Ubuntu更改hosts档
  10. 开发uni-app时HBuilderX编辑器使用微信小程序模拟器保存代码无法刷新模拟器问题
  11. 微信内置浏览器打开所有页面空白解决方案
  12. jquery自定义插件_创建一个自定义jQuery插件
  13. Dreamoon Likes Coloring
  14. tomcat图标修改——东子破解
  15. 2022-2028年全球与中国护眼台灯行业深度分析
  16. visual studio2019安装opencv
  17. FPGA第五节:ADDA实验
  18. Office2010:为什么我的PPT需要修复?
  19. win10无法修改mac地址_一款MAC地址修改软件WiFiSpoof for Mac激活版
  20. 计算机科学与技术考研调剂信息,中国科学技术大学计算机科学与技术学院2020考研调剂信息...

热门文章

  1. mac python版本问题
  2. LeetCode 字符串简单部分 算法 python实现
  3. 广成 USBCAN-II Pro V502 linux下升级经验
  4. 消息称百度网盘青春版降速23倍:从52MB/s降至2.2MB/s
  5. 坐等价格!小米Civi今日下午发布:女性用户青睐之选
  6. 大数据公司Palantir曾向法拉第未来投资2500万美元
  7. 创下新的纪录 京东618累计下单金额超3438亿元
  8. 游族网络回应被新浪财团收购:有相关计划 但对方身份尚不知情
  9. 2020未来科学大奖获奖名单公布 张亭栋、王振义等获奖
  10. 马云湖畔大学开学致辞:企业家要比谁都相信未来