大毕设-MATLAB-滤波器的实现
在工程实际中遇到的信号经常伴有噪声,为了消除或减弱噪声,提取有用信号,必须进行滤波,能实现滤波功能的系统称为滤波器。严格地讲,滤波器可以定义为对已知的激励提供规定响应的系统,响应的要求可以在时域或频域内给定。滤波器的功能主要由其系统函数决定。滤波技术在通信测量、数据采集、控制系统及电力系统等领域得到了广泛的应用。滤波器的设计在这些领域中必不可少, 甚至是至关重要的环节, 其优劣将直接影响整个系统的性能。滤波器设计的关键是找到一个稳定可实现的逼近函数, 其频率特性满足所需滤波器的所有要求。虽然目前已有多种成熟的逼近函数(矩形窗等), 然而不论哪种逼近函数都需要进行非常繁琐的计算, 而且通过综合设计确定实现这一传递函数的电路及其元件值的过程也很复杂。MATLAB 中提供了丰富的用于模拟滤波器设计和数字滤波器设计的函数, 通过编程可以很容易实现低通、高通、带通、带阻滤波器, 并能画出滤波器的幅频、相频特性曲线。
MATLAB设计滤波器优点:
(1) 高效的数字计算方法及符号计算功能,使用户从繁杂的数学运算分析中解脱出来。
(2) 完备的图形处理功能,实现计算结果和编程的可视化。
(3) 友好的用户界面及接近数学表达式的自然化语言,使学习者易于学习和掌握。
(4) 功能丰富的应用工具箱,为用户提供了大量方便而实用的处理工具。
(5) Simulink动态建模与仿真系统,丰富而功能强大的器件库,提供了实时方便的仿真手段。
设计fir滤波器的一般步骤:
窗函数法设计及MATLAB 实现
FIR 滤波器目前常用的设计方法有窗函数法和频率采样法,窗函数法是从时域进行设计,而频率采样法是从频域进行设计。窗函数法由于简单、物理意义清晰,因而得到了较为广泛的应用。窗函数法设计的基本思想是:首先根据技术指标要求,选取合适的阶数N和窗函数的类型,使其幅频特性逼近理想滤波器幅频特性。其次,因为理想滤波器的是无限长的,所以需要对进行截断,数学上称这种方法为窗函数法[1]。
其中是希望逼近的滤波器的单位脉冲响应,是希望逼近的滤波器的幅频特性,是所设计的滤波器的单位脉冲响应,是窗函数。在截断的过程中要保证FIR滤波器的稳定性与线性相位的特性。由于截断效应使所设计滤波器的幅频特性存在误差,称之为吉布斯效应。最后,验证所设计的滤波器是否满足要求,若不满足,重新设计。常用的窗函数有矩形窗、三角窗、汉宁窗和凯塞窗等。窗函数的选择一般要满足以下三个条件[7]:
(1)具有较低的旁瓣幅度,尤其是第一旁瓣幅度。
(2)旁瓣幅度下降速度要快,以利于增加阻带衰减。
(3)主瓣宽度要窄,以获得较陡的过渡带。
FIR 滤波器的设计任务是选择有限长度的 h(n), 使函数H(ejω)满足技术要求。本文将针对一个含有 1000Hz 和 2000Hz 的正弦波信号, 设计一个FIR低通滤波器。参数要求: 采样频率 FS=8000Hz, 通带为 0~1200Hz, 阻带1600~4000Hz, 通带波纹为 1%,阻带波纹 10%。下面将利用程序设计法, SPTool 设计法和 FDA-Tool 设计法对上述滤波器进行设计。
3.2.3程序设计法
在 Matlab 下设计 FIR 滤波器有多种函数, 如 fir1, fir2, firls, remez, fircls, firclsl, cremez, firrcos 。下面以 remez 函数设计滤波器[8]。
程序如下:
Fs=; %采样频率
f=[ ];
a=[ ];
dev=[0.01 0.1];
[n,fo,ao,w]=remezord(f,a,dev,Fs); %估计滤波器的参数
b=remez(n,fo,ao,w); %用 remez 函数设计滤波器
freqz(b,,,Fs); %滤波器的频率响应, 如图
t=(:)/Fs;
x=sin(*pi*t*)+sin(*pi*t*); %设置输入信号 x
x1=filter(b,,x); %对信号 x 进行滤波,得输出信号 x1
figure
subplot();plot(t,x);grid;
subplot();plot(t,x1);grid;
大毕设-MATLAB-滤波器的实现的更多相关文章
- 大毕设-matlab-AM调制解调
博主大毕设关于数字下变频(DDC)的CUDA实现,预计工期比较长,所以留下一些文字记录. 主要分为两部分工作,Matlab仿真部分和CUDA实现. 由于很久没有仿真了,所以先用一个简单的AM调制仿真练 ...
- Matlab滤波器设计(转)
滤波器设计是一个创建满足指定滤波要求的滤波器参数的过程.滤波器的实现包括滤波器结构的选择和滤波器参数的计算.只有完成了滤波器的设计和实现,才能最终完成数据的滤波. 滤波器设计的目标是实现数据序列的频率 ...
- 大毕设-MATLAB-FFT实现
引用来自:http://blog.csdn.net/sinwel/article/details/8115673 %仿真参数中的含义 % Ts 表示间隔Ts时间采样,这个越小越接近连续信号,而实际上不 ...
- 大毕设-MATLAB-常用知识回顾
要用到FIR滤波器和抽样器下面研究这两个的Matlab实现: Fir滤波器: matlab上fir滤波器的关键字是fir1 在command窗口输入help fir1出现帮助文档: >> ...
- matlab滤波器的设计
求出濾波器的階數以及 3dB 截止頻率後,可用相應的 Matlab 函數計算出實現傳遞函數的分子分母係數來.巴特沃斯型濾波器是通帶內最大平坦.帶外單調下降型的,其計算命令是:[b,a] = butte ...
- 台大郭彦甫MATLAB教学-个人笔记(一)
命令和一些特殊的变量 who:查看有哪些变量1. whos:可以查看变量的大小.字节和类型等资料. clear:如果单独使用则是清空所有命令,若后面跟着一个变量名称则为删除此变量. clc:清空命令行 ...
- 基于FPGA的音频信号的FIR滤波(Matlab+Modelsim验证)
1 设计内容 本设计是基于FPGA的音频信号FIR低通滤波,根据要求,采用Matlab对WAV音频文件进行读取和添加噪声信号.FFT分析.FIR滤波处理,并分析滤波的效果.通过Matlab的分析验证滤 ...
- matlab中图像处理常见用法
一. 读写图像文件 1. imread imread函数用于读入各种图像文件,如:a=imread('e:/w01.tif') 注:计算机E盘上要有w01相应的.tif文件. 2. imwrite i ...
- FIR滤波器设计
FIR滤波器的优越性: 相位对应为严格的线性,不存在延迟失真,仅仅有固定的时间延迟: 因为不存在稳定性问题,设计相对简单: 仅仅包括实数算法,不涉及复数算法,不须要递推运算,长度为M,阶数为M-1,计 ...
随机推荐
- 基于hadoop的数据仓库工具:Hive概述
Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的sql查询功能,可以将sql语句转换为MapReduce任务进行运行.其优点是学习成本低,可以通过类 ...
- C 指针疑虑
uint16 *a; a=(uint16 *)b; 将变量b强制转换为Uint16类型的指针,然后赋值给Uint16类型的指针变量a. 如: uint8 WriteLpa(uint8 *buffer, ...
- 网购vs实体店购物 [20161226]
2016这一年依然网购了许多商品,比起以往,我选择退货的次数更多了. 以前如果网购到尺码或者样式不合适的东西,有时候将就拿去用,没有选择退货.由此闲置了不少衣物,而且延续高中时喜欢穿大一号的衣服的习惯 ...
- css相对定位+浮动实现元素位置互换
1.设置元素透明度 opacity:0.5; // w3c filter:alpha(opacity=50); //IE 2 position:relative; float:left; 一起使用的效 ...
- Cookie实现商品浏览记录--方式二:JS实现
使用Cookie实现商品浏览记录:方式二:JS方法实现cookie的获取以及写入.当某一个产品被点击时,触发JS方法.利用JS方法判断一下,此产品是否在浏览记录中.如果不存在,则将产品ID加入到coo ...
- Dictionary的几种遍历方法
Dictionary<string, int> list = new Dictionary<string, int>(); list.Add("d", 1) ...
- Esfog_UnityShader教程_遮挡描边(实现篇)
在上一篇中,我们基本上说明了遮挡描边实现的一种基本原理.这一篇中我们将了解一下基于这种原理的具体实现代码.本篇中的内容和前几篇教程相比,相对比较难一些,建议先有一些基本的Unity的C#脚本编程经验 ...
- XXX esx.problem.syslog.nonpersistent.formatOnHost not found XXX
ESXi 主机的摘要选项卡报告以下错误:配置问题:XXX esx.problem.syslog.nonpersistent.formatOnHost 未找到 XXX (2101811) Sympt ...
- 使用Maven加载项目有Dubbo框架时出现的常见异常情况
异常描述: The matching wildcard is strict, but no declaration can be found for element 'dubbo ...
- Java面向对象㈠ -- 封装
Java的面向对象有三大特征:封装.继承.多态.这里主要对封装进行讲解. 封装可以理解为隐藏一个类的成员变量和成员函数,只对外提供需要提供的成员函数. Java的封装主要通过访问权限控制符:priva ...