fir滤波器实现方法
- 格式:doc
- 大小:544.00 KB
- 文档页数:33
数字信号处理实验报告-FIR滤波器的设计与实现在数字信号处理中,滤波技术被广泛应用于时域处理和频率域处理中,其作用是将设计信号减弱或抑制被一些不需要的信号。
根据滤波器的非线性抑制特性,基于FIR(Finite Impulse Response)滤波器的优点是稳定,易设计,可以得到较强的抑制滤波效果。
本实验分别通过MATLAB编程设计、实现、仿真以及分析了一阶低通滤波器和平坦通带滤波器。
实验步骤:第一步:设计一阶低通滤波器,通过此滤波器对波型进行滤波处理,分析其对各种频率成分的抑制效果。
为此,采用零极点线性相关算法设计滤波器,根据低通滤波器的特性,设计的低通滤波器的阶次为n=10,截止频率为0.2π,可以使设计的滤波器被称为一阶低通滤波器。
第二步:设计平坦通带滤波器。
仿真证明,采用兩個FIR濾波器組合而成的阻礙-提升系統可以實現自定義的總三值響應的設計,得到了自定義的總三值響應函數。
实验结果:1、通过MATLAB编程,设计完成了一阶低通滤波器,并通过实验仿真得到了一阶低通滤波器的频率响应曲线,证明了设计的滤波器具有良好的低通性能,截止频率为0.2π。
在该频率以下,可以有效抑制波形上的噪声。
2、设计完成平坦通带滤波器,同样分析其频率响应曲线。
从实验结果可以看出,此滤波器在此频率段内的通带性能良好,通带范围内的信号透过滤波器后,损耗较小,滞后较小,可以满足各种实际要求。
结论:本实验经过实验操作,设计的一阶低通滤波器和平坦通带滤波器具有良好的滤波特性,均已达到预期的设计目标,证明了利用非线性抑制特性实现FIR滤波处理具有较强的抑制滤波效果。
本实验既有助于深入理解FIR滤波器的设计原理,也为其他应用系统的设计和开发提供了指导,进而提高信号的处理水平和质量。
基于DSP实现的FIR低通滤波器FIR(有限脉冲响应)低通滤波器是一种常见的数字信号处理(DSP)滤波器。
它的设计和实现非常灵活,可以用于去除数字信号中高频成分,使得信号能在一定的频率范围内进行平滑处理。
FIR低通滤波器有很多种设计方法,其中最简单的方法是基于窗函数设计,例如矩形窗、汉宁窗、布莱克曼窗等。
这些窗函数的选择取决于滤波器的性能要求和频率响应的形状。
在DSP中,FIR低通滤波器的实现可以采用直接形式、级联形式、并行形式和迭代形式等多种结构。
其中直接形式是最简单和直观的实现方式,也是最容易理解和实现的一种结构。
直接形式的FIR低通滤波器由一个延迟线、一组乘法器和加法器组成。
延迟线用于延迟输入信号,乘法器用于对延迟后的信号进行调制,而加法器则将调制后的信号相加得到输出信号。
```----------------------,,,x(n) -->, Delay ,-->, Multiply,-->--+ Sum ,--> y(n)Line ,,,----------------------```在实现过程中,需要注意的是延迟线的设置和乘法器的系数。
延迟线的长度决定了滤波器的阶数,即滤波器对输入信号的响应范围。
乘法器的系数则决定了滤波器的频率响应,可以通过窗函数的选取来确定。
通常,FIR滤波器的实现可以通过查表法或者卷积法来实现。
查表法通过预先计算所有可能的输入组合,并将其存储在一张查找表中,以减少计算量。
卷积法则通过将输入信号和滤波器的冲击响应进行卷积运算来得到输出信号。
当实现FIR低通滤波器时,还需要考虑滤波器的性能指标和算法的优化。
常见的性能指标包括滤波器的截止频率、抗混叠性能、通带和阻带的幅频特性等。
算法的优化可以从以下几个方面考虑:乘法器的系数选择、滤波器结构的选择、滤波器长度的选择和存储器的优化等。
总之,基于DSP实现的FIR低通滤波器是一种常用的数字信号处理滤波器,它可以用于去除数字信号中的高频成分,平滑信号的频谱。
FIR滤波器设计和DSP实现FIR滤波器(Finite Impulse Response Filter)又称为有限脉冲响应滤波器,是一种数字滤波器,其脉冲响应为有限长度。
FIR滤波器具有稳定性、线性相位等优点,广泛应用于数字信号处理(DSP)中。
1.窗函数法:窗函数法是FIR滤波器设计中最简单、最常用的方法之一、设计步骤主要有:选择合适的窗函数(如矩形窗、汉宁窗、哈宁窗等);确定滤波器的截止频率和通带或阻带波动范围;根据窗函数的特性进行滤波器系数的计算。
窗函数法设计得到的滤波器具有较好的频域响应,并且易于实现。
2.频率采样法:频率采样法是通过对滤波器在频域中的理想特性进行采样,然后进行逆变换得到滤波器系数。
设计步骤主要有:确定理想滤波器的频率响应;进行频率采样,得到取样频率上的实际频率响应;对实际频率响应进行逆变换,得到滤波器系数。
频率采样法设计的滤波器可以满足设计要求,但是需要进行逆变换,计算复杂度较高。
3.最小二乘法:最小二乘法是通过求解最小化均方差的优化问题,得到最佳滤波器系数。
设计步骤主要有:建立最小二乘优化问题的数学模型;对数学模型进行求解,得到最佳滤波器系数。
最小二乘法能够得到较好的滤波器性能,并且不需要进行逆变换,计算复杂度相对较低。
1.将滤波器的系数存储在系数寄存器中;2.将输入信号与相应的系数进行乘法运算;3.将乘法运算的结果累加得到输出信号;4.将输入信号和系数向右移动一个位置;5.重复步骤2-4,直到滤波器输出满足要求。
DSP实现可以采用硬件方法,如使用专用的FPGA或ASIC实现滤波器的计算单元;也可以采用软件方法,在DSP芯片上运行相应的滤波算法代码。
对于较复杂的滤波器设计,可以使用专门的滤波器设计软件进行设计和实现。
综上所述,FIR滤波器的设计和实现是数字信号处理中的重要内容,不同的设计方法和实现方式可以根据具体需求选择。
设计一个合适的FIR 滤波器可以满足信号处理的要求,并且在DSP实现中能够提高系统的运算效率和性能。
实验四FIR数字滤波器设计与软件实现
实验目的:
掌握FIR数字滤波器的设计与软件实现方法,了解滤波器的概念与基
本原理。
实验原理:
FIR数字滤波器全称为有限脉冲响应数字滤波器,其特点是具有有限
长度的脉冲响应。
滤波器通过一系列加权系数乘以输入信号的延迟值,并
将这些值相加得到输出信号。
FIR滤波器的频率响应由滤波器系数所决定。
实验步骤:
1.确定所需的滤波器的设计规格,包括截止频率、通带波纹、阻带衰
减等。
2.选择适当的滤波器设计方法,如窗函数、最佳近似法、最小二乘法等。
3.根据所选方法,计算滤波器的系数。
4.在MATLAB环境下,使用滤波器的系数实现滤波器。
5.输入所需滤波的信号,经过滤波器进行滤波处理。
6.分析输出的滤波信号,观察滤波效果是否符合设计要求。
实验要求:
1.完成FIR数字滤波器的设计和软件实现。
2.对比不同设计方法得到的滤波器性能差异。
3.分析滤波结果,判断滤波器是否满足设计要求。
实验器材与软件:
1.个人电脑;
2.MATLAB软件。
实验结果:
根据滤波器设计规格和所选的设计方法,得到一组滤波器系数。
通过
将滤波器系数应用于输入信号,得到输出滤波信号。
根据输出信号的频率
响应、通带波纹、阻带衰减等指标,评估滤波器的性能。
实验注意事项:
1.在选择设计方法时,需要根据滤波器要求和实际情况进行合理选择。
2.在滤波器实现过程中,需要注意滤波器系数的计算和应用。
3.在实验过程中,注意信号的选择和滤波结果的评估方法。
fir滤波器设计方法
fir滤波器是数字信号处理中常用的一种滤波器,它可以对信号进行滤波处理,去除噪声和干扰,提高信号的质量。
fir滤波器的设计方法有很多种,下面我们来介绍一下其中的几种常用方法。
第一种方法是窗函数法。
这种方法是最简单的fir滤波器设计方法,它的原理是将理想滤波器的频率响应与一个窗函数相乘,得到fir滤波器的频率响应。
常用的窗函数有矩形窗、汉宁窗、汉明窗等。
这种方法的优点是简单易懂,计算量小,但是滤波器的性能不够理想。
第二种方法是频率抽样法。
这种方法的原理是将理想滤波器的频率响应进行抽样,得到fir滤波器的频率响应。
抽样的频率可以根据滤波器的要求进行选择。
这种方法的优点是可以得到比较理想的滤波器性能,但是计算量较大。
第三种方法是最小二乘法。
这种方法的原理是通过最小化滤波器的误差平方和来得到fir滤波器的系数。
这种方法可以得到比较理想的滤波器性能,但是计算量较大。
第四种方法是频率采样法。
这种方法的原理是通过对滤波器的频率响应进行采样,得到fir滤波器的系数。
这种方法可以得到比较理想的滤波器性能,但是需要进行频率响应的采样,计算量较大。
以上是fir滤波器的几种常用设计方法,不同的方法适用于不同的滤波器要求。
在实际应用中,需要根据具体的情况选择合适的设计
方法,以得到满足要求的fir滤波器。
FIR滤波器的MATLAB设计与实现FIR滤波器(Finite Impulse Response Filter)是一种数字滤波器,其特点是其响应仅由有限长度的序列决定。
在MATLAB中,我们可以使用信号处理工具箱中的函数来设计和实现FIR滤波器。
首先,需要明确FIR滤波器的设计目标,包括滤波器类型(低通、高通、带通、带阻)、通带和阻带的频率范围、通带和阻带的增益等。
这些目标将决定滤波器的系数及其顺序。
在MATLAB中,我们可以使用`fir1`函数来设计FIR滤波器。
该函数的使用方式如下:```matlabh = fir1(N, Wn, type);```其中,`N`是滤波器长度,`Wn`是通带边缘频率(0到0.5之间),`type`是滤波器的类型('low'低通、'high'高通、'bandpass'带通、'stop'带阻)。
该函数会返回一个长度为`N+1`的滤波器系数向量`h`。
例如,如果要设计一个采样频率为10kHz的低通滤波器,通带截止频率为2kHz,阻带频率为3kHz,可以使用以下代码:```matlabfc = 2000; % 通带截止频率h = fir1(50, fc/(fs/2), 'low');```上述代码中,`50`表示滤波器的长度。
注意,滤波器的长度越大,滤波器的频率响应越陡峭,但计算成本也更高。
在设计完成后,可以使用`freqz`函数来分析滤波器的频率响应。
例如,可以绘制滤波器的幅度响应和相位响应曲线:```matlabfreqz(h);```除了使用`fir1`函数外,MATLAB还提供了其他函数来设计FIR滤波器,如`fir2`、`firpm`、`firls`等,具体使用方式可以参考MATLAB的文档。
在实际应用中,我们可以将FIR滤波器应用于音频处理、图像处理、信号降噪等方面。
例如,可以使用FIR滤波器对音频信号进行去噪处理,或者对图像进行锐化处理等。
FIR滤波器设计与实现一、FIR滤波器的设计原理y(n)=b0*x(n)+b1*x(n-1)+b2*x(n-2)+...+bM*x(n-M)其中,b0、b1、..、bM是滤波器的系数,M是滤波器的阶数。
在设计FIR滤波器时,需要确定滤波器的截止频率、滤波器类型(低通、高通、带通、带阻)以及滤波器的阶数。
通常情况下,滤波器的阶数越高,滤波器的性能越好,但计算复杂度也越高。
1.确定滤波器的截止频率和滤波器类型。
根据信号的频谱特性和滤波器的要求,确定滤波器的截止频率和滤波器类型。
2.确定滤波器的阶数。
根据滤波器的设计要求和计算资源的限制,确定滤波器的阶数。
3.计算滤波器的系数。
通过设计方法(如窗函数法、频率采样法、最优化法等),计算滤波器的系数。
4.实现滤波器。
根据计算得到的滤波器系数,使用差分方程或直接形式等方法实现FIR滤波器。
二、FIR滤波器的实现方法1.差分方程形式差分方程形式是FIR滤波器的一种常见实现方法,它基于差分方程对输入信号进行逐点计算。
根据滤波器的差分方程,可以使用循环结构对输入信号进行滤波。
2.直接形式直接形式是另一种常见的FIR滤波器实现方法,它基于滤波器的系数和输入信号的历史值对输出信号进行逐点计算。
直接形式的计算过程可表示为:y(n)=b0*x(n)+b1*x(n-1)+b2*x(n-2)+...+bM*x(n-M)其中,b0、b1、..、bM是滤波器的系数,x(n)、x(n-1)、..、x(n-M)是输入信号的历史值。
直接形式的优点是计算过程简单,缺点是计算量比较大,特别是当滤波器的阶数较高时。
除了差分方程形式和直接形式外,还有其他一些高级实现方法如离散余弦变换(DCT)和快速卷积等,它们能够进一步提高FIR滤波器的计算效率和性能。
总结:本文介绍了FIR滤波器的设计原理和实现方法。
FIR滤波器采用离散时间信号的卷积运算,通过确定截止频率、滤波器类型和阶数,计算滤波器系数,并使用差分方程或直接形式等方法实现滤波器。
基于DSP实现的FIR低通滤波器FIR(Finite Impulse Response)低通滤波器是一种数字信号处理(DSP)算法,用于滤除输入信号中高于一些截止频率的频域成分,并使输出信号只包含低于该截止频率的成分。
FIR低通滤波器通常由一组脉冲响应函数(Impulse Response)的加权和组成,其中权重决定了滤波器的频率响应。
实现FIR低通滤波器的一种常见方法是使用离散时间线性卷积运算。
滤波器的输入信号通过一个延迟线数组,然后与一组权重向量进行内积。
该内积计算的结果即为滤波器的输出。
在DSP领域,用于实现FIR低通滤波器的算法有很多种,其中最常用的是基于迭代结构(Direct Form)的算法。
此算法按照滤波器的脉冲响应函数的长度进行迭代,每次迭代处理输入信号的一个样本。
该算法的优点是实现简单、稳定可靠。
下面是一个基于DSP实现的FIR低通滤波器的伪代码示例:```python#定义滤波器的截止频率和脉冲响应函数长度def cutoff_frequency = 1000 # 截止频率为1kHzdef length = 101 # 脉冲响应函数长度为101#初始化滤波器的权重向量def weights = [0.0] * length#计算滤波器的脉冲响应函数for i in range(length):#计算当前权重对应的频率frequency = i * sampling_rate / length#如果当前频率小于截止频率,则设置权重为1,否则为0weights[i] = 1 if frequency <= cutoff_frequency else 0#初始化输入和输出信号数组def input_signal = [0.0] * signal_lengthdef output_signal = [0.0] * signal_length#循环处理输入信号的每个样本for i in range(signal_length):#延迟线数组移位,并将当前输入样本放入延迟线的第一个位置delay_line[1:] = delay_line[:-1]delay_line[0] = input_signal[i]#计算滤波器的输出output_signal[i] = sum(delay_line * weights)```这段示例代码实现了一个FIR低通滤波器,截止频率为1kHz,脉冲响应函数长度为101、首先,根据截止频率计算出权重向量。
FIR滤波器在DSP上的实现
1引言
近年来,随着数字信号处理(DSP)技术的发展,自由响应滤波器(FIR)已成为DSP系统的核心部分,广泛用于各种应用,如声学信号处理、通信器件、生物医学信号处理等。
本文首先介绍FIR滤波器的基本原理,之后介绍如何在DSP上实现FIR滤波器,主要介绍两种实现方法:延迟求和和移位加法(Shift-Add)。
最后,将对比分析两种实现方法的优劣,并分析哪些条件下使用移位加法。
2FIR滤波器的原理
输入的时域信号x[n]经过一系列不同阶数的延迟单元滤波器系数h[n]的乘法和求和运算,从而得到输出的时域信号y[n],即
y[n]=\sum_{k=0}^{k=N}h_{k}x[n-k]
其中,x[n]表示输入时域信号,h[n]表示滤波器系数,y[n]表示输出时域信号,N表示滤波器的阶数。
3在DSP上实现FIR滤波器。
FIR低通滤波器C语言实现下面是一个基于C语言的FIR低通滤波器的实现示例,通过使用FIR 算法对输入信号进行滤波来实现低通滤波的效果。
```c#include <stdio.h>#include <stdlib.h>#define N 1000 // 输入信号长度#define M 51 // FIR滤波器阶数float fir_filter(float x);void generate_input(float input[]);void generate_coefficients(float coefficients[]);int maifloat input[N];float output[N];float coefficients[M];//生成输入信号generate_input(input);//生成滤波器系数generate_coefficients(coefficients);//FIR滤波for (int n = 0; n < N; n++)output[n] = fir_filter(input[n]);}//打印滤波结果for (int n = 0; n < N; n++)printf("%f\n", output[n]);}return 0;//FIR滤波函数float fir_filter(float x)float y = 0;static float shift_register[M] = {0}; // 移位寄存器,用于存储输入序列的历史数据static float coefficients[M] = {0}; // FIR滤波器系数//数据移位for (int i = M - 1; i >= 1; i--)shift_register[i] = shift_register[i - 1];}//输入数据存入移位寄存器shift_register[0] = x;//FIR滤波for (int i = 0; i < M; i++)y += coefficients[i] * shift_register[i];}return y;//生成随机输入信号(仅作示例用)void generate_input(float input[])for (int n = 0; n < N; n++)input[n] = (float)rand( / (float)(RAND_MAX/2) - 1; // 生成范围为[-1, 1)的随机数}//生成低通滤波器系数(仅作示例用)void generate_coefficients(float coefficients[])float cutoff_freq = 0.1; // 截止频率(归一化)for (int i = 0; i < M; i++)if (i == M/2)coefficients[i] = 2 * cutoff_freq; // 滤波器的全通增益} elsecoefficients[i] = sin(2 * M_PI * cutoff_freq * (float)(i - M/2)) / (float)(i - M/2); // 低通滤波系数}}```以上代码实现了一个简单的FIR低通滤波器,主要包含了`fir_filter`函数用于滤波操作,`generate_input`函数用于生成输入信号,`generate_coefficients`函数用于生成滤波器系数。
目录第一章、绪论 (3)1.1 数字滤波器发展概况 (4)1.1.1 数字滤波器技术发展动态 (5)1.1.2 FIR DF 和IIR DF比较 (6)第二章、FIR滤波器设计方法 (7)第三章、FIR数字滤波器理论及基于MA TLAB设计方法 (13)3.1 数字滤波器的分类 (13)3.2 FIR数字滤波器的结构 (14)3.3 FIR数字滤波器软件设计方法 (18)3.4 傅氏级数设计FIR滤波器的基本理论 (19)3.5 基于MATLAB的FIR滤波器设计 (22)参考书目 (32)鸣谢 (33)摘要数字滤波技术是数字信号处理的核心技术,而FIR数字滤波器因其具有严格的线性相位、总是稳定等特点而广泛应用于数字信号处理的各个领域,是一个非常重要的研究课题。
本文主要研究了数字滤波器的基本理论,并对有限冲击响应滤波器的设计和实现进行了分析和研究,尤其是在MATLAB环境下的FIR数字滤波器的设计,主要是窗函数法及利用MATLAB环境下FIR滤波器的设计工具的设计方法,并用MATLAB语言编写了可以选择滤波器四种类型及七种窗口函数的仿真程序,进行了具体的仿真分析。
关键词:数字信号处理器;数字滤波器;FIR ;MATLABAbstractDigital fitler algorithm is one of the core techniques in processing. The FIR digital filter has been widely used in signal processing field because of its strict linear phase and stability, now, it becomes a very sigificant research task.In this paper, the mainly task is researching the basic theories of the digital filter,and analyzing the designing and realization of the Finite Impulse Response digital filter(FIR), especially the method which realized under MATLAB environment, the window functions is primarily introduced, the method of using the digital filter design tools in MATLAB is also applied. It also compiles a procedure with MATLAB languagewhich can select four sorts of digital filter and seven kinds of window functions.第一章、绪论1.1数字滤波器的发展概况1.1.1 数字滤波器的技术发展动态20世纪60年代起,由于计算机技术、集成工艺和材料工业的发展,滤波器的发展上了一个新台阶,朝着低功耗、高精度、小体积、多功能、稳定可靠和价廉等方向努力,其中高精度、小体积、多功能、稳定可靠成为70年代以后的主攻方向,导致数字滤波器、RC有源滤波器、开关电容滤波器和电荷转移器等各种滤波器的飞速发展。
到70年代后期,上述几种滤波器的单片集成已被研制出来并得到应用,90年代至现在主要致力于把各类滤波器应用于各类产品的开发研制。
当然,对滤波器本身的研究仍在不断进行。
数字滤波,是数字信号处理的基本核心内容之一,占有极重要的地位。
它是语音、图像处理、软件无线电、通信、模式识别、谱分析等应用中的一个基本处理算法。
数字滤波器是一个具有按预定的算法,将输入离散时间信号转换为所要求输出的离散时间信号的特定功能装置,是一个离散时间系统。
与模拟滤波器相比,数字滤波器不用考虑器件的噪声、电压漂移、温度漂移等问题,可以更容易地实现不同幅度和相位频率等特性指标。
几乎每一科学领域和工程领域如声学、物理学、数据通信、控制系统和雷达等都涉及到信号,在应用中都希望根据期望的指标把一个信号的频谱加以修改、整形或运算,这些过程都可能包含衰减一个频率范围阻止或隔离一些频率成分。
数字滤波作为数字信号处理的重要组成部分有着十分广泛的应用前景,科作为应用系统对信号的前置处理。
从形式上看,数字滤波有线性滤波和非线性滤波。
线性滤波是指卷积滤波,又分为频域滤波和时域滤波,在时域中根据滤波方式又分为递归滤波和非递归滤波。
非线性滤波主要指同态滤波,它是用取对数的方法将非线性问题线性化。
由于电子计算机技术和大规模集成电路的发展,数字滤波器可用计算机软件实现,也可用大规模集成数字硬件实时实现。
应用数字滤波器处理模拟信号时,首先必须对输入模拟信号进行限带、抽样和模\数转换。
为得到模拟信号,数字滤波器处理的输出数字信号须经数\模转换、平滑。
数字滤波器具有精度高、高可靠性、可程控改变特性或复用、便于集成等优点。
与传统的通过硬件电路实现的模拟滤波器相比,数字滤波器有几大优点。
(1)简化了硬件电路的设计,提高了硬件电路的集成度和可靠性。
(2)对干扰信号的抑制能力有明显提高,这对系统的控制精度和稳定性的提高起到了促进作用。
(3)数字滤波器的参数调节比模拟滤波器更方便、灵活。
1.1.2FIR DF 和IIR DF比较:首先,从性能上说,IIR DF 可以用较少的阶数获得很高的选择性,所用存储单元少,运算次数少,所以经济而效率高。
但这个高效率的代价是相位的非线性,选择性越好,则相位非线性越严重。
相反,FIR DF则可以得到严格的线性相位。
但是,如果需要获得一定的选择性,则需要用较多的存储器和要进行较长的运算时间,成本比较高,信号延时也较大。
然而,FIR DF这些缺点是相对于IIR DF而言的。
如果按相同的选择性和相同的线性要求的话,那么IIR DF就必须加全通网络来进行相位校正,因此同样要大大增加滤波器的阶数和复杂性。
如果相位特性要求严一点,那么FIR DF不仅在性能上而且在经济上都将更优于FIR DF。
从结构上看,IIR DF必须采用递归型结构,极点位置必须在单位圆内,否则系统将不稳定。
另外,在这种结构中,由于运算过程中对序列的四舍五入处理,有时会引起微弱的寄生振荡。
相反,FIR DF主要采用非递归结构,不论在理论上还是在实际的有限精度运算中都不会出现稳定性问题,运算误差也较小。
此外,FIR DF可以采用快速傅立叶变换算法(FFT)在相同阶数的条件下,运算速度要快得多。
从设计角度看,IIR DF可以借助模拟滤波器的成果,因此一般都有有效的封闭函数的设计公式可供准确的计算。
又有许多数据和表格可查,设计和计算的工作量比较小,对计算工具的要求不高。
FIR DF 设计则一般没有封闭函数的设计公式。
窗口法虽然仅仅对窗口函数可以给出计算公式,但计算通阻带衰减等仍无法显示表达式。
一般,FIR DF的设计只有计算程序可循,因此对计算工具要求较高。
然而,这个特点又带来相反的一面,即IIR DF虽然设计简单,但主要是用于设计具有片段常数特性的滤波器,如低、高、带通及带阻等,往往脱离不了模拟滤波器的格局。
而FIR DF则要灵活得多,尤其是频率采样设计法更容易适应各种幅度特性和相位特性的要求,可以设计出理想的正交变换,理想微分,线性调频等各种重要网络。
因而,有更大适应性和更广阔天地。
从以上简单比较我们可以看到IIR DF和FIR DF各有所长,所以在实际应用时应该综合各方面考虑来加以选择。
例如,从使用要求来看在对相位要求不敏感的场合,如语言通讯等,选用IIR DF较合适,可以充分发挥其经济高效的特点。
而对于图像信号处理,数据传输等以波形携带信息的系统,则对线性相位要求较高,如有条件,采用FIR DF较好。
当然实际设计中经济上的要求及计算工具的条件等多方面的因素还是要加以考虑的。
第二章、FIR滤波器设计方法最早的FIR DF设计方法大致分为四类:窗口法(Window Method),频率采样方法(Frequency Sampling Method),频率变换法(Frequency Transformation Method),最佳滤波器设计方法(Optimal Filter Design Method)。
窗口法计算简单,但不易给出好的计算结果,特别是不能很好的折中过渡带和幅频响应误差之间矛盾。
在其他三种基本方法基础上发展起来的FIR DF设计方法大致有以下几种:1.Chebyshev 意义下(in the Chebyshev sense)的最佳一致逼近及其改进方法;2.以Parka-McClellan 理论和Remez 算法为基础的算法;3.最小二乘法(Minimizing Quadratic Measure)和梯度下降法;4.改进的频率采样法(Modified Uniform Sampling)和非均匀频率采样法(Nonuniform Sampling).FIR DF设计方法的性能,主要从计算复杂度及其设计结果两方面来评价。
事实上,FIR DF的设计工作,可以描述为这样的一个优化问题:寻找一组冲击响应的实质解,使设计出的FIR DF的频率响应(即其冲击响应的Fourier 变换)满足或最大限度的接近所提出的理想要求。
下面简要介绍两种FIR DF设计的最优化准则。
一、方误差最小准则这一准则是使误差能量最小,用表示要求的频率响应,表示实际得到的滤波器频率响应,以表示频率响应误差,即则均方误差为设计的目的就是选择一组使得最小。
我们先将式中的和分别用他们的冲击响应表示由于用FIR滤波器来逼近,故长度是有限长的。
若将他们代入可得按照帕赛瓦公式可得由此看出,等式右边第二个求和式只取决于给定的特性,它和设计值无关,故是一个常数,要使得最小,就必须使第一项求和式最小,即希望在这一条件下就有二、最大误差最小化原则也称加权切贝雪夫等波纹逼近。
由于能得到严格线性相位是FIR DF的主要优点(区别于IIR DF),故我们只讨论线性相位FIR DF的设计问题。
如前所述,当奇对称或偶对称,FIR DF的频率响应将具有线性相位特性。
当为奇对称及偶对称,N为奇、偶的四种情况,FIR DF的频率响应可统一表示为下式:其中是幅度函数,是标量,可包括正、负值。
将四种情况列在表2.1.1中。
利用三角恒等式,可以将表示成两项相乘的形式。
即对第一种情况其中对第二种情况其中对第三种情况其中对第四种情况其中四种情况下,系数互相转换的关系为第一种情况第二种情况第三种情况第四种情况我们将四种情况的归纳在表2.1.2中现在,引出加权切比雪夫等波螺纹逼近问题。