基于DSP的FIR数字低通滤波器设计

基于DSP的FIR数字低通滤波器设计
基于DSP的FIR数字低通滤波器设计

电气控制技术应用设计

题目 基于DSP 的FIR 数

字低通滤波器设计

二级学院 电子信息与自动化学院

专 业 电气工程及其自动化

班 级 113070404

学生姓名 黄鸿资 学号 11307991032

学生姓名 姜天宇 学号 11307991015

指导教师 蒋东荣

时间:2016年8月29日至2016年9月9日

考核项目

平时成绩20分 设计35分 报告15分 答辩30分 得分

总分

考核等级 教师签名

一绪论 (3)

(一)课题设计的目的 (3)

(二)课题内容 (3)

(三)设计方法 (3)

(四)课程设计的意义 (4)

二FIR滤波器基本理论 (4)

(一)FIR滤波器的特点 (4)

(二)FIR滤波器的基本结构 (4)

(三)Chebyshev逼近法 (5)

三用MATLAB辅助DSP设计FIR滤波器 (5)

(一)利用fir函数设计FIR滤波器并在在MATLAB环境仿真 (6)

(二) Matlab中自带工具箱FDATool快速的实现滤波器的设计 (10)

1.确定一个低通滤波器指标 (10)

2.打开MATLAB的FDATool (10)

3.选择Design Filter (11)

4.滤波器分析 (11)

5.导出滤波器系数 (13)

(三)滤波器设计总结 (13)

(四)DSP所需文件配置 (14)

四基于DSP的FIR滤波器实现 (14)

(一)DSP中滤波器的算法实现 (15)

1.线性缓冲区法 (15)

2.循环缓冲区法 (15)

(二)C语言实现FIR (15)

(三)CSS仿真调试 (17)

(四)滤波器的仿真测试 (18)

五 DSP数字滤波器与硬件低通滤波器对比 (21)

(一)二阶有源低通滤波电路的构建 (21)

(二)二阶低通滤波器参数计算 (22)

(三)在protues环境下的仿真测试 (22)

(四)实物硬件连接以及测试结果 (22)

(五)利用FilterPro的低通滤波器设计 (23)

1 选择filter类型 (24)

2 滤波器参数设定 (24)

3 滤波器的算法选择 (25)

4 滤波器的拓扑结构选择 (25)

(六) DSP数字滤波器与硬件电路滤波器对比总结 (26)

六课程设计总结 (26)

参考文献 (28)

摘要

DSP芯片是一种特别适合数字信号处理运算的微处理器,主要用来实时、快速实现各种数字信号处理算法。FIR数字滤波器具有严格的线性相位、总是稳定等特点而广泛应用于数字信号处理的各个领域,是一个重要的研究课题。

本文主要研究了低通数字滤波器的基本理论,在MATLAB坏境下设计FIR低通数字滤波器,主要用窗函数法及利用MATLAB的滤波器设计工具的设计方法,编写相应的MATLAB语言,进行具体的仿真分析。用TMS320C5402的DSP芯片软件,编写了DSP的FIR低通数字滤波算法,用MATLAB中生成的滤波器系数导入DSP中设计的滤波器函数中。在ccs环境中,首先根据算法编写C语言文件,在编写完成后再编写cmd文件和在库中添加lib文件保证C语言程序文件可以正确编译链接。

DSP的输入信号可以又MATLAB软件进行编写,在程序测试的时候可以导入进行观察。

在这次课程设计末尾,为了验证DSP设计的低通滤波器相对于运算放大器所设计的硬件电路的优势,利用protues软件和FilterPro软件进行硬件电路的设计仿真。采用信号发生器产生所需信号,利用示波器显示。将DSP设计的滤波器与硬件设计的滤波器进行比较分析其优劣。

最后根据得到的结果对滤波后的结果进行分析,找出设计过程中存在的问题,并想办法从电路元件或者软件算法方面对其进行一定改良。通过这次课程设计可以掌握CCS,MATLAB,protues等软件的基本使用和焊接简单电路的动手能力。

关键词:数字低通滤波器 FIR MATLAB TMS320C54XX DSP

引言

现代生活中,越来越多的电子产品把数字信号处理(DSP)作为技术核心,DSP 已经作为推动数字化进程的动力。作为数字化最重要的技术之一,DSP无论是在其应用领域的深度还是广度,正在以前所未有的速度发展。

数字信号处理器,也称DSP芯片,是针对数字信号处理需要而设计的一种具有特殊结构的微处理器。随着数字化技术的飞速发展,DSP在电子信息、通信、无线电、自动控制、仪表技术等方面应用广泛。

在数字信号处理中,数字滤波器占有极其重要的位置。是象处理、指纹识别、模式识别、谱分析等应用中一个基本的处理算法。在许多信号处理应用中运用数字信号滤波器代替模拟信号滤波器有很大的优势,数字信号滤波器容易实现不同幅度和相位频率特性指标,克服了与模拟信号处理器性能相关的电压漂移、温度漂移和噪声问题。用DSP实现数字滤波具有稳定性好、精确度高和不受环境影响。

数字滤波器又分为无限冲激响应滤波器(IIR)和有限冲激响应滤波器(FIR)。FIR滤波器具有不含反馈环路、结构简单以及可以实现的严格线性相位等优点,因而在对相位要求比较严格的条件下,采用F1R数字滤波器。同时,由于在许多场合下,需要对信号进行实时处理,因而对于单片机的性能要求也越来越高。采用 DSP控制器就可以提高数字信号处理运算的能力,可以对数字信号做到实时处理。而普通的单片机例如MCS-51难以满足这一要求。用可编程DSP芯片实现数字滤波的又一优势是:通过修改滤波器的参数十分方便的改变滤波器的特性。有限长单位冲激响应((FIR)数字滤波器,与传统的通过硬件电路实现的模拟滤波器相比有以下优点:

(1)简化了硬件电路的设计,提高了硬件电路的集成度和可靠性。

(2)对干扰信号的抑制能力有了明显提高,这对系统的控制精度和稳定性的提高起到了促进作用。

(3)数字滤波器的参数调节比起模拟滤波器来更加方便、灵活。

(4)数字滤波器可以实现数据的并行处理,提高了系统运行速度。

一绪论

(一)课题设计的目的

设计的目的首先是为了熟练使用DSP,利用所学的数字信号处理知识设计一FIR滤波器,并在基于DSP平台的仿真软件CCS下通过软件模拟仿真实现基本的滤波功能,其中输入信号和滤波器的各个参数根据设计要求自行确定。首先可以借助Matlab来产生输入数据,并根据输入信号确定滤波器参数,然后根据产生滤波器参数在CCS下编写程序实现滤波器功能,最后进行滤波器性能的测试,完成本次课程设计。为了对于设计有帮助首先了解什么是滤波器以及功能和滤波器的基本结构以及工作方式,可以研究滤波器的硬件原理图和数字滤波器的各种算法来加深理解。

(二)课题内容

我们小组将课题研究分为两个部分:一部分为简单的滤波器硬件电路的设计仿真与实物焊接测试。另一部分着重研究DSP中的滤波器程序的编写与使用matlab软件辅助编写输入文件与滤波器系数。在完成数据的编写之后,首先在ccs环境中根据选择的滤波器的滤波算法用c语言编写相应程序,随后编写asm,smd文件和添加ti库中的lib文件使得编写的c语言程序可以编译链接并且下载到DSP开发板中进行验证。

(三)设计方法

数字滤波器的实现方法一般有几种:

(1)在通用计算机上软件编程实现。

(2)用加法器、乘法器、延时器设计实现专用的滤波电路。

(3)用单片机实现。

(4)用通用的可编程DSP芯片实现。

(5)用专用的DSP芯片实现。

在这几种方法中,第一种方法的速度比较慢,主要用来进行算法的模拟仿真,只能用于非实时系统;第二种和第五种方法是专用的,应用范围不广;第三种方法比较容易实现人机接口,但系统比较复杂,对乘法运算的速度很慢;第四种方法因DSP芯片的哈佛结构、并行结构、指令系统等结构特点,使得数字滤波器比较

好的容易实现。在这里我们小组采用方法4编写数字滤波器程序框架,使用matlab软件设计滤波器导出系数,最后完成一个完整低通滤波器的设计。(四)课程设计的意义

21世纪是数字化的时代,随着越来越多的电子产品将数字信号处理(PSP)作为技术核心,DSP已经成为推动数字化进程的动力。DSP的数字处理能力可以解决许多问题,例如电机控制,图像处理等等。我们的课程设计是研究滤波器,一方面要了解滤波器的原理和不同的实现方式,另一方面学习滤波器如何通过编写程序实现。最终目的是可以在实际环境之中运用滤波器对于采集的信号进行处理完成滤波要求。

二FIR滤波器基本理论

(一)FIR滤波器的特点

第一了解数字滤波器的功能,就是把输入序列通过一定的运算变换成输出序列。它的实现方法有很多,其中比较常用到的是无限长脉冲响应滤波器 IIR和有限长脉冲响应滤波器FIR两种。

在计算量相等的情况下,IIR数字滤波器比FIR滤波器的幅频特性优越,频率选择性也好。但是,它有着致命的缺点,其相位特性不好控制。它的相位特性)是使频率产生严重的非线性的原因。但是在图像处理、数据传输等波形传递系统中都越来越多的要求信道具有线性的相位特性。在这方面 FIR滤波器具有它独特的优点,设FIR滤波器单位脉冲响应h(n)长度为N,其系统函数H(z)是H(N-1)次多项式,它在z平面上有(N-1)个零点,原点z=0是(N-1)阶重极点。因此,H(z)永远稳定,它可以在幅度特性随意设计的同时,保证精确、严格的线性相位。

