哈工大 数字信号处理实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验一: 用FFT 作谱分析
实验目的:
(1) 进一步加深DFT 算法原理和基本性质的理解(因为FFT 只是DFT 的一种快速算法, 所以FFT 的运算结果必然满足DFT 的基本性质)。

(2) 熟悉FFT 算法原理和FFT 子程序的应用。

(3) 学习用FFT 对连续信号和时域离散信号进行谱分析的方法,了解可能出现的分析误差及其原因,以便在实际中正确应用FFT 。

实验原理: DFT 的运算量:
一次完整的DFT 运算总共需要2N 次复数乘法和(1)N N -复数加法运算,因而
直接计算DFT 时,乘法次数和加法次数都和2N 成正比,当N 很大时,运算量很客观的。

例如,当N=8时,DFT 运算需64位复数乘法,当N=1024时,DFT 运算需1048576次复数乘法。

而N 的取值可能会很大,因而寻找运算量的途径是很必要的。

FFT 算法原理:
大多数减少离散傅里叶变换运算次数的方法都是基于nk N W 的对称性和周期
性。

(1)对称性
()
*()k N n kn kn
N
N N
W W W --==
(2)周期性
kn N
kn n N k
n k N
N
N N
N
W W W W ++===
由此可得
()()/2
(/2)1
n N k N n k nk N N N N N k N k N N W W W W W W ---+⎧==⎪=-⎨⎪=-⎩
这样:
1.利用第三个方程的这些特性,DFT 运算中有些项可以合并;
2.利用nk N W 的对称性和周期性,可以将长序列的DFT 分解为短序列的DFT 。

前面已经说过,DFT 的运算量是与2N 成正比的,所以N 越小对计算越有利,
因而小点数序列的DFT 比大点数序列的DFT 运算量要小。

快速傅里叶变换算法正是基于这样的基本思路而发展起来的,她的算法基本
上可分成两大类,即按时间抽取法和按频率抽取法。

我们最常用的是2M N =的情况,该情况下的变换成为基2快速傅里叶变换。

完成一次完整的FFT 计算总共需要
2log 2
N N
次复数乘法运算和2log N N 次复
数加法运算。

很明显,N 越大,FFT 的优点就越突出。

实验步骤 (1) 复习DFT 的定义、 性质和用DFT 作谱分析的有关内容。

(2) 复习FFT 算法原理与编程思想, 并对照DIT-FFT 运算流图和程序框图, 读懂本实验提供的FFT 子程序。

(3) 编制信号产生子程序, 产生以下典型信号供谱分析用:
1423()()1,03()8470403()3
47
x n R n n n x n n
n n n x n n n =⎧+≤≤⎪
=-≤≤⎨⎪⎩-≤≤⎧⎪
=-≤≤⎨⎪⎩
456()cos 4
()sin
8
()cos 8cos16cos 20x n n x n n
x t t t t
π
π
πππ===++
(4) 编写主程序。

(5) 按实验内容要求, 上机实验, 并写出实验报告。

实验程序与结果:
(1)对x 1(n)进行FFT 变换(N=8和N=16)
clear all;
N=4;%读入长度
x=[1,1,1,1];%调用信号产生子程序产生实验信号
n=0:N-1;subplot(3,1,1);stem(n,abs(x));%调用绘图子程序(函数)绘制时间序列波形图
title('原时间序列');
N=8;%读入长度
y1=fft(x,N);%调用FFT 子程序(函数)计算信号的DFT n=0:N-1;subplot(3,1,2);stem(n,fftshift(abs(y1)));hold
on;plot(n,fftshift(abs(y1)),'r--');%调用绘图子程序(函数)绘制|X(k)|曲线 title('N=8');
N=16;%读入长度
y2=fft(x,N);%调用FFT 子程序(函数)计算信号的DFT n=0:N-1;subplot(3,1,3);stem(n,fftshift(abs(y2)));hold
on;plot(n,fftshift(abs(y2)),'r--');%调用绘图子程序(函数)绘制|X(k)|曲线 title('N=16'); 结果图形
实验误差分析:
理论FFT频谱为一个抽样信号,由图形看出,随着采样率的提高,得到的FFT 频谱分辨率就越高,当N趋于无限时频谱包络接近理论的抽样函数。

