转自:http://blog.csdn.net/jbb0523/article/details/6782800

在matlab中有一个滤波器设计和分析工具FDAT,可以通过此工具来对滤波器进行设计。

matlab中一些简单的命令:round(x)把x舍入到最近的整数(四舍五入)

abs(x)计算x的绝对值

sqrt(x)计算x的平方值

fix(x)把x沿0的方向舍入到最近的整数值

floor(x)把x舍入到比x小的最近的整数

ceil(x)把x舍入为比x大的最近的整数

要设计滤波器,首先要做的就是要知道各个系数。其实系数我们是可以通过matlab的FDAT工具来进行计算的。步骤如下:

(1)先打开matlab,然后点击左下脚的start按钮,选择Toolboxes——>Filter Design ——>Filter Design &Analysis Tool,即可启动FDATool。也可在matlab中执行fdatool来启动FDATool。FDATool启动后如下图所示的窗口。

(2)按照要求自己设计滤波器。启动FDATool后的界面就是滤波器的设计界面,如上图所示,要从其它的界面进入滤波器的设计界面可以倒垃圾FDATool窗口坐下侧的一列工具按钮中的最下一个图标filter design ,即可进入设计界面。在该界面中要进行滤波器的设计。首先要选择滤波器的类型,滤波器的类型有高通、低通、带通和带阻,以及其它的好几种。选择好类型之后就要选择设计方法,设计方法从大类上有两种,一种是FIR,另一种是IIR。每一大类中又有很多种不同的方法。针对不同的设计方法,后面有不同的选项。然后就是滤波器的阶数(filter order),如果是11阶的滤波器则输入10就可以了。设置完这些就需要设置滤波器的频率特性和幅度特性了。其中Fs是采样频率,Fp是通带截止频率,Fs是阻带截止频率。后面的Apass是指通带内允许的最大衰减,Astop是指阻带内允许的最小衰减。设置完这些参数之后,按Design Filter就可以按要求设计出该滤波器了。

在本次举例中设置如下图:

(3)滤波器设计和性能分析
设计完成后需要对滤波器进行性能分析,检查是不是符合要求。性能分析可通过单击Analysis菜单,下面有很多子菜单来进行。
1、Magnitude Response(幅频响应)图略
2、Phase Response(相频响应)
3、相幅联合分析
4、冲击响应(Analysis——>Impulse  Response后可得到如下的图形)

5、滤波器的系数(这个是很重要的,也是我们想要的)
Analysis——>Filter Coefficients之后会看到系数的。(图略)
还有其他的分析,都省略了吧!
(4)设置量化参数
matlab在计算系数时只是追求高精度而没有考虑有限字长。我们在fpga中实现时字长是有限的,所以要对系数首先进行量化。点击左下脚的Set Quantization parameter就可以设置量化参数了。

 默认时Turn quantization on是没有选中的,只有选中之后才可以设置后面的各个项。选中Convert coefficients to 就可以设置系数的格式了。因为我们要在fpga要实现,所以在此次选择定点数(fixed),如果选择定点数则就需要选择舍入模式,其中有round、fix、floor、ceil等各个的意义见开头提到的几个函数。也可在matlab中用help来查看各个命令的作用哦!(看看matlab是不是很人性啊!)后面是选择溢出模式和定点数的数据格式的。Format中有两个数字,前面一个呢是字的总长度,后面一个呢是小数的长度。如果你对某些选项还不太明白,那就找到这个选项对应的命令,然后help一下就可以了。
设置完成后在Filter Coefficient窗口最下面还可以看到对应的命令呢!这是不是很令人兴奋啊!如下图:

量化之后,依然可以用前面说过的几种分析方法来对比量化前后的不同。
(5)导出系数
点击File——>export,出现如下对话框。可以将系数导出到workspace空间中,以变量Num的形式存在。

但是变量Num都是小于1的数,所以还是不能用fpga来进行处理,所以要把它进行扩大。那到底要扩大多少倍呢,通过看资料我的理解就是在fpga处理中你的系数是几位数就可以扩大多少倍。比如你的系数准备是9位数,那么你可以给Num乘以2的9次方。

 
又查了一些资料才发现,系数的量化实际可以直接通过下面的命令来实现:
coeff=round(Num*2^9),(或者也可以coeff=round(Num/max(abs(Num))*32767))这样得到的系数也是可以用的。如果要检查你得到的系数是否可用,可以通过在matlab输入这条指令:freqz(coeff,1,512)。输入这个指令以后会出现下图:

通过观察这个图就可以知道这个系数是不是正确了。
得到系数之后在fpga中如何实现呢,这篇写的太长了,下篇继续吧

