有限冲激响应数字滤波器设计

合集下载

基于DSP的FIR数字滤波器_(设计实验)(汇编语言)

基于DSP的FIR数字滤波器_(设计实验)(汇编语言)

基于DSP 的FIR 数字滤波器 (设计实验)一、实验目的1.了解FIR (Finite Impulse Response 有限冲激响应)滤波器的原理及使用方法;2.了解使用MATLAT 语言设计FIR 滤波器的方法;3.了解DSP 对FIR 滤波器的设计及编程方法;4.熟悉在CCS 环境下对FIR 滤波器的调试方法; 二、实验原理数字滤波是DSP 的最基本应用,利用MAC (乘、累加)指令和循环寻址可以方便地完成滤波运算。

两种常用的数字滤波器:FIR (有限冲激响应)滤波器和IIR (无限冲激响应)滤波器的DSP 实现。

设FIR 滤波器的系数为h(0),h(1), ...,h(N-1),X(n)表示滤波器在n 时刻的输入,则n 时刻的输出为: FIR 数字滤波器的结构如图3.1所示。

1、线性缓冲区法又称延迟线法。

其方法是:对于n=N 的FIR 滤波器,在数据存储器中开辟一个N 单元的缓冲区,存放最新的N 个样本;滤波时从最老的样本开始,每读一个样本后,将此样本向下移位;读完最后一个样本后,输入最新样本至缓冲区的顶部。

以上过程,可以用N=6的线性缓冲区示意图来说明,如图3-2所示图3-2 N=6的线性缓冲区示意图2、循环缓冲区法图3-3说明了使用循环寻址实现FIR 滤波器的方法。

对于N 级FIR 滤波器,在数据存储区开辟一个称为滑窗的具有N 个单元的缓冲区,滑窗中存放最新的N 个输入样本值。

每次输入新的样本时,新的样本将改写滑窗中最老的数据,其他数据则不需要移动。

10()()()(0)()(1)(1)(1)[(1)]N i y n h i x n i h x n h x n h N x n N -==-=+-+---∑Z -1Z -1Z -1y(n)图3-3 FIR滤波器循环缓冲区存储器图三、实验内容与步骤设计一个FIR低通滤波器,通带边界频率为1500Hz,通带波纹小于1dB;阻带边界频率为2000Hz,阻带衰减大于40dB;采样频率为8000Hz。

matlabfir滤波器设计

matlabfir滤波器设计

matlabfir滤波器设计MATLAB是一个高级编程语言和交互式环境,被广泛应用于各种科学和工程问题的数值分析、数据可视化和编程开发等领域。

FIR滤波器是数字信号处理中经常使用的一种滤波器,它是基于有限长冲激响应的滤波器。

在MATLAB平台上,我们可以使用fir1函数来设计FIR滤波器。

一、FIR滤波器设计基础1.1 什么是FIR滤波器FIR滤波器是有限长冲激响应滤波器,由于其具有线性相位特性和可控阶数等优点,在数字信号处理中得到了广泛的应用。

一般来说,FIR滤波器的频率响应特性由滤波器的系数函数确定。

FIR滤波器的设计一般采用窗函数法、最小二乘法、频率抽取法等方法。

窗函数法是最常见的一种方法,大部分情况下选择的是矩形窗、汉宁窗、布莱克曼窗等。

1.3 fir1函数介绍fir1函数是MATLAB中用于FIR滤波器设计的函数,用法为:h = fir1(N, Wn, type)N为滤波器的阶数,Wn是用于指定滤波器截止频率的参数,type指定滤波器类型,可以是低通、高通、带通、带阻等。

二、使用fir1函数设计FIR滤波器2.1 设计要求采样率为300Hz;滤波器阶数为50;截止频率为50Hz。

2.2 实现步骤(1)计算规范化截止频率规范化截止频率是指在数字滤波器设计中使用的无单位量,通常范围为0到1。

在本例中,我们需要将50Hz的截止频率转化为规范化截止频率。

Wn = 2*50/300 = 1/3根据计算出的规范化截止频率和滤波器阶数,我们可以使用fir1函数来进行滤波器设计。

此处滤波器的阶数为50,规范化截止频率为1/3,类型为低通。

(3)绘制滤波器的幅频响应图为了验证设计的低通FIR滤波器是否符合要求,我们需要绘制其幅频响应图。

