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)
b=fir1(126,6500/32000*2)
注意:在DSP汇编语言中,不能直接输入十进制小数,在MATLAB中进行如下转换:a=int16(b*32768)
或a=round(b*2^15) 则将系数转换为Q15的定点小数形式。

合集下载

FIR数字滤波器设计函数

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 参数,设计各种加窗的滤波器。

(整理)FIR数字滤波器的(海明)窗函数法设计.

(整理)FIR数字滤波器的(海明)窗函数法设计.

FIR数字滤波器的(海明)窗函数法设计1.课程设计目的(1)熟悉并掌握MATLAB中有关声音(wave)录制、播放、存储和读取的函数。

(2)加深对FIR数字滤波器设计的理解,并用窗函数法进行FIR数字滤波器的设计。

(3)将设计出来的FIR数字滤波器利用MATLAB进行仿真。

(4)对一段音频文件进行加入噪声处理,对带有噪声的文件进行滤波处理。

2.设计方案论证2.1 Matlab语言概述MATLAB是一种以矩阵运算为基础的交互式程序语言,专门针对科学、工程计算及绘图的需求。

随着版本的不断升级,内容不断扩充,功能更加强大,从而被广泛应用于仿真技术、自动控制和数字信号处理领域。

此高级语言可用于技术计算此开发环境可对代码、文件和数据进行管理交互式工具可以按迭代的方式探查、设计及求解问题数学函数可用于线性代数、统计、傅立叶分析、筛选、优化以及数积分等二维和三维图形函数可用于可视化数据各种工具可用于构建自定义的图形用户界面各种函数可将基于MATLAB的算法与外部应用程序和语言(如C、C++、Fortran、Java、COM 以及Microsoft Excel)集成不支持大写输入,内核仅仅支持小写2.2声音处理语音是人类获取信息的重要来源和利用信息的重要手段。

语音信号处理是一门发展十分迅速,应用非常广泛的前沿交叉学科,同时又是一门跨学科的综合性应用研究领域和新兴技术。

声音是一种模拟信号,而计算机只能处理数字信息0和1。

因此,首先要把模拟的声音信号变成计算机能够识别和处理的数字信号,这个过程称为数字化,也叫“模数转换”。

在计算机对数字化后的声音信号处理完后,得到的依然是数字信号。

必须把数字声音信号转变成模拟声音信号,然后再图1 选择windows下的录音机”或是点击快捷按钮图5 加噪后语音信号和频谱图7 滤波器幅频特性与相频特性设计的滤波器是用单位采样响应h(n)表示的,可以利用带噪声语音图8滤波器系统函数。

实验7 窗函数法设计FIR数字滤波器

实验7 窗函数法设计FIR数字滤波器

实验7窗函数法设计FIR数字滤波器一、实验目的掌握窗函数法设计F1R数字滤波器的原理和具体方法二、实验设备与环境计算机、Mat1ab软件环境三、实验基础理论1>基本原理窗函数设计法的基本思想为,首先选择一个适当的理想的滤波器Hd(,3),然后用窗函数截取它的单位脉冲响应%(九),得到线性相位和因果的FIR滤波器,这种方法的重点是选择一个合适的窗函数和理想滤波器,使设计的滤波器的单位脉冲响应逼近理想滤波器的单位脉冲响应。