(2)对x2(n)进行FFT变换(N=8和N=16)
clear all;
x=[1,2,3,4,4,3,2,1];%调用信号产生子程序产生实验信号
N=8;%读入长度
n=0:N-1;subplot(3,1,1);stem(n,abs(x));%调用绘图子程序(函数)绘制时间序列波形图
title('原时间序列');
N=8;%读入长度
y1=fft(x,N);%调用FFT子程序(函数)计算信号的DFT
n=0:N-1;subplot(3,1,2);stem(n,fftshift(abs(y1)));hold
on;plot(n,fftshift(abs(y1)),'r--');%调用绘图子程序(函数)绘制|X(k)|曲线
title('N=8');
N=16;%读入长度
y2=fft(x,N);%调用FFT子程序(函数)计算信号的DFT
n=0:N-1;subplot(3,1,3);stem(n,fftshift(abs(y2)));hold
on;plot(n,fftshift(abs(y2)),'r--');%调用绘图子程序(函数)绘制|X(k)|曲线
title('N=16');
结果图形
实验误差分析:
理论FFT频谱为一个抽样函数平方的信号,由图形看出,随着采样率的提高,得到的FFT频谱分辨率就越高,当N趋于无限时频谱包络接近理论的抽样函数。

(3)对x3(n)进行FFT变换(N=8和N=16)
clear all;
x=[4,3,2,1,1,2,3,4];%调用信号产生子程序产生实验信号
N=8;%读入长度
n=0:N-1;subplot(3,1,1);stem(n,abs(x));%调用绘图子程序(函数)绘制时间序列波形图
title('原时间序列');
N=8;%读入长度
y1=fft(x,N);%调用FFT子程序(函数)计算信号的DFT
n=0:N-1;subplot(3,1,2);stem(n,fftshift(abs(y1)));hold
on;plot(n,fftshift(abs(y1)),'r--');%调用绘图子程序(函数)绘制|X(k)|曲线
title('N=8');
N=16;%读入长度
y2=fft(x,N);%调用FFT子程序(函数)计算信号的DFT
n=0:N-1;subplot(3,1,3);stem(n,fftshift(abs(y2)));hold
on;plot(n,fftshift(abs(y2)),'r--');%调用绘图子程序(函数)绘制|X(k)|曲线
title('N=16');
结果图形
实验误差分析:
由图形看出,随着采样率的提高,得到的FFT频谱分辨率就越高,但对于这个函数来说,N仍然过小,因此幅频特性曲线与理论结果有较大差距。

(4)对x4(n)进行FFT变换(N=8和N=16)
clear all;
n=0:15;%读入长度
x=cos(pi/4*n);%调用信号产生子程序产生实验信号
subplot(3,1,1);stem(n,abs(x));%调用绘图子程序(函数)绘制时间序列波形图
title('cos(pi/4*n)');
N=8;%读入长度
y1=fft(x,N);%调用FFT子程序(函数)计算信号的DFT
n=0:N-1;subplot(3,1,2);stem(n,fftshift(abs(y1)));hold
on;plot(n,fftshift(abs(y1)),'r--');%调用绘图子程序(函数)绘制|X(k)|曲线
title('N=8');
N=16;%读入长度
y2=fft(x,N);%调用FFT子程序(函数)计算信号的DFT
n=0:N-1;subplot(3,1,3);stem(n,fftshift(abs(y2)));hold
on;plot(n,fftshift(abs(y2)),'r--');%调用绘图子程序(函数)绘制|X(k)|曲线
title('N=16');
结果图形:
实验误差分析:
这个函数的理论FFT抽样频谱为单位冲激函数,因此只要满足抽样定理,FFT 都可以与理论图形一样的曲线。

