FIR滤波器的设计与实现.pdf
文本预览下载声明
FIR 滤波器的设计与实现
一、实验目的和要求
1、了解FIR (finite impulse response )滤波器的种类、基本结构、设计过程;
2 、学会用窗函数法、频率采样设计法来设计FIR 数字滤波器;
3、学会调用MATLAB 信号处理工具箱中滤波器设计函数
4 、自己编程实现FIR 的直接实现法;并考虑实际工程中的处理效率。
5、学会使用cooledit 软件来对音频信号做简单的处理。
二、实验原理
1、FIR 数字滤波器的设计
FIR 数字滤波器的主要设计方法有窗函数设计法和频率采样设计法,还可以频率采样法
和窗函数法结合设计。
窗函数法的频率采样法设计过程简单,计算量小,但对滤波特性的控制作用较弱,没有
明确的算法。FIR 的优化设计基于函数逼近理论,通过不同误差准则对滤波特性进行优化。
常用的算法有切比雪夫(等纹波)逼近法和最小二乘滤波算法。
2、FIR 数字滤波器的实现
FIR 滤波器的实现通常由直接型、级联型和频率采样、快速卷积几种实现结构。本实验
使用直接型来实现,具体原理如下:
N
H z r
传递函数 ( ) b z
r
r 0
N
可得直接实现型的差分方程为:y(n) b x(n r)
r
r 0
三、实验内容与步骤
1、已知一段48KHZ 的语音信号(20 秒长左右),试用matlab 设计256 阶FIR 滤波器
实现1KHZ 低通滤波及5KHZ 高通滤波:
实验要求没有明确给出所需设计低通、高通滤波器的类型以及具体指标。下面用matlab
自带的函数fir1 来实现256 阶的波特沃兹滤波器。其中wn 是截止频率归一化后的值:
**********************************************************************
%音频信号文件的读入。存为x
[x,fs,bits]=wavread(10s_.wav); %1.wav为已给的语音信号剪辑
%=========================================================
%设计一个fc=1kHz 的8 阶模拟、数字低通滤波器
%指标 fs=48000Hz Fp=1000Hz
% b=fir1(N,wn)
%=========================================================
Fp=1000;
N=256;
0
wn=Fp/(fs/2);
% Wn 是一个归一化频率,在滤波器设计中是用fs/2 进行归一
figure(1)
b_low=fir1(N,wn);
[h,w]=freqz(b_low,1,512);
f=w*fs/(2*pi);
plot(f,abs(h),--r)
xlabel(频率);
ylabel(幅度);
title(Butterwoth 低通滤波器);
hold on
%=========================================================
%设计一个fc=5kHz 的8 阶模拟、数字高通滤波器
%指标 fs=48000Hz Fp=5000Hz
% b=fir1(N,wn ,high)
%=========================================================
Fp=5000;
N=256;
wn=Fp/(fs/2);
% Wn 是一个归一化频率,在滤波器设计中是用fs/2 进行归一
b_high=fir1(N,wn,high);
[h,w]=freqz(b_high,1,512);
f=w*fs/(2*pi);
plot(f,abs(h))
set(gca,ylim,[0 1.1]); %最
显示全部