数字信号处理1
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《数字信号处理》课程实践报告频率采样法设计FIR数字滤波器
频率采样法设计FIR 数字滤波器
一、实验原理:
设所希望得到的滤波器的理想频率响应为)(jw d e H ,那么由系统函
数)(z H 的内插公式为:
∑-=-----=1
011)(1)(N k k N N
z w k H N z z H (10-1) 其中)(k H 是频率采样值
)()()(2k N j w z e H z H k H k N π==-= (10-2)
为我们提供了一条从频域设计逼近
)(jw d e H 的途径。 即令
)()(2k N j d e H k H π= (10-3) 则对
)(jw d e H 的逼近为 ∑-=-----=1
01)(1)(N k jw k N jNw
jw e w k H N e e H (10-4) 至少在采样点的频率上,两者可以具有相同的频响,即
)()(22k N j d k N j e H e H ππ= (10-5)
当需要设计线性相位FIR 滤波器时,还必须注意,采样值)(k H 的幅度和相位一定要遵循线性相位滤波器幅度与相位的四种不同的约束关系。
设计所得的频率响应)(jw e H 逼近于理想频率响应)(jw d e H 的程度
与理想特性有关,如果)(jw d e H 越平缓,则)(jw e H 越逼近)(jw d e H ;反之,
如果)(jw d e H 变化越剧烈,采样点之间的理想特性变化大,则内插值
)(jw e H 与理想值)(jw d e H 的误差就越大,因而在理想特性的每一个不连
续点附近都会出现肩峰与起伏,不连续性越大,出现的肩峰和起伏也越大。为了解决这一问题,在理想特性不连续点的边缘加过渡的采样点,这样虽然加宽了过滤带,但缓和了边缘上两采样点之间的突变。因而将有效地减少起伏振荡,提高阻带的最小衰减。
因此频率采样法的设计过程为:
给定
)()()()()(k w k H k H k H e H d d jw d +=−−−−→−−−→−加过渡点样
采
为了检验所设计的)(jw e H 对)(jw d e H 的逼近性能,我们可以如下做检验:
)()()(jw e H n h k H FT IDFE N −−→−−−−−→−点
在做FT 中,我们可以取点数大于N 的DFT 代替之。
二、.设计步骤
(1)由给定的理想滤波器给出和。 (2)由式
)()()(2k N j w z e H z H k H k N π==-= , 求得。 (3)根据求得和。
三、实验内容
1.采用频率采样设计法设计FIR 数字低通滤波器,满足以下指标
(1) 取N=20,过渡带没有样本。
(2) 取N=40,过渡带有一个样本,T=0.39。
(3)取N=60,过渡带有两个样本,T1=0.5925,T2=0.1009。
(4)分别讨论采用上述方法设计的数字低通滤波器是否能满足给定的技术指标。
实验代码与实验结果:
(1)N=20 过渡带没有样本
matlab程序:
N=20;
alpha=(N-1)/2;
l=0:N-1;
wl=(2*pi/N)*l;
Hrs=[1,1,1,zeros(1,15),1,1]; *对理想幅度函数取样得到取样样本
Hdr=[1,1,0,0];wdl=[0,0.25,0.25,1]; *用于绘制理想函数幅度函数的曲线
k1=0:floor((N-1)/2);
k2=floor((N-1)/2)+1:N-1;
angH=[-alpha*(2*pi)/N*k1,alpha*(2*pi)/N*(N-k2)];
H=Hrs.*exp(j*angH); *计算H(k)
h=ifft(H,N); *计算h(n)
w=[0:500]*pi/500;
H=freqz(h,1,w); *计算幅度响应
[Hr,wr]=zerophase(h); *计算幅度函数
subplot(221);
plot(wdl,Hdr,wl(1:11)/pi,Hrs(1:11),'o'); axis([0,1,-0.1,1.1]);
xlabel('\omega(\pi)');
ylabel('Hr(k)');
subplot(222);
stem(l,h,'filled');
axis([0,N-1,-0.1,0.3]);
xlabel('n');ylabel('h(n)');
subplot(223);
plot(wr/pi,Hr,wl(1:11)/pi,Hrs(1:11),'o'); axis([0,1,-0.2,1.2]);
xlabel('\omega(\pi)');
ylabel('Hr(w)');
subplot(224);
plot(w/pi,20*log10((abs(H)/max(abs(H))))); axis([0,1,-50,5]);
grid;xlabel('\omega(\pi)');
ylabel('dB');
(2)N=40 过渡带有一个样本,T=0.39
Matlab程序:
N=40;
alpha=(N-1)/2;
l=0:N-1;wl=(2*pi/N)*l;
Hrs=[1,1,1,1,1,0.39,zeros(1,29),0.39,1,1,1,1]; *设置过渡带样本
Hdr=[1,1,0.39,0,0];wdl=[0,0.2,0.25,0.3,1];
k1=0:floor((N-1)/2);
k2=floor((N-1)/2)+1:N-1;