数字信号处理窗函数程序

合集下载

几种常见窗函数及其MATLAB程序实现

几种常见窗函数及其MATLAB程序实现

几种常见窗函数及其MATLAB程序实现2013-12-16 13:58 2296人阅读评论(0) 收藏举报分类:Matlab(15)数字信号处理中通常是取其有限的时间片段进行分析,而不是对无限长的信号进行测量和运算。

具体做法是从信号中截取一个时间片段,然后对信号进行傅里叶变换、相关分析等数学处理。

信号的截断产生了能量泄漏,而用FFT算法计算频谱又产生了栅栏效应,从原理上讲这两种误差都是不能消除的。

在FFT分析中为了减少或消除频谱能量泄漏及栅栏效应,可采用不同的截取函数对信号进行截短,截短函数称为窗函数,简称为窗。

泄漏与窗函数频谱的两侧旁瓣有关,对于窗函数的选用总的原则是,要从保持最大信息和消除旁瓣的综合效果出发来考虑问题,尽可能使窗函数频谱中的主瓣宽度应尽量窄,以获得较陡的过渡带;旁瓣衰减应尽量大,以提高阻带的衰减,但通常都不能同时满足这两个要求。

频谱中的如果两侧瓣的高度趋于零,而使能量相对集中在主瓣,就可以较为接近于真实的频谱。

不同的窗函数对信号频谱的影响是不一样的,这主要是因为不同的窗函数,产生泄漏的大小不一样,频率分辨能力也不一样。

信号的加窗处理,重要的问题是在于根据信号的性质和研究目的来选用窗函数。

图1是几种常用的窗函数的时域和频域波形,其中矩形窗主瓣窄,旁瓣大,频率识别精度最高,幅值识别精度最低,如果仅要求精确读出主瓣频率,而不考虑幅值精度,则可选用矩形窗,例如测量物体的自振频率等;布莱克曼窗主瓣宽,旁瓣小,频率识别精度最低,但幅值识别精度最高;如果分析窄带信号,且有较强的干扰噪声,则应选用旁瓣幅度小的窗函数,如汉宁窗、三角窗等;对于随时间按指数衰减的函数,可采用指数窗来提高信噪比。

表1 是几种常用的窗函数的比较。

如果被测信号是随机或者未知的,或者是一般使用者对窗函数不大了解,要求也不是特别高时,可以选择汉宁窗,因为它的泄漏、波动都较小,并且选择性也较高。

但在用于校准时选用平顶窗较好,因为它的通带波动非常小,幅度误差也较小。

数字信号处理窗函数特性

数字信号处理窗函数特性

信息科学与技术学院实验报告课程名称: 数字信号处理实验项目: 窗函数的特性实验地点:博西105 指导教师: 日期: 2013年5月7日实验类型:综合性实验(验证性实验综合性实验设计性实验)专业: 电子信息班级:姓名: 学号:一、实验目的及要求1.分析各种窗函数时域和频域特性。

2.为灵活运用窗函数分析信号频谱和设计FIR数字滤波器奠定基础。

二、实验仪器、设备或软件计算机 MATLAB软件三、实验步骤(或过程)(一):实验程序:N=51;beta=2;w1=boxcar(N);W1=fft(w1,256);w2=hanning(N);W2=fft(w2,256);w3=hamming(N);W3=fft(w3,256);w4=blackman(N);W4=fft(w4,256);w5=bartlett(N);W5=fft(w5,256);w6=Kaiser(N);W6=fft(w6,256);figure(1);subplot(2,1,1);stem([0:N-1],w1);title('Rectangle 窗');Y1=abs(fftshift(W1));subplot(2,1,2);plot([-128:127],Y1);title('幅度谱');figure(2);subplot(2,1,1);stem([0:N-1],w2);title('Hanning窗');Y2=abs(fftshift(W2));subplot(2,1,2);plot([-128:127],Y2);title('幅度谱');figure(3);subplot(2,1,1);stem([0:N-1],w3);title('Hamming窗');Y3=abs(fftshift(W3));subplot(2,1,2);plot([-128:127],Y3);title('幅度谱');figure(4);subplot(2,1,1);stem([0:N-1],w4);title('Blacekman窗');Y4=abs(fftshift(W4));subplot(2,1,2);plot([-128:127],Y4);title('幅度谱');figure(5);subplot(2,1,1);stem([0:N-1],w5);title('Bartlett窗');Y5=abs(fftshift(W5));subplot(2,1,2);plot([-128:127],Y5);title('幅度谱');figure(6);subplot(2,1,1);stem([0:N-1],w6);title('Kaiser 窗');Y6=abs(fftshift(W6));subplot(2,1,2);plot([-128:127],Y6);title('幅度谱');(二)程序设计实验:1.利用fft 函数分析常用窗函数的频谱特性,并从主瓣宽度和旁瓣相对幅度两个角度分析比较。