freqz(h,1,1024,300)经过上述步骤后,我们就得到了一张低通FIR滤波器的幅频响应图,如下图所示:图1.低通FIR滤波器的幅频响应图三、总结通过上述例子,我们可以看出在MATLAB中与fir1函数可以非常方便的进行FIR滤波器的设计。

有限冲激响应滤波器的设计

有限冲激响应滤波器的设计
Ⅱ型线性相位滤波器的幅度函数和相位函数的特点: 幅度函数的特点: (1)当 时, =0,也就是说 在 处必然有一个零点; (2) 对 呈奇对称,对 呈偶对称。 相位函数的特点:同I型线性相位滤波器。
3.Ⅲ型线性相位滤波器
由于Ⅲ型线性相位滤波器关于 奇对称,且 为整数,所以,其频率响应可以表示为 (7.16) 其中
幅度函数为 (7.17) 相位函数为 (7.18)
2
则 就具有线性相位, 。
3
并考虑| |=1,等效地指定
4
(7.48)
5
根据DFT的性质可知,为保证 是实序列,应满足下列对称关系
6
(7.49)
7
由于
(7.50)
当N为偶数时, ;当N为奇数时, 。这样当N为偶数时,若按式(7.48)对 赋值,就不能满足式(7.49)的对应关系。由此,按如下原则对 赋值。
选取一个满意的窗函数,令
(7.41)
则 即为要设计的滤波器的单位抽样响应。
按上述方法设计的滤波器,由于满足了 的对称关系,因此都具有线性相位。
由DFT定义,得
(7.42)

(7.43)
频率抽样法是从频域出发,把给定的理想频率响应 加以等间隔抽样,即
Ⅳ型线性相位滤波器
型线性相位滤波器关于 奇对称,且N为偶数,所以 为非整数。其频率响应可以表示为 (7.19) 其中
1
2
幅度函数为 (7.20) 相位函数为 (7.21)
Ⅳ型线性相位滤波器的幅度函数和相位函数的特点: 幅度函数的特点: (1) 在 处必为零,也就是说 在 处为零点 ; (2) 在 处呈奇对称,在 处呈偶对称 相位函数的特点:同Ⅲ型线性相位滤波器。

FIR滤波原理及verilog设计

FIR滤波原理及verilog设计

FIR滤波原理及verilog设计FIR滤波器是一种基于有限长冲激响应(Finite Impulse Response)的数字滤波器,它主要用于对数字信号进行滤波处理,例如降噪、去除杂音和频带限制等。

本文将介绍FIR滤波的原理,并给出一个基于Verilog的FIR滤波器设计。

一、FIR滤波原理:FIR滤波器是一种非递归滤波器,其输出是输入信号的线性组合。

它通过计算输入信号与一组滤波系数之间的加权和来实现滤波。

每一个滤波系数决定了输入信号在输出中所占的权重,当输入信号通过滤波器时,每一个采样点都与滤波系数进行乘法运算,并将结果相加得到输出。

Y(n)=h(0)*X(n)+h(1)*X(n-1)+h(2)*X(n-2)+…+h(N-1)*X(n-N+1)其中,Y(n)为输出信号的当前采样值,X(n)为输入信号的当前采样值,h(i)为滤波器的滤波系数,N为滤波器的阶数。

二、FIR滤波器的设计:1.滤波器的阶数N的选择:2.滤波系数h(i)的计算:滤波系数的计算是根据所需滤波器的频率响应来确定的。

常见的计算方法有窗函数法、频率采样法和最佳化法等。

具体的计算方法可以根据不同的需求进行选择。

三、基于Verilog的FIR滤波器设计:以下是一个基于Verilog的FIR滤波器设计示例,该设计以32阶FIR滤波器为例。

```verilogmodule FIR_filterinput wire clk,input wire reset,input wire signed [15:0] X,output reg signed [15:0] Yparameter N = 32;reg signed [15:0] delay_line [N-1:0];parameter signed [15:0] h [N-1:0] = {32'b0000_0000_0000_0000, /* 系数h0 */32'b0000_0000_0000_0000,/*系数h1*/...32'b0000_0000_0000_0000};/*系数h31*/if(reset) beginY<=0;for(int i=0; i<N; i=i+1) begindelay_line[i] <= 0;endendelse beginY <= (h[0] * X) + (h[1] * delay_line[0]) + ... + (h[N-1] * delay_line[N-2]);for(int i=N-1; i>0; i=i-1) begindelay_line[i] <= delay_line[i-1];enddelay_line[0] <= X;endendendmodule```在上面的Verilog代码中,FIR_filter模块包含了一个clk时钟信号、一个reset复位信号,以及输入信号X和输出信号Y。

