资源描述
实 验 报 告
课程名称
通信系统建模与仿真
实验项目名称
实验四 用频率取样法设计FIR数字滤波器
实验类型
综合设计
实验学时
2
班级
通信二班
学号
201408207
姓名
蒋力
指导教师
何忠秋
实验室名称
21B 261
实验时间
实验成绩
预习部分
实验过程
表现
实验报告
部分
总成绩
教师签字
日期
2017.
哈尔滨工程大学教务处 制
实验四 用频率取样法设计FIR数字滤波器
一、实验目的
1、掌握频率取样法设计线性相位FIR 数字滤波器的方法,并用Matlab工具编程实现。
2、熟悉频率取样理论,熟悉内插函数及其应用。
3、观察过渡带取样点或优化数值对滤波器幅频特性的影响。
二、 实验原理
频率采样法就是根据频域采样理论,由滤波特性指标构造希望逼近的滤波器频响函数Hd(ejω),对其在[0,2π]上采样得到。
然后,就可求出单位脉冲响应h(n),或是系统函数H(z)。这样,h(n)或是H(z)就是滤波器的设计结果。
三、 实验内容
1.用频率取样法设计一个线性相位低通数字滤波器,N=15,[0,π]之间的幅度取样值如下,求出其单位脉冲响应h[k]及幅频和相频特性曲线。尝试增加过渡点,观察并分析过渡点对滤波器性能的影响。
,
2.设计一个以下幅度响应的FIR数字滤波器,期望的幅度响应为:
,fc为3dB频率点,n是滤波器阶数。
3.思考题
四、方案设计和实现步骤
方案设计
[1]. 频率取样设计法的流程:
幅频特性根据N的奇偶可得到,N为奇数;或, N为偶数数。
[2]. 离散频率特性的幅度和相位约束条件:
数字滤波器实现步骤:
(1)确定所设计DF的性能要求和阶数N=2π/Δω 。
(2)根据要求,合理选择单位脉冲响应的奇、偶对称性,从而确定理想频率响应的幅度和相位。
(3)对理想频率响应在0~2π区间等间隔取样,得到H(k)。
(4)根据内插公式,求出H(z)的幅频特性曲线。
(5)检查幅频特性是否满足性能要求,若不满足,可调整过渡带取样点值,重复第(2)步,直到满足条件为止。
(6)对H(k)作IDFT求得h(k)。
五、仿真结果
六、分析和结论
由实验结果可知:信号的幅度谱大约在0.6出开始出现衰减,而相频响应都是在大于或等于0.6后开始出现波动并逐渐趋于平缓。
(1) 用频率取样法设计FIR DF的特点
答:为了提高逼近质量,使逼近误差更小,也就是减小在通带边缘由于抽样点的徒然变化而引起的起伏变化。和窗口法的平滑截断一样,这里是使理想频率响应的不连续点的边缘加上一些过渡的抽样点,从而增加过渡带,减小频带边缘的突变,也就是减小了起伏振荡,增大了阻带最小衰减。这些抽样点上的取值不同,效果也就不同。如果精心设计过渡带的抽样值,就有可能使它的有用频带的波纹减小,从而设计出较好的滤波器。一般过渡带取一、二、三点抽样值即可得到满意结果。
在理想低通滤波器的设计中,若不增加过渡点,阻带和通带之间的衰减约为-21dB,如果在通带和阻带之间增加一个采样点,阻带的最小衰减可以提高到-65dB,如果增加两个采样点,阻带的最小衰减可以提高到-75dB,如果增加3个采样点,阻带的最小衰减可以提高到-85dB至-95dB。
频率抽样法的优点是可以在频域直接设计,并且适合于最优化设计;缺点是抽样频率只能等于2pi/M的整数倍或等于2pi/M的整数倍上加上pi/M,因而不能确保截止频率Wc的自由取值。要想实现自由选择频率,则必须增加抽样点数M,但这种计算量加大。
频率采样法是从频域出发,将给定的理想频率响应加以等间隔的采样,然后以Hd(k)作为实际的FIR数字滤波器的频率特性的采样值H(k)。采样点之间的频率响应是由各采样点的加权内插函数的延伸叠加形成的,因而有一定的逼近误差,误差取决于理想频率响应曲线形状。内插值和理想值之间的误差越大,在理想频率特性不连续点附近,就会产生肩峰和波纹。
(2)实现线性相位的H(k)应满足什么条件?
七、程序附录
%program 1
N = 33;
H = [ones(1,9),0.4,zeros(1,13),0.4,ones(1,9)];
k = 0:N-1;
A = exp(-j*pi*k*(N-1)/N);
HK = H.*A;
hn = ifft(HK,N);
freqz(hn,1,256);
figure(2);
stem(real(hn),'.');
line([0,35],[0,0]);xlabel('n');ylabel('Real(h(n))');
%Program2
N = 33;
% N=input('N=');
M = N-1;L = M/2;
F = [0:1/L:1];
A = [ones(1,9),zeros(1,L-8)];
B = fir2(M,F,A);
[H,W]=freqz(B);
subplot(2,1,1),plot(W/pi,10*log10(abs(H)));grid on;
subplot(2,1,2),plot(W/pi,unwrap(angle(H)));grid on;
figure;stem(real(B),'.');
xlabel('n');ylabel('Real(h(n))');
% File_C3:DFTFirD2.m
%本程序采用频率采样法设计FIR滤波器
order=20; %滤波器的阶数
fc=5; %3 dB频率点
fmax=100; %仿真的最大频率
nf=256; %正频率抽样点的个数
f=(0:(nf-1))*(fmax/(nf-1));
N=2*nf; %傅里叶变换的长度
H=zeros(1,N);
Ha=1./(sqrt(1+(f/fc).^order)); %半边带频率响应
H=[Ha 0 fliplr(Ha(2:nf))]; %双边带频率响应,偶对称
[htl]=real(ifft(H,N));
aa=htl(1:nf);
bb=htl(nf+1:N);
ht=[bb aa]; %在时域进行平移
x=[0:N-1];
plot(x,ht(1:N));
% axis([0 N-1 - 0.02 0.06]);
xlabel('采样序列');
ylabel('脉冲响应');
title('冲激响应');
%程序结束
展开阅读全文