利用Matlab设计滤波器(FDAT) .相关推荐

  1. 利用Matlab设计滤波器(FDAT)

    转自:http://blog.csdn.net/jbb0523/article/details/6782800 在matlab中有一个滤波器设计和分析工具FDAT,可以通过此工具来对滤波器进行设计. ...

  2. 在matlab中实现累乘,如何利用matlab设计一个线性相位FIR带通滤波器,并在FPGA上实现...

    设计要求 利用matlab设计一个线性相位FIR带通滤波器,并在FPGA上实现. 1.滤波器指标:过渡带带宽分别为100~300HZ,500~700HZ,阻带允许误差为0.02,通带允许误差为0.01 ...

  3. matlab 状态观测器 ppt,实验六利用MATLAB设计状态观测器

    实验六利用MATLAB设计状态观测器 现代控制理论第五次上机实验报告 实验六实验六利用利用 MATLABMATLAB 设计状态观测器设计状态观测器 实验目的:实验目的: 1.学习观测器设计算法: 2. ...

  4. 用matlab设计滤波器实验报告,数字信号出来实验报告--matlab滤波器设计

    数字信号出来实验报告--matlab滤波器设计 广 西 工 学 院 实 验 报 告 用 纸 实验名称 IIR数字滤波器的设计 实验成绩 指导老师 陈艳 系(院) 计算机工程系 班级 学号 学生姓名 一 ...

  5. 数字信号处理matlab设计滤波器

    目 录 1  设计目的.内容及要求 1 1.1 设计目的 1 1.2 设计内容 1 1.3 设计思考 2 1.4 设计要求 2 2 设计方案与设计原理 3 2.1 设计思路 3 2.2 采样定理 3 ...

  6. 利用matlab对滤波器频率特性分析

    [设计目标]对双二阶环路滤波器进行时频域分析和处理的基本方法 [设计工具]MATLAB[设计要求] 1)分析典型的双二阶环路滤波器电路:低通.高通.带通.带阻 2)理论分析各滤波电路的系统函数 3)利 ...

  7. matlab设计滤波器的工具箱,matlab工具箱设计滤波器

    MATLAB中用FDATool设计滤波器及使用 该文章讲述了MATLAB中用FDATool设计滤波器及使用. 1. 在Matlab中键入fdatool运行Filter Design and Analy ...

  8. MATLAB设计滤波器代码

    自测可用,最基本的代码,无拔高. 目录 1.设计IIR模拟高低通滤波器 2.设计IIR数字滤波器 3.设计FIR数字滤波器 1.设计IIR模拟高低通滤波器 wp = 2*pi*4000;ws = 2* ...

  9. matlab中滤波器设计与实现,基于MATLAB的IIR滤波器设计与实现

    描述 由于电力系统中非线性电子元件的大量使用,使得谐波污染问题日益严重,当谐波含量超过一定限度时就可能对电网和用户造成极大的危害,且增加线路损耗,降低线路传输能力,干扰通信信号等.因此,应该积极寻找一 ...

最新文章

  1. 视学AI,这群大学生做了个牛逼的项目!
  2. lamp安装zabbix(全源码安装)
  3. tomcat源码研究
  4. C实现socket编程
  5. Spring Cloud【Finchley】-17 使用Zuul为单个或全部微服务提供容错与回退功能
  6. Android---手动创建线程与GUI线程同步(三)
  7. P2261 [CQOI2007]余数求和 整除分块
  8. 文字不间断滚动(转)
  9. Oracle中的within,oracle中within group的用法
  10. html5 跳转参数不显示_TeeChart for PHP教程(十二):Javascript / HTML5图表
  11. linux从入门到精通张帆,Linux基础之文件系统简介及其系统管理工具
  12. c语言回调函数_为什么计算机专业必学C语言?既然是基础,那为何很多人学不懂?...
  13. 运用正则表达式在Asp中过滤Html标签代码的四种不同方法
  14. 【读书笔记】触摸屏游戏设计
  15. UI设计中的“吐司”是什么意思?
  16. python爬取头条付费专栏视频_Python3从零开始爬取今日头条的新闻【五、解析头条视频真实播放地址并自动下载】...
  17. 【NLP】自然语言处理的中间序列建模
  18. 惠普HP Deskjet 1180c 打印机驱动
  19. beetl if else 报 语法 错误。。。。
  20. iot架构 mqtt netty_百度IoT:MQTT Broker架构设计

热门文章

  1. 双机热备_磁盘阵列柜
  2. 购物表单mysql还是mongodb_日志数据是选择mysql 还是 mongodb 还是 postgredb
  3. 机器学习—线性回归—正规方程(原理及代码实现)
  4. QQ登录显示无法访问个人文件夹解决办法
  5. 推广知识小结(名词篇CPA、CPS、CPC、CPM、CPT、CPD)
  6. 伟景行Citymaker三维Gis加载FDB数据
  7. seaborn画直方图、条形图、盒图、散点图等常用图形
  8. 吞吐量、QPS、并发数等概念
  9. excel中文显示乱码
  10. 移动通信各制式、调制的速率及频谱利用率(2G-4G)