2、设计步骤(1)给定理想滤波器的频率响应Hd("3),在通带上具有单位增益和线性相位,在阻带上具有零响应。

一个带宽为g(3c<Tr)的低通滤波器由下式给定h(e j^=(eW∣ω∣≤ωc虱)一1Oωc<∣ω∣<π其中α为采样延迟,其作用是为了得到因果的系统。

(2)确定这个滤波器的单位脉冲响应为了得到一个h(n)长度为N的因果的线性相位FIR滤波器,我们令N-Ia=-2-(3)用窗函数截取hd(τι)得到所设计FIR数字滤波器h(n)h(n)=h d(n)w(n)3、窗函数的选择常用的窗函数有矩形窗、汉宁窗、海明窗、布莱克曼窗、凯瑟窗等。

Mat1ab提供了一些函数用于产生窗函数,如下表所示:在设计过程中我们需要根据给定的滤波器技术指标,选择滤波器长度N 和窗函数3(n)°表7.2列出了常用的窗函数的一些特性,可供设计时参考。

其中幻是修正的零阶贝塞尔函数,参数B 控制最小阻带衰减,这种窗函数对于相同的N 可以提供不同的过渡带宽。

由于贝塞尔函数比较更杂,这种窗函数的设计方程很难推导,然而幸运的是,有一些经验设计方程可以直接使用。

已知给定的指标叫Msc,Rp 和4,滤波器长度N 和凯瑟窗参数B 可以按如下凯瑟窗设计方程给出过渡带宽:∆ω=ωst -ωp入一7.95 2.285∆ω_(0.1102(4-8.7) ,P=iθ.5842(4-21)04+0.07886(4-21), 四、实验内容1、设计一个数字低通FIR 滤波器,其技术指标如下ωp =0.2τr,RP=0.25dBωst =0.3τr,A s =50dB分别采用矩形窗、汉宁窗、海明窗、布莱克曼窗、凯瑟窗设计该滤波器。

fir滤波器窗函数设计法

fir滤波器窗函数设计法

fir滤波器窗函数设计法
FIR (Finite Impulse Response)滤波器的窗函数设计法是一种经典的数字滤波器设计方法。

它通过选择一个合适的窗函数来对滤波器的频率响应进行加权,从而实现对信号的滤波。

窗函数设计法的基本步骤如下:
1. 确定滤波器的设计规格:包括截止频率、通带和阻带的幅频响应要求等。

2. 根据设计规格,计算出滤波器的理想频率响应:可以使用理想滤波器的频率响应作为目标。

3. 选择一个合适的窗函数:常用的窗函数有矩形窗、汉宁窗、汉明窗等。

选择窗函数的关键是考虑到主瓣宽度和副瓣衰减的平衡。

4. 将选择的窗函数应用于理想频率响应上,得到加权后的频率响应。

5. 对加权后的频率响应进行反变换,得到滤波器的时域响应。

6. 根据需要,对时域响应进行截断或零增益处理,以满足设计规格。

7. 最后,根据计算得到的滤波器系数,可以通过巴特沃斯频率抽样公式将其转换为巴特沃斯直接型或传输函数型,以便在数字系统中实现滤波。

需要注意的是,FIR滤波器的窗函数设计法是一种近似方法,设计的滤波器无法完全符合理想要求。

设计过程中需要权衡主瓣宽度和副瓣衰减等因素,以及选择合适的截断或零增益处理方式,以获得满
足实际需求的滤波器性能。

FIR数字低通滤波器的(汉宁)窗函数法设计

FIR数字低通滤波器的(汉宁)窗函数法设计

)(9cos 15.0)(12cos 15.0)(1919n R n n R N n n w ⎥⎦⎤⎢⎣⎡⎪⎭⎫ ⎝⎛-=⎥⎦⎤⎢⎣⎡⎪⎭⎫ ⎝⎛--=ππ2.3进行语音信号的采集(1)按“开始”-“程序”-“附件”-“娱乐”-“录音机”的顺序操作打开Window s系统中的录音机软件。

如图1所示。

图1 wi ndows 录音机(2)用麦克风录入自己的声音信号并保存成wav 文件。

如图2所示。

图2 保存文件保存的文件按照要求如下:① 音信号文件保存的文件名为“y uxueji ao.wav ”。

②语音信号的属性为“8.000KH z,8位,单声道 7KB /秒” ,其它选项为默认。

2.4语音信号的分析将“yu xuejiao .wav ”语音文件复制到计算机装有Ma tlab 软件的磁盘中相应Mat lab目录中的“work ”文件夹中。

打开Matlab 软件,在菜单栏中选择“File ”-图3语音信号的截取处理图在图3中,其中第一个图为原始语音信号;第二个图是截短后的信号图。

图4频谱分析图其中第二个图是信号的FFT 结果,其横坐标的具体值是X (k)中的序号k;第三个图是确定滤波频率范围的参考图,其横坐标的具体值应当是遵循DFT 定义式和频率分辨率求得的:∑-===10)()]([)(N n k N W n x n x DFT k X π当k等于0时, 020j kn Njk knNe eW ==⋅-=π,从数字角频率上看,对应的正好是0=ω即直流的位置,也就是说,在取滤波频段时,当将主要能量(即红色框的部分)保留,其余频段部分的信号滤除。

)]([)(n x DFT k X =相当于是信号)(n x 的实际频谱)]([)(n x DFT ej X w =采样,而)(n x 又是连续时间语音信号)(t x 的采样。

)(k X 的每两个相邻取值之间的频率间隔大小对应到语音信号)(n x 的频谱中去,其频率间隔大小正好是采样结果的长度采样速率===∆L f f f s det f ∆称频率分辨率,其中Hz f s 8000=,10000=L ,p2=sum(s2.^2)-sum(s1.^2);SNR1=10*log10(p1/p2);p3=sum(s4.^2)/8000;p4=sum(s3.^2)/8000-sum(s4.^2)/8000;SNR2=10*log10(p3/p4);2.6 噪声叠加图5 语音信号与加噪声后语音信号对比图五为语音信号与加噪声后语音信号对。

FIR滤波器的设计说明

FIR滤波器的设计说明

WR
( )
sin(N / 2) sin( / 2)
N
sin(N / 2) N / 2
N
sin x
x
N的改变不能改变主瓣与旁瓣的比例关系,只能改
变WR( 的绝对值大小和起伏的密度。
肩峰值的大小决定了滤 波器通带内的平稳程度 和阻带内的衰减,所以 对滤波器的性能有很大 的影响。
c
0. 0895 1
一、FIR数字滤波器的线性相位特性
H (e j )线性相位是指 ()是的线性函数
第一类线性相位
()
第二类线性相位
d () d
可以证明,线性相位FIR滤波器的单位脉冲 响应应满足下面条件:
h(n)为实序列,且满足 h(n) h(N 1 n),N为 长度,即,h(n)关于 N 1 偶对称或奇对称。
2
分四种情况:
1. h(n) 偶对称, h(n) = h(N-1-n) 2. h(n) 偶对称, h(n) = h(N-1-n)
N 为奇数 N 为偶数
3. h(n) 奇对称, h(n) = - h(N-1-n) N为奇数
4. h(n) 奇对称, h(n) = - h(N-1-n) N为偶数
四种线性相位FIR DF特性:
Io
I0(x)是零阶修正贝塞尔函数; β可自由选择,决定主瓣宽度与 旁瓣衰减。

0 n N 1
β越大,w(n)窗越窄,其频谱的主瓣变宽,旁瓣变小。 一般取 4<β<9。
β=5.44 接近汉明;β=8.5 接近布莱克曼 β=0 为矩形
第一种情况 ,偶、奇,四种滤波器都可设计。
第二种情况,偶、偶,可设计低、带通滤波器, 不能设计高通和带阻。
第三种情况,奇、奇,只能设计带通滤波器, 其它滤波器都不能设计。

FIR滤波器的MATLAB设计与实现

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滤波器数学公式一、引言在信号处理领域,fir滤波器是一种常见的数字滤波器,它可以用来对信号进行滤波和频率选择。

fir滤波器的设计和性能评估往往涉及到一些数学公式。

本文将介绍fir滤波器的数学公式及其应用。

二、fir滤波器的定义fir滤波器是一种线性时不变系统,它的输出是输入信号和滤波器的冲激响应之间的卷积运算。

fir滤波器的冲激响应可以用一个有限长度的序列h(n)来表示,因此也被称为有限脉冲响应滤波器。

fir滤波器的输出可以用以下公式表示:y(n) = ∑[h(k) * x(n-k)]其中,y(n)表示滤波器的输出信号,x(n)表示滤波器的输入信号,h(k)表示滤波器的冲激响应。

三、fir滤波器的设计方法fir滤波器的设计方法有很多种,常见的包括窗函数法、最小二乘法和频率采样法等。

其中,窗函数法是最常用的一种设计方法。

窗函数法的设计公式如下:h(n) = w(n) * sinc(nT)其中,w(n)表示窗函数,sinc函数定义为sinc(x) = sin(πx)/(πx),T表示采样周期。

四、fir滤波器的性能评估fir滤波器的性能评估通常包括频率响应、幅频响应、相频响应和群延迟等指标。

其中,频率响应是指滤波器在不同频率下的响应情况,可以用以下公式表示:H(ω) = ∑[h(n) * e^(-jωn)]其中,H(ω)表示滤波器的频率响应,ω表示频率。

幅频响应是指滤波器在不同频率下的增益情况,可以用以下公式表示:|H(ω)| = √[Re(H(ω))^2 + Im(H(ω))^2]相频响应是指滤波器在不同频率下的相位变化情况,可以用以下公式表示:θ(ω) = atan2[Im(H(ω))/Re(H(ω))]群延迟是指滤波器在不同频率下的信号传输延迟情况,可以用以下公式表示:τ(ω) = -dθ(ω)/dω五、fir滤波器的应用fir滤波器广泛应用于信号处理领域,常见的应用包括音频处理、图像处理、通信系统等。

实验六用窗函数设计FIR滤波器

实验六用窗函数设计FIR滤波器一、引言数字滤波器是用于处理数字信号的重要工具,而FIR(Finite Impulse Response)滤波器是其中一类常见的滤波器。

在FIR滤波器中,输出信号的每个样本值仅依赖于输入信号在过去固定时间窗口内的样本值。

窗函数则是用于设计FIR滤波器的一种常见方法。

本实验将介绍如何用窗函数设计FIR滤波器,并通过一系列实验验证其性能。

二、实验目的1.了解FIR滤波器的原理和窗函数设计方法。

2.利用MATLAB工具进行FIR滤波器设计与性能评估。

3.分析不同窗函数对FIR滤波器的影响。

三、窗函数设计方法在设计FIR滤波器时,可以通过选择不同的窗函数来实现不同的频率响应。

常见的窗函数有矩形窗、汉宁窗、汉明窗、布莱克曼窗等。

在本实验中,我们将以汉宁窗为例进行讲解。

1.首先确定滤波器的截止频率和通带误差。

2.根据通带误差和滤波器的截止频率计算阶数。

3.根据阶数选择合适大小的窗口长度。

4.选择合适的窗函数,如汉宁窗。

5.计算窗函数的系数,并与理想滤波器的冲击响应相乘得到最终的滤波器系数。

四、实验步骤1.确定滤波器参数:截止频率、通带误差等。

2.根据通带误差和截止频率计算滤波器的阶数。

3.选择合适大小的窗口长度,通常选择大于滤波器阶数的2倍。

4.选择窗函数,如汉宁窗,计算窗函数的系数。

5.根据窗函数系数和截止频率计算滤波器的系数。

6.绘制滤波器的频率响应曲线。

7.利用设计好的FIR滤波器对输入信号进行滤波,并观察滤波效果。

五、实验结果与分析在本实验中,我们选择了截止频率为1kHz的低通滤波器。

首先计算滤波器的阶数,假设通带误差为0.01,根据公式可得N=3.32/((截止频率*通带误差)/采样频率)≈60。

我们选择窗口长度为120,即滤波器的阶数的两倍。

接下来选择汉宁窗作为窗函数,并计算其系数。

最后通过窗函数系数和截止频率计算得到滤波器的系数。

实验采用不同窗函数设计的FIR滤波器进行滤波,观察不同窗函数对滤波器性能的影响。

FIR数字滤波器设计(窗函数法)C语言实现

FIR数字滤波器设计(窗函数法)C语⾔实现背景介绍:理想滤波器在物理上是不可实现的,其单位脉冲响应是⽆限长、⾮因果的。

窗函数法,就是从时域出发,⽤有限长、因果的单位脉冲响应h(n)去逼近理想滤波器的⽆限长、⾮因果的单位脉冲响应的⽅法。

窗函数法⼜叫傅⾥叶级数法。

更多背景资料,请看数字信号处理(李永全),P175。

⽅法简介:设N-1阶FIR数字滤波器的单位冲击响应为h(n),则传递函数H(z)为:窗函数法的设计步骤如下:1.根据给定的理想频率响应Hd(e^jw),利⽤傅⾥叶反变换,求出单位冲击响应hd(n):2.将hd(n)乘以窗函数w(n),得到所要求的FIR滤波器系数h(n):3.求卷积:使⽤说明⼦函数语句:void firwin(int n, int band, int wn, int fs, double h[], double kaiser=0.0, double fln=0.0, double fhn=0.0);形参说明n:滤波器的阶数band:滤波器的类型,取值1-4,分别为低通、带通、带阻、⾼通滤波器wn:窗函数的类型,取值1-7,分别对应矩形窗、图基窗、三⾓窗、汉宁窗、海明窗、布拉克曼窗和凯塞窗fs:采样频率h:存放滤波器的系数kaiser:beta值fln:带通下边界频率fhn:带通上边界频率源代码void firwin(int n, int band, int wn, int fs, double h[], double kaiser, double fln, double fhn){int i;int n2;int mid;double s;double pi;double wc1;double wc2;double beta;double delay;beta = kaiser;pi = 4.0 * atan(1.0); //pi=PI;if ((n % 2) == 0)/*如果阶数n是偶数*/{n2 = (n / 2) - 1;/**/mid = 1;//}else{n2 = n / 2;//n是奇数,则窗⼝长度为偶数mid = 0;}delay = n / 2.0;wc1 = 2 * pi * fln;wc2 = 2 * pi * fhn;switch (band){case 1:{for (i=0; i<=n2; ++i){s = i - delay;h[i] = (sin(wc1 * s / fs) / (pi * s)) * window(wn, n+1, i, beta);//低通,窗⼝长度=阶数+1,故为n+1h[n - i] = h[i];}if (mid == 1){h[n / 2] = wc1 / pi;//n为偶数时,修正中间值系数}break;}case 2:{for (i=0; i<=n2; i++){s = i - delay;h[i] = (sin(wc2 * s / fs) - sin(wc1 * s / fs)) / (pi * s);//带通h[i] = h[i] * window(wn, n+1, i, beta);h[n-i] = h[i];}if (mid == 1){h[n / 2] = (wc2 - wc1) / pi;}break;}case 3:{for (i=0; i<=n2; ++i){s = i - delay;h[i] = (sin(wc1 * s / fs) + sin(pi * s) - sin(wc2 * s / fs)) / (pi * s);//带阻 h[i] = h[i] * window(wn, n+1, i, beta);h[n - i] = h[i];}if (mid == 1){h[n / 2] = (wc1 + pi - wc2) / pi;}break;}case 4:{for (i=0; i<=n2; i++){s = i - delay;h[i] = (sin(pi * s) - sin(wc1 * s / fs)) / (pi * s);//⾼通h[i] = h[i] * window(wn, n+1, i, beta);h[n-i] = h[i];}if (mid == 1){h[n / 2] = 1.0 - wc1 / pi;}break;}}}//n:窗⼝长度 type:选择窗函数的类型 beta:⽣成凯塞窗的系数static double window(int type, int n, int i, double beta){int k;double pi;double w;pi = 4.0 * atan(1.0); //pi=PI;w = 1.0;switch (type){case 1:{w = 1.0; //矩形窗break;}case 2:{k = (n - 2) / 10;if (i <= k){w = 0.5 * (1.0 - cos(i * pi / (k + 1))); //图基窗}if (i > n-k-2){w = 0.5 * (1.0 - cos((n - i - 1) * pi / (k + 1)));}break;}case 3:{w = 1.0 - fabs(1.0 - 2 * i / (n - 1.0));//三⾓窗break;}case 4:{w = 0.5 * (1.0 - cos( 2 * i * pi / (n - 1)));//汉宁窗break;}case 5:{w = 0.54 - 0.46 * cos(2 * i * pi / (n - 1));//海明窗break;}case 6:{w = 0.42 - 0.5 * cos(2 * i * pi / (n - 1)) + 0.08 * cos(4 * i * pi / (n - 1));//布莱克曼窗 break;}case 7:{w = kaiser(i, n, beta);//凯塞窗break;}}return(w);}static double kaiser(int i, int n, double beta){double a;double w;double a2;double b1;double b2;double beta1;b1 = bessel0(beta);a = 2.0 * i / (double)(n - 1) - 1.0;a2 = a * a;beta1 = beta * sqrt(1.0 - a2);b2 = bessel0(beta1);w = b2 / b1;return(w);}static double bessel0(double x){int i;double d;double y;double d2;double sum;y = x / 2.0;d = 1.0;sum = 1.0;for (i=1; i<=25; i++){d = d * y / i;d2 = d * d;sum = sum + d2;if (d2 < sum*(1.0e-8)){break;}}return(sum);}得到系数之后,与输⼊信号求卷积即可!。

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