最优线性相位FIR滤波器的设计步骤11
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
最优线性相位FIR 滤波器的设计步骤 [11] 1)输入数据,滤波器性能要求,滤波器类型; 2)根据类型和()h n 长度N ,确定cos()的个数r ; 3)在[]0,π频率区间,用密集的格点表示离散频率
=
r π
π
⨯总格点数
格点密度;
4)计算各格点频率上的()d H ω和()W ω函数值 ; 5)用公式表示逼近问题, 将()
d H ω,
()W ω表示成()ˆd
H ω,()ˆW ω, 加权逼近误差()()()()ˆˆd
E W H P ωωωω⎡⎤=-⎣
⎦;
6)用Remez 算法,求逼近问解的解; 7)计算滤波器的单位抽样响应()
h n 。
图3.1加权最优化算法流程图
3.3 均方误差最小准则
频率响应误差[12]:
()()()()()-1
N j j j j n
j n d
d
n n E e
H e H e h n e
h n e ω
ω
ω
ωω∞
--=-∞
==-=-∑∑
=
()()()-1
N j n
j n
d
d
n n
h n h n e
h n e
ωω--=-+
⎡⎤⎣⎦∑∑其它
(3.11)
均方误差:
()
()()2
2
21122j j j d e E e d H e H e d π
π
ωωωωωπ
π
π
π
--=
=
-⎰
⎰
=
()()()
2
1
2
N d d n n
h n h n h n -=-+
∑∑
其它 (3.12)
当()()d h n h n -=0 01n N ≤≤-时
()
22min e e =
(3.13)
3.4 最大误差最小化准则
当()h n 为偶/奇对称,N 为奇/偶数的四种情况[13],其频响为:
()()
1
2
2
N j
j L j H e
e
e
H π
ωω
ω--=⋅⋅
(3.14)
()h n 为偶对称时,0L =
N 为奇数时,
()()()
120
cos N n H a n n ωω-==∑ (3.15)
N 为偶数时,
()()12
01sin 2N n H d n n ωω-=⎡⎤
⎛⎫=- ⎪⎢⎥
⎝
⎭⎣⎦∑ (3.16)
利用三角恒等式将 ()H ω 表示成两项相乘形式
()()()
H P Q ωωω=
(3.17)
表3.1H(ω)表现形式
()(cos a n ω()(cos b n ω()(cos c n ω()(cos c n ω其中:()()a n a n = 0,1,
,2
n = ()()()()()()11012112,3,,
122
11222b b b N
b n b n b n n N N b b ⎧=+⎪
⎪
⎪
⎡⎤=+-=-⎨⎣⎦⎪
⎪⎛⎫⎛⎫=- ⎪ ⎪
⎪⎝⎭
⎝⎭⎩ (3.18)
由下而上由()b n 求()b n
()()()()()()()()1101215
112,3,,
22
112,3,,122c c c N c n c n c n n N c n c n n ⎧
=+⎪⎪
-⎪=--+=⎡⎤⎨⎣⎦⎪
⎪=-=-⎪⎩
(3.19)
()()()()()()11012112,3,,
122
11222d d d N
d n d n d n n N N d d ⎧=-⎪
⎪
⎪
⎡⎤=--=-⎨⎣⎦⎪
⎪⎛⎫⎛⎫=- ⎪ ⎪
⎪⎝⎭
⎝⎭⎩ (3.20)
交错定理:若()P ω 是r 个余弦函数的线性组合[14]。即
()()()
1
cos r n P n n ωαω-==∑
(3.21)
A 是()0,π内的一个闭区间(包括各通带、阻带,但不包括过渡带),()ˆd H ω 是A 上的一个连续函数,则()P ω是()ˆd
H ω的唯一地和最佳的加权chebyshev 逼近的充分必要条件是:加权逼近误差函数()E ω在A 中至少有()1r +个极值点,即A 中至少有()1r +个极值点
i ω,且12i r ωωωω+<<
<<使得()()1i i E E ωω+=-,1,2,
,i r =且
()()max i A
E E ωωω∈=⎡⎤⎣⎦
3.5 实验分析
利用Parks-McClellan 算法设计一个等波纹FIR 低通滤波器,要求采用类型I 的线性相位滤波器来实现。其技术指标为0.2,0.3,0.25,50p s p s R dB A dB ωπωπ==== Asd=-max(db(wsi:1:501)) subplot(2,1,1); stem([1:46],h);
title('实际脉冲响应');xlabel('n');ylabel('h(n)'); w=linspace(0,pi,512)';
M1=20;alpha=(M1-1)/2;l=0:M1-1;w1=(2*pi/M1)*l; Hrs=[1,1,1,zeros(1,15),1,1]; [H1, W1]=freqz(h,1);
subplot(2,1,2);plot(w/pi,abs(H1),w1(1:11)/pi,Hrs(1:11),'o'); title('最优法设计幅频响应');xlabel('ω'); axis([0 1 -0.1 1.4 ]); grid on;
set(gca,'xtick',[0 0.2 0.3 1],'ytick',[0,1])