有限脉冲响应滤波器
- 格式:pdf
- 大小:2.74 MB
- 文档页数:58
第6章 有限脉冲响应(FIR)数字滤波器的设计习题1. 已知FIR 滤波器的单位脉冲响应为:(1) h (n )长度N =6h (0)=h (5)=1.5h (1)=h (4)=2h (2)=h (3)=3(2) h (n )长度N =7h (0)=- h (6)=3h (1)=- h (5)=- 2h (2)=-h (4)=1h (3)=0试分别说明它们的幅度特性和相位特性各有什么特点。
2. 已知第一类线性相位FIR 滤波器的单位脉冲响应长度为16, 其16个频域幅度采样值中的前9个为:H g (0)=12, H g (1)=8.34, H g (2)=3.79, H g (3)~H g (8)=0根据第一类线性相位FIR 滤波器幅度特性H g (ω)的特点, 求其余7个频域幅度采样值。
3. 设FIR 滤波器的系统函数为求出该滤波器的单位脉冲响应h (n ), 判断是否具有线性相位, 求出其幅度特性函数和相位特性函数。
4. 用矩形窗设计线性相位低通FIR 滤波器, 要求过渡带宽度不超过π/8 rad 。
希望逼近的理想低通滤波器频率响应函数H d (e j ω)为(1) 求出理想低通滤波器的单位脉冲响应h d (n );(2) 求出加矩形窗设计的低通FIR 滤波器的单位脉冲响应h (n )表达式, 确定)9.01.29.01(101)(4321−−−−++++=z z z z z Hα与N之间的关系;(3)简述N取奇数或偶数对滤波特性的影响。
5.用矩形窗设计一线性相位高通滤波器,要求过渡带宽度不超过π/10 rad。
希望逼近的理想高通滤波器频率响应函数H d(e jω)为(2)用h1(n)和h2(n)分别构成的低通滤波器是否具有线性相位?群延时为多少?题8图9.对下面的每一种滤波器指标,选择满足FIRDF设计要求的窗函数类型和长度。
(1)阻带衰减为20 dB,过渡带宽度为1 kHz,采样频率为12 kHz;(2)阻带衰减为50 dB,过渡带宽度为2 kHz,采样频率为20 kHz;(3)阻带衰减为50 dB,过渡带宽度为500 Hz,采样频率为5 kHz。
IIR滤波器和FIR滤波器的区别与联系1.两种滤波器都是数字滤波器。
根据冲激响应的不同,将数字滤波器分为有限冲激响应(FIR)滤波器和无限冲激响应(IIR)滤波器。
对于FIR滤波器,冲激响应在有限时间内衰减为零,其输出仅取决于当前和过去的输入信号值。
对于IIR滤波器,冲激响应理论上应会无限持续,其输出不仅取决于当前和过去的输入信号值,也取决于过去的信号输出值。
2.FIR:有限脉冲响应滤波器。
有限说明其脉冲响应是有限的。
与IIR相比,它具有线性相位、容易设计的优点。
这也就说明,IIR滤波器具有相位不线性,不容易设计的缺点。
而另一方面,IIR却拥有FIR所不具有的缺点,那就是设计同样参数的滤波器,FIR比IIR需要更多的参数。
这也就说明,要增加DSP 的计算量。
DSP需要更多的计算时间,对DSP的实时性有影响。
以下都是低通滤波器的设计。
FIR的设计:FIR滤波器的设计比较简单,就是要设计一个数字滤波器去逼近一个理想的低通滤波器。
通常这个理想的低通滤波器在频域上是一个矩形窗。
根据傅里叶变换我们可以知道,此函数在时域上是一个采样函数。
通常此函数的表达式为:sa(n)=sin(n∩)/n∏,但是这个采样序列是无限的,计算机是无法对它进行计算的。
故我们需要对此采样函数进行截断处理。
也就是加一个窗函数。
就是传说中的加窗。
也就是把这个时域采样序列去乘一个窗函数,就把这个无限的时域采样序列截成了有限个序列值。
但是加窗后对此采样序列的频域也产生了影响:此时的频域便不在是一个理想的矩形窗,而是成了一个有过渡带,阻带有波动的低通滤波器。
通常根据所加的窗函数的不同,对采样信号加窗后,在频域所得的低通滤波器的阻带衰减也不同。
通常我们就是根据此阻带衰减去选择一个合适的窗函数。
如矩形窗、汉宁窗、汉明窗、BLACKMAN窗、凯撒窗等。
选择一个具体的窗函数之后,根据所设计滤波器的参数来计算所需的阶数、此窗函数的表达式。
然后用这个窗函数去和采样序列相乘,就可以得到实际滤波器的脉冲响应。
成绩:《数字信号处理》作业与上机实验(第二章)班级:学号:姓名:任课老师:完成时间:信息与通信工程学院2014—2015学年第1 学期第7章有限脉冲响应数字滤波器设计1、教材p238:19.设信号x(t) = s(t) + v(t),其中v(t)是干扰,s(t)与v(t)的频谱不混叠,其幅度谱如题19图所示。
要求设计数字滤波器,将干扰滤除,指标是允许|s(f)|在0≤f≤15 kHz频率范围中幅度失真为±2%(δ1 = 0.02);f > 20 kHz,衰减大于40 dB(δ2=0.01);希望分别设计性价比最高的FIR和IIR两种滤波器进行滤除干扰。
请选择合适的滤波器类型和设计方法进行设计,最后比较两种滤波器的幅频特性、相频特性和阶数。
题19图(1)matlab代码:%基于双线性变换法直接设计IIR数字滤波器Fs=80000;fp=15000;fs=20000;rs=40;wp=2*pi*fp/Fs;ws=2*pi*fs/Fs;Rp=-20*log10(1-0.02);As=40;[N1,wp1]=ellipord(wp/pi,ws/pi,Rp,As);[B,A]=ellip(N1,Rp,As,wp1);[Hk,wk1]=freqz(B,A,1000);mag=abs(Hk);pah=angle(Hk);%窗函数法设计FIR 数字滤波器 Bt=ws-wp;alph=0.5842*(rs-21)^0.4+0.07886*(rs-21); N=ceil((rs-8)/2.285/Bt); wc=(wp+ws)/2/pi;hn=fir1(N,wc,kaiser(N+1,alph)); M=1024;Hk=fft(hn,M); k=0:M/2-1;wk=(2*pi/M)*k;%画出各种比较结果图 figure(2);plot(wk/pi,20*log10(abs(Hk(k+1))),':','linewidth',2.5); hold onplot(wk1/pi,20*log10(mag),'linewidth',2); hold offlegend('FIR 滤波器','IIR 滤波器');axis([0,1,-80,5]);xlabel('w/\pi');ylabel('幅度/dB'); title('损耗函数'); figure(3)plot(wk/pi,angle(Hk(k+1))/pi,':','linewidth',2.5); hold onplot(wk1/pi,pah/pi,'linewidth',2); hold offlegend('FIR 滤波器','IIR 滤波器');xlabel('w/\pi');ylabel('相位/\pi'); title('相频特性曲线');(2)两种数字滤波器的损耗函数和相频特性的比较分别如图1、2所示:图1 损耗函数比较图 图2 相频特性比较图0.10.20.30.40.50.60.70.80.91-80-70-60-50-40-30-20-100w/π幅度/d B损耗函数FIR 滤波器IIR 滤波器0.10.20.30.40.50.60.70.80.91-1-0.8-0.6-0.4-0.200.20.40.60.81w/π相位/π相频特性曲线FIR 滤波器IIR 滤波器(3)IIR数字滤波器阶数:N=5FIR数字滤波器阶数:N=36(4)运行结果分析:由图2及阶数可见,IIR阶数低得多,但相位特性存在非线性失真,FIR具有线性相位特性。
FIR滤波器设计与实现实验报告目录一、实验概述 (2)1. 实验目的 (3)2. 实验原理 (3)3. 实验设备与工具 (4)4. 实验内容与步骤 (6)5. 实验数据与结果分析 (7)二、FIR滤波器设计 (8)1. 滤波器设计基本概念 (9)2. 系数求解方法 (10)频谱采样法 (11)最小均方误差法 (14)3. 常用FIR滤波器类型 (15)线性相位FIR滤波器 (16)非线性相位FIR滤波器 (18)4. 设计实例与比较 (19)三、FIR滤波器实现 (20)1. 硬件实现基础 (21)2. 软件实现方法 (22)3. 实现过程中的关键问题与解决方案 (23)4. 滤波器性能评估指标 (25)四、实验结果与分析 (26)1. 实验数据记录与处理 (27)2. 滤波器性能测试与分析 (29)通带波动 (30)虚部衰减 (31)相位失真 (32)3. 与其他设计方案的对比与讨论 (33)五、总结与展望 (34)1. 实验成果总结 (35)2. 存在问题与不足 (36)3. 未来发展方向与改进措施 (37)一、实验概述本次实验的主要目标是设计并实现一个有限脉冲响应(Finite Impulse Response,简称FIR)滤波器。
FIR滤波器是数字信号处理中常用的一种滤波器,具有线性相位响应和易于设计的优点。
本次实验旨在通过实践加深我们对FIR滤波器设计和实现过程的理解,提升我们的实践能力和问题解决能力。
在实验过程中,我们将首先理解FIR滤波器的基本原理和特性,包括其工作原理、设计方法和性能指标。
我们将选择合适的实验工具和环境,例如MATLAB或Python等编程环境,进行FIR滤波器的设计。
我们还将关注滤波器的实现过程,包括代码编写、性能测试和结果分析等步骤。
通过这次实验,我们期望能够深入理解FIR滤波器的设计和实现过程,并能够将理论知识应用到实践中,提高我们的工程实践能力。
本次实验报告将按照“设计原理设计方法实现过程实验结果与分析”的逻辑结构进行组织,让读者能够清晰地了解我们实验的全过程,以及我们从中获得的收获和启示。
fir滤波器公式c语言FIR滤波器是一种常用的数字滤波器,它通过对输入信号的加权求和来实现信号的滤波处理。
在这篇文章中,我们将介绍FIR滤波器的公式以及如何用C语言来实现它。
FIR滤波器的全称是有限脉冲响应滤波器(Finite Impulse Response Filter),它的特点是其响应仅在有限的时间范围内存在。
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)表示滤波器的第i个加权系数,N表示滤波器的阶数。
在C语言中,我们可以使用数组来表示滤波器的加权系数,使用循环来实现滤波器的延迟处理。
下面是一个简单的示例代码:```c#define N 10 // 滤波器的阶数float h[N] = {0.1, 0.2, 0.3, 0.4, 0.5, 0.4, 0.3, 0.2, 0.1, 0.05}; // 滤波器的加权系数float x[N] = {0}; // 输入信号的延迟单元float y = 0; // 滤波器的输出信号void firFilter(float input) {// 将输入信号插入延迟单元for (int i = N-1; i >= 1; i--) {x[i] = x[i-1];}x[0] = input;// 计算滤波器的输出信号y = 0;for (int i = 0; i < N; i++) {y += h[i] * x[i];}}int main() {// 输入信号float input = 0.5;// 执行滤波处理firFilter(input);// 输出滤波器的输出信号printf("滤波器的输出信号为:%f\n", y);return 0;}```在上面的示例代码中,我们定义了一个长度为N的加权系数数组h,一个长度为N的延迟单元数组x,以及一个输出信号变量y。
fir滤波器原理FIR滤波器(Finite Impulse Response Filter),有限脉冲响应滤波器,是一种数字信号处理中常用的滤波器。
它的特点是系统的输出仅由输入信号和系统的当前和以前的状态确定,与输入信号之前的任何时刻无关。
FIR滤波器的原理是基于其系统的脉冲响应。
脉冲响应是指当输入信号是一个单位脉冲函数(即只在一个瞬间为1,其他时间为0)时,系统的输出响应。
在FIR滤波器中,该脉冲响应是有限长的,因此称之为有限脉冲响应。
FIR滤波器的系统方程可以表示为:y[n] = b[0]*x[n] + b[1]*x[n-1] + b[2]*x[n-2] + ... + b[N]*x[n-N]其中,y[n]表示输出信号,x[n]表示输入信号,N为滤波器的阶数,b[0], b[1], ..., b[N]是滤波器的系数。
滤波器的阶数决定了滤波器的频率响应的陡峭程度,而系数则决定了滤波器对不同频率成分的衰减程度。
FIR滤波器的工作原理非常简单,它通过对输入信号的每个采样点进行加权求和来得到输出信号的对应采样点。
每个输入采样点与滤波器的系数进行乘法运算,并将结果累加,得到输出信号的对应采样点。
这个过程可以通过一组称为延迟线(Delay Line)的寄存器来实现。
FIR滤波器的优点是因为其脉冲响应是有限长的,所以在处理实时信号时无需考虑前一时刻的状态,非常适合用于实时应用。
另外,由于FIR滤波器不涉及差分方程,其稳定性和可控性更好。
总之,FIR滤波器是一种常用的数字滤波器,通过加权求和的方式对输入信号进行处理,并产生输出信号。
它的主要特点是有限脉冲响应和简单的工作原理。
fir滤波器的c语言实现读者对于fir滤波器的c语言实现的过程和细节问题。
具体步骤如下:第一步:fir滤波器的基本原理fir滤波器,即有限脉冲响应滤波器。
它是一种数字滤波器,通过对输入信号进行加权求和,得到输出信号。
其中,加权系数是固定的,称作滤波器的冲激响应(也称为系统函数)。
fir滤波器的传递函数为:H(z) = b0 + b1z^-1 + ... + bNz^-N其中,b0, b1, ... , bN为滤波器的系数。
为了得到输出信号,必须采样输入信号,并且对其进行加权求和。
如下所示:y[n] = b0x[n] + b1x[n-1] + ... + bNx[n-N]其中,x[n]为输入信号。
第二步:fir滤波器的实现步骤fir滤波器的实现步骤分为以下几个步骤:1. 定义滤波器系数数组fir滤波器的系数b0, b1, ... , bN可以由多种方式计算得出。
常用的方法有窗函数法、最小二乘法和频域设计法。
对于fir滤波器的实现,我们首先需要定义滤波器系数数组。
例如:float b[6] = {0.1, 0.2, 0.3, 0.2, 0.1, 0.1};这里我们定义一个长度为6的滤波器系数数组,分别为0.1,0.2,0.3,0.2,0.1,0.1,可以根据实际情况修改。
2. 定义输入和输出缓冲区为了实现fir滤波器,我们需要定义输入和输出缓冲区。
输入缓冲区存储每个采样点的输入信号,输出缓冲区存储每个采样点的输出信号。
通常情况下,输入和输出缓冲区的长度应该分别为滤波器的长度加1。
例如:float x[7] = {0, 0, 0, 0, 0, 0, 0};float y[7] = {0, 0, 0, 0, 0, 0, 0};这里我们定义了长度为7的输入和输出缓冲区。
fir滤波器需要对输入信号进行采样和更新缓冲区。
具体实现方法如下:采样x[0] = input;更新缓冲区for (int i = 6; i > 0; i) {x[i] = x[i-1];y[i] = y[i-1];}4. 计算加权和fir滤波器的核心是计算加权和,具体实现方法如下:float output = 0;for (int i = 0; i < 6; ++i) {output += b[i] * x[i];}计算完加权和后,需要更新输出缓冲区。
fir 相应曲线
FIR(有限脉冲响应)相应曲线是一种描述数字滤波器特性的曲线,通
常用于表示FIR滤波器的频率响应。
在FIR响应曲线中,横坐标表示归一化频率,纵坐标表示滤波器的增益。
在理想情况下,FIR响应曲线是一条水平线,表示滤波器在整个频率范围内的增益都是恒定的。
然而,在实际应用中,由于有限脉冲响
应的限制,滤波器的频率响应会存在一定的波动。
FIR响应曲线的形状取决于滤波器的系数设计。
通过调整滤波器的系数,可以改变滤波器的频率响应特性,从而实现不同的滤波功能。
例如,
可以使用FIR滤波器设计出具有特定带通、带阻或平滑频率响应的滤
波器。
FIR滤波器具有线性相位特性,即滤波器的相位响应与频率成正比。
这使得FIR滤波器在处理实时信号时具有较好的一致性。
此外,FIR滤波器的计算效率较高,适用于需要实时处理的应用场景。
实验四.数字信号处理算法实验实验4.1 :有限脉冲响应滤波器(FIR )算法实验一.实验目的1.掌握窗函数法设计FIR 滤波器的Matlab 实现,为CCS 提供滤波系数。
2.掌握采用C 语言在VC5509开发板上实现混频信号的FIR 滤波。
二.实验设备计算机,ICETEK-VC5509-A 实验箱及电源。
三.实验原理1. 窗函数法设计FIR 滤波器(详细理论请看《数字信号处理》原理书籍) 本实验要求:设计一个低通滤波器,通带截止频率fp=10kHz ,阻带截止频率fs1=22kHz ,阻带衰减ap=75dB ,采样频率fs=50kHz,计算出滤波系数fHn,并对混频信号(高频+低频正弦波)fIn 进行滤波,得输出波形fOut 。
解:过渡带宽度=fs1-fp=12kHz ;截止频率:f1=fp+(过渡带宽度)/2=16kHz f1对应的数字频率:Ω1=2πf1/fs=0.64π(rad) -理想低通滤波器单位脉冲响应:hd[n]=sin(0.64π(n-a))/(π(n-a)) 其中a=(N-1)/2 (n=0~N-1)-根据阻带衰减要求选择布莱克曼窗,窗函数长度N 为: N=5.98fs/过渡带宽度≈25则窗函数为:w[n]=0.42-0.5cos(2πn/24)+0.08cos(4πn/24) 滤波器脉冲响应为:h[n]=hd[n]w[n] (n=0~N-1) <1>-根据上面各式计算出h[n]。
2. FIR 滤波FIR 滤波器的差分方程为:1()()N i i y n h x n i -==-∑ <2>其中,h i ----滤波器系数;x(n)---滤波器的输入;y(n)--- 滤波输出。
根据公式<1><2>,得本例对应FIR 滤波器的差分方程为: y[n]=-0.001x[n-2]-0.002x[n-3]-0.002x[n-4]+0.01x[n-5]-0.009x[n-6]-0.018x[n-7]-0.049x[n-8]-0.02x[n-9] +0.11x[n-10]+0.28x[n-11]+0.64x[n-12] +0.28x[n-13]-0.11x[n-14]-0.02x[n-15]+0.049x[n-16]-0.018x[n-17]-0.009x[n-18]+0.01x[n-19] -0.002x[n-20]-0.002x[n-21]+0.001x[n-22] (n=0,1,2,...)采用线性缓冲区法(原理见备课笔记)解此差分方程,得FIR 滤波结果y(n)。