<数字信号全相位谱分析和滤波技术>一书中第8.2.5节"
DFT域全相位等效FIR滤波器的一般设计步骤"中说:可将DFT域全相位等效FIR滤波器g的设计过程总结如下:
1. 将传统频率采样法中的H进行IDFT得到h,再对h进行周期展移(或定义域延拓),形成长为(2N-1)的向量h'=[h(-N +1),…,h(0),…,h(N-1)] T。
2. 将前窗f、后窗b进行卷积,生成卷积窗wc。
3 将h’、wc对应元素相乘并除以中心元素wc(0)进行归一化后即得等效FIR系数g(n)
如N=16 陷波器如下程序(程序中红色为apfir系数设计,后面的是验证设计结果)H=[1 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1]1 求H的ifft 得h, h去掉第一个和h合并形成 h1=[h(2:end) h];2 求ones(1,N)和hanning(n)'的卷积窗得win
3 win和h1乘即得apfir滤波器系数g
close all;clc;clear all;
N=16;
H=[1 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1];
h=ifft(H);
h1=[h(2:end) h];
w=ones(1,N);
w1=hanning(N)';
win1=conv(w,w1);
win=win1/sum(win1);
g=h1.*win*N;
[h,f]=freqz(g);
mag=abs(h)';
aa1=20*log10(mag);
ph=phase(h);
subplot(3,1,1),plot(f,mag,'r');
set(gca,'XTick',0:pi/N*2:pi)
set(gca,'XTickLabel',{0:N/2})
title(' 振幅特性 apFIR N=16');
xlim([0 pi])
grid
subplot(3,1,2),plot(f,aa1,'r');
set(gca,'XTick',0:pi/N*2:pi)
set(gca,'XTickLabel',{0:N/2})
title('对数振幅特性 apFIR N=16');
xlim([0 pi])
ylim([-400 0])
grid
subplot(3,1,3),plot(f,ph,'r');
set(gca,'XTick',0:pi/N*2:pi)
set(gca,'XTickLabel',{0:N/2})
title('相位特性 apFIR N=16');
xlim([0 pi])
grid
图一 apfir陷波器的对数振幅特性和相位特性
图一是上程序的执行结果,可见陷波点衰减为-325db,线性相位.