第七章_有限长单位冲激响应(FIR)数字滤波器的设计

第七章_有限长单位冲激响应(FIR)数字滤波器的设计
j e H d ( e j ) 0
| | c
c | |
表示其群时延
2.冲激响应序列
1 j jn hd ( n) H ( e ) e d d 2 1 c j jn e e d c 2 s in[(n ) c ] (n ) c s in[(n ) c ] c (n )
• H (0) 0 ,
0,2 奇对称,关于 偶对称. • H ( ) 关于
可用于设计:
•高通滤波器 •带通滤波器 4种不同的幅度特性中,以第一种幅度特性最好,因而在FIR滤 波器的设计中,通常都采用第一种幅度特性。称第一类FIR滤波 器。
h( n) 偶对称,N为奇数
7.1.3 线性相位FIR数字滤波器的零点分布特点
且 h( n) 关于 N 1 偶对称或奇对称
2 偶对称 h(n) h( N n 1)
奇对称 h(n) h( N n 1)
1. h( n)为偶对称
H ( z ) h( n) z
n 0 N 1 n N 1 n 0
h( N n 1) z n
WR ( ) 为矩形窗频率响应幅度函数 8 主瓣宽度 N 第一旁瓣比主瓣低 31dB
4 N
0
WHan (Biblioteka )4 N4.海明窗 5.布莱克曼窗

n h ( N n 1 ) z n 0
N 1

m N n 1
( N m 1) ( N 1) m ( N 1) 1 h ( m ) z z h ( m ) z z H ( z ) m 0 N 1 N 1
H ( z)
m 0

基于MATLAB设计FIR滤波器

基于MATLAB设计FIR滤波器

基于MATLAB设计FIR滤波器FIR(Finite Impulse Response)滤波器是一种数字滤波器,它具有有限的冲激响应长度。

基于MATLAB设计FIR滤波器可以使用signal工具箱中的fir1函数。

fir1函数的语法如下:b = fir1(N, Wn, window)其中,N是滤波器的阶数,Wn是截止频率,window是窗函数。

要设计一个FIR低通滤波器,可以按照以下步骤进行:步骤1:确定滤波器的阶数。

阶数决定了滤波器的截止频率的陡峭程度。

一般情况下,阶数越高,滤波器的陡峭度越高,但计算复杂度也会增加。

步骤2:确定滤波器的截止频率。

截止频率是指在滤波器中将信号的频率限制在一定范围内的频率。

根据应用的需求,可以选择适当的截止频率。

步骤3:选择窗函数。

窗函数是为了在时域上窗口函数中心增加频率衰减因子而使用的函数。

常用的窗函数有Hamming、Hanning等。

窗函数可以用来控制滤波器的幅度响应特性,使得它更平滑。

步骤4:使用fir1函数设计滤波器。

根据以上步骤确定滤波器的阶数、截止频率和窗函数,可以使用fir1函数设计FIR滤波器。

具体代码如下:N=50;%设定阶数Wn=0.5;%设定截止频率window = hanning(N + 1); % 使用Hanning窗函数步骤5:使用filter函数对信号进行滤波。

设计好FIR滤波器后,可以使用filter函数对信号进行滤波。

具体代码如下:filtered_signal = filter(b, 1, input_signal);其中,input_signal是输入信号,filtered_signal是滤波后的信号。

以上,便是基于MATLAB设计FIR滤波器的简要步骤和代码示例。

根据具体需求和信号特性,可以进行相应的调整和优化。

基于MATLAB的IIR数字滤波器设计与仿真

基于MATLAB的IIR数字滤波器设计与仿真

基于MATLAB的IIR数字滤波器设计与仿真一、概述在现代数字信号处理领域中,数字滤波器扮演着至关重要的角色。

其通过对输入信号的特定频率成分进行增强或抑制,实现对信号的有效处理。

无限脉冲响应(IIR)数字滤波器因其设计灵活、实现简单且性能优良等特点,得到了广泛的应用。

本文旨在基于MATLAB平台,对IIR数字滤波器的设计与仿真进行深入研究,以期为相关领域的研究与应用提供有益的参考。

IIR数字滤波器具有无限长的单位脉冲响应,这使得其在处理信号时能够展现出优秀的性能。