数字信号处理系列串讲第18篇(数字滤波器之二)——FIR滤波器(2):窗函数法(2)

数字信号处理系列串讲第18篇(数字滤波器之二)——FIR滤波器(2):窗函数法(2)

数字信号处理系列串讲第18篇(数字滤波器之二)——FIR滤波器(2):窗函数法(2)FIR滤波器设计-窗函数法(2)来自信号与系统和数字信号处理00:0029:30本文是FIR滤波器的第二个问题——窗函数法的第二篇。

我们介绍各种窗函数。

二窗函数法1. 设计原理上一篇以低通滤波器加矩形窗为例,详细介绍了窗函数法设计FIR 滤波器的原理,辅以动画演示,形象生动。

链接如下:数字信号处理系列串讲第17篇(数字滤波器之二)——FIR滤波器(2):窗函数法(1)2. 各种窗函数下面,给出几种常见窗函数的时域和幅度函数的表达式。

由于其时域都满足关于(N-1)/2 偶对称,都具有线性相位特性。

下面重点分析其时域表达式和频域的幅度函数。

(1)矩形窗大家可能会有疑问:矩形窗的旁瓣与主瓣幅度之比,真的与长度N无关吗?我们详细分析一下:矩形窗的幅度函数:sin(Nw/2)/sin(w/2),将w=0代入得到主瓣幅度峰值为N,将w=3Π/N代入得到第一旁瓣(最高的旁瓣)峰值为1/sin(3Π/2N),所以旁瓣与主瓣峰值之比为:1/(N×sin(3Π/2N))。

我们分别以该数值以及该数值取20log10为纵轴,N为横轴,画出图形如下:可见,当N大于30时,矩形窗谱的旁瓣与主瓣幅度之比基本保持为常数0.21(-13.5dB)。

(2)三角窗既然矩形窗的旁瓣和主瓣幅度之比基本是一固定值,我们就想到,如果把它平方一下,这一比值会减小,0.21的平方为0.044(-27dB)。

而根据傅里叶变换的性质,频域相乘,对应时域卷积,两个宽度相同的矩形脉冲卷积为三角形。

这就是三角窗。

与矩形窗相比,三角窗的旁瓣虽然显著降低了,但不幸的是,主瓣宽度也增加了一倍,为8Π/N。

(3)汉宁(Hanning)窗(又称为升余弦窗)汉宁窗的设计思想是,将矩形窗的窗谱分别左移和右移半个主瓣宽度,使其旁瓣相互抵消,如下图所示。

蓝色实线为矩形窗谱(幅度函数),红色虚线和绿色虚线分别为其右移和左移半个主瓣,用红色的第一旁瓣和绿色的第三旁瓣去抵消蓝色的第一旁瓣,以此类推,达到降低旁瓣幅度的目的。

实验六用窗函数法设计FIR滤波器分析解析

实验六用窗函数法设计FIR滤波器分析解析

实验六用窗函数法设计FIR滤波器分析解析一、引言数字滤波器是数字信号处理中的重要组成部分。

滤波器可以用于去除噪声、调整频率响应以及提取感兴趣的信号。

