窗函数设计FIR滤波器.docx

上传人:b****1 文档编号:14618651 上传时间:2023-06-25 格式:DOCX 页数:11 大小:203.51KB
下载 相关 举报
窗函数设计FIR滤波器.docx_第1页
第1页 / 共11页
窗函数设计FIR滤波器.docx_第2页
第2页 / 共11页
窗函数设计FIR滤波器.docx_第3页
第3页 / 共11页
窗函数设计FIR滤波器.docx_第4页
第4页 / 共11页
窗函数设计FIR滤波器.docx_第5页
第5页 / 共11页
窗函数设计FIR滤波器.docx_第6页
第6页 / 共11页
窗函数设计FIR滤波器.docx_第7页
第7页 / 共11页
窗函数设计FIR滤波器.docx_第8页
第8页 / 共11页
窗函数设计FIR滤波器.docx_第9页
第9页 / 共11页
窗函数设计FIR滤波器.docx_第10页
第10页 / 共11页
窗函数设计FIR滤波器.docx_第11页
第11页 / 共11页
亲,该文档总共11页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

窗函数设计FIR滤波器.docx

《窗函数设计FIR滤波器.docx》由会员分享,可在线阅读,更多相关《窗函数设计FIR滤波器.docx(11页珍藏版)》请在冰点文库上搜索。

窗函数设计FIR滤波器.docx

窗函数设计FIR滤波器

 

(式3.2.1)

由于

是矩形频率响应特性,故

一定是无限长序列,且是非因果的,而FIR滤波器的

必然是有限长的,所以要用有限长的

来逼近无限长的

,最有效的方法是截断

或者说用一个有限长度的窗口函数序列

来截取

,即

(式3.2.2)

因而窗函数序列的形状及长度的选择就是关键。

我们以一个截止频率为

的线性相位的理想矩形幅度特性的低通滤波器为例来讨论。

设低通特性的群延时为

,即

(式3.2.3)

这表明,在通带

范围内,

的幅度是均匀的,其值为1,相位是

利用

(1)式可得

(式3.2.4)

是中心点在

的偶对称无限长非因果序列,要得到有限长的

,一种最简单的方法就是取矩形窗

,即

但是按照线形相位滤波器的约束,

必须是偶对称的,对称中心应为长度的一半(N-1)/2,因而必须

=(N-1)/2,所以有

(式3.2.5)

将(式3.2.4)代入(式3.25),可得

(式3.2.6)

此时,一定满足

这一线性相位的条件。

下面求

的傅里叶变换,也就是找出待求FIR滤波器的频率特性,以便能看出加窗处理后究竟对频率响应有何影响。

按照复卷积公式,在时域是相乘、频域上是周期性卷积关系,即

(式3.2.7)

因而

逼近

的好坏,完全取决于窗函数的频率特性

窗函数

的频率特性

(式3.2.8)

对矩形窗

,则有

(式3.2.9)

也可表示成幅度函数与相位函数

(式3.2.10)

其中

(式3.2.11)

就是频域抽样内插函数,其幅度函数

之内为一个主瓣,两侧形成许多衰减振荡的旁瓣,如果将理想频率响应也写成

(式3.2.12)

则其幅度函数为

(式3.2.13)

波器;

调用格式:

b=fir1(N,Wn);

b=fir1(N,Wn,‘high’);

b=fir1(N,Wn,‘stop’);

参数说明:

N:

阶次,滤波器长度为N+1;

Wn:

通带截止频率,其值在0~1之间,1对应Fs/2;

b:

滤波器系数。

在上述所有格式中,若不指定窗函数的类型,fir1自动选择Hamming窗。

2)fir2:

用来设计具有任意幅度响应的FIR滤波器。

调用格式:

b=fir2(N,F,M);

参数说明:

F是频率向量,其值在0~1之间;

M是和F相对应的所希望的幅频相应。

如同fir1,缺省时自动选用Hamming窗。

3)为了观测到设计出来的滤波器的特性,用freqz得到频率响应。