当N=8,16时,满足抽样定理。

(5)对x5(n)进行FFT变换(N=8和N=16)
clear all;
n=0:15;%读入长度
x=sin(pi/8*n);%调用信号产生子程序产生实验信号
subplot(3,1,1);stem(n,abs(x));%调用绘图子程序(函数)绘制时间序列波形图
title('sin(pi/8*n)');
N=8;%读入长度
y1=fft(x,N);%调用FFT子程序(函数)计算信号的DFT
n=0:N-1;subplot(3,1,2);stem(n,fftshift(abs(y1)));hold
on;plot(n,fftshift(abs(y1)),'r--');%调用绘图子程序(函数)绘制|X(k)|曲线
title('N=8');
N=16;%读入长度
y2=fft(x,N);%调用FFT子程序(函数)计算信号的DFT
n=0:N-1;subplot(3,1,3);stem(n,fftshift(abs(y2)));hold
on;plot(n,fftshift(abs(y2)),'r--');%调用绘图子程序(函数)绘制|X(k)|曲线
title('N=16');
结果图形:
实验误差分析:
这个函数的理论FFT抽样频谱为单位冲激函数,因此只要满足抽样定理,FFT 都可以与理论图形一样的曲线。

当N=8时,不满足抽样定理,因此产生了混叠失真,当N=8时,满足抽样定理,因此可得到与理论曲线一致的图形。

(6)对x6(n)进行FFT变换(N=16、N=32和N=64)
clear all;
n=0:64;%读入长度
x=cos(pi/8*n)+cos(pi/4*n)+cos(pi/16*5*n);%调用信号产生子程序产生实验信号subplot(4,1,1);stem(n,abs(x));hold on;plot(n,abs(x),'r--');%调用绘图子程序(函数)绘制时间序列波形图
title('cos(pi/8*n)+cos(pi/4*n)+cos(pi/16*5*n)');
N=16;%读入长度
y1=fft(x,N);%调用FFT子程序(函数)计算信号的DFT
n=0:N-1;subplot(4,1,2);stem(n,fftshift(abs(y1)));hold
on;plot(n,fftshift(abs(y1)),'r--');%调用绘图子程序(函数)绘制|X(k)|曲线title('N=16');
N=32;%读入长度
y2=fft(x,N);%调用FFT子程序(函数)计算信号的DFT
n=0:N-1;subplot(4,1,3);stem(n,fftshift(abs(y2)));hold
on;plot(n,fftshift(abs(y2)),'r--');%调用绘图子程序(函数)绘制|X(k)|曲线title('N=32');
N=64;%读入长度
y3=fft(x,N);%调用FFT子程序(函数)计算信号的DFT
n=0:N-1;subplot(4,1,4);stem(n,fftshift(abs(y3)));hold
on;plot(n,fftshift(abs(y3)),'r--');%调用绘图子程序(函数)绘制|X(k)|曲线title('N=64');
结果图形:
实验误差分析:
这个函数的理论FFT抽样频谱为有三个不同频率分量的单位冲激函数,因此只要满足抽样定理,FFT都可以与理论图形一样的曲线。

当N=16时,不满足抽样定理,因此产生了混叠失真,当N=32,64时,满足抽样定理,因此可得到与理论曲线一致的图形。

