Matlab软件设计应用之FIR数字滤波器

时间:2022-08-27 04:00:29

Matlab软件设计应用之FIR数字滤波器

摘 要:随着电力电子器件的飞速发展和非线性负荷在电力系统中的广泛应用,电网谐波污染问题日益突出,严重威胁电网的电能质量和用户设备的安全运行。在电力系统测量过程中,为解决电网谐波污染问题,对采样得到的信号进行滤波处理是必不可少的环节。本文主要用Matlab软件来实现FIR数字低通滤波器,即Kaiser窗函数的FIR数字滤波器设计以及对滤波前后的波形和频谱图做了比较分析。

关键词:MAT LAB;FIR滤波器;IIR滤波器

0 引言

一般来说,我们会遇到不同频率的混合信号。我们总想滤除一些频率,然后保留特定的频率或特定频率范围内的信号,这可以称为谐波滤波。传统的滤波器分析与设计均使用繁琐的公式计算,改变参数后需要重新运算,从而在分析与设计滤波器尤其是高阶滤波器时工作量特别大。而利用Matlab辅助设计数字滤波器能大大提高设计效率。

1 数字滤波器设计方法

数字滤波器可以理解为是一个计算机程序或算法,将代表输入信号的数字时间序列化为代表输出信号的数字时间序列,并在转化过程中使信号按预定的形势变化。FIR数字滤波器的单位冲激响应是有限长序列。它的设计问题实质上是确定能满足所要求的转移序列或脉冲响应的常数问题,设计方法主要有窗函数法、频率采样法和等波纹线性相位法等。这些方法各有优缺点,窗函数法是FIR数字滤波器设计中最简单的方法,有很重要的作用。正确地选择窗函数可以提高所设计的数字滤波器的性能,或者在满足设计要求的情况下,减小FIR数字滤波器的阶数。因此,本文主要介绍基于窗函数的FIR数字低通滤波器的设计。

2 数字低通滤波器的设计

本设计的主要工作为:设计一个FIR数字低通滤波器,并绘制出其对应的幅频特性曲线;再运用设计的数字低通滤波器对原始信号进行处理,滤除3次及5次谐波;最后绘制出经过滤波器处理过的信号的时域图及幅频响应,并与原始信号进行比较。

2.1 基于MATLAB的FIR数字低通滤波器设计

本文主要介绍基于窗函数的FIR数字低通滤波器的设计。窗函数设计FIR滤波器的基本思想,就是根据给定的滤波器指标,选择滤波器长度M和窗函数w(n),使其具有最窄宽度的主瓣和最小的旁瓣。其核心是从给定的频率特性通过加窗确定有限长脉冲响应序列h(n)。

设计步骤为:第一步,选择窗函数的类型,以满足期望的阻带衰减;第二步,对于使用多尔夫―切比雪夫窗设计的FIR数字低通滤波器,建议使用chebwin函数来估计期望滤波器的阶数;对于使用凯泽窗设计的FIR数字低通滤波器,建议使用kaiserord函数来估计期望滤波器的阶数;最后,选择窗函数的类型,并计算它的系数。计算出所需的理想滤波器的冲击响应,并将它乘以第一步生成的窗函数的系数,得到FIR数字低通滤波器的系数。

fs=1000;%采样频率

fcuts=[100 150];% 通带截止频率100,阻带截止频率150;

mags=[1 0]; %幅度范围;

devs=[0.001 0.001]; %通带纹波系数与阻带纹波系数均为0.001;

[n,Wn,beta,ftype] = kaiserord(fcuts,mags,devs,fs);% n为滤波器的阶数, wn为滤波器的频带边界,beta为滤波器的参数;

hh=fir1(n,Wn,ftype,kaiser(n+1,beta),'noscale');% 调用Matlab库函数fir1来设计要求的低通滤波器;

freqz(hh);% 调用Matlab库函数freqz来计算滤波器的频率响应;

figure;

[h,w]=freqz(hh,1,1000);

plot(w*fs/2/pi,abs(h));%滤波器的频谱分析;

grid;

title('the frequecy spectrum of the FIR filter');

由不同的FIR滤波器参数,分析滤波器速度与滤波效果的关系如:

(1)fcut=[100 150],devs=[0.001 0.001]

要想滤波器的滤波效果好,滤波器的参数要求越高,则滤波器的阶数越高,滤波器的速度越慢,滤波效果与滤波器的速度有一个折中。因此应根据需求合理的设计滤波器。

3 所设计的数字低通滤波器的滤波效果

因为要滤除3次5次谐波,故采用参数(1)所示的数字低通滤波器对信号x进行滤波,滤波后信号为xf1。其程序代码为:

xf1=filter(hh,1,x);

plot(t,xf1);

grid;

title('the refined signal');

xlabel('t');

ylabel('xf1');

yf1=fft(xf1,N);

mag=abs(yf1);

f=(0:N-1)*fs/N;

figure;

plot(f,mag);

grid;

title('the frequency spectrum of the refined signal');

xlabel('f/Hz');

ylabel('mag')

4 结果分析及结论

对FIR滤波器来说,不同的滤波器参数,会导致滤波器的速率和效果有一个折中效应。一般来说,高阶滤波器和更低的截止频率更有效,这意味着它可以过滤掉特定的频率或频段更为准确。

参考文献:

[1]李莉.数字信号处理原理和算法实现.北京:清华大学出版社, 2010.

[2](美) Sanjit K. Mitra. Digital signal processing : a computer-based approach. 北京: 电子工业出版社, 2006.

作者简介:余丹(1981-),女,湖北咸宁人,硕士研究生,研究方向:从事单片机及计算机应用研究。

上一篇:浅谈移动通信网络的协作分析 下一篇:高职计算机基础教学浅思