有许多方法可以设计数字滤波器,包括窗函数法、频域法和优化法等。

本实验将重点介绍窗函数法设计FIR滤波器的原理和过程。

二、窗函数法设计FIR滤波器窗函数法是设计FIR滤波器的一种常用方法。

其基本原理是将滤波器的频率响应与理想滤波器的频率响应进行乘积。

理想滤波器的频率响应通常为矩形函数,而窗函数则用于提取有限长度的理想滤波器的频率响应。

窗函数的选择在FIR滤波器的设计中起着重要的作用。

常用的窗函数包括矩形窗、汉宁窗、汉明窗、布莱克曼窗等。

对于每种窗函数,都有不同的特性和性能指标,如主瓣宽度、副瓣抑制比等。

根据不同的应用需求,可以选择合适的窗函数。

窗函数法设计FIR滤波器的具体步骤如下:1.确定滤波器的阶数N。

阶数N决定了滤波器的复杂度,一般情况下,阶数越低,滤波器的简单度越高,但频率响应的近似程度也会降低。

2.确定滤波器的截止频率。

根据应用需求,确定滤波器的截止频率,并选择合适的窗函数。

3.根据窗函数长度和截止频率计算理想滤波器的频率响应。

根据所选窗函数的特性,计算理想滤波器的频率响应。

4.根据理想滤波器的频率响应和窗函数的频率响应,得到所需的FIR滤波器的频率响应。

将理想滤波器的频率响应与窗函数的频率响应进行乘积,即可得到所需滤波器的频率响应。

5.对所得到的频率响应进行逆傅里叶变换,得到时域的滤波器系数。

6.实现滤波器。

利用所得到的滤波器系数,可以通过卷积运算实现滤波器。

三、实验结果与分析本实验以Matlab软件为平台,利用窗函数法设计了一个低通滤波器。

滤波器的阶数为16,截止频率为500Hz,采样频率为1000Hz,选择了汉宁窗。

根据上述步骤,计算得到了所需的滤波器的频率响应和时域的滤波器系数。

利用这些系数,通过卷积运算,实现了滤波器。

为了验证滤波器的性能,将滤波器应用于输入信号,观察输出信号的变化。

几种常见窗函数及其MATLAB程序实现

几种常见窗函数及其MATLAB程序实现

几种常见窗函数及其MATLAB程序实现2013-12-16 13:58 2296人阅读评论(0) 收藏举报分类:Matlab(15)数字信号处理中通常是取其有限的时间片段进行分析,而不是对无限长的信号进行测量和运算。

具体做法是从信号中截取一个时间片段,然后对信号进行傅里叶变换、相关分析等数学处理。

信号的截断产生了能量泄漏,而用FFT算法计算频谱又产生了栅栏效应,从原理上讲这两种误差都是不能消除的。

在FFT分析中为了减少或消除频谱能量泄漏及栅栏效应,可采用不同的截取函数对信号进行截短,截短函数称为窗函数,简称为窗。

泄漏与窗函数频谱的两侧旁瓣有关,对于窗函数的选用总的原则是,要从保持最大信息和消除旁瓣的综合效果出发来考虑问题,尽可能使窗函数频谱中的主瓣宽度应尽量窄,以获得较陡的过渡带;旁瓣衰减应尽量大,以提高阻带的衰减,但通常都不能同时满足这两个要求。

频谱中的如果两侧瓣的高度趋于零,而使能量相对集中在主瓣,就可以较为接近于真实的频谱。

不同的窗函数对信号频谱的影响是不一样的,这主要是因为不同的窗函数,产生泄漏的大小不一样,频率分辨能力也不一样。

信号的加窗处理,重要的问题是在于根据信号的性质和研究目的来选用窗函数。