(7)对x(n)=x4(n)+x5(n)进行FFT变换(N=8和N=16)
clear all;
n=0:15;%读入长度
x4=cos(pi/4*n);
x5=sin(pi/8*n);
x=x4+x5;%调用信号产生子程序产生实验信号
subplot(3,1,1);stem(n,abs(x));hold on;plot(n,abs(x),'r--');%调用绘图子程序(函数)绘制时间序列波形图
title('cos(pi/4*n)+sin(pi/8*n)');
N=8;%读入长度
y1=fft(x,N);%调用FFT子程序(函数)计算信号的DFT
n=0:N-1;subplot(3,1,2);stem(n,fftshift(abs(y1)));hold
on;plot(n,fftshift(abs(y1)),'r--');%调用绘图子程序(函数)绘制|X(k)|曲线
title('N=8');
N=16;%读入长度
y2=fft(x,N);%调用FFT子程序(函数)计算信号的DFT
n=0:N-1;subplot(3,1,3);stem(n,fftshift(abs(y2)));hold
on;plot(n,fftshift(abs(y2)),'r--');%调用绘图子程序(函数)绘制|X(k)|曲线
title('N=16');
结果图形:
实验误差分析:
这个函数的理论FFT抽样频谱为有两个不同频率分量的单位冲激函数,因此只要满足抽样定理,FFT都可以与理论图形一样的曲线。

当N=8时,不满足抽样定理,因此产生了混叠失真,当N=16时,满足抽样定理,因此可得到与理论曲线一致的图形。

(8)对x(n)=x4(n)+jx5(n)进行FFT变换(N=8和N=16)
clear all;
n=0:15;%读入长度
x4=cos(pi/4*n);
x5=sin(pi/8*n);
x=x4+x5*j;%调用信号产生子程序产生实验信号
subplot(3,1,1);stem(n,abs(x));hold on;plot(n,abs(x),'r--');%调用绘图子程序(函数)绘制时间序列波形图
title('cos(pi/4*n)+sin(pi/8*n)*j');
N=8;%读入长度
y1=fft(x,N);%调用FFT子程序(函数)计算信号的DFT
n=0:N-1;subplot(3,1,2);stem(n,fftshift(abs(y1)));hold
on;plot(n,fftshift(abs(y1)),'r--');%调用绘图子程序(函数)绘制|X(k)|曲线
title('N=8');
N=16;%读入长度
y2=fft(x,N);%调用FFT 子程序(函数)计算信号的DFT
n=0:N-1;subplot(3,1,3);stem(n,fftshift(abs(y2)));hold
on;plot(n,fftshift(abs(y2)),'r--');%调用绘图子程序(函数)绘制|X(k)|曲线 title('N=16');
结果图形:
实验误差分析:
这个函数的理论FFT 抽样频谱为有两个不同频率分量的单位冲激函数,因此只要满足抽样定理,FFT 都可以与理论图形一样的曲线。

当N=8时,不满足抽样定理,因此产生了混叠失真,当N=16时,满足抽样定理,因此可得到与理论曲线一致的图形。

实验思考题
(1) 在N=8时,x 2(n)和x 3(n)的幅频特性会相同吗? 为什么? N=16呢?
答:在N=8的时候,x 3(n)只是x 2(n)以它的长度8为周期,将其延拓成周期
序列然后加以移位,最后截取主值区间(n=0到8)的序列值,因此x 3(n)是x 2(n)
进行循环位移后的结果。

由于序列的循环位移性质
[()][()]km N D FT x n m W D FT x n -+=
因此,循环位移只影响到DFT 后的相频特性,而不影响幅频特性,因此x 2(n)
和x 3(n)的幅频特性会相同。

若N=16,此时,x 2(n)和x 3(n)做DFT 即为它们分别进行末尾补零后再
进行的DFT ,则此时两个经过补零以后的序列就不满足循环位移的性质,因
此x 2(n)和x 3(n)的幅频特性就会发生变化。

(2) 如果周期信号的周期预先不知道, 如何用FFT 进行谱分析?
答:若预先不知道周期信号的周期,应先适当截取M 点进行FFT ,再将截
取的长度扩大1倍重新截取,比较二者结果,若二者的差别满足分析误差的
要求,就可以近似得到该信号的频谱,假若不满足误差要求则继续加倍截取
的长度进行FFT ,直到结果满足误差要求为止。