(二)FIR滤波器的基本结构

数字滤波就是将输入的信号序列,按规定的算法进行处理,从而得到所期望的输出序列,H(z)是1z的N-1次多项式,它在z平面内有N-1个零点,同时在原点处有N-1个重极点。N阶滤波器通常采用N个延迟单元、N个加法器与N+1个乘法器。另外,若对 h(n)提出一些约束条件,那么可以很容易地使 H(z)具有线性相位,这在信号处理的很多领域是非常重要的。FIR滤波器的设计任务,是

要决定一个转移函数H(z),使它的频率响应满足给定的要求。这里所说的要求,除了通带频率p p s外,很重要的一条是保证H(z)具有线性相位。

(三)Chebyshev逼近法

窗函数法和频率采样法设计出的滤波器的频率特性都是在不同意义上对所给理想频率特性的逼近。由数值逼近理论可知,对某个函数f(x)的逼近一般有以下三种方法:插值法(Interpolating Way) 最小平方逼近法(Least Square Approaching Way) 一致逼近法(Consistent Approaching Way) 切比雪夫最佳一致逼近的基本思想是,对于给定区间[a,b]上的连续函数xf,在所有n次多项式的集合n中,寻找一个多项式 p(x),使它在[a,b]上对xf的偏差和其它一切属于n的多项式 p(x)对f(x)的偏差相比是最小的,即切比雪夫逼近理论,这样的多项式是存在的,且是唯一的,并指出了构造这种最佳一致逼近多项式的方法,就是有名的“交错点组定理”。

三用MATLAB辅助DSP设计FIR滤波器

在进行设计过程中首先利用matlab进行滤波器的设计,在这里运用了两种方法进行滤波器的设计,一种为利用matlab自带的fir函数进行设计,并利用matlab自带的命令进行输入信号的编写并且输出输出信号的幅频曲线与相频曲线图。第二种使用matlab的FDATool工具进行滤波器的设计得到的滤波器参数,同时使用matlab软件编写“input.dat”文件,具体内容为三个正弦函数叠加生成的含有高次谐波的正弦信号。

总流程图

(一)利用fir函数设计FIR滤波器并在在MATLAB环境仿真

MATLAB辅助DSP 实现FIR ,其总体过程为在DSP中编写处理程序,在MATLAB 中利用滤波器设计、分析工具( FDATOOL) ,根据指定的滤波器性能快速设计一个FIR ,再把滤波器系数以头文件形式导入CCS 中,头文件中MATLAB 辅助DSP 实现FIR 数字滤波器含滤波器阶数和系数数组,在MATLAB中调试、运行DSP 程序并显示、分析处理后的数据。使用该方法,便于采用汇编语言来实现程序。头文件名不变,当MATLAB中设计的滤波器系数改变时,相应头文件中系数也改变,方便程序调试、仿真。

在matlab环境下进行设计与仿真

f1=10;%第一个点频信号分量频率

f2=30;%第二个点频信号分量频率

fs=100;%采样率

T=2;%时宽

B=20;%带宽

n=round(T*fs);%采样点个数

t=linspace(0,T,n);

y=cos(2*pi*f1*t)+cos(2*pi*f2*t);

figure;

plot(t,y);

title('原始信号时域');

xlabel('t/s');

ylabel('幅度');

figure;

fft_y=fftshift(fft(y));

f=linspace(-fs/2,fs/2,n);

plot(f,abs(fft_y));

title('原始信号频谱');

xlabel('f/Hz');

ylabel('幅度');

axis([ 0 50 0 100]);

b=fir1(40, B/(fs/2)); %滤波产生指定带宽的噪声信号 figure;

freqz(b);%画滤波器频响

y_after_fir=filter(b,1,y);

figure;

plot(t,y_after_fir);

title('滤波后信号时域');

xlabel('t/s');

ylabel('幅度');

fft_y1=fftshift(fft(y_after_fir));

f=linspace(-fs/2,fs/2,n);

figure;

plot(f,abs(fft_y1));

title('滤波后信号频谱');

xlabel('f/Hz');

ylabel('幅度');

axis([ 0 50 0 100]);

所设计的低通滤波器的幅频特性曲线与相频特性曲线

输入信号的幅频曲线

输入信号的相频曲线

经过滤波后的信号幅频曲线

经过滤波后的信号幅频曲线

(二) Matlab中自带工具箱FDATool快速的实现滤波器的设计

1.确定一个低通滤波器指标

若需要设计一个16阶的FIR滤波器(h(0)=0),给定的参数如下:

(1) 低通滤波器

(2) 采样频率Fs为48kHz,滤波器Fc为10.8kHz

(3) 输入序列位宽为9位(最高位为符号位)

在此利用MATLAB来完成FIR滤波器系数的确定。

2.打开MATLAB的FDATool

M ATLAB集成了一套功能强大的滤波器设计工具FDATool(Filter Design & Analysis Tool),可以完成多种滤波器的设计、分析和性能评估。

单击MATLAB主窗口下方的“Start”按钮,选择菜单“ToolBox”→“Filter

Design”→“Filter Design & Analysis Tool(FDATool)”命令

3.选择Design Filter

FDATool界面左下侧排列了一组工具按钮,其功能分别如下所述:

●创建多速率滤波器(Create a Multirate Filter)

●滤波器转换(TransForm Filter)

●设置量化参数(Set Quantization Parameters)

●实现模型(Realize Model)

●零极点编辑器(Pole-zero Editor)

●导入滤波器(Import Filter)

●设计滤波器(Design Filter)

选择其中的按钮,进入设计滤波器界面

滤波器类型(Filer Type)为低通(Low Pass)

●设计方法(Design Method)为FIR,采用窗函数法(Window)

●滤波器阶数(Filter order)定制为15

●窗口类型为Kaiser,Beta为0.5

●Fs为48kHz,Fc为10.8kHz

最后单击Design Filter图标,让MATLAB计算FIR滤波器系数并作相关分析。

因为FIR滤波器的输出结果经过了一个单位延时单元,所以在FDATool中,把它看成15阶FIR滤波器来计算参数。因此,设置滤波器阶数时,要比要求的小1。

4.滤波器分析

计算完FIR滤波器系数以后,往往需要对设计好的FIR滤波器进行相关的性能分析,以便了解该滤波器是否满足设计要求。分析操作步骤如下:选择FDATool的菜单“Analysis”→“Magnitude Response”,启动幅频响应分析如图B.4所示,x轴为频率,y轴为幅度值(单位为dB)

选择菜单“Analysis”→“Phase Response”,启动相频响应分析。由该图可以看到设计的FIR滤波器在通带内其相位响应为线性的,即该滤波器是一个线性相位的滤波器。

求出的FIR滤波器的系数可以通过选择菜单“Analysis”→

“Filter Coefficients”来观察。图中列出了FDATool计算的15阶直接I型FIR滤波器的部分系数。

5.导出滤波器系数

为导出设计好的滤波器系数,选择FDATool菜单的“File”→“Export”命令,打开Export(导出)对话框

(三)滤波器设计总结

