华北电力大学数字信号处理实验报告Word格式文档下载.docx
《华北电力大学数字信号处理实验报告Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《华北电力大学数字信号处理实验报告Word格式文档下载.docx(26页珍藏版)》请在冰豆网上搜索。
预畸变公式为:
巴特沃斯滤波器的特点是同频带内的频率响应曲线最为平坦,没有起伏,而在组频带则逐渐下降为零。
在振幅的对数对角频率的波特图上,从某一边界见频率开始,振幅随着角频率的增加而逐渐减少,趋向于负无穷大。
一阶巴特沃斯滤波器的衰减率为每倍频20分贝,二阶巴特沃斯滤波器的衰减率为每倍频12分贝,三阶的衰减率为每分贝18分贝,如此类推,巴特沃斯滤波器的振幅对角频率单调下降,并且滤波器的结束越高,在组频带振幅衰减速度越快,其他滤波器高阶的振幅对角频率图和低阶数的振幅对角频率有不同的形状。
巴特沃斯滤波器的设计实质上就是根据设计指标求阶数N和3dB截止频率Ωc的过程。
实验内容
一、实验内容
实验三实现IIR数字低通滤波器的设计(提高性实验)
用双线性变换法设计一个IIR数字Butterworth低通滤波器。
技术指标为:
通带截止频率fp=1kHz,阻带截止频率fs=1.5kHz,通带衰减Rp≤1dB,阻带衰减Rs≥40dB,采样频率Fs=10kHz。
绘出滤波器的幅频特性曲线和相频特性曲线,判断设计是否符合要求。
二、设计方案、步骤
设计一个非归一化的模拟巴特沃斯滤波器的原型函数,这个函数称为buttap_o(N,omega)
利用buttap_o函数,可以编制一个能设计给定指标的模拟巴特沃斯低通滤波器的函数afd_buttap()
编写计算模拟滤波器频率响应的函数freqs_m,这个函数以绝对值和相对值dB尺度计算幅度响应和相位响应。
编写sdirzcas()函数,它能将模拟滤波器的系统函数由直接型转换为级联型。
以上函数是模拟巴特沃斯滤波器设计中用到的函数,实验MATLAB设计模拟巴特沃斯滤波器时用到的参数有通带截止频率,阻带截止频率,通带的衰减波动,阻带的衰减波动。
根据具体参数调用上述函数编写程序,实现一个IIR数字Butterworth低通滤波器,并绘出滤波器的幅频特性曲线和相频特性曲线,判断设计是否符合要求。
三、实验源程序
%非归一化的巴特沃斯模拟低通滤波器的原型函数
function[b,a]=buttap_o(N,omega)
%UNTITLED2Summaryofthisfunctiongoeshere
%Detailedexplanationgoeshere
[z,p,k]=buttap(N);
%内部函数
p=p*omega;
k=k*omega^N;
B=real(poly(z));
b0=k;
b=k*B;
a=real(poly(p));
end
%非归一化巴特沃斯模拟滤波器设计函数
function[b,a]=afd_buttap(wp,ws,Rp,As)
%UNTITLED3Summaryofthisfunctiongoeshere
ifwp<
=0
error('
通带边缘必须大于0'
);
ifws<
阻带边缘必须大于0'
if(Rp<
=0)||(As<
0)
通带波动或阻带波动衰减必须大于0'
N=ceil((log10((10^(Rp/10)-1)/(10^(As/10)-1)))/(2*log10(wp/ws)));
fprintf('
\n***ButterworthFilterOrder=%2.0f\n'
N);
omega=wp/((10^(Rp/10)-1)^(1/(2*N)));
[b,a]=buttap_o(N,omega);
%非归一化的巴特沃斯模拟低通滤波器原型函数
End
%计算离散系统频率响应的函数
function[db,mag,pha,grd,w]=freqz_m(b,a)
%UNTITLED4Summaryofthisfunctiongoeshere
[H,w]=freqz(b,a,1000,'
whole'
H=(H(1:
1:
501))'
;
w=(w(1:
mag=abs(H);
db=20*log10((mag+eps)/max(mag));
pha=angle(H);
grd=grpdelay(b,a,w);
%直接型到级联型的转换函数
function[b0,B,A]=dir2cas(b,a)
%计算增益系数
b0=b
(1);
b=b/b0;
a0=a
(1);
a=a/a0;
b0=b0/a0;
%
M=length(b);
N=length(a);
ifN>
M
b=[bzeros(1,N-M)];
elseifM>
N
a=[azeros(1,M-N)];
N=M;
else
NM=0;
K=floor(N/2);
B=zeros(K,3);
A=zeros(K,3);
ifK*2==N
b=[b0];
a=[a0];
broots=cplxpair(roots(b));
aroots=cplxpair(roots(a));
fori=1:
2:
2*K
Brow=broots(i:
i+1,:
);
Brow=real(poly(Brow));
B(fix((i+1)/2),:
)=Brow;
Arow=aroots(i:
Arow=real(poly(Arow));
A(fix((i+1)/2),:
)=Arow;
主程序
%模拟滤波器指标
wp=0.2*pi;
ws=0.3*pi;
Rp=1;
As=40;
%预畸变
fs=10000;
T=1/fs;
omegap=(2/T)*tan(wp/2);
omegas=(2/T)*tan(ws/2);
[cs,ds]=afd_buttap(omegap,omegas,Rp,As);
%双线性变换
[b,a]=bilinear(cs,ds,fs);
[C,B,A]=dir2cas(b,a);
[db,mag,pha,grd,w]=freqz_m(b,a);
%画图
figure
(1);
plot(w/pi,mag);
ylabel('
|幅度|'
xlabel('
以\pi为单位的频率'
title('
幅度响应'
gridon;
axis([00.801]);
figure
(2);
plot(w/pi,db);
幅度响应(db)'
对数幅度/db'
axis([00.8-600]);
figure(3);
plot(w/pi,pha);
相位响应'
axis([00.8-44]);
相位'
实验结果及分析
1、实验结果:
2、实验分析
提高性实验实验四利用窗函数法实现线性相位FIR数字低通滤波器设计
实验目的
1、根据ALPF指标,构建物理可实现的线性相位FIR滤波器的冲激响应函数;
2、采用多种窗函数,设计线性相位型FIR滤波器
4、对比分析多种窗函数法设计的数字滤波器性能。
实验原理
FIR滤波器通常采用窗函数方法来设计。
窗设计的基本思想是,首先选择一个适当的理想选频滤波器(它总是具有一个非因果,无限持续时间脉冲响应),然后截取(加窗)它的脉冲响应得到线性相位和因果FIR滤波器。
我们用Hd(e^jw)表示理想的选频滤波器,它在通带上具有单位增益和线性相位,在阻带上具有零响应。
一个带宽wc<
pi的低通滤波器由下式给定:
为了从hd(n)得到一个FIR滤波器,必须同时在两边截取hd(n)。
而要得到一个因果的线性相位滤波器,它的h(n)长度为N,必须有:
这种操作叫做加窗,h(n)可以看做是hd(n)与窗函数w(n)的乘积:
h(n)=hd(n)w(n)其中
根据w(n)的不同定义,可以得到不同的窗结构。
在频域中,因果FIR滤波器响应H(e^jw)由Hd(e^jw)和窗响应W(e^jw)的周期卷积得到,即
常用的窗函数有矩形窗、巴特利特(BARTLETT)窗、汉宁(HANNING)窗、哈明(HAMMING)窗、布莱克曼(BLACKMAN)窗、凯泽(KAISER)窗等
实验四利用窗函数法实现线性相位FIR数字低通滤波器设计(提高性实验)
用窗函数法设计一个线性相位FIR数字低通滤波器。
通带截止角频率ωp=0.2π,阻带截止角频率ωs=0.3π,通带衰减Rp≤1dB,阻带衰减Rs≥40dB。
根据相同的滤波器要求,选用不同的窗函数进行设计,比较各种窗函数对FIR数字滤波器频率特性的影响。
FIR滤波器的设计方法有许多种,如窗函数设计法、频率采样设计法和最优化设计法等。
窗函数设计法的基本原理是用一定宽度窗函数截取无限脉冲响应序列获得有限长的脉冲响应序列,主要设计步骤为:
1给出希望设计的滤波器的频率响应函数
2根据允许的过渡带宽度及阻带衰减,初步选定窗函数和N值
3计算以下积分,求出
或
将
与窗函数相乘得FIR数字滤波器的冲激响应
计算FIR数字滤波器的频率响应
验证是否达到所要求的指标
%计算离散系统频率响应的函数
%理想低通滤波器的计算函数
functionhd=ideal_lp(wc,M)
%UNTITLEDSummaryofthisfunctiongoeshere
alpha=(M-1)/2;
n=[0:
(M-1)];
m=n-alpha+eps;
%加一个很小的数以避免用零来除
hd=sin(wc*m)./(pi*m);
%用哈明窗函数设计FTR数字滤波器
N=51
N-1];
wc=(ws+wp)/2;
%理想低通的截止频率
hd=ideal_lp(wc,N);
%理想低通的冲激响应
w_ham=(hamming(N))'
h=hd.*w_ham;
%FIR滤波器的冲激响应
[db,mag,pha,grd,w]=freqz_m(h,[1]);
delta_w=2*pi/1000;
Rp=-(min(db(1:
wp/delta_w+1)))%实际的通带衰减
As=-round(max(db(ws/delta_w+1:
501)))%实际的最小阻带衰减
%plots
subplot(2,2,1);
subplot(2,2,3);
axis([00.8-1000]);
subplot(2,2,2);
%用汉宁窗函数设计FTR数字滤波器
N=51;
w_han=(hanning(N))'
h=hd.*w_han;
figure
(2)
%用凯泽窗函数设计FIR数字滤波器
tr_width=ws-wp;
N=ceil((As-7.95)/(14.36*tr_width/(2*pi))+1)+1%ceil为向右取整函数
beta=0.1102*(As-8.7)
%理想低通的截止频率
w_kai=(kaiser(N,beta))'
h=hd.*w_kai%FIR滤波器的冲激响应
stem(n,hd,'
.'
理想冲激响应'
n'
hd(n)'
axis([0N-1-0.20.3]);
stem(n,w_kai,'
Kaiser窗'
w(n)'
axis([0N-101.1]);
subplot(2,2,4);
幅度响应(dB)'
对数幅度/dB'
%用布莱克曼窗函数设计FIR数字滤波器
N=ceil(12*pi/tr_width)+1
%理想低通的冲激响应
w_bla=(blackman(N))'
h=hd.*w_bla;
figure(4);
stem(n,w_bla,'
布莱克曼窗'
1、实验结果
1)哈明窗
2)汉宁窗
3)凯泽窗
5)布莱克曼窗
2、结果分析