与有限脉冲响应(FIR)滤波器相比,IIR滤波器在实现相同性能时所需的阶数更低,从而减少了计算复杂度和存储空间。

在需要对信号进行高效处理的场合,IIR滤波器具有显著的优势。

MATLAB作为一款功能强大的数学软件,提供了丰富的函数和工具箱,使得数字滤波器的设计与仿真变得简单而高效。

通过MATLAB,我们可以方便地实现IIR滤波器的设计、分析和优化,从而满足不同应用场景的需求。

本文将首先介绍IIR数字滤波器的基本原理和特性,然后详细阐述基于MATLAB的IIR数字滤波器的设计方法和步骤。

接着,我们将通过仿真实验验证所设计滤波器的性能,并对其结果进行分析和讨论。

本文将总结IIR数字滤波器设计与仿真的关键技术和注意事项,为相关领域的研究人员和工程师提供有益的参考和启示。

1. IIR数字滤波器概述IIR(Infinite Impulse Response)数字滤波器是数字信号处理中常用的一类滤波器,它基于差分方程实现信号的滤波处理。

与FIR (Finite Impulse Response)滤波器不同,IIR滤波器具有无限长的单位脉冲响应,这意味着其输出不仅与当前和过去的输入信号有关,还与过去的输出信号有关。

这种特性使得IIR滤波器在实现相同的滤波效果时,通常具有更低的计算复杂度,从而提高了处理效率。

IIR滤波器的设计灵活多样,可以根据不同的需求实现低通、高通、带通和带阻等多种滤波功能。

有限冲激响应(FIR)数字滤波器

有限冲激响应(FIR)数字滤波器
根据dtft有dehnhnjdd21nnjddenhh窗函数法用时域的窗函数wn乘以无限长的单位冲激响应hdn对无限长的单位冲激响应序列进行截断构成fir数字滤波器的hnn常用的窗函数有矩形窗函数三角窗函数海宁窗函数海明窗函数布莱克曼窗函数和凯瑟窗函数等hnhdnw1设计一个线性相位fir低通滤波器该滤波器的截止频率为频率响应为ccjde0hc解滤波器的单位冲激响应为1hdn是一个以为中心偶对称的无限长序列设选择的窗函数为矩形窗其他0用窗函数wn截取hdn在n0至nn1的一段作为hnsin212nndeedehnhcnjjnjddcc101nnnw其他010nnnhnwnhnhdd在截取时必须保证满足线性相位的约束条件即保证hn以要求2偶对称则必须以这样得到的hn作为所设计的滤波器的单位冲激响应通过对hn作z变换即可得到线性相位fir滤波器的传递函数hz
H
d


e 0
j
c
c
解:滤波器的单位冲激响应为
hd
(n)

1
2

Hd
()e
jn d

1
2
c e je jn d sin c (n )
c
(n )
Hd(n) 是一个以α为中心偶对称的无限长序列

(1 3z1 3z2 z3 )Y (z) X (z)
x(n)
y(n)
z 1 3
3 z1
z 1 1
H
(z)

1 (1 z 1)3
h(n) 1 (n 1)(n 2)u(n) 2
答疑时间
6月26号:9:30-11:30 6月30号:9:30-11:30
5、窗函数法
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数字信号处理课程设计
——有限冲激响应数字滤波器设计
一、实验目的:加深对数字滤波器的常用指标和设计过程的理解。