实验二: 用窗函数法设计
FIR 数字滤波器
实验目的:
(1)熟悉矩形窗、海宁窗、汉明窗和布莱克曼窗。

(2) 掌握用上述窗函数法设计FIR 数字滤波器的原理和方法。

(3) 熟悉线性相位FIR 数字滤波器特性。

(4) 了解各种窗函数对滤波特性的影响。

实验原理和方法:
如果所希望的滤波器的理想频率响应函数为Hd(e
j ω), 则其对应的单位脉冲响应为
1()()2j j n d d h n H e e d πωωπωπ-=⎰
用窗函数w(n)将h d (n)截断, 并进行加权处理, 得到:
()()()d h n h n n ω=
h(n)就作为实际设计的FIR 数字滤波器的单位脉冲响应序列, 其频率响应函数H(e jω)为
1
0()()N j j n n H e h n e ωω--==∑
如果要求线性相位特性, 则h(n)还必须满足:
()(1)h n h N n =±--
根据上式中的正、 负号和长度N 的奇偶性又将线性相位FIR 滤波器分成四类。

要根据所设计的滤波特性正确选择其中一类。

例如,要设计线性相位低通特性,可选择h(n)=h(N-1-n)一类,而不能选h(n)=-h(N-1-n)一类。

实验内容及步骤:
(1) 复习用窗函数法设计FIR数字滤波器一节内容,阅读本实验原理,掌握设计步骤。

(2) 编写程序。

①编写能产生四种窗函数的子程序。

②编写主程序。

