DSP 设计滤波器报告
一·低通滤波器的设计
(一)实验目的:掌握IIR 数字低通滤波器的设计方法。
(二)实验原理:
1、滤波器的分类
滤波器分两大类:经典滤波器和现代滤波器。
经典滤波器是假定输入信号x (n ) 中的有用成分和希望取出的成分各自占有不同的频带。这样,当x (n ) 通过一个线性系统(即滤波器)后可讲欲去除的成分有效的去除。
现代滤波器理论研究的主要内容是从含有噪声的数据记录(又称时间序列)中估计出信号的某些特征或信号本身。
经典滤波器分为低通、高通、带通、带阻滤波器。每一种又有模拟滤波器(AF )和数字滤波器(DF )。对数字滤波器,又有IIR 滤波器和FIR 滤波器。 IIR DF 的转移函数是:
Y (z ) =X (z ) H (z ) =∑b z r
r =0
N
k =1M -r 1+∑a k z -k
FIR DF的转移函数是:
H (z ) =∑h (n ) z -n
n =0N -1
FIR 滤波器可以对给定的频率特性直接进行设计,而IIR 滤波器目前最通用的方法是利用已经很成熟的模拟滤波器的设计方法进行设计。
2、滤波器的技术要求
低通滤波器:
ωp :通带截止频率(又称通带上限频率) ωs :阻带下限截止频率 αp α:通带允许的最大衰减 αs :阻带允许的最小衰减 (p ,αs
:通带上限角频率 Ωs :阻带下限角频率 的单位dB ) Ωp
(Ωp =ωp s ,Ωs =ωs s )即 Ωp =2πωp C Ωs =2πωs C
3、IIR 数字滤波器的设计步骤:
1)按一定规则将给出的数字滤波器的技术指标转换魏模拟低通滤波器的技术指标。
2)根据转换后的技术指标设计模拟低通滤波器G (s ) ;
3)再按一定的规则将G (s ) 转换成H (z ) 。
4)若是高通、带通或带阻数字滤波器则将它们的技术指标先转化为低通模拟滤波器的技术指标,然后按上述步骤2)设计出低通G (s ) ,再将G (s ) 转换为所需的H (z ) 。
4.几种不同类型的滤波器的介绍:
因为我们设计的滤波器的冲击响应一般都为实数,所以有
G (s ) G *(s ) =G (s ) G (-s ) s =j Ω=G (j Ωs ) 2
G (j Ω) 2
这样,如果我们能由
的G (s ) 。 不同类型的G (j Ω) 2αp ,Ωp ,αs ,Ωs 求出,那么就容易得到所需要
的表达式,代表了几种不同类型的滤波器。
(1)巴特沃思(Butterworth)滤波器: G (j Ω) =2
11+C 2(Ω2) n
C 为待定常数,N 为待定的滤波器阶次。
(2)切比雪夫I 型(Chebyshev – I )滤波器:
G (j Ω) =21
21+ε2C n (Ω)
5.巴特沃思模拟低通滤波器的设计
由于每一个滤波器的频率范围将直接取决于设计者的应用目的,因此必然是千差万别。为了使设计规范化,我们需要将滤波器的频率参数作归一化处理。设所给的实际频率为Ω(或f ),归一化后的频率为λ,对低通模拟滤波器,令
, λ=Ω/Ωp 。又令归一化复数变量为p ,p =j λ,显然
显然, λp =1 λs =Ωs /Ωp p =j λ=j Ω/Ωp =s /Ωp
所以巴特沃思模拟低通滤波器的设计可按以下三个步骤来进行。
(1)将实际频率Ω规一化
(2)求C 和N
C 2=10αP /10-1
N =lg 10αs /10-1
10αp /10-1λs
这样C 和N 可求。
若令αp =3dB ,则C =1,这样巴特沃思滤波器的设计就只剩一个参数N ,这时 G (j λ) =21
1+λ2N =11+(Ω/Ωp ) 2N
(3)确定G (s )
因为p =j λ,根据上面公式有
G (p ) G (-p ) =11=1+(p /j ) 2N 1+(-1) N p 2N
由 1+(-1) N p 2N =0解得
2k +N -12π) 2N ,k =1,2,···,2N
1
2k +N -1p 2-2p cos(π) +12N p k =exp(j 这样可得 G k (p ) =1=(p -p k )(p -p N +1-k )
求得G (p ) 后,用s /Ωp 代替变量p ,即得实际需要得G (s ) 。
6.用双线性Z 变换法设计IIR 数字低通滤波器
s 平面到z 平面的映射关系
s =2z -1
T s z +1
称为双线性Z 变换,由此关系求出
z =1+(T s /2) s
1-(T s /2) s
j Ω=j 2sin(ω/2)
T s cos(ω/2) 及
Ω=
即 2tan(ω/2) T s ω=2arctan(ΩT s /2)
2
因为设计滤波器时系数T s 会被约掉,所以又有
z =1+s 1-s Ω=tan(ω/2)
ω=2arctan Ω
(三)实验内容
题一:试用双线性Z 变换法设计一低通数字滤波器,给定技术指标是f p =100Hz ,f s =300Hz ,αp =3dB ,αs =20 dB ,抽样频率F s =1000Hz 。
提示:首先应该得到角频率ω,然后再
(1) 将数字滤波器的技术要求转换为模拟滤波器的技术要求。
(2) 设计低通滤波器G (s )
由λ=Ω/Ωp 依次求出λp ,λs ,再求出N ,可得G (p ) G (s ) =G (p )
然后由p =s
Ωp 转换成G (s )
(3) 由G (s ) 求H (z )
源程序:
fp=100;
fs=300;
ap=3; %通带最大衰减
as=20; %阻带最小衰减
Fs1=1000; %抽样频率
wp=2*pi*fp/Fs1;
ws=2*pi*fs/Fs1; %数字角频率
Fs=Fs1/Fs1;
T=1/Fs;
Op=2/T*tan(wp/2);
Os=2/T*tan(ws/2); %角频率畸变
[N Wn]=buttord(Op,Os,ap,as,'s');
[z p k]=buttap(N); %G(p)的零点, 极点, 增益
[b a]=zp2tf(z,p,k); %G(p)的分子、分数系数
[B A]=lp2lp(b,a,Op); %H(s)的分子、分数系数
[Bz Az]=bilinear(B,A,Fs*T/2); %H(z)的分子、分数系数
[H w]=freqz(Bz,Az,256,Fs*Fs1); %H
plot(w,abs(H),'r');
title('低通滤波器');
grid on;
实验结果:
低通滤波器
1.2
1
0.8
0.6
0.4
0.2
[***********][1**********]00
同理可以设计出低通滤波器和带通及带阻滤波器。
MATLAB 参考程序和仿真内容
%*******************************************************************%
function[x]=ffts(mode,M)
Nfft=2^M;
x=zeros(1,Nfft); %定义一个长度为Nfft 的一维全0数组
if mode= =1 for n=0:Nfft-1 x(n+1)=sin(2*pi*n/Nfft); end
end %定义一个长度为Nfft 的单周期正弦序列
if mode= =2 for n=0:Nfft-1 x(n+1)=sin(4*pi*n/Nfft); end
end %定义一个长度为Nfft 的双周期正弦序列
if mode= =3 for n=0:Nfft/2-1 x(n+1)=sin(4*pi*n/Nfft); end
end %定义一个长度为Nfft/2的正弦序列,后面一半为0序列。
if mode= =4 for n=0:Nfft-1 x(n+1)=square(2*pi*n/Nfft); end
end
if mode= =5 for n=0:Nfft-1 x(n+1)=square(2*pi*n/Nfft); end
end
if mode= =6 for n=0:Nfft/2-1 x(n+1)=square(4*pi*n/Nfft); end
end
n=0:Nfft-1;
subplot(2,1,1);
stem(n,x);
axis([0 Nfft-1 1.1*min(x) 1.1*max(x)]);
xlabel('Points-->');
ylabel('x(n)');
X=abs(fft(x,Nfft));
subplot(2,1,2);
stem(n,X);
axis([0 Nfft-1 1.1*min(X) 1.1*max(X)]);
xlabel('frequency-->');
ylabel('!X(k)!');
图二
图三
DSP 设计滤波器报告
一·低通滤波器的设计
(一)实验目的:掌握IIR 数字低通滤波器的设计方法。
(二)实验原理:
1、滤波器的分类
滤波器分两大类:经典滤波器和现代滤波器。
经典滤波器是假定输入信号x (n ) 中的有用成分和希望取出的成分各自占有不同的频带。这样,当x (n ) 通过一个线性系统(即滤波器)后可讲欲去除的成分有效的去除。
现代滤波器理论研究的主要内容是从含有噪声的数据记录(又称时间序列)中估计出信号的某些特征或信号本身。
经典滤波器分为低通、高通、带通、带阻滤波器。每一种又有模拟滤波器(AF )和数字滤波器(DF )。对数字滤波器,又有IIR 滤波器和FIR 滤波器。 IIR DF 的转移函数是:
Y (z ) =X (z ) H (z ) =∑b z r
r =0
N
k =1M -r 1+∑a k z -k
FIR DF的转移函数是:
H (z ) =∑h (n ) z -n
n =0N -1
FIR 滤波器可以对给定的频率特性直接进行设计,而IIR 滤波器目前最通用的方法是利用已经很成熟的模拟滤波器的设计方法进行设计。
2、滤波器的技术要求
低通滤波器:
ωp :通带截止频率(又称通带上限频率) ωs :阻带下限截止频率 αp α:通带允许的最大衰减 αs :阻带允许的最小衰减 (p ,αs
:通带上限角频率 Ωs :阻带下限角频率 的单位dB ) Ωp
(Ωp =ωp s ,Ωs =ωs s )即 Ωp =2πωp C Ωs =2πωs C
3、IIR 数字滤波器的设计步骤:
1)按一定规则将给出的数字滤波器的技术指标转换魏模拟低通滤波器的技术指标。
2)根据转换后的技术指标设计模拟低通滤波器G (s ) ;
3)再按一定的规则将G (s ) 转换成H (z ) 。
4)若是高通、带通或带阻数字滤波器则将它们的技术指标先转化为低通模拟滤波器的技术指标,然后按上述步骤2)设计出低通G (s ) ,再将G (s ) 转换为所需的H (z ) 。
4.几种不同类型的滤波器的介绍:
因为我们设计的滤波器的冲击响应一般都为实数,所以有
G (s ) G *(s ) =G (s ) G (-s ) s =j Ω=G (j Ωs ) 2
G (j Ω) 2
这样,如果我们能由
的G (s ) 。 不同类型的G (j Ω) 2αp ,Ωp ,αs ,Ωs 求出,那么就容易得到所需要
的表达式,代表了几种不同类型的滤波器。
(1)巴特沃思(Butterworth)滤波器: G (j Ω) =2
11+C 2(Ω2) n
C 为待定常数,N 为待定的滤波器阶次。
(2)切比雪夫I 型(Chebyshev – I )滤波器:
G (j Ω) =21
21+ε2C n (Ω)
5.巴特沃思模拟低通滤波器的设计
由于每一个滤波器的频率范围将直接取决于设计者的应用目的,因此必然是千差万别。为了使设计规范化,我们需要将滤波器的频率参数作归一化处理。设所给的实际频率为Ω(或f ),归一化后的频率为λ,对低通模拟滤波器,令
, λ=Ω/Ωp 。又令归一化复数变量为p ,p =j λ,显然
显然, λp =1 λs =Ωs /Ωp p =j λ=j Ω/Ωp =s /Ωp
所以巴特沃思模拟低通滤波器的设计可按以下三个步骤来进行。
(1)将实际频率Ω规一化
(2)求C 和N
C 2=10αP /10-1
N =lg 10αs /10-1
10αp /10-1λs
这样C 和N 可求。
若令αp =3dB ,则C =1,这样巴特沃思滤波器的设计就只剩一个参数N ,这时 G (j λ) =21
1+λ2N =11+(Ω/Ωp ) 2N
(3)确定G (s )
因为p =j λ,根据上面公式有
G (p ) G (-p ) =11=1+(p /j ) 2N 1+(-1) N p 2N
由 1+(-1) N p 2N =0解得
2k +N -12π) 2N ,k =1,2,···,2N
1
2k +N -1p 2-2p cos(π) +12N p k =exp(j 这样可得 G k (p ) =1=(p -p k )(p -p N +1-k )
求得G (p ) 后,用s /Ωp 代替变量p ,即得实际需要得G (s ) 。
6.用双线性Z 变换法设计IIR 数字低通滤波器
s 平面到z 平面的映射关系
s =2z -1
T s z +1
称为双线性Z 变换,由此关系求出
z =1+(T s /2) s
1-(T s /2) s
j Ω=j 2sin(ω/2)
T s cos(ω/2) 及
Ω=
即 2tan(ω/2) T s ω=2arctan(ΩT s /2)
2
因为设计滤波器时系数T s 会被约掉,所以又有
z =1+s 1-s Ω=tan(ω/2)
ω=2arctan Ω
(三)实验内容
题一:试用双线性Z 变换法设计一低通数字滤波器,给定技术指标是f p =100Hz ,f s =300Hz ,αp =3dB ,αs =20 dB ,抽样频率F s =1000Hz 。
提示:首先应该得到角频率ω,然后再
(1) 将数字滤波器的技术要求转换为模拟滤波器的技术要求。
(2) 设计低通滤波器G (s )
由λ=Ω/Ωp 依次求出λp ,λs ,再求出N ,可得G (p ) G (s ) =G (p )
然后由p =s
Ωp 转换成G (s )
(3) 由G (s ) 求H (z )
源程序:
fp=100;
fs=300;
ap=3; %通带最大衰减
as=20; %阻带最小衰减
Fs1=1000; %抽样频率
wp=2*pi*fp/Fs1;
ws=2*pi*fs/Fs1; %数字角频率
Fs=Fs1/Fs1;
T=1/Fs;
Op=2/T*tan(wp/2);
Os=2/T*tan(ws/2); %角频率畸变
[N Wn]=buttord(Op,Os,ap,as,'s');
[z p k]=buttap(N); %G(p)的零点, 极点, 增益
[b a]=zp2tf(z,p,k); %G(p)的分子、分数系数
[B A]=lp2lp(b,a,Op); %H(s)的分子、分数系数
[Bz Az]=bilinear(B,A,Fs*T/2); %H(z)的分子、分数系数
[H w]=freqz(Bz,Az,256,Fs*Fs1); %H
plot(w,abs(H),'r');
title('低通滤波器');
grid on;
实验结果:
低通滤波器
1.2
1
0.8
0.6
0.4
0.2
[***********][1**********]00
同理可以设计出低通滤波器和带通及带阻滤波器。
MATLAB 参考程序和仿真内容
%*******************************************************************%
function[x]=ffts(mode,M)
Nfft=2^M;
x=zeros(1,Nfft); %定义一个长度为Nfft 的一维全0数组
if mode= =1 for n=0:Nfft-1 x(n+1)=sin(2*pi*n/Nfft); end
end %定义一个长度为Nfft 的单周期正弦序列
if mode= =2 for n=0:Nfft-1 x(n+1)=sin(4*pi*n/Nfft); end
end %定义一个长度为Nfft 的双周期正弦序列
if mode= =3 for n=0:Nfft/2-1 x(n+1)=sin(4*pi*n/Nfft); end
end %定义一个长度为Nfft/2的正弦序列,后面一半为0序列。
if mode= =4 for n=0:Nfft-1 x(n+1)=square(2*pi*n/Nfft); end
end
if mode= =5 for n=0:Nfft-1 x(n+1)=square(2*pi*n/Nfft); end
end
if mode= =6 for n=0:Nfft/2-1 x(n+1)=square(4*pi*n/Nfft); end
end
n=0:Nfft-1;
subplot(2,1,1);
stem(n,x);
axis([0 Nfft-1 1.1*min(x) 1.1*max(x)]);
xlabel('Points-->');
ylabel('x(n)');
X=abs(fft(x,Nfft));
subplot(2,1,2);
stem(n,X);
axis([0 Nfft-1 1.1*min(X) 1.1*max(X)]);
xlabel('frequency-->');
ylabel('!X(k)!');
图二
图三