二、实验原理:低通滤波器的常用指标:
P P P for H Ω≤Ω+≤Ω≤-,1)(1δδ
πδ≤Ω≤Ω≤ΩS S for H ,)( 数字滤波器技术指标:
通带边缘频率P ω,阻带边缘频率S ω ,通带最大衰减1δ,最小阻带衰减2δ 通带峰值起伏)1(log 201101αδ--=, 最小阻带衰减)(log 202102αδ-=。

数字滤波器有IIR 和FIR 两种类型,它们的特点和设计方法不同。

设计步骤:
♦ 给定理想的频率响应函数及技术指标 ♦ 求出理想的单位抽样响应 ♦ 根据阻带衰减选择窗函数 ♦ 根据过渡带宽度确定N 值
♦ 求所设计的FIR 滤波器的单位抽样响应 ♦ 计算频率响应,验算指标是否满足要求
窗系数需要实现用窗函数blackman (N ), hamming(N),hanning(N)
S P
P S
Passband Stopband
Transition band
Fig 1 Typical magnitude specification for a digital LPF
kais er(N)产生。

wd=boxcar(N);%数组wd返回N点矩形窗函数
wd=triang(N);%数组wd返回N点三角窗函数
wd=hanning(N);%数组wd返回N点汉宁窗函数
wd=hamming(N);%数组wd返回N点汉明窗函数
wd=blackman(N);%数组wd返回N点布莱克曼窗函数
wd=kaiser(N,beta);%数组wd返回给定β值的N点凯泽窗函数
以书上P343例7-1为例
wn=hamming(33);%产生窗函数,N=33
nn=[0:1:32];
alfa=(33-1)/2;
hd=sin(0.4*pi*(nn-alfa+eps))./(pi*(nn-alfa+eps));%eps为一个非常小的数,防止出%
现零为除数
h=hd.*wn'; %hd为一个行向量,wn为一个列向量,需要转置
[h1,w1]=freqz(h,1);检验,求其频率响应
plot(w1/pi,20*log10(abs(h1)));%通过求对数得到以db为单位的幅度特性
axis([0,1,-100,10]);
grid;
xlabel('归一化频率/pi');
ylabel('幅度/dB');
三、设计内容:
设计FIR 低通滤波器,通带边界频率πω2.0=p ,阻带边界频率πω3.0=s ,阻带衰减2δ不小于50dB 。

选择一个合适的窗函数,确定脉冲响应,并给出所设计的滤波器的频率响应图。

(要求设计完后,再选择其他的窗函数,并比较结果,分析原因) 设计步骤:
因为要求阻带衰减不小于50dB ,故我首先选择用海明窗来进行本次设计 第一步:理想低通滤波器的截止频率为Wc=(0.2*pi+0.3*pi )/2=0.25*pi 第二步:先求出N
所要求的过渡带宽w1=0.3*pi-0.2*pi=0.1*pi 由于海明窗过渡带宽满足w2=3.3*2*pi/N=6.6*pi/N 由w1=w2得:N=66 Matlab 编程如下:
wn=hamming(27);
nn=[0:1:26]; alfa=(27-1)/2;
hd=sin(0.25*pi*(nn-alfa+eps))./(pi*(nn-alfa+eps)); h=hd.*wn';
[h1,w1]=freqz(h,1);
plot(w1/pi,20*log10(abs(h1))); axis([0,1,-100,10]); grid;
xlabel('归一化频率/pi '); ylabel('幅度/dB ');
0.1
0.2
0.3
0.4
0.50.6
0.7
0.8
0.9
1
-100
-90-80-70-60-50-40-30
-20-100
10归一化频率/pi
幅度/d B
布拉克满窗设计:
由于布拉克曼窗渡带宽满足w3=5.5*2*pi/N=11*pi/N 由w1=w3得:N=110 Matlab 编程如下:
wn=blackman(110); nn=[0:1:109]; alfa=(110-1)/2;
hd=sin(0.25*pi*(nn-alfa+eps))./(pi*(nn-alfa+eps)); h=hd.*wn';
[h1,w1]=freqz(h,1);
plot(w1/pi,20*log10(abs(h1)));
axis([0,1,-100,10]); grid;
xlabel('归一化频率/pi '); ylabel('幅度/dB ');
0.1
0.2
0.3
0.40.50.6
0.7
0.8
0.9
1
-100
-90-80-70-60-50-40-30
-20-100
10归一化频率/pi
幅度/d B
布拉克曼窗明显比海明窗的阻带衰减快,用它们两个窗函数设计的低通滤波器都可以满足要求
下面是用矩形窗函数设计的低通滤波器:
由于矩形窗过渡带宽满足w4=0.9*2*pi/N=1.8* pi/N 由w1=w4得::N=18 Matlab 编程如下:
wn=boxcar(18); nn=[0:1:17]; alfa=(18-1)/2;
hd=sin(0.25*pi*(nn-alfa+eps))./(pi*(nn-alfa+eps)); h=hd.*wn';
[h1,w1]=freqz(h,1);
plot(w1/pi,20*log10(abs(h1))); axis([0,1,-100,10]); grid;
xlabel('归一化频率/pi ');
ylabel('幅度/dB ');
0.1
0.2
0.3
0.40.50.6
0.7
0.8
0.9
1
-100
-90-80-70-60-50-40-30
-20-100
10归一化频率/pi
幅度/d B
阻带衰减小于50dB ,不能满足要求。

相关文档
最新文档