实验程序及结果:
(1)矩形窗
clear all;
n=0:1:14;
wR=ones(1,15);% 编写矩形窗
hd=sin(0.25*pi*(n-7+eps))./(pi*(n-7+eps));%读入hd(n)函数
h1=hd.*wR;%计算h(n)
N=64;
H1=fft(h1,N);%调用子程序计算H(k)
n=0:N-1;w=2*pi/64*n;subplot(2,2,1);plot(w,fftshift(20*log10((abs(H1)))));%画幅度曲线
grid
xlabel('w/rad')
ylabel('20lg|H(jw)|/dB')
title('幅度曲线和相频曲线(n=15)');
n=0:N-1;w=2*pi/64*n;subplot(2,2,3);plot(w,unwrap(phase(H1)));%画相频曲线
grid
xlabel('w/rad')
clear all;
n=0:1:32;
wR=ones(1,33);% 编写矩形窗
hd=sin(0.25*pi*(n-16+eps))./(pi*(n-16+eps));%读入hd(n)函数
h1=hd.*wR;%计算h(n)
N=64;
H1=fft(h1,N);%调用子程序计算H(k)
n=0:N-1;w=2*pi/64*n;subplot(2,2,2);plot(w,fftshift(20*log10((abs(H1)))));%画幅度曲线
grid
xlabel('w/rad')
ylabel('20lg|H(jw)|/dB')
title('幅度曲线和相频曲线(n=33)');
n=0:N-1;w=2*pi/64*n;subplot(2,2,4);plot(w,unwrap(phase(H1)));%画相频曲线grid
xlabel('w/rad')
结果图像:
(2)汉宁窗
clear all;
n=0:1:14;
wH=0.5*(1-cos(2*pi/14*n));% 编写汉宁窗
hd=sin(0.25*pi*(n-7+eps))./(pi*(n-7+eps));%读入hd(n)函数
h1=hd.*wH;%计算h(n)
N=64;
H1=fft(h1,N);%调用子程序计算H(k)
n=0:N-1;w=2*pi/64*n;subplot(2,2,1);subplot(2,2,1);plot(w,fftshift(20*log10((abs(H 1)))));%画幅度曲线
grid
xlabel('w/rad')
ylabel('20lg|H(jw)|/dB');
title('幅度曲线和相频曲线(n=15)');
n=0:N-1;w=2*pi/64*n;subplot(2,2,1);subplot(2,2,3);plot(w,unwrap(phase(H1)));%画相频曲线
grid
xlabel('w/rad')
n=0:1:32;
wH=0.5*(1-cos(2*pi/32*n));% 编写汉宁窗
hd=sin(0.25*pi*(n-16+eps))./(pi*(n-16+eps));%读入hd(n)函数
h1=hd.*wH;%计算h(n)
N=64;
H1=fft(h1,N);%调用子程序计算H(k)
n=0:N-1;w=2*pi/64*n;subplot(2,2,1);subplot(2,2,2);plot(w,fftshift(20*log10((abs(H 1)))));%画幅度曲线
grid
xlabel('w/rad')
ylabel('20lg|H(jw)|/dB')
title('幅度曲线和相频曲线(n=33)');
n=0:N-1;w=2*pi/64*n;subplot(2,2,1);subplot(2,2,4);plot(w,unwrap(phase(H1)));%画相频曲线
grid
xlabel('w/rad')
结果图像:
(3)海明窗:
clear all;
n=0:1:14;
wH=0.54-0.46*cos(2*pi*n/(14+eps));% 编写海明窗
hd=sin(0.25*pi*(n-7+eps))./(pi*(n-7+eps));%读入hd(n)函数
h1=hd.*wH;%计算h(n)
N=64;
H1=fft(h1,N);%调用子程序计算H(k)
n=0:N-1;w=2*pi/64*n;subplot(2,2,1);subplot(2,2,1);plot(w,fftshift(20*log10((abs(H 1)))));%画幅度曲线
grid
xlabel('w/rad')
ylabel('20lg|H(jw)|/dB')
title('幅度曲线和相频曲线(n=15)');
n=0:N-1;w=2*pi/64*n;subplot(2,2,1);subplot(2,2,3);plot(w,unwrap(phase(H1)));%画相频曲线
grid
xlabel('w/rad')
n=0:1:32;
wH=0.54-0.46*cos(2*pi*n/(32+eps));% 编写海明窗
hd=sin(0.25*pi*(n-16+eps))./(pi*(n-16+eps));%读入hd(n)函数
h1=hd.*wH;%计算h(n)
N=64;
H1=fft(h1,N);%调用子程序计算H(k)
n=0:N-1;w=2*pi/64*n;subplot(2,2,1);subplot(2,2,2);plot(w,fftshift(20*log10((abs(H 1)))));%画幅度曲线
grid
xlabel('w/rad')
ylabel('20lg|H(jw)|/dB')
title('幅度曲线和相频曲线(n=33)');
n=0:N-1;w=2*pi/64*n;subplot(2,2,1);subplot(2,2,4);plot(w,unwrap(phase(H1)));%画相频曲线
grid
xlabel('w/rad')
结果图像
(4)布莱克曼窗
n=0:1:14;
wB=0.42-0.5*cos(2*pi/(14+eps)*n)+0.08*cos(4*pi/(14+eps)*n);% 编写布莱克曼窗
hd=sin(0.25*pi*(n-7+eps))./(pi*(n-7+eps));%读入hd(n)函数
h1=hd.*wB;%计算h(n)
N=64;
H1=fft(h1,N);%调用子程序计算H(k)
n=0:N-1;w=2*pi/64*n;subplot(2,2,1);subplot(2,2,1);plot(w,fftshift(20*log10((a bs(H1)))));%画幅度曲线
grid
xlabel('w/rad')
ylabel('20lg|H(jw)|/dB')
title('幅度曲线和相频曲线(n=15)');
n=0:N-1;w=2*pi/64*n;subplot(2,2,1);subplot(2,2,3);plot(w,unwrap(phase(H1))) ;%画相频曲线
grid
xlabel('w/rad')
n=0:1:32;
wB=0.42-0.5*cos(2*pi/(32+eps)*n)+0.08*cos(4*pi/(32+eps)*n);% 编写布莱克
曼窗
hd=sin(0.25*pi*(n-16+eps))./(pi*(n-16+eps));%读入hd(n)函数
h1=hd.*wB;%计算h(n)
N=64;
H1=fft(h1,N);%调用子程序计算H(k)
n=0:N-1;w=2*pi/64*n;subplot(2,2,1);subplot(2,2,2);plot(w,fftshift(20*log10((a bs(H1)))));%画幅度曲线
grid
xlabel('w/rad')
ylabel('20lg|H(jw)|/dB')
title('幅度曲线和相频曲线(n=33)');
n=0:N-1;w=2*pi/64*n;subplot(2,2,1);subplot(2,2,4);plot(w,unwrap(phase(H1))) ;%画相频曲线
grid
xlabel('w/rad')
结果图像:
实验分析:
窗函数法特点:
窗口法设计的主要优点是简单,使用方便。

