完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本帖最后由 小墨学FPGA 于 2015-6-17 10:51 编辑 也是有一段时间不写博客了啊,主要是这学期的实验课太多,每天都是在写预习报告,实验报告中度过,也快到考试月了啊,感觉又要忙起来了,今天就抽点时间来开个头,开什么头呢?对!就如标题所示,滤波器。 这段时间也有很多网友加小墨,首先感谢广大网友的支持,你们的支持是我前进的最大动力。很多网友加我的原因我总结了一下,可能是最近是毕业季嘛,大部分人都在搞毕业设计,所以~还有一部分人是一些初学者,主要是问一下关于入门和方向的问题,还有就是一些有过经验的研究生或者是公司在职人员。在这里我想说的是,大家共同探讨是没有什么问题的,只不过希望大家不要一有问题就将代码粘贴复制过来让别人给你解析,代码学习本来就是一个重要的过程,遇到问题是很正常的,大家要学着怎么通过查资料,利用网络来解决问题,而不是直接把编译器生成的错误报告粘贴过来,问怎么回事,所以小墨对于这些网友是不给予回答的,希望大家谅解~当然也不排除一些比较高端的技术问题,毕竟小墨接触这东西也不久,所以很多东西也还是不会哈,所以帮不了多少忙也请大家谅解~ 很多网友问过方向问题,感觉自己无从下手,有的网友也是,买了板子之后写了一些例程后就不知道该干什么了。我觉得,手里有项目的朋友还好,随着项目的进行可以随用随学,这样效率是最高的,至于手里没有项目的大学生,像我一样的,对于这些朋友我的建议就是,千万不要忽视理论的学习!我们学校的一个学弟问过我改怎么学,他现在大二,我还是觉得,大二这个阶段,最重要的还是理论。可能大家都会觉得理论很枯燥,不如自己动动手做点东西,其实是不正确的,只有靠着强大的理论支撑,你才能走得更远,才会有机会成为一名合格的工程师,而不仅仅是一名技术人员。所以,学弟学妹们,请重视好自己的专业课学习。 在接下来的几个月的时间,小墨将跟大家一起来学习基于FPGA的信号处理与通信技术这些方面的知识,因为我还是觉得,包括我们老师给的建议,FPGA主要的应用领域,还是信号处理与通信,所以大家不要觉得买了一块板子,写了点东西就已经学会了,要永远保持一种求知欲。对于这方面的知识,我接触的也不是很多,仅仅是在上课的时候接触过理论而已,说白了,这方面的知识我是不会的,因此,想从事这方面工作的朋友可以跟小墨一起学习哈,这可是个漫长的过程。 看这篇以及后续文章的朋友,小墨已经默认大家已经有了较好的理论基础,包括信号与系统,数字信号处理,通信原理,matlab的使用等,有些东西将一笔带过,所以基础不好的朋友请自行回去补课~ 好,这样,我先给大家出个题目,我们按照这个题目来开始学习 利用matlab设计一个线性相位FIR带通滤波器,并在FPGA上实现。要求: 1、滤波器指标:过渡带带宽分别为100~300HZ,500~700HZ,阻带允许误差为0.02,通带允许误差为0.01,采样频率为2000HZ,量化位数为12bit 2、设计方法,要求利用kaiserord函数获取滤波器参数,并设计成等波纹最优滤波器 3、要求对叠加信号进行滤波,叠加信号是由频率分别为100 ,400,800HZ的正弦波叠加而成,要求将信号通过FPGA滤波后的用modelsim仿真,并在matlab中验证滤波器的正确性 很多朋友一看,这是嘛呀?即使当时数字信号处理学的还算可以,但是真正到工程中就傻了眼了,好吧,半个月前我也是这种状态,下面我就记录一下这段时间学这部分知识的过程吧 1、嘛叫滤波器? 我们所说的当然就是数字滤波器了,官方解释就是输入输出都是数字信号,通过数值运算处理改变输入信号所含频率成分相对比例,或者滤除某些频率成分的数字器件或者程序。对于经典滤波器而言,就是利用了当信号有用成分的频带与想要滤除的信号的频带是不叠加的,占据不同频率带的这一特点,利用经典滤波器,包括低通,高通,带通,带阻滤波器,设计制定的通带,滤除不需要的信号成分,得到我们想要频带信号的过程。但是对于信号的频带相互叠加的情况,经典滤波器就无能为力了,就需要用到现代滤波器,当然也就更高大上了,我水平有限,也不知道他是嘛了~ 而我们常用的滤波器就是选频滤波器了,就像上面那个我给大家出的题目就是一个选频滤波器。学过数字信号处理的同学应该知道,我们要观察信号的频域,需要将其进行傅里叶变换,得到信号的频率响应,这个响应我们用H(e^jw)表示,频率响应又可以分为幅频响应与相频响应,幅频响应表示的是信号经过滤波器滤波后频率成分幅度的衰减情况,相频响应表示的是信号经滤波器滤波后的延时情况,因此我们往往通过这两个特性来观察我们的滤波器是否符合我们的设计要求。 下面先看一个带通滤波器的设计指标图 经典滤波器的指标主要就分为4个,即通带截止频率,阻带截止频率,通带最大衰减,阻带最小衰减。关于这4个参数的意思想必大家都已经很熟了,要不然信号处理这门课**的是白学了,这里就不再多说,我们直接看之前的题目,题目要求我们的过渡带频率分别为100~300HZ,500~700HZ,对应带通滤波器的参数我们可以很清楚的知道我们要设计的滤波器的截止频率,即 通带截止频率为300HZ,500HZ,阻带截止频率为100HZ,700HZ。即我们的通带是300~500HZ,而我要求的的信号,是由100,400,800HZ频率的三个信号叠加而成,因此,若这个信号通过滤波器之后,应该是阻带内的信号滤除,只保留通带内的信号才对,所以最后我们要验证的就是,通过滤波器滤波后的信号的波形,要跟信号频率为400HZ的信号波形一致,才证明我们的滤波器设计正确。好了,好像我们根据这个图只知道这点东西,想真正设计出来还是差的远呢,下面的知识将涉及到滤波器原理部分。 2、浅谈FIR滤波器原理 FIR滤波器呢,就是我们所学的有限脉冲响应滤波器。他的特点就是他的单位脉冲响应是有限长的。其实我们设计FIR滤波器就是设计他的单位脉冲响应,因为一个信号经过滤波器输出,得到的输出信号就是输入信号与滤波器单位脉冲响应的线性卷积,输入信号通过与单位脉冲响应信号之间的乘积累加运算得到输出信号,因此我们设计各式各样的单位脉冲响应信号,就可以根据我们的要求滤除和保留信号,从而达到滤波的目的。 所谓系统函数,即对单位脉冲响应进行Z变换,从Z变换的表达式我们知道,FIR滤波器就是单位脉冲响应与输入信号的乘积累加,每一个乘法器系数就是一个FIR系数。 3、关于线性相位 线性相位是FIR滤波器的一大特点,这里的线性相位,指的是我们的滤波器具有线性相位,而前面说了,我们的FIR滤波器,其实就是指单位脉冲响应,因此我们要设计成具有线性相位的FIR滤波器,其实就是让我们的单位脉冲响应满足线性特点?那怎么满足呢?因为一个序列,我们对其求频率响应之后得到的是他的幅频响应与相频响应,因此,我们需要从相频响应入手。即让
即让斜率保证是一个常数的情况下进行讨论,这个讨论的过程相信大家书本上都有,因此这里就不必多讲,希望大家自己好好看一下,还是那句话,只有强大的理论支持,你才有信息做一名合格的工程师。我这里就做一个总结吧,主要分为四种情况,即FIR滤波器的线性特性由单位脉冲响应的长度N与单位脉冲响应的对称情况决定: 第一类线性相位(即h(n)关于n = (N-1)/2 偶对称) : 滤波器长度N为奇数时,h(n)的幅频响应关于w= 0,π,2π三点偶对称,适合设计成各种滤波器,即低通,高通,带通,带阻 滤波器长度N为偶数时,h(n)的幅频响应关于w = 0,2π偶对称,关于w = π奇对称,不适合设计成高通和带阻滤波器 第二类线性相位 (即h(n) 关于n = (N-1)/2 奇对称): 滤波器长度N为奇数时,h(n)的幅频响应关于w= 0,π,2π三点奇对称,只能实现带通滤波器 滤波器长度N为偶数时,h(n)的幅频响应关于w = 0,2π奇对称,关于w = π偶对称,不适合设计成低通和带阻滤波器 所以,要想保证FIR滤波器是线性相位,就必须得让单位脉冲响应是对称的,不管是偶对称还是奇对称,在保证了对称的前提下去确定滤波器长度的奇偶性,从而确定合适的幅频响应的形状,从而设计合适的滤波器,但是由于第一类线性相位没有初始相位,而且当滤波器长度为奇数的情况下,我们可以设计成各种滤波器,所以第一类线性相位比较常用。 4、利用窗函数法设计FIR滤波器 窗函数设计方法是最常见,最常用,最简单的滤波器设计方法,他的基本思路是逼近的思想,为什么呢?我们先来看他的设计方法。 窗函数的设计方法,首先我们需要给出一个理想的滤波器的频率响应,例如我们的上面的题目给出的,我要设计一个带通滤波器,首先我需要给出一个理想的带通滤波器的频率响应。 这样就相当于将原来无限长序列变为了有限长,长度就是窗函数的长度,在窗内的序列得以保留,窗外的序列就被剔除,得到一个有限长单位脉冲响应序列,也是对原来理想单位脉冲响应的一个近似,正是由于这个近似,导致我们设计的滤波器与理想滤波器之间的误差,这是由于窗函数的截断引起的,称为截断效应。
图中,hd(n)是理想滤波器的单位脉冲响应,w(n)是窗函数序列,二者相乘得到我们要设计的实际滤波器的单位脉冲响应,将其进行傅里叶变换,观察他的频率响应,我们知道,时域相乘,就是频域相卷,理想滤波器的频率响应我们之前提过,窗函数的频域函数根据不同的窗函数,频域表达式都不同,以矩形窗为例,两者相卷得 将数据输出到文件**matlab调用 利用matlab设计一个线性相位FIR带通滤波器,并在FPGA上实现。要求: 1、滤波器指标:过渡带带宽分别为100~300HZ,500~700HZ,阻带允许误差为0.02,通带允许误差为0.01,采样频率为2000HZ,量化位数为12bit 2、设计方法,要求利用kaiserord函数获取滤波器参数,并设计成等波纹最优滤波器 3、要求对叠加信号进行滤波,叠加信号是由频率分别为100 ,400,800HZ的正弦波叠加而成,要求将信号通过FPGA滤波后的用modelsim仿真,并在matlab中验证滤波器的正确性 是不是觉得好像也并不是很难,我们的设计要求也都基本达到了,但是好像也并不是很简单,这里面设计了大量的专业知识,很多东西我都是一笔带过,肯定还有很多朋友是看不懂的,所以,现在知道理论的重要性了吧。 今天讲的只是个带通滤波器的设计过程,大家可以自己进行变通,自己想题目或者去网上找题目,相信很快大家就会熟悉滤波器的设计过程,当然当我们设计FIR滤波器的时候,一般使用的IP核来设计,不用像这样设计,然而有些器件并没有提供FIR的IP核,因此掌握好自己设计的技巧还是很有必要的,例如下次我们要讲的IIR滤波器,我的芯片就不提供IIR的IP,所以~ 这篇文章就算是开个头,下一篇主要讲IIR滤波器,这估计得到7月份了,要考试了,我也得去复习了,所以今天就先到这里,谢谢大家支持~ 小墨QQ:584642877 微信:LYZ1023569 欢迎交流 4.97 MB
, 下载次数: 2254
|
|
相关推荐
|
|
学习。。学习。。。顶帖
|
|
|
|
|
|
多谢楼主,很有用,膜拜中。。
|
|
|
|
|
|
1476 浏览 1 评论
1266 浏览 0 评论
矩阵4x4个按键,如何把识别结果按编号01-16(十进制)显示在两个七段数码管上?
1471 浏览 0 评论
920 浏览 0 评论
2272 浏览 0 评论
1448 浏览 35 评论
5635 浏览 113 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-24 12:47 , Processed in 0.981772 second(s), Total 105, Slave 86 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号