FIR滤波器实现一般采用窗函数法和等纹波设计法。窗函数法还包含两个分支,一种是用公式先手动算出N值和其他对应得窗函数参数值,再代入窗函数和fir1实现,一种是用函数*rord估算出N和相应参数再用fir1实现。不过要注意*rord会低估或高估阶次n,可能会使滤波器达不到指定的性能,这时应稍微增加或降低阶次。如果截止频率在0或Nyquist频率附近,或者设定的dev值较大,则得不到正确结果。滤波器实现形式及特点:由于一般的滤波器在利用窗函数是其通带波纹和阻带波纹不同(一般为第一个阻带波纹最大)因此,在满足第一个阻带衰减旁瓣时,比其频率高的旁瓣,它们的衰减都大大超出要求。而根据

阻带衰减与项数的近似关系N = P(δ2)*fs/TW,可得当阻带衰减越大,所需项数越多。

(四)DSP所需文件配置

Fdacoefs.h中存放着所设计的滤波器的系数。

Input.dat中为设计好的一个带有杂波的正弦波,用于dsp仿真时的数据输入。

所生成的两个文件,系数文件内的数据到时候直接添加到c语言编写的dsp 程序中,input文件用于dsp仿真进行时作为输入信号输入。

四基于DSP的FIR滤波器实现

在完成matlab的FIR滤波器的参数提取与输入文件“input.dat”的编写以后就可以开始dsp的滤波器的实现。具体思路为:首先寻找一种滤波器的算法,在这种算法的基础上运用C语言进行程序编写,再编写link.cmd文件将程序进行编译,之后导入输入信号,利用ccs自带的工具对于前后的波形进行分析。

Dsp中程序运行流程图

(一)DSP中滤波器的算法实现

FIR滤波器的输出表达式中x(n)表示滤波器在n时刻的输入;y(n)为n时刻的输出。它的基本算法是一种乘法-累加运算,即不断地输入样本x(n),经过延时后,再进行乘法-累加,最后输出滤波结果y(n)。

1.线性缓冲区法

线性缓冲区法又称延迟线法,其特点:

(a)对于N级的FIR滤波器,在数据存储器中开辟一个N单元的缓冲区(滑窗),用来存放最新的N个输入样本;

b)从最老样本开始取数,每取一个样本后,将此样本向下移位;

(c)读完最后一个样本后,输入最新样本存入缓冲区的顶部。

2.循环缓冲区法

循环缓冲区法的特点如下:

(a)对于N级FIR滤波器,在数据存储器中开辟一个N单元的缓冲区(滑窗),用来存放最新的N个输入样本;

(b)从最新样本开始取数;

(c)读完最后一个样本(最老样本)后,输入最新样本来代替最老样本,而其他数据位置不变;

(d)用片内BK(循环缓冲区长度)寄存器对缓冲区进行间接寻址,使循环缓冲区地址首尾相邻。本次设计的FIR滤波器所采用的就是循环缓冲区法。(二)C语言实现FIR

采用C语言算法在DSP平台上实现了FIR低通数字滤波器,C语言算法相比于汇编算法可移植性很强。这里是在TMS320VC5510DSP为平台编写的C语言算法, 此算法可以稍加改动用在其他DSP芯片上, 而汇编算法则不然。这种方法具有以下优点:

(a) 程序的入口和出口由C语言自动管理,不必手工编写汇编程序实现。

(b) 程序结构清晰,可读性强。

(c) 程序调试方便。由于C程序中的变量全部由C语言来定义,因此采用C 源码调试器可以方便地观察C语言变量。

(d) 可移植性较强,通用性较好。具体代码如下:

#include "stdio.h"

#include "D:\extern\include\tmwtypes.h" //fdacoefs.h为Matlab生成的系数表头文件 //如运行不通过,请修改fdacoefs.h中的代码,

将”#include”这行修改为如下://#include "d:\MATLAB7\extern\include\tmwtypes.h" //也就是自己机器上的Matlab安装

的绝对路径

#define N 33 //FIR滤波器的级数+1,本例中滤波器级数为32

#define LEN 200 //待滤波的数据长度

long yn; int input[LEN]; //输入缓冲,在仿真时将从内存载入

int output[LEN]; //输出缓冲,直接存放在内存中

void main()