窗口函数大多有封闭的公式可循,性能、参数都已有表格、资料可供参考,计算程序简便,所以很实用。

缺点是通带和阻带的截止频率不易控制。

窗口长度N 和窗函数类型对滤波特性的影响:
增加窗的长度,可以减少窗的主瓣宽度,从而减少()H ω过渡带的带
宽,但增加N 并不能减少带内波动以及加大阻带。

这两个指标只能从窗
函数的形状上找解决方法。

常用的6种窗口的基本参数及性能 窗类型 窗谱性能指标
加窗后滤波器的性能指标 最大旁瓣(dB)
主瓣带宽 阻带衰减(dB)
过渡带宽Δω 矩形窗 -13 2*2π/N -21 0.9*2π/N 三角窗 -25 4*2π/N -25 2.1*2π/N hanning 窗 -31 4*2π/N -44 3.1*2π/N hamming 窗 -41 4*2π/N -53 3.3*2π/N Blackman 窗 -57 6*2π/N
-74 5.5*2π/N Kaiser 窗 (β=7.865)
-57.07
-80
5.0*2π/N
通过对窗函数选择,可以获得符合要求的阻带衰减指标。

实验思考题:
(1) 如果给定通带截止频率和阻带截止频率以及阻带最小衰减, 如何用窗函数法设计线性相位低通滤波器? 写出设计步骤。

答:
1.给定希望逼近的频率响应()d H j ω,选择理想滤波器作为逼近函数。

()()ja d d H j H e
ω
ωω-=
为保证线性相位,取(1)/2a N =-.
2. 求单位冲激响应()d h n
1()()2j j n
d d h n H e
e
d π
ω
ωπ
ωπ
-
=

3. 根据阻带衰减指标,选择窗函数的形状(查课本表7.3)。

根据允许 的过渡带宽ω∆,选定N 值(课本表7.3)。

4. 将()d h n 与窗函数相乘的FIR 数字滤波器的单位冲激响应()h n 。

()()()d h n h n n ω=
5. 计算FIR 数字滤波器的频率响应,并验证是否达到所要求的指标。

1
()()N j j n
n H e
h n e
ω
ω--==

由于()H j ω计算幅度函数()g H ω和相位函数()θω。

若不满足指标要求,重复(3)--(5)步骤,直到满足要求。

(2) 如果要求用窗函数法设计带通滤波器,且给定上、 下边带截止频率为ω1和ω2,试求理想带通的单位脉冲响应h d (n)。

答:选取()(1)h n h N n =---,N=奇数是的情况,此时有
(1)/2
1
()()sin()N g n H c n n ωω-==

11()2(
)(1,2,...,
)
2
2
N N c n h n n --=-----=
观察可知()g H ω在0,,2ωππ=处为零,且()g H ω对0,,2ωππ=呈奇对称形式,这种情况适用于带通滤波器的设计,具体实现方法同思考题第一题类似。

相关文档
最新文档