图1是几种常用的窗函数的时域和频域波形,其中矩形窗主瓣窄,旁瓣大,频率识别精度最高,幅值识别精度最低,如果仅要求精确读出主瓣频率,而不考虑幅值精度,则可选用矩形窗,例如测量物体的自振频率等;布莱克曼窗主瓣宽,旁瓣小,频率识别精度最低,但幅值识别精度最高;如果分析窄带信号,且有较强的干扰噪声,则应选用旁瓣幅度小的窗函数,如汉宁窗、三角窗等;对于随时间按指数衰减的函数,可采用指数窗来提高信噪比。

表1 是几种常用的窗函数的比较。

如果被测信号是随机或者未知的,或者是一般使用者对窗函数不大了解,要求也不是特别高时,可以选择汉宁窗,因为它的泄漏、波动都较小,并且选择性也较高。

但在用于校准时选用平顶窗较好,因为它的通带波动非常小,幅度误差也较小。

窗函数的实现与分析

窗函数的实现与分析

窗函数的实现与分析窗函数是一种在数字信号处理中常用的技术,用于对信号进行加窗处理。

加窗处理的目的是在频域上对信号进行平滑,以减少频谱泄漏或者减小窗口边界效应。

窗函数广泛应用于傅里叶变换、滤波器设计、频谱分析、信号重构等领域。

窗函数实现的原理是在信号的时域上对原始信号进行截断,即乘以一个截断窗口函数。

截断窗口函数通常是一个平滑、有限的、具有零边界值的函数。

这样可以使得信号在窗口内部逐渐减小,并在窗口外部变为零,从而达到减少频谱泄漏的效果。

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

下面以汉明窗为例,介绍窗函数的实现与分析。

汉明窗是一种常用的窗函数,其定义为:w(n) = 0.54 - 0.46 * cos(2πn/N),其中0 <= n <= N-1假设需要对长度为N的信号x(n)进行加窗处理,实现过程如下:1.初始化窗口长度N。

2.初始化一个长度为N的空数组w,用于存储窗函数的值。

3.对n从0到N-1循环,计算w(n)的值,并存储到w中。

4.对信号x(n)和窗函数w(n)进行逐点乘法运算,得到加窗后的信号y(n)。

y(n)=x(n)*w(n),其中0<=n<=N-15.返回加窗后的信号y(n)。

分析:1.汉明窗的定义表明,在窗口中心附近,窗函数的值最大,逐渐向窗口两端减小,直至为零。

这样可以对信号进行平滑处理,减少频谱泄漏。

2.汉明窗的参数0.54和0.46是经验值,具体值的选择可以根据应用场景进行调整,以达到最佳的效果。

3.窗口长度N的选择也很重要。

如果窗口长度过短,会导致频谱分辨率降低,无法准确表示高频成分;如果窗口长度过长,会导致频域分辨率提高,但时间分辨率降低。

4.窗函数的选择也是根据应用场景的不同而不同。

汉明窗适用于大多数信号分析场景,但对于具有突变的信号,如短时能量突变的语音信号,汉明窗可能会引入较大的误差。

5.窗函数的性能可以通过计算频谱泄漏、主瓣宽度、旁瓣幅度等指标来评估。

数字信号处理第七章