{ int i,j;

int *x;

const int16_T B[33] = {

82, 22, -127, -268, -240, 42, 463, 702, 434,

-382, -1321, -1620, -595, 1865, 5078, 7808, 8879, 7808,

5078, 1865, -595, -1620, -1321, -382, 434, 702, 463,

42, -240, -268, -127, 22, 82

};

for(j=0;j

{ x=&input[j];

yn = 0;

for(i=0; i

yn += B[i]*(*x++);

output[j]=yn>>15; }

while(1);

}

(三)CSS仿真调试

CCS 是TI 推出的用于开发其DSP 芯片的继承开发调试工具, 集编辑、编

译、链接、软件仿真、硬件调试及实时跟踪等功能于一体, 极大地方便了DSP 程序的设计与开发, 此外还提供图形显示功能, 方便用户观察特定地

址的波形。此外, 还需向工程中添加Link. cmd文件

MEMORY {

PAGE 0: EPROG: origin = 0x1400, len = 0x7c00 VECT: origin = 0xff80, len = 0x80

PAGE 1: USERREGS: origin = 0x60, len = 0x1c BIOSREGS: origin = 0x7c, len = 0x4

IDATA: origin = 0x80, len = 0x1380

EDATA: origin = 0x1400, len = 0x8000 EDATA1: origin = 0x9400, len = 0x4c00 }

SECTIONS {

.vectors: {} > VECT PAGE 0

.sysregs: {} > BIOSREGS PAGE 1

.trcinit: {} > EPROG PAGE 0

.gblinit: {} > EPROG PAGE 0

frt: {} > EPROG PAGE 0

.text: {} > EPROG PAGE 0

.cinit: {} > EPROG PAGE 0

.pinit: {} > EPROG PAGE 0

.sysinit: {} > EPROG PAGE 0

.bss: {} > IDATA PAGE 1

.far: {} > IDATA PAGE 1

.const: {} > IDATA PAGE 1

.switch: {} > IDATA PAGE 1

FIR数字滤波器设计函数

FIR 数字滤波器设计函数 1. fir1 功能:基于窗函数的FIR 数字滤波器设计——标准频率响应。 格式:b=fir1(n,Wn) b=fir1(n,Wn,'ftype') b=fir1(n,Wn,Window) b=fir1(n,Wn,'ftype',Window) 说明:fir1函数以经典方法实现加窗线性相位FIR 滤波器设计,它可设计出标准的低通、带通、高通和带阻滤波器。 b=fir1(n,Wn)可得到n 阶低通FIR 滤波器,滤波器系数包含在b 中,这可表示成: n z n b z b b z b --++???++=)1()2()1()(1 这是一个截止频率为Wn 的Hamming(汉明)加窗线性相位滤波器,0≤Wn ≤1,Wn=1相应于0.5fs 。 当Wn=[W1 W2]时,fir1函数可得到带通滤波器,其通带为W1<ω< W2。 b=fir1(n,Wn,'ftype')可设计高通和带阻滤波器,由ftype 决定: ·当ftype=high 时,设计高通FIR 滤波器; ·当ftype=stop 时,设计带阻FIR 滤波器。 在设计高通和带阻滤波器时,fir1函数总是使用阶为偶数的结构,因此当输入的阶次为奇数时,fir1函数会自动加1。这是因为对奇数阶的滤波器,其在Nyquist 频率处的频率响应为零,因此不适合于构成高通和带阻滤波器。 b=fir1(n,Wn,Window)则利用列矢量Window 中指定的窗函数进行滤波器设计,Window 长度为n+1。如果不指定Window 参数,则fir1函数采用Hamming 窗。 Blackman 布莱克曼窗 Boxcar 矩形窗 Hamming 海明窗 Hann 汉宁窗 Kaiser 凯瑟窗 Triang 三角窗 b=fir1(n,Wn,'ftype',Window)可利用ftype 和Window 参数,设计各种加窗的滤波器。 由fir1函数设计的FIR 滤波器的群延迟为n/2。 例如: n=32;wn=1/4;window=boxcar(n+1) b=fir1(n,wn,window)

FIR数字滤波器设计与使用

实验报告 课程名称:数字信号处理指导老师:刘英成绩:_________________实验名称: FIR数字滤波器设计与使用同组学生姓名:__________ 一、实验目的和要求 设计和应用FIR低通滤波器。掌握FIR数字滤波器的窗函数设计法,了解设计参数(窗型、窗长)的影响。 二、实验内容和步骤 编写MATLAB程序,完成以下工作。 2-1 设计两个FIR低通滤波器,截止频率 C =0.5。 (1)用矩形窗,窗长N=41。得出第一个滤波器的单位抽样响应序列h 1(n)。记下h 1 (n) 的各个抽样值,显示h 1 (n)的图形(用stem(.))。求出该滤波器的频率响应(的N 个抽样)H 1(k),显示|H 1 (k)|的图形(用plot(.))。 (2)用汉明窗,窗长N=41。得出第二个滤波器的单位抽样响应序列h 2(n)。记下h 2 (n) 的各个抽样值,显示h 2(n)的图形。求出滤波器的频率响应H 2 (k),显示|H 2 (k)|的 图形。 (3)由图形,比较h 1(n)与h 2 (n)的差异,|H 1 (k)|与|H 2 (k)|的差异。 2-2 产生长度为200点、均值为零的随机信号序列x(n)(用rand(1,200)0.5)。显示x(n)。 求出并显示其幅度谱|X(k)|,观察特征。 2-3 滤波 (1)将x(n)作为输入,经过第一个滤波器后的输出序列记为y 1(n),其幅度谱记为|Y 1 (k)|。 显示|X(k)|与|Y 1 (k)|,讨论滤波前后信号的频谱特征。 (2)将x(n)作为输入,经过第二个滤波器后的输出序列记为y 2(n),其幅度谱记为|Y 2 (k)|。 比较|Y 1(k)|与|Y 2 (k)|的图形,讨论不同的窗函数设计出的滤波器的滤波效果。 2-4 设计第三个FIR低通滤波器,截止频率 C =0.5。用矩形窗,窗长N=127。用它对x(n)进行滤波。显示输出信号y

FIR数字滤波器设计与软件实现(精)讲解学习

实验二:FIR 数字滤波器设计与软件实现 一、实验指导 1.实验目的 (1掌握用窗函数法设计 FIR 数字滤波器的原理和方法。 (2掌握用等波纹最佳逼近法设计 FIR 数字滤波器的原理和方法。 (3掌握 FIR 滤波器的快速卷积实现原理。 (4学会调用 MA TLAB 函数设计与实现 FIR 滤波器。 2. 实验内容及步骤 (1认真复习第七章中用窗函数法和等波纹最佳逼近法设计 FIR 数字滤波器的原理; (2调用信号产生函数 xtg 产生具有加性噪声的信号 xt ,并自动显示 xt 及其频谱,如图 1所示;

图 1 具有加性噪声的信号 x(t及其频谱如图 (3请设计低通滤波器,从高频噪声中提取 xt 中的单频调幅信号,要求信号幅频失真小于 0.1dB ,将噪声频谱衰减 60dB 。先观察 xt 的频谱,确定滤波器指标参数。 (4根据滤波器指标选择合适的窗函数,计算窗函数的长度 N ,调用 MATLAB 函数 fir1设计一个 FIR 低通滤波器。并编写程序,调用 MATLAB 快速卷积函数 fftfilt 实现对 xt 的滤波。绘图显示滤波器的频响特性曲线、滤波器输出信号的幅频特性图和时域波形图。 (5 重复 (3 , 滤波器指标不变, 但改用等波纹最佳逼近法, 调用MA TLAB 函数 remezord 和 remez 设计 FIR 数字滤波器。并比较两种设计方法设计的滤波器阶数。 提示:○ 1MA TLAB 函数 fir1的功能及其调用格式请查阅教材; ○ 2采样频率 Fs=1000Hz,采样周期 T=1/Fs;

○ 3根据图 1(b和实验要求,可选择滤波器指标参数:通带截止频率 fp=120Hz,阻带截 至频率 fs=150Hz, 换算成数字频率, 通带截止频率 p 20.24 p f ωπ =T=π, 通带最大衰为 0.1dB , 阻带截至频率 s 20.3 s f ωπ =T=π,阻带最小衰为 60dB 。 3、实验程序框图如图 2所示,供读者参考。 图 2 实验程序框图 4.信号产生函数 xtg 程序清单(见教材 二、滤波器参数及实验程序清单 1、滤波器参数选取 根据实验指导的提示③选择滤波器指标参数: 通带截止频率 fp=120Hz,阻带截至频率 fs=150Hz。代入采样频率 Fs=1000Hz,换算成 数字频率,通带截止频率 p 20.24 p f

FIR数字滤波器设计及MATLAB使用要点

数字信号处理课程设计 《数字信号处理》 课程设计报告 FIR数字滤波器设计及MATLAB实现 专业:通信工程 班级:通信1101班 组次:第9组 姓名及学号: 姓名及学号:

目录 一、设计目的 (3) 二、设计任务 (3) 三、设计原理 (3) 3.1窗函数法 (3) 3.2频率采样法 (4) 3.3最优化设计 (5) 3.3.1等波纹切比雪夫逼近准则 (5) 3.3.2仿真函数 (6) 四、设计过程 (7) 五、收获与体会 (13) 参考文献 (13)

FIR数字滤波器设计及MATLAB实现 一、设计目的 FIR滤波器:有限长单位冲激响应滤波器,是数字信号处理系统中最基 本的元件,它可以在保证任意幅频特性的同时具有严格的线性相频特性, 同时其单位抽样响应是有限长的,因而滤波器是稳定的系统。因此,FIR 滤波器在通信、图像处理、模式识别等领域都有着广泛的应用。滤波器设 计是根据给定滤波器的频率特性,求得满足该特性的传输函数。 二、设计任务 FIR滤波器设计的任务是选择有限长度的() H e满足一定 h n,使传输函数()jw 的幅度特性和线性相位要求。由于FIR滤波器很容易实现严格的线性相位,所以FIR 数字滤波器设计的核心思想是求出有限的脉冲响应来逼近给定的频率响应。 设计过程一般包括以下三个基本问题: (1)根据实际要求确定数字滤波器性能指标; (2)用一个因果稳定的系统函数去逼近这个理想性能指标; (3)用一个有限精度的运算去实现这个传输函数。 三、设计原理 FIR滤波器设计的任务是选择有限长度的() H e满足一定 h n,使传输函数()jw 的幅度特性和线性相位要求。由于FIR滤波器很容易实现严格的线性相位,所以FIR数字滤波器设计的核心思想是求出有限的脉冲响应来逼近给定的频率响应。 设计过程一般包括以下三个基本问题: (1)根据实际要求确定数字滤波器性能指标; (2)用一个因果稳定的系统函数去逼近这个理想性能指标; (3)用一个有限精度的运算去实现这个传输函数。 3.1窗函数法 设计FIR数字滤波器的最简单的方法是窗函数法,通常也称之为傅立叶级数法。FIR数字滤波器的设计首先给出要求的理想滤波器的频率响应()jw H e,设计 d

FIR数字滤波器设计与实现

FIR 数字滤波器设计与实现 一.摘要:数字滤波器是一种具有频率选择性的离散线性系统,在信号数字处理中有着广泛的应 用。其中FIR 滤波器是一种常用的滤波器,它在保证幅度特性满足技术要求的同时,很容易做到严格的线性相位特性,在语音分析、图像处理、雷达监测等对信号相位要求高的领域有着广泛的应用,能实现IIR 滤波器不能实现的许多功能。 二.关键词:FIR 窗函数系统函数MATLAB 三.内容提要: 数字滤波器的功能就是把输入序列通过一定的运算变换成输出序列,因此数字滤波器的结构系 统中就必须包括一定数量和性能的运算器件和运算单元,而运算器件和运算单元的配置必须由数字滤波器的结构特点和性能特点来决定,因此在进行FIR 数字滤波器的设计之前,有必要介绍和总结FIR 数字滤波器的基本结构和相关特性(包括频响曲线(幅度和相位),单位冲激响应等),在介绍完其基本结构和相关特性后,就进行FIR 数字滤波器的设计和实现。 (一)FIR 滤波器的基本结构 在讨论任何一种滤波器时,都要着重分析其系统函数,FIR 滤波器的系统函数为: n N n z n h z H ∑-==1 0)()(。从该系统函数可看出,FIR 滤波器有以下特点: 1)系统的单位冲激响应h(n)在有限个n 值处不为零; 2)系统函数H(z)在|z|>0处收敛,极点全部在z=0处(稳定系统); 3)结构上主要是非递归结构,没有输出到输入的反馈,但有些结构中(例如频率抽样结构)也包 含有反馈的递归部分。 1.FIR 滤波器实现的基本结构有: 1) 横截型(卷积型、直接型) a.一般FIR 滤波器的横截型(直接型、卷积型)结构: 若给定差分方程为: 。则可以直接由差分方程得出FIR 滤波器结构如 下图所示: 这就是FIR 滤波器的横截型结构,又称直接型或卷积型结构。 b .线性相位FIR 滤波器的横截型结构

FIR数字滤波器设计与软件实现

实验二:FIR数字滤波器设计与软件实现 一、实验指导 1.实验目的 (1)掌握用窗函数法设计FIR数字滤波器的原理和方法。 (2)掌握用等波纹最佳逼近法设计FIR数字滤波器的原理和方法。(3)掌握FIR滤波器的快速卷积实现原理。 (4)学会调用MATLAB函数设计与实现FIR滤波器。 2.实验内容及步骤 (1)认真复习第七章中用窗函数法和等波纹最佳逼近法设计FIR数字滤波器的原理; (2)调用信号产生函数xtg产生具有加性噪声的信号xt,并自动显示xt及其频谱,如图1所示; 图1 具有加性噪声的信号x(t)及其频谱如图 (3)请设计低通滤波器,从高频噪声中提取xt中的单频调幅信号,要求信号幅频失真小于0.1dB,将噪声频谱衰减60dB。先观察xt的频谱,确定滤波器指标参数。

(4)根据滤波器指标选择合适的窗函数,计算窗函数的长度N,调用MATLAB函数fir1设计一个FIR低通滤波器。并编写程序,调用MATLAB快速卷积函数fftfilt实现对xt的滤波。绘图显示滤波器的频响特性曲线、滤波器输出信号的幅频特性图和时域波形图。(4)重复(3),滤波器指标不变,但改用等波纹最佳逼近法,调用MATLAB函数remezord和remez设计FIR数字滤波器。并比较两种设计方法设计的滤波器阶数。 提示:○1MATLAB函数fir1的功能及其调用格式请查阅教材; ○2采样频率Fs=1000Hz,采样周期T=1/Fs; ○3根据图1(b)和实验要求,可选择滤波器指标参数:通带截止频率fp=120Hz,阻带截至频率fs=150Hz,换算成数字频率,通带截止 频率 p 20.24 p f ωπ =T=π,通带最大衰为0.1dB,阻带截至频率 s 20.3 s f ωπ =T=π,阻带最小衰为60dB。 ○4实验程序框图如图2所示,供读者参考。

FIR数字滤波器课程设计报告

吉林建筑大学 电气与电子信息工程学院 数字信号处理课程设计报告 设计题目:FIR数字滤波器的设计 专业班级: 学生姓名: 学号: 指导教师: 设计时间:

目录 一、设计目的 (3) 二、设计内容 (3) 三、设计原理 (3) 3.1 数字低通滤波器的设计原理 (3) 3.1.1 数字滤波器的定义和分类 (3) 3.1.2 数字滤波器的优点 (3) 3.1.3 FIR滤波器基本原理 (4) 3.2变换方法的原理 (7) 四、设计步骤 (8) 五、数字低通滤波器MATLAB编程及幅频特性曲线 (9) 5.1 MATLAB语言编程 (9) 5.2 幅频特性曲线 (10) 六、总结 (11) 七、参考文献 (13)

一、设计目的 课程设计是理论学习的延伸,是掌握所学知识的一种重要手段,对于贯彻理论联系实际、提高学习质量、塑造自身能力等于有特殊作用。本次课程设计一方面通过MATLAB 仿真设计内容,使我们加深对理论知识的理解,同时增强其逻辑思维能力,另一方面对课堂所学理论知识作一个总结和补充 二、设计内容 (1)设计一线性相位FIR 数字低通滤波器,截止频率 ,过渡带宽度 , 阻带衰减dB A s 30>。 (2)设计一线性相位FIR 数字低通滤波器,截止频率 ,过渡带宽度 ,阻带衰减dB A s 50>。 三、设计原理 3.1数字低通滤波器的设计原理 3.1.1 数字滤波器的定义和分类 数字滤波器是指完成信号滤波处理功能的,用有限精度算法实现的离散时间线性非时变系统,其输入是一组数字量,其输出是经过变换的另一组数字量。因此,数字滤波器本身既可以是用数字硬件装配成的一台完成给定运算的专用的数字计算机,也可以将所需要的运算编成程序,让通用计算机来执行。 从数字滤波器的单位冲击响应来看,可以分为两大类:有限冲击响应(FIR)数字滤波器和无限冲击响应(IIR)数字滤波器。滤波器按功能上分可以分为低通滤波器(LPF)、高通滤波器(HPF)、带通滤波器(BPF)、带阻滤波器(BSF) [4]。 3.1.2 数字滤波器的优点 相对于模拟滤波器,数字滤波器没有漂移,能够处理低频信号,频率响应特性可做成非常接近于理想的特性,且精度可以达到很高,容易集成等,这些优势决定了数字滤波器的应用将会越来越广泛。同时DSP 处理器(Digital Signal Processor)的出现和FPGA(FieldProgrammable Gate Array)的迅速发展也促进了数字滤波器的发展,并为数字滤波器的硬件实现提供了更多的选择。 数字滤波器具有以下显著优点: 精度高:模拟电路中元件精度很难达到10-3,以上,而数字系统17位字长就可以达到10-5精度。因此在一些精度要求很高的滤波系统中,就必须采用数字滤0.2c ωπ=0.4ωπ?<0.2c ωπ=0.4ωπ?<

线性相位FIR数字滤波器设计

一、设计目的 1.掌握窗函数法设计FIR滤波器的原理和方法,观察用几种常用窗函数设计的 FIR数字滤波器技术指标; 2.掌握FIR滤波器的线性相位特性; 3.了解各种窗函数对滤波特性的影响。 二、设计原理 如果所希望的滤波器的理想频率响应函数为H d(e j J,则其对应的单位脉冲 1 响应为h d(n)=——f H (e恋)e j^dB,用窗函数W N(n)将h d(n)截断,并进行加权处 2兀7 理,得到实际滤波器的单位脉冲响应h(n)=h d(n)w N(n),其频率响应函数为 N _! H (e j ^ h(n)e」n。如果要求线性相位特性,贝U h(n)还必须满足 nM h(n)= h(N-1- n)。可根据具体情况选择h(n)的长度及对称性。 可以调用MATLAB工具箱函数firl实现本实验所要求的线性相位FIR-DF 的设计,调用一维快速傅立叶变换函数fft来计算滤波器的频率响应函数。 fir1是用窗函数法设计线性相位FIRDF hn=fir1(N, wc, ‘ ftype ' , window) fir1实现线性相位FIR滤波器的标准窗函数法设计。 hn=fir1(N,wc)可得到6 dB截止频率为wc的N阶(单位脉冲响应h(n)长度为 N+1)FIR低通滤波器,默认(缺省参数windows)选用hammiing窗。其单位脉冲响应 h(n)满足线性相位条件:h(n)=h(N-1-n) 其中wc为对n归一化的数字频率,OW wc< 1。 当wc= [wc1, wc2]时,得到的是带通滤波器。 hn=fir1(N,wc, ' ftype ') 当ftype=high时,设计高通FIR 当ftype=stop时,设计带阻FIR滤波器。 应当注意,在设计高通和带阻滤波器时,阶数N只能取偶数(h(n)长度N+1 为奇数)。不过,当用户将N设置为奇数时,fir1会自动对N加1。 hn=fir1(N,wc,window)可以指定窗函数向量window。如果缺省window参数,则 fir1默认为hamming窗。可用的其他窗函数有Boxcar, Hanning, Bartlett, Blackman, Kaiser和Chebwin 窗。例如:

基于matlab的FIR数字滤波器设计(带通,窗函数法)

数字信号处理 课程设计报告 设计名称:基于matlab的FIR数字滤波器设计 彪

一、课程设计的目的 1、通过课程设计把自己在大学中所学的知识应用到实践当中。 2、深入了解利用Matlab设计FIR数字滤波器的基本方法。 3、在课程设计的过程中掌握程序编译及软件设计的基本方法。 4、提高自己对于新知识的学习能力及进行实际操作的能力。 5、锻炼自己通过网络及各种资料解决实际问题的能力。 二、主要设计内容 利用窗函数法设计FIR滤波器,绘制出滤波器的特性图。利用所设计的滤波器对多个频带叠加的正弦信号进行处理,对比滤波前后的信号时域和频域图,验证滤波器的效果。 三、设计原理 FIR 滤波器具有严格的相位特性,对于信号处理和数据传输是很重要的。 目前 FIR滤波器的设计方法主要有三种:窗函数法、频率取样法和切比雪夫等波纹逼近的最优化设计方法。常用的是窗函数法和切比雪夫等波纹逼近的最优化设计方法。本实验中的窗函数法比较简单,可应用现成的窗函数公式,在技术指标要求高的时候是比较灵活方便的。 如果 FIR 滤波器的 h(n)为实数, 而且满足以下任意条件,滤波器就具有准确的线性相位: 第一种:偶对称,h(n)=h(N-1-n),φ (ω)=-(N-1)ω/2 第二种:奇对称,h(n)=-h(N-1-n), φ(ω)=-(N-1)ω/2+pi/2 对称中心在n=(N-1)/2处 四、设计步骤 1.设计滤波器 2.所设计的滤波器对多个频带叠加的正弦信号进行处理 3.比较滤波前后信号的波形及频谱 五、用窗函数设FIR 滤波器的基本方法 基本思路:从时域出发设计 h(n)逼近理想 hd(n)。设理想滤波器的单位响应在时域表达为hd(n),则Hd(n) 一般是无限长的,且是非因果的,不能

FIR数字滤波器设计的综述

FIR数字滤波器设计方法的综述 摘要:在数字信号处理中,数字滤波器是一种被广泛使用的信号处理部件,可改变信号中所含频率分量的相对比例或滤除某些频率分量,使其达到所需的效果,具有举足轻重的作用。在数字信号处理系统中,FIR(有限冲激响应)数字滤波器是一类结构简单的最基本的原件,具有严格的相频特性,能保证信号在传输过程中不会有明显的失真,是相当稳定的系统,其确保线性相位的功能进一步使它得到了广泛的应用。本综述分析了FIR数字滤波器的特征和设计的基本原理,得到了满足系统要求的数字滤波器的设计方法。 关键词:数字信号处理,FIR数字滤波器,设计方法

1引言 1.1背景 现在几乎在所有的工程技术领域中都会涉及到信号的处理问题,其信号表现形式有电、磁、机械以及热、光、声等。数字滤波技术可以在放大信号的同时去除噪声和干扰,而在模拟信号号和噪声同时被放大,数字信号还可以不带误差地被存储和恢复、发送和接收、处理和操纵。许多复杂的系统可以用高精度、大信噪比和可重构的数字技术来实现。目前,数字信号处理已经发展成为一项成熟的技术,并且在许多应用领域逐步代替了传统的模拟信号处理系统,如通讯、故障检测、语音、图像、自动化仪器、航空航天、生物医学工程、雷达等。 数字信号处理中一个非常重要且应用普遍的技术就是数字滤波。所谓数字滤波,是指其输入、输出均为数字信号,通过一定的运算关系改变输入信号所含的频率成分的相对比例或滤除某些频率成分,达到提取和加强信号中的有用成份,消弱干扰成份的目的。数字滤波作为数字信号处理的重要组成部分有着十分广泛的应用前景,可作为应用系统对信号的前置处

理。数字滤波器无论是在理论研究上还是在如通讯、雷达、图象处理、数字音频等实际应用上都有着很好的技术前景和巨大的实用价值。 1.2现状与前沿 在近代电信设备和各类控制系统中,滤波器应用极为广泛。在所有的电子部件中,使用最多,技术最为复杂的即为滤波器。滤波器的优劣直接决定产品的优劣,所以,对滤波器的研究和生产历来为各国所重视。 目前,国外有许多院校和科研机构在研究基于FPGA的DSP应用,比较突出的有Denmark 大学的研究小组正在从事FPGA实现数字滤波器的研究。而我国在DSP技术起步较早,产品的研究开发成绩斐然,基本上与国外同步发展。 随着电子工业的发展,对滤波器的性能要求越来越高。我国电子产品要想实现大规模集成,滤波器集成化仍然是个重要课题。总之,滤波器的发展始终是顺应电子系统的发展趋势的。如何进一步实现滤波器的小型化、集成化、高效化将是今后很长一段时间不变的研究和发展主题。 2 FIR数字滤波器的原理 2.1 FIR数字滤波器的结构特点 如果滤波器的输人和输出都是离散时间信号,则该滤波器的冲激响应也必然是离散的,这种滤波器称之为数字滤波器。该滤波器通过对时域中离散的采样数据作差分运算实现滤波。与IIR滤波器相比,FIR(有限长单位冲激响应)的实现是非递归的,总是稳定的。FIR数 字滤波器的特征是冲激响应只能延续一定时间并且很容易实现严格的线性相位,使信号经过处理后不产生相位失真、舍入误差小、稳定等优点,能够设计具有优良特性的多带通滤波器、微分器和希尔伯特变换器。FIR数字滤波器有以下几个特点: (1)系统的单位冲激响应h(n)在有限个值处不为零; (2)系统函数H(z)在处收敛,在处只有零点,有限z平面只有零点,而全部极点都在z=0处; (3)结构上主要是非递归结构。

FIR数字滤波器的设计与实现

FIR 滤波器的设计 一.摘 要:数字滤波器是一种具有频率选择性的离散线性系统,在信号数字处理中有 着广泛的应用。其中FIR 滤波器是一种常用的滤波器,它在保证幅度特性满足技术要求的同时,很容易做到严格的线性相位特性,在语音分析、图像处理、雷达监测等对信号相位要求高的领域有着广泛的应用,能实现IIR 滤波器不能实现的许多功能。 二.关键词:FIR 窗函数 系统函数 MATLAB 三.引言: 数字滤波器的功能就是把输入序列通过一定的运算变换成输出序列,因此数字滤波器的结构系统中就必须包括一定数量和性能的运算器件和运算单元,而运算器件和运算单元的配置必须由数字滤波器的结构特点和性能特点来决定,因此在进行FIR 数字滤波器的设计之前,有必要介绍和总结FIR 数字滤波器的基本结构和相关特性(包括频响曲线(幅度和相位),单位冲激响应等),在介绍完其基本结构和相关特性后,就进行FIR 数字滤波器的设计和实现。 (1).FIR 滤波器的基本结构 在讨论任何一种滤波器时,都要着重分析其系统函数,FIR 滤波器的系统函数为: n N n z n h z H ∑-== 1 )()( 。从该系统函数可看出,FIR 滤波器有以下特点: 1)系统的单位冲激响应h(n)在有限个n 值处不为零; 2)系统函数H(z)在|z|>0处收敛,极点全部在z=0处(稳定系统); 3)结构上主要是非递归结构,没有输出到输入的反馈,但有些结构中(例如频率抽样结构)也包含有反馈的递归部分。 1.FIR 滤波器实现的基本结构有: 1) 横截型(卷积型、直接型) a.一般FIR 滤波器的横截型(直接型、卷积型)结构: 若给定差分方程为: 。 则可以直接由差分方程得出FIR 滤波器 结构如下图所示: 这就是FIR 滤波器的横截型结构,又称直接型或卷积型结构。 b .线性相位FIR 滤波器的横截型结构 若h(n)呈现对称特性,即此FIR 滤波器具有线性相位,则可以简化成横截型结构,下面分情况讨论: ①N 为奇数时线性相位FIR 滤波器实现结构如图所示:

实验4 基于MATLAB的FIR数字滤波器设计

实验4 基于MATLAB 的FIR 数字滤波器设计 实验目的:加深对数字滤波器的常用指标和设计过程的理解。 实验原理:低通滤波器的常用指标: P P P for H Ω≤Ω+≤Ω≤-,1)(1δδ πδ≤Ω≤Ω≤ΩS S for H ,)( 通带边缘频率P Ω,阻带边缘频率S Ω ,通带起伏 P δ, 通带峰值起伏] )[1(log 2010dB p p δα--=, 阻带起伏s δ,最小阻带衰减])[(log 2010dB s S δα-=。 数字滤波器有IIR 和FIR 两种类型,它们的特点和设计方法不同。 在MATLAB 中,可以用b=fir1(N,Wn,’ftype’,taper) 等函数辅助设计FIR 数字滤波器。N 代表滤波器阶数;Wn 代表滤波器的截止频率(归一化频率),当设计带通和带阻滤波器时,Wn 为双元素相量;ftype 代表滤波器类型,如’high ’高通,’stop ’带阻等;taper 为窗函数类型,默认为海明窗,窗系数需要实现用窗函数blackman, hamming,hanning chebwin, kaiser 产生。 S P P S Passband Stopband Transition band Fig 1 Typical magnitude specification for a digital LPF

例1 用凯塞窗设计一FIR低通滤波器,通带边界频率π3.0 ,阻带边界频 Ω = p ,阻带衰减不小于 率π5.0 Ω = s 50dB。

解首先由过渡带宽和阻带衰减来决定凯塞窗的N和 π2.0 = Ω - Ω = ?Ω p s , ,

完美版—FIR数字滤波器的设计

1引言 数字信号处理(Digital Signal Processing,简称DSP)是一门涉及许多学科而又广泛应用于许多领域的新兴学科。20世纪60年代以来,随着计算机和信息技术的飞速发展,数字信号处理技术应运而生并得到迅速的发展。数字信号处理是一种通过使用数学技巧执行转换或提取信息,来处理现实信号的方法,这些信号由数字序列表示。在过去的二十多年时间里,数字信号处理已经在通信等领域得到极为广泛的应用。德州仪器、Freescale等半导体厂商在这一领域拥有很强的实力。 数字信号处理的算法需要利用计算机或专用处理设备如数字信号处理器(DSP)和专用集成电路(ASIC)等。数字信号处理技术及设备具有灵活、精确、抗干扰强、设备尺寸小、造价低、速度快等突出优点,这些都是模拟信号处理技术与设备所无法比拟的。数字信号处理的目的是对真实世界的连续模拟信号进行测量或滤波。因此在进行数字信号处理之前需要将信号从模拟域转换到数字域,这通常通过模数转换器实现。而数字信号处理的输出经常也要变换到模拟域,这是通过数模转换器实现的。 数字信号处理的核心算法是离散傅立叶变换(DFT),是DFT使信号在数字域和频域都实现了离散化,从而可以用通用计算机处理离散信号。而使数字信号处理从理论走向实用的是快速傅立叶变换(FFT),FFT的出现大大减少了DFT的运算量,使实时的数字信号处理成为可能、极大促进了该学科的发展。 DSP(digital signal processor)是一种独特的微处理器,是以数字信号来处理大量信息的器件。其工作原理是接收模拟信号,转换为0或1的数字信号。再对数字信号进行修改、删除、强化,并在其他系统芯片中把数字数据解译回模拟数据或实际环境格式。它不仅具有可编程性,而且其实时运行速度可达每秒数以千万条复杂指令程序,远远超过通用微处理器,是数字化电子世界中日益重要的电脑芯片。它的强大数据处理能力和高运行速度,是最值得称道的两大特色。 1.1DSP微处理器芯片的主要特点: (1)在一个指令周期内可完成一次乘法和一次加法; (2)程序和数据空间分开,可以同时访问指令和数据; (3)片内具有快速RAM,通常可通过独立的数据总线在两块中同时访问; (4)具有低开销或无开销循环及跳转的硬件支持; (5)快速的中断处理和硬件I/O支持; (6)具有在单周期内操作的多个硬件地址产生器; (7)可以并行执行多个操作;

FIR数字滤波器设计及软件实现

实验五:FIR数字滤波器设计及软件实现 一、实验目的: (1)掌握用窗函数法设计FIR数字滤波器的原理和方法。 (2)掌握用等波纹最佳逼近法设计FIR数字滤波器的原理和方法。 (3)掌握FIR滤波器的快速卷积实现原理。 (4)学会调用MATLAB函数设计与实现FIR滤波器。 二、实验内容及步骤: (1)认真复习第七章中用窗函数法和等波纹最佳逼近法设计FIR数字滤波器的原理; (2)调用信号产生函数xtg产生具有加性噪声的信号xt,并自动显示xt及其频谱,如图1所示; 图1 具有加性噪声的信号x(t)及其频谱如图 (3)请设计低通滤波器,从高频噪声中提取xt中的单频调幅信号,要求信号幅频失真小于0.1dB,将噪声频谱衰减60dB。先观察xt的频谱,确定滤波器指标参数。 (4)根据滤波器指标选择合适的窗函数,计算窗函数的长度N,调用MATLAB 函数fir1设计一个FIR低通滤波器。并编写程序,调用MATLAB快速卷积函数fftfilt实现对xt的滤波。绘图显示滤波器的频响特性曲线、滤波器输出信号的幅频特性图和时域波形图。 (4)重复(3),滤波器指标不变,但改用等波纹最佳逼近法,调用MATLAB 函数remezord和remez设计FIR数字滤波器。并比较两种设计方法设计的滤波器阶数。 友情提示: ○1MATLAB函数fir1和fftfilt的功能及其调用格式请查阅本课本;

○ 2采样频率Fs=1000Hz ,采样周期T=1/Fs ; ○ 3根据图10.6.1(b)和实验要求,可选择滤波器指标参数:通带截止频率fp=120Hz ,阻带截至频率fs=150Hz ,换算成数字频率,通带截止频率p 20.24p f ωπ=T =π,通带最大衰为0.1dB ,阻带截至频率s 20.3s f ωπ=T =π,阻带最小衰为60dB 。] ○ 4实验程序框图如图2所示。 图2 实验程序框图 三、实验程序: 1、信号产生函数xtg 程序清单: %xt=xtg(N) 产生一个长度为N,有加性高频噪声的单频调幅信号xt,采样频率Fs=1000Hz %载波频率fc=Fs/10=100Hz,调制正弦波频率f0=fc/10=10Hz. function xt=xtg N=1000;Fs=1000;T=1/Fs;Tp=N*T; t=0:T:(N-1)*T; fc=Fs/10;f0=fc/10; %载波频率fc=Fs/10,单频调制信号频率为f0=Fc/10;

fir数字滤波器设计及软件实现

如对您有帮助,请购买打赏,谢谢您! 实验二 FIR 数字滤波器设计与软件实现 1.实验目的 (1)掌握用窗函数法设计FIR 数字滤波器的原理和方法。 (2)掌握用等波纹最佳逼近法设计FIR 数字滤波器的原理和方法。 (3)掌握FIR 滤波器的快速卷积实现原理。 (4)学会调用MATLAB 函数设计与实现FIR 滤波器。 2. 两种设计FIR 滤波器的方法比较 窗函数法简单方便,易于实现。但存在以下缺点:滤波器边界频率不易精确控制。窗函数法总使通带和阻带波纹幅度相等,不能分别控制通带和阻带波纹幅度。所设计的滤波器在阻带边界频率附近的衰减最小,距阻带边界频率越远,衰减越大。,所以如果在阻带边界频率附近的衰减刚好达到设计指标要求,则阻带中其他频段的衰减就有很大富余量,存在较大的资源浪费。 等波纹最佳逼近法是一种优化设计方法,克服了窗函数法的缺点,使最大误差最小化,并在整个逼近频段上均匀分布。用等波纹最佳逼近法设计的FIR 数字滤波器的幅频响应在通带和阻带都是等波纹的,而且可以分别控制通带和阻带波纹幅度。与窗函数法相比,由于这种设计法使最大误差均匀分布,所以设计的滤波器性能价格比最高。阶数相同时,这种设计方法使滤波器的最大逼近误差最小,即通带最大衰减最小,阻带最小衰减最大。指标相同时,这种设计法使滤波器阶数最低。 3. 滤波器参数及实验程序清单 (1) 滤波器参数选取 根据加噪信号频谱图和实验要求,可选择一低通滤波器进行滤波,确定滤波器指标参数:通带截止频率Hz f p 130=,阻带截至频率Hz f s 150=,换算成数字频率,通带截止频率ππω26.02==T f p p ,通带最大衰减为dB p 1.0=α,阻带截至频率π πω3.02==T f s s ,阻带最小衰减为dB s 60=α。 (2) 实验程序清单 图1 程序流程图 信号产生函数xtg 程序清单 function xt=xtg %产生一个长度为N,有加性高频噪声的单频调幅信号xt,采样频率Fs=1000Hz %载波频率fc=Fs/10=100Hz,调制正弦波频率f0=fc/10=10Hz. N=1600; Fs=1000;T=1/Fs;Tp=N*T; t=0:T:(N-1)*T; fc=Fs/10;f0=fc/10; %载波频率fc=Fs/10,单频调制信号频率为f0=Fc/10; mt=cos(2*pi*f0*t); %产生单频正弦波调制信号mt ,频率为f0 ct=cos(2*pi*fc*t); %产生载波正弦波信号ct ,频率为fc xt=mt.*ct; %相乘产生单频调制信号xt nt=2*rand(1,N)-1; %产生随机噪声nt %=======设计高通滤波器hn,用于滤除噪声nt 中的低频成分,生成高通噪声======= fp=150; fs=200;Rp=0.1;As=70; % 滤波器指标

手把手教你设计FIR数字滤波器

手把手教你设计FIR 数字滤波器 1. 滤波器的时域、频域、s 域以及离散化 首先,我们要搞清楚一个概念就是滤波器,其实所谓的滤波器就是一个传递函数,它可是通过改变不同频段上信号的幅值来实现滤波,在知道这一点的前提下,下面的讲述就容易了很多。 这里我们假设滤波器的时域传递函数(连续)s 域为()H s ,时域为()h t ;原始信号s 域为()X s ,时域为()x t ;滤波器的输出s 域为()Y s ,时域为()y t ,如图1所示。(如果分不清楚s 域和时域的童鞋,我觉得你就不要反省了,这个领域不适合你!)我们知道传递函数之间的关系是相乘,而时域的关系是卷积。那么我们就有了下面的两个关系式。 ()()()Y s H s X s = (1) ()()*()y t h t x t =(其中的‘*’表示卷积) (2) 图1 滤波器的传递函数 当然,我们知道在数字滤波器中,当然不可能存在连续函数的,所以我们要对连续函数进行离散化,其实就是一个采样的过程,假设采样频率为S f ,这里我们就需要提到一个定理,就是香农采样定理(采样频率一定要大于传递函数截止频率的两倍,否则就会发生高次谐波的混迭,如果这个道理你不懂的话,建议你去恶补一下信号与系统,这里我只解释一点,便于理解,采样就是以时间间隔为S T 的脉冲采样,那么传递函数的频域就变成了周期为S f 的周期函数,当然如果不理解,也不耽误对下面讲解的理解),所以信号就离散成了()S x nT 、()S h nT 、()S y nT ,其中S T 为采样时间间隔,为了方便下面内容的讲述,这里我们做一个频率的归一化,我们取1S T =,那么采样频率就变成了1S f =,就有了下面的离散时域表示方法。 ()()()k y n h k x n k +∞=-∞= -∑ (3) 值得指出的是再这样种1S T =的归一化过程中,我们认为 2S f 为传递函数系统的最

实验5FIR数字滤波器设计与软件实现汇总

信息院14电信(师范) 实验五:FIR数字滤波器设计与软件实现 一、实验指导 1.实验目的 (1)掌握用窗函数法设计FIR数字滤波器的原理和方法。 (2)掌握用等波纹最佳逼近法设计FIR数字滤波器的原理和方法。 (3)掌握FIR滤波器的快速卷积实现原理。 (4)学会调用MATLAB函数设计与实现FIR滤波器。 2.实验内容及步骤 (1)认真复习第七章中用窗函数法和等波纹最佳逼近法设计FIR数字滤波器的原理; (2)调用信号产生函数xtg产生具有加性噪声的信号xt,并自动显示xt及其频谱,如图1所示; 图1 具有加性噪声的信号x(t)及其频谱如图 程序代码:(信号产生函数xtg程序清单) function xt=xtg(N) %êμ?é??D?o?x(t)2úéú,2¢??ê?D?o?μ?·ù?μì?D??ú?? %xt=xtg(N) 2úéúò???3¤?è?aN,óD?óD????μ??éùμ?μ¥?μμ÷·ùD?o?xt,2é?ù?μ?êFs=10 00Hz

%??2¨?μ?êfc=Fs/10=100Hz,μ÷???y?ò2¨?μ?êf0=fc/10=10Hz. N=1000;Fs=1000;T=1/Fs;Tp=N*T; t=0:T:(N-1)*T; fc=Fs/10;f0=fc/10; %??2¨?μ?êfc=Fs/10£?μ¥?μμ÷??D?o??μ?ê?af0=F c/10; mt=cos(2*pi*f0*t); %2úéúμ¥?μ?y?ò2¨μ÷??D?o?mt£??μ?ê?af0 ct=cos(2*pi*fc*t); %2úéú??2¨?y?ò2¨D?o?ct£??μ?ê?afc xt=mt.*ct; %?à3?2úéúμ¥?μμ÷??D?o?xt nt=2*rand(1,N)-1; %2úéú???ú??éùnt %=======éè????í¨??2¨?÷hn,ó?óú??3y??éùnt?Dμ?μí?μ3é·?,éú3é??í¨ ??éù======= fp=150; fs=200;Rp=0.1;As=70; % ??2¨?÷??±ê fb=[fp,fs];m=[0,1]; % ????remezordoˉêy?ùDè2?êyf,m,dev dev=[10^(-As/20),(10^(Rp/20)-1)/(10^(Rp/20)+1)]; [n,fo,mo,W]=remezord(fb,m,dev,Fs); % è·?¨remezoˉêy?ùDè2?êy hn=remez(n,fo,mo,W); % μ÷ó?remezoˉêy??DDéè??,ó?óú??3y??éùnt?Dμ?μí?μ3é·? yt=filter(hn,1,10*nt); %??3y???ú??éù?Dμí?μ3é·?£?éú3é??í¨ ??éùyt %=========================================================== ===== xt=xt+yt; %??éù?óD?o? fst=fft(xt,N);k=0:N-1;f=k/Tp; subplot(3,1,1);plot(t,xt);grid;xlabel('t/s');ylabel('x(t)'); axis([0,Tp/5,min(xt),max(xt)]);title('(a) D?o??ó??éù2¨D?') subplot(3,1,2);plot(f,abs(fst)/max(abs(fst)));grid;title('(b) D?o??ó??éùμ??μ?×') axis([0,Fs/2,0,1.2]);xlabel('f/Hz');ylabel('·ù?è')输出波形: (3)请设计低通滤波器,从高频噪声中提取xt中的单频调幅信号,要求信号幅

FIR数字低通滤波器设计

第1章 绪论 1.1设计的作用、目的 课程设计是理论学习的延伸,是掌握所学知识的一种重要手段,对于贯彻理论联系实际、提高学习质量、塑造自身能力等于有特殊作用。本次课程设计一方面通过MATLAB 仿真设计内容,使我们加深对理论知识的理解,同时增强其逻辑思维能力,另一方面对课堂所学理论知识作一个总结和补充。 1.2设计任务及要求 通过课程设计各环节的实践,应使学生达到如下要求: 1.掌握双线性变换法及脉冲响应不变法设计IIR 数字滤波器以及窗函数法 设计FIR 数字滤波器的原理、具体方法及计算机编程。 2.观察双线性变换法、脉冲响应不变法及窗函数法设计的滤波器的频域特性,了解各种方法的特点。 3.用MATLAB 画出三种方法设计数字滤波器的幅频特性曲线,记带宽和衰减量,检查结果是否满足要求。 1.3设计内容 设计题目:FIR 数字滤波器的设计 设计内容: (1)设计一线性相位FIR 数字低通滤波器,截止频率π2.0=Ωf ,过渡带宽度 π4.0≤?Ω,阻带衰减dB A s 30>。 (2)设计一线性相位FIR 数字低通滤波器,截止频率π2.0=Ωf ,过渡带宽度π4.0≤?Ω,阻带衰减dB A s 50>。

第2章FIR 数字低通滤波器的原理 2.1 数字低通滤波器的设计原理 FIR 数字滤波器传统的设计方法有窗函数法、频率抽样法和等波纹逼近法。用窗函数设计FIR 数字滤波器就是用有限长的脉冲相应逼近序列,其基本设计思想为:首先选定一个理想的选频滤波器,然后截取它的脉冲响应得到线性相位。 滤波器(filter ),是一种用来消除干扰杂讯的器件,将输入或输出经过过滤而得到纯净的直流电。对特定频率的频点或该频点以外的频率进行有效滤除的电路,就是滤波器,其功能就是得到一个特定频率或消除一个特定频率。就是允许某一部分频率的信号顺利的通过,而另外一部分频率的信号则受到较大的抑制,它实质上是一个选频电路。 1.滤波器的概念 滤波器是对输入信号起滤波的作用的装置。当输入、输出是离散信号,滤波器的冲激响应是单位抽样响应()n h 时,这样的滤波器称作数字滤波器(DF )。DF 是由差分方程描述的一类特殊的离散时间系统。 2.数字滤波器的系统函数与差分方程: 系统函数 (2-1) 差分方程 对上式进行 Z 反变换,即得: (2-2) 3.数字滤波器结构的表示 数字滤波器分FIR 数字滤波器和IIR 数字低通滤波器。其中FIR 低通滤波器分直接型和级联型,IIR 分直接型、级联型和并联型。 方框图法、信号流图法 ∑∑==-+-= N k M k k k k n x b k n y a n y 1 )()()(∑∑=-=--= = N k k M k k z a z b z X z Y z H k k 1 1) ()()(

相关文档
最新文档