其中在画频率响应的时候我们分为幅度和相位画出。

又因为我们要观测的是衰减的大小程度,以dB为单位,所以我们在画幅度的时候纵坐标应该转换成dB。

4)为了观测是否滤除已知频率,用filte(b,1,a)函数来实现,对信号的滤波实验。

3.6实验所用MATLAB函数说数

1[H,w]=freqz(b,a,N)

b和a分别为离散系统的系统函数分子、分母多项式的系数向量,返回量H则包含了离散系统频响在0~pi范围内N个频率等分点的值(其中N为正整数),w则包含了范围内N个频率等分点。

调用默认的N时,其值是512。

可以先调用freqz()函数计算系统的频率响应,然后利用abs()和angle()函数及plot()函数,绘制出系统的频响曲线。

2Wn=kaiser(N,beta)

列向量wn中返回长度为N的凯塞——贝塞尔窗函数w(n)。

3ceil(x)

是取大于等于x的最小整数。

4fir1

使用窗函数法设计线性相位FIR数字滤波器的工具箱函数。

本函数在3.5中有详细介绍。

4.设计内容

4.1用MATLAB设计程序如下

clear;fs=500;t=(1:

250)/fs;

x=10*cos(2*pi*20*t)+cos(2*pi*80*t)+10*cos(2*pi*120*t);

L=length(x);N=2^(nextpow2(L));Hw=fft(x,N);

figure

(2);subplot(2,1,1);plot(t,x);

gridon;title('滤波前信号x');xlabel('时间/s');%原始信号

subplot(2,1,2);plot((0:

N-1)*fs/L,abs(Hw));%查看信号频谱

gridon;title('滤波前信号频谱图');xlabel('频率/Hz');ylabel('振幅|H(e^jw)|');

Ap=0.25;As=20;%定义通带及阻带衰减

dev=[10^(-As/20),(10^(Ap/20)-1)/(10^(Ap/20)+1),10^(-As/20)];%计算偏移量

mags=[0,1,0];%带通

fcuts=[30,50,90,110];%边界频率

[N,Wn,beta,ftype]=kaiserord(fcuts,mags,dev,fs);%估算FIR滤波器阶数

hh2=fir1(N,Wn,ftype,kaiser(N+1,beta));%FIR滤波器设计

[hn,w1]=freqz(hh2,1,512);%求解数字滤波器的频率响应

figure(5)

stem(hh2)

title('hh2波形')

figure

(1)%绘图

subplot(2,1,1)

plot(w1/pi,20*log10(abs(hn)))

grid

xlabel('频率w');ylabel('幅度/db');

subplot(2,1,2)

plot(w1/pi,angle(hn))

grid

xlabel('频率w');ylabel('相位/rad');

y=cos(2*pi*80*t)

y=filter(hh2,1,x);%滤波

y(1:

ceil(N/2))=[];%群延时N/2,删除无用信号部分

L=length(y);N=2^(nextpow2(L));Hw_2=fft(y,N);

figure(3);subplot(2,1,1);plot(t(1:

L),y);

gridon;title('y=cos(2*pi*80*t)');xlabel('时间/s');

subplot(2,1,2);plot((0:

N-1)*fs/L,abs(Hw_2));%查看信号频谱

gridon;title('滤波后信号y频谱图');xlabel('频率/Hz');ylabel('振幅|H(e^jw)|');

4.2结果分析

实验的第一幅图是滤波器的频率、相位图,第二幅是产生的原始信号的图,后一幅图是滤波后的图,从图上的信号变化可以看出,基本以达到滤波的要求,达到实验目的。

结果的不理想可能是在选取参数上有些不同。

 

5总结

本次课程设计对我的收获是很大的,经过两天的自我学习及设计滤波器,让我对滤波器有了更深刻的了解,编程中的错误也为我敲响了我的失误点,让我及时改正,编程的不断修改和完善,是对知识了解的一种透彻表现。

对不懂得函数查资料,也是一种对知识了解得渴望。

本次课题的顺利完成对我的学习起到了很大的推进作用。

 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2