您的当前位置:首页正文

数字信号_加窗_凯撒窗

2020-07-19 来源:好走旅游网


研究型学习报告

一、问题重述

7.6 我们要用Kaiser窗法设计一个实值的一般线性相位的FIR滤波器,且满足以下指标:

0.9H(ej)1.1,0||0.23||0.4 750.06H(ej)0.06, 0.0.525||1.9H(ej)2.1,将Kaiser窗加到理想实值的脉冲响应上可以满足该指标,与该脉冲响应有关的理想频域响应为H(e):

j

(a)满足指标的最大值是多少?相应的值是多少?清楚地说明你的理由。 (b)满足指标的最大值是多少?相应的M值是多少?清楚地说明你的理由。

二、问题求解

(a) 我们知道,Kaiser窗法滤波器可以看成是一个低通滤波器加上一个高通滤波器。

根据理想的H(e),我们容易知道对应的参数分别为和2。在指标要求的带阻范围0.3||0.475内,这两个误差参数应该相加,并且我们容易得到:

j20.06

从而求得以下参数:

max0.02;

A20log(0.02)33.9794;

0.5842(A21)0.40.07886(A21)2.65。

(b) 易知过渡带宽度为0.5250.4750.05,能够满足题目指标。

从而容易得到相关的阶数:

M

A7.95173.18973

2.286()三、仿真验证

根据题目的要求指标,我们已经得到对应Kaiser窗的参数和M,从而我们可以验证Kaiser窗设计的FIR滤波器性能。 Kaiser窗的窗函数表达式为:

I(1(1w(n)2n2))N1,0nN1 I0())是第一类变形零阶贝塞尔函数,是一个可以自由选择的参数,它可以同时调其中,I0(整主瓣宽度和旁瓣电平。

我们用matlab中的kaiser命令来产生响应的w(n)。

窗函数法设计滤波器的步骤如下: 1) 给定所要求的频率响应函数Hd(ej);

2) 求出对应的脉冲响应hd(n)IDTFT[Hd(ej)];

3) 利用满足条件计算得到的值和M值,选定窗w(n)的形状。 4) 求得所设计的FIR滤波器的单位抽样响应

h(n)hd(n)w(n), n0,1,...N,

5) 求得滤波器频域表达函数H(e),检验是否满足设计指标。

根据以上步骤,我们进行了matlab仿真,仿真结果如下:

j

Figure 1 w(n)时域和频域特性

Figure 2 加窗后的脉冲时域响应和频域对数特性

Figure 3 加窗后的频域线性特性

通过仿真线性结果figure3的显示,该Kaiser窗法设计的FIR滤波器能够满足我们要求的指标。可见Kaiser窗性能优越。

作为对比,我们列出了矩形窗设计FIR滤波器作为比较:

Figure 4 矩形窗FIR滤波器(dB)

Figure 5 矩形窗FIR滤波器(linear)

由上观察,显然矩形窗设计的滤波器峰值误差不满足指标要求。

Matlab设计Kaiser窗程序如下:

clc,clear all; %%

Hd=[2,1,2]; %% N=73; r=(N-1)/2; syms w; for I=1:1:N

hd0=0;hd1=0;hd2=0;

hd0=double(int(exp(i*w*(I-r))*Hd(1),w,-pi,-0.5*pi)); hd1=double(int(exp(i*w*(I-r))*Hd(2),w,-0.25*pi,0.25*pi)); hd2=double(int(exp(i*w*(I-r))*Hd(3),w,0.5*pi,pi)); hd(I)=(hd0+hd1+hd2)/(2*pi); end %%

beita=2.65;

wn=kaiser(N,beita); wvtool(wn); %%

for I=1:N;

hn(I)=wn(I)*hd(I); end

wvtool(hn);

%%通过DTFT求和得到H(ej)。

因篇幅问题不能全部显示,请点此查看更多更全内容