数字信号处理第七章
H d (e j ) h d (n ) h d (n )w (n )
H(ej)h(n)
Hd (e j)为理想低通
滤波器的传输函数。
数字信号处理第七章
h (n )h d(n )R N (n )
如果对截取后的信号进行傅里叶变换,假设采用矩形窗截
取,对截取后信号进行傅里叶变换得:
频域卷积定理
H(ej) 1
Hd
(e
j
)
1 e 0
j
c
c
:低通滤波器的延时
hd(n)
1
2
Hd(ej)ejnd
1
2
c ej
c
ejnd
1
2
c ej(n)d
c
1
2
1
j(n)
ej(n)
|c c
s
in( c(n)) (n)
数字信号处理第七章
理想特性的hd(n)和Hd(ω)
hd
(n)
sin(c(n ) (n )
hd(n)的最大 值是多少?
ej 2 1 H d()W R ()d
H(ej)H()ej 数字信号处理第七章
则实际FIR滤波器的幅度函数H (ω) 为
H ()2 1 H d()W R()d
取样函数
矩形窗
正好是理想滤波器幅度函数与窗函数幅度函数的卷积。
数字信号处理第七章
H(0) 0.5H(0) H(ω)max H(ω)min
③N增加,过渡带宽减小,肩峰值不变。 因主瓣附近
(a)
(b)
hd(n)是一个以(N-1)/2为中心的偶对称的无限长非因果序列, 如果截取一段n=0~N-1的hd(n)作为h(n),则为保证所得到的

几种常见窗函数及其MATLAB程序实现

几种常见窗函数及其MATLAB程序实现

几种常见窗函数及其MATLAB程序实现2013-12-16 13:582296人阅读评论(0)收藏举报分类:Matlab(15)数字信号处理中通常是取其有限的时间片段进行分析,而不是对无限长的信号进行测量和运算。

具体做法是从信号中截取一个时间片段,然后对信号进行傅里叶变换、相关分析等数学处理。

信号的截断产生了能量泄漏,而用FFT算法计算频谱又产生了栅栏效应,从原理上讲这两种误差都是不能消除的。

在FFT分析中为了减少或消除频谱能量泄漏及栅栏效应,可采用不同的截取函数对信号进行截短,截短函数称为窗函数,简称为窗。

泄漏与窗函数频谱的两侧旁瓣有关,对于窗函数的选用总的原则是,要从保持最大信息和消除旁瓣的综合效果出发来考虑问题,尽可能使窗函数频谱中的主瓣宽度应尽量窄,以获得较陡的过渡带;旁瓣衰减应尽量大,以提高阻带的衰减,但通常都不能同时满足这两个要求。

频谱中的如果两侧瓣的高度趋于零,而使能量相对集中在主瓣,就可以较为接近于真实的频谱。

不同的窗函数对信号频谱的影响是不一样的,这主要是因为不同的窗函数,产生泄漏的大小不一样,频率分辨能力也不一样。

信号的加窗处理,重要的问题是在于根据信号的性质和研究目的来选用窗函数。

图1是几种常用的窗函数的时域和频域波形,其中矩形窗主瓣窄,旁瓣大,频率识别精度最高,幅值识别精度最低,如果仅要求精确读出主瓣频率,而不考虑幅值精度,则可选用矩形窗,例如测量物体的自振频率等;布莱克曼窗主瓣宽,旁瓣小,频率识别精度最低,但幅值识别精度最高;如果分析窄带信号,且有较强的干扰噪声,则应选用旁瓣幅度小的窗函数,如汉宁窗、三角窗等;对于随时间按指数衰减的函数,可采用指数窗来提高信噪比。

表1 是几种常用的窗函数的比较。

如果被测信号是随机或者未知的,或者是一般使用者对窗函数不大了解,要求也不是特别高时,可以选择汉宁窗,因为它的泄漏、波动都较小,并且选择性也较高。

但在用于校准时选用平顶窗较好,因为它的通带波动非常小,幅度误差也较小。

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

1.矩形窗:程序代码:wp=0.2*pi;wst=0.3*pi;tr_width=wst-wp;N(1)=ceil(1.8*pi/tr_width)+1;w_boxcar=boxcar(N(1))';N(2)=ceil(6.2*pi/tr_width)+1;w_hanning=hanning(N(2))';N(3)=ceil(6.6*pi/tr_width)+1;w_hamming=hamming(N(3))';N(4)=ceil(11*pi/tr_width)+1;w_blackman=blackman(N(4))';N(5)=ceil((50-7.95)/(2.285*tr_width)+1);w_kaiser=kaiser(N(5),0.1102*(50-8.7))';n=0:(N(1)-1);wc=(wp+wst)/2;alpha=(N(1)-1)/2;hd=(wc/pi)*sinc(wc/pi*(n-alpha));h=hd.*w_boxcar;figure(1);subplot(221);stem(n,hd,'filled');axis tight;xlabel('n');ylabel('hd(n)');[Hr,w1]=zerophase(h);subplot(222);plot(w1/pi,Hr);axis tight;xlabel('\omega/\pi');ylabel('H(\omega)'); subplot(223);stem(n,h,'filled');axis tight;xlabel('n');ylabel('h(n)');[H,w]=freqz(h,1);subplot(224);plot(w/pi,20*log10(abs(H)/max(abs(H)))); xlabel('\omega/\pi');ylabel('db');grid on程序结果:nh d (n )0.20.40.60.800.51ω/πH (ω)nh (n )0.51-100-50ω/πd b汉宁窗:程序代码:wp=0.2*pi; wst=0.3*pi;tr_width=wst-wp;N(1)=ceil(1.8*pi/tr_width)+1; w_boxcar=boxcar(N(1))';N(2)=ceil(6.2*pi/tr_width)+1; w_hanning=hanning(N(2))'; N(3)=ceil(6.6*pi/tr_width)+1; w_hamming=hamming(N(3))'; N(4)=ceil(11*pi/tr_width)+1; w_blackman=blackman(N(4))';N(5)=ceil((50-7.95)/(2.285*tr_width)+1); w_kaiser=kaiser(N(5),0.1102*(50-8.7))';n=0:(N(2)-1); wc=(wp+wst)/2; alpha=(N(2)-1)/2;hd=(wc/pi)*sinc(wc/pi*(n-alpha));h=hd.*w_hanning; figure(2);subplot(221);stem(n,hd,'filled'); axis tight;xlabel('n');ylabel('hd(n)'); [Hr,w1]=zerophase(h);subplot(222);plot(w1/pi,Hr);axis tight;xlabel('\omega/\pi');ylabel('H(\omega)'); subplot(223);stem(n,h,'filled'); axis tight;xlabel('n');ylabel('h(n)'); [H,w]=freqz(h,1);subplot(224);plot(w/pi,20*log10(abs(H)/max(abs(H)))); xlabel('\omega/\pi');ylabel('db');title('hanning'); grid on程序结果:nh d (n )00.20.40.60.80.51ω/πH (ω)nh (n )0.51-200-150-100-500ω/πd bhanning海明窗:程序代码:wp=0.2*pi; wst=0.3*pi;tr_width=wst-wp;N(1)=ceil(1.8*pi/tr_width)+1;w_boxcar=boxcar(N(1))';N(2)=ceil(6.2*pi/tr_width)+1;w_hanning=hanning(N(2))';N(3)=ceil(6.6*pi/tr_width)+1;w_hamming=hamming(N(3))';N(4)=ceil(11*pi/tr_width)+1;w_blackman=blackman(N(4))';N(5)=ceil((50-7.95)/(2.285*tr_width)+1);w_kaiser=kaiser(N(5),0.1102*(50-8.7))';n=0:(N(3)-1);wc=(wp+wst)/2;alpha=(N(3)-1)/2;hd=(wc/pi)*sinc(wc/pi*(n-alpha));h=hd.*w_hamming;figure(3);subplot(221);stem(n,hd,'filled');axis tight;xlabel('n');ylabel('hd(n)');[Hr,w1]=zerophase(h);subplot(222);plot(w1/pi,Hr);axis tight;xlabel('\omega/\pi');ylabel('H(\omega)'); subplot(223);stem(n,h,'filled');axis tight;xlabel('n');ylabel('h(n)');[H,w]=freqz(h,1);subplot(224);plot(w/pi,20*log10(abs(H)/max(abs(H)))); xlabel('\omega/\pi');ylabel('db');title('hanmming'); grid on程序结果:n h d (n )00.20.40.60.80.51ω/πH (ω)n h (n )0.51-150-100-500ω/πd bhanmming布莱克曼窗:程序代码:wp=0.2*pi; wst=0.3*pi;tr_width=wst-wp;N(1)=ceil(1.8*pi/tr_width)+1; w_boxcar=boxcar(N(1))';N(2)=ceil(6.2*pi/tr_width)+1; w_hanning=hanning(N(2))'; N(3)=ceil(6.6*pi/tr_width)+1; w_hamming=hamming(N(3))'; N(4)=ceil(11*pi/tr_width)+1; w_blackman=blackman(N(4))';N(5)=ceil((50-7.95)/(2.285*tr_width)+1); w_kaiser=kaiser(N(5),0.1102*(50-8.7))';n=0:(N(4)-1); wc=(wp+wst)/2; alpha=(N(4)-1)/2;hd=(wc/pi)*sinc(wc/pi*(n-alpha));h=hd.*w_blackman; figure(4);subplot(221);stem(n,hd,'filled'); axis tight;xlabel('n');ylabel('hd(n)'); [Hr,w1]=zerophase(h);subplot(222);plot(w1/pi,Hr);axis tight;xlabel('\omega/\pi');ylabel('H(\omega)'); subplot(223);stem(n,h,'filled'); axis tight;xlabel('n');ylabel('h(n)'); [H,w]=freqz(h,1);subplot(224);plot(w/pi,20*log10(abs(H)/max(abs(H)))); xlabel('\omega/\pi');ylabel('db');title('blackman'); grid on程序结果:nh d (n )00.20.40.60.80.51ω/πH (ω)nh (n )0.51-200-150-100-500ω/πd bblackman凯瑟窗:程序代码:wp=0.2*pi;wst=0.3*pi;tr_width=wst-wp;N(1)=ceil(1.8*pi/tr_width)+1;w_boxcar=boxcar(N(1))';N(2)=ceil(6.2*pi/tr_width)+1;w_hanning=hanning(N(2))';N(3)=ceil(6.6*pi/tr_width)+1;w_hamming=hamming(N(3))';N(4)=ceil(11*pi/tr_width)+1;w_blackman=blackman(N(4))';N(5)=ceil((50-7.95)/(2.285*tr_width)+1);w_kaiser=kaiser(N(5),0.1102*(50-8.7))';n=0:(N(5)-1);wc=(wp+wst)/2;alpha=(N(5)-1)/2;hd=(wc/pi)*sinc(wc/pi*(n-alpha));h=hd.*w_kaiser;figure(5);subplot(221);stem(n,hd,'filled');axis tight;xlabel('n');ylabel('hd(n)');[Hr,w1]=zerophase(h);subplot(222);plot(w1/pi,Hr);axis tight;xlabel('\omega/\pi');ylabel('H(\omega)'); subplot(223);stem(n,h,'filled');axis tight;xlabel('n');ylabel('h(n)');[H,w]=freqz(h,1);subplot(224);plot(w/pi,20*log10(abs(H)/max(abs(H)))); xlabel('\omega/\pi');ylabel('db');title('kaiser');grid on程序结果:nh d (n )00.20.40.60.80.51ω/πH (ω)nh (n )0.51-150-100-500ω/πd bkaiser2.程序代码:wst1=0.2*pi;wp1=0.35*pi; wst2=0.8*pi;wp2=0.65*pi; tr_width=wp1-wst1;N=ceil(11*pi/tr_width)+1;n=0:(N-1);wc1=(wst1+wp1)/2;wc2=(wst2+wp2)/2; alpha=(N-1)/2;hd=(wc2/pi)*sinc(wc2/pi*(n-alpha))-(wc1/pi)*sinc(wc1/pi*(n-alpha));w_blackman=blackman(N)'; h=hd.*w_blackman;subplot(221);stem(n,hd,'filled'); axis tight;xlabel('n');ylabel('hd(n)'); [Hr,w1]=zerophase(h);subplot(222);plot(w1/pi,Hr);axis tight;xlabel('\omega/\pi');ylabel('H(\omega)');subplot(223);stem(n,h,'filled'); axis tight;xlabel('n');ylabel('h(n)'); [H,w]=freqz(h,1);subplot(224);plot(w/pi,20*log10(abs(H)/max(abs(H)))); xlabel('\omega/\pi');ylabel('db'); grid on程序结果:nh d (n )00.20.40.60.80.51ω/πH (ω)nh (n )0.51-150-100-500ω/πd b。

相关文档
最新文档