西安电子科技大学数字信号处理上机报告 - 图文

更新时间:2023-11-15 13:43:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

数字信号处理 大作业

院系:电子工程学院 学号:02115043 姓名:邱道森 实验一:信号、系统及系统响应

一、实验目的

(1) 熟悉连续信号经理想采样前后的频谱变化关系,加深对时域采样定理的理解。 (2) 熟悉时域离散系统的时域特性。 (3) 利用卷积方法观察分析系统的时域特性。

(4) 掌握序列傅里叶变换的计算机实现方法,利用序列的傅里叶变换对连续信号、离散信号及系统响应进行频域分析。

二、实验原理

?a?t??xa?t??p?t? x?a?t?为xa?t?的理想采样,p?t?为周期冲激脉冲,即 其中xp?t??采样是连续信号数字处理的第一个关键环节。对连续信号xa?t?进行理想采样的过程可用(1.1)式表示:

?a?t?的傅里叶变换Xa?jΩ?为 xn??????t?nT?

?1??Xa?jΩ???Xa?jΩ?jkΩs?

Tm???进行傅里叶变换,

???jΩ????x?t????t?nT??e?jΩtdt Xaa?????n????????x?t???t?nT?edt

??x?nT?e?jΩt???n???a???jΩnTa式中的xa?nT?就是采样后得到的序列x?n?, 即x?n??xa?nT?

n???x?n?的傅里叶变换为

Xe比较可知

j?????x?n?en?????j?n

??jΩ??X?ej??Xa??ΩT

j?为了在数字计算机上观察分析各种序列的频域特性,通常对Xe在?0,??2π?上进行M点采样来观

察分析。对长度为N的有限长序列x?n?,有

Xen?02πk,k?0,1,???,M?1 其中?k?M?j?k???x?n?eN?1?j?kn

一个时域离散线性时不变系统的输入/输出关系为

y?n??x?n??h?n??上述卷积运算也可以转到频域实现

m????x?m?h?n?m?

?Y?ej???X?ej??H?ej?? (1.9)

三、实验内容及步骤

(1) 认真复习采样理论、 离散信号与系统、 线性卷积、 序列的傅里叶变换及性质等有关内容, 阅读本

实验原理与方法。

(2) 编制实验用主程序及相应子程序。

① 信号产生子程序, 用于产生实验中要用到的下列信号序列: xa(t)=Ae-at sin(Ω0t)u(t) 进行采样, 可得到采样序列

xa(n)=xa(nT)=Ae-anT sin(Ω0nT)u(n), 0≤n<50

其中A为幅度因子, a为衰减因子, Ω0是模拟角频率, T为采样间隔。 这些参数都要在实验过程中由键盘输入, 产生不同的xa(t)和xa(n)。 b. 单位脉冲序列: xb(n)=δ(n) c. 矩形序列: xc(n)=RN(n), N=10

② 系统单位脉冲响应序列产生子程序。 本实验要用到两种FIR系统。

a. ha(n)=R10(n);

b. hb(n)=δ(n)+2.5δ(n-1)+2.5δ(n-2)+δ(n-3)

③ 有限长序列线性卷积子程序, 用于完成两个给定长度的序列的卷积。 可以直接调用MATLAB语言中的卷积函数conv。 conv用于两个有限长度序列的卷积, 它假定两个序列都从n=0 开始。 调用格式如下:

y=conv (x, h)

(3) 调通并运行实验程序, 完成下述实验内容: ① 分析采样序列的特性。

a. 取采样频率fs=1 kHz, 即T=1 ms。

b. 改变采样频率, fs=300 Hz, 观察|X(ejω)|的变化, 并做记录(打印曲线); 进一步降低采样频率, fs=200 Hz, 观察频谱混叠是否明显存在, 说明原因, 并记录(打印)这时的|X(ejω)|曲线。 ② 时域离散信号、 系统和系统响应分析。

a. 观察信号xb(n)和系统hb(n)的时域和频域特性; 利用线性卷积求信号xb(n)通过系统hb(n)的响应y(n), 比较所求响应y(n)和hb(n)的时域及频域特性, 注意它们之间有无差别, 绘图说明, 并用所学理论解释所得结果。

b. 观察系统ha(n)对信号xc(n)的响应特性。 ③ 卷积定理的验证。 (4)主程序框图

①分析采样序列的特性

开始 调用子程序,产生xa(t)和xa(n) 利用连续信号的傅氏变换公式产生X(jw) 调用傅氏变换,产生X(ejw) 绘图产生xa(t),X(jw),xa(n),X(ejw)的图像 结束

②时域离散信号、系统和系统响应分析

开始 调用信号产生子程序,产生xb(n),hb(n) 利用卷积公式产生y(n) 调用傅氏变换子程序,产生Xb(ejw),Hb(ejw)和Y(ejw) 绘图产生上述信号的图像 结束

③ 卷积定理的验证

开始 调用信号产生子程序,产生xb(n),hb(n) 利用卷积公式产生y(n) 调用傅氏变换子程序,产生Xb(ejw),Hb(ejw)和Y(ejw) 计算Yw=Xb.Hb 绘出y(n),| Y(ejw)|,|Yw|的波形

结束 四.实验程序

1.分析采样序列的特性。

a. 取采样频率fs=1 kHz,,即T=1 ms。

b. 改变采样频率,fs=300 Hz,观察|X(e^jω)|的变化,并做记录(打印曲线);进一步降低采样频率,fs=200 Hz,观察频谱混叠是否明显存在,说明原因, 并记录(打印)这时的|X(e^jω)|曲线。 A=444.128; figure(1) a=50*sqrt(2)*pi; subplot(2,3,1); m=50*sqrt(2)*pi; stem(x1); fs1=1000; xlabel('n');ylabel('xa(n)'); fs2=300; title('采样频率为1000HZ时的理想采样信号'); fs3=200; subplot(2,3,2); T1=1/fs1; stem(x2); T2=1/fs2; xlabel('n');ylabel('xa(n)'); T3=1/fs3; title('采样频率为300HZ时的理想采样信号'); N=30; subplot(2,3,3); n=[0:N-1]; stem(x3); x1=A*exp(-a*n*T1).*sin(m*n*T1); xlabel('n');ylabel('xa(n)'); x2=A*exp(-a*n*T2).*sin(m*n*T2); title('采样频率为200HZ时的理想采样信号'); x3=A*exp(-a*n*T3).*sin(m*n*T3); subplot(2,3,4) w=linspace(-2*pi,2*pi,10000); %设置w的范围 plot(w/pi,abs(X1));%绘制x1(n)的幅度谱 X1=x1*exp(-j*n'*w);%对x1(n)做DTFT变换 xlabel('\\omega/π');ylabel('|H(e^j^\\omega)|'X2=x2*exp(-j*n'*w);%对x2(n)做DTFT变换 ) X3=x3*exp(-j*n'*w);%对x3(n)做DTFT变换 title('采样频率为1000Hz时的幅度谱');

subplot(2,3,5)

plot(w/pi,abs(X2));%绘制x2(n)的幅度谱

xlabel('\\omega/π');ylabel('|H(e^j^\\omega)|')

title('采样频率为300Hz时的幅度谱'); subplot(2,3,6)

plot(w/pi,abs(X3));%绘制x3(n)的幅度谱

xlabel('\\omega/π');ylabel('|H(e^j^\\omega)|')

title('采样频率为200Hz时的幅度谱');

由图可见,在折叠频率w=π,即f=fs/2=500Hz处混叠很小。当fs=300Hz时,存在较明显的混叠失真;当fs=200时,发生严重的混叠失真。

2.时域离散信号、 系统和系统响应分析。

a. 观察信号xb(n)和系统hb(n)的时域和频域特性; 利用线性卷积求信号xb(n)通过系统hb(n)的响应y(n), 比较所求响应y(n)和hb(n)的时域及频域特性, 注意它们之间有无差别, 绘图说明, 并用所学理论解释所得结果。

b. 观察系统ha(n)对信号xc(n)的响应特性。 xbn=[1];

xc1n=ones(1,10); xc2n=ones(1,5); han=ones(1,5); hbn=[1,2.5,2.5,1]; yn=conv(xbn,hbn); figure(2)

n1=0:length(xbn)-1 n2=0:length(hbn)-1; n3=0:length(yn)-1;

subplot(3,3,1);stem(n1,xbn,'.') xlabel('n');ylabel('xb(n)') title('xb(n)的时域特性曲线')

subplot(3,3,4);stem(n2,hbn,'.') xlabel('n');ylabel('hb(n)') title('hb(n)的时域特性曲线') subplot(3,3,7);stem(n3,yn,'.') xlabel('n');ylabel('y(n)') title('y(n)的时域特性曲线') n1=[0:length(xbn)-1];

w=linspace(-pi,pi,10000); Xb=xbn*exp(-j*n1'*w); subplot(3,3,2); plot(w/pi,abs(Xb));

xlabel('\\omega/π');ylabel('幅度') title('DTFT[xb(n)]的幅度');

n2=[0:length(hbn)-1];

w=linspace(-pi,pi,10000); Hb=hbn*exp(-j*n2'*w); subplot(3,3,5); plot(w/pi,abs(Hb));

xlabel('\\omega/π');ylabel('幅度') title('DTFT[hb(n)]的幅度'); subplot(3,3,6);

plot(w/pi,angle(Hb));

xlabel('\\omega/π');ylabel('相位') title('DTFT[hb(n)]的相位'); n3=[0:length(yn)-1];

w=linspace(-pi,pi,10000); Y=yn*exp(-j*n3'*w); subplot(3,3,8); plot(w/pi,abs(Y));

xlabel('\\omega/π');ylabel('幅度') title('DTFT[y(n)]的幅度'); subplot(3,3,9);

plot(w/pi,angle(Y));

xlabel('\\omega/π');ylabel('相位') title('DTFT[y(n)]的相位'); figure(3)

y1n=conv(xc1n,han); y2n=conv(xc2n,han); n1=[0:length(y1n)-1]; n2=[0:length(y2n)-1]; w=linspace(-pi,pi,10000); Y1=y1n*exp(-j*n1'*w); Y2=y2n*exp(-j*n2'*w); subplot(2,3,1); stem(n1,y1n,'.')

xlabel('n');ylabel('y1(n)')

title('N=10时y1(n)的时域特性曲线') subplot(2,3,4); stem(n2,y2n,'.')

xlabel('n');ylabel('y2(n)')

title('N=5时y2(n)的时域特性曲线') subplot(2,3,2); plot(w/pi,abs(Y1));

xlabel('\\omega/π');ylabel('幅度') title('DTFT[y1(n)]的幅度'); subplot(2,3,3);

plot(w/pi,angle(Y1));

xlabel('\\omega/π');ylabel('相位') title('DTFT[y1(n)]的相位'); subplot(2,3,5); plot(w/pi,abs(Y2));

xlabel('\\omega/π');ylabel('幅度') title('DTFT[y2(n)]的幅度'); subplot(2,3,6);

plot(w/pi,angle(Y2));

xlabel('\\omega/π');ylabel('相位') title('DTFT[y2(n)]的相位');

3.卷积定理的验证。

A=1; a=0.4; m=2.0734; f=1; T=1/f; N=30;

n1=[0:N-1];

xan=A*exp(-a*n1*T).*sin(m*n1*T); hbn=[1,2.5,2.5,1]; n2=0:length(hbn)-1;

w=linspace(-2*pi,2*pi,10000); figure(1)

subplot(2,2,1);stem(xan); xlabel('n');ylabel('xa(n)'); title('xa(n)的时域特性曲线'); subplot(2,2,2);stem(n2,hbn,'.'); xlabel('n');ylabel('hb(n)'); title('hb(n)的时域特性曲线'); Xa=xan*exp(-j*n1'*w); Hb=hbn*exp(-j*n2'*w); subplot(2,2,3); plot(w/pi,abs(Xa));

xlabel('\\omega/π');ylabel('幅度')

title('DTFT[xa(n)]的幅度'); subplot(2,2,4); plot(w/pi,abs(Hb));

xlabel('\\omega/π');ylabel('幅度') title('DTFT[hb(n)]的幅度'); y1n=conv(xan,hbn); n=0:length(y1n)-1;

w=linspace(-2*pi,2*pi,10000); Y1=y1n*exp(-j*n'*w); Y2=Xa.*Hb; figure(2)

subplot(1,3,1); stem(n,y1n,'.');

xlabel('n');ylabel('y1(n)'); title('y1(n)的时域特性曲线'); subplot(1,3,2); plot(w/pi,abs(Y1));

xlabel('\\omega/π');ylabel('幅度') title('DTFT[y1(n)]的幅度'); subplot(1,3,3); plot(w/pi,abs(Y2));

xlabel('\\omega/π');ylabel('幅度') title('Y2的幅度');

六、思考题

(1) 在分析理想采样序列特性的实验中,采样频率不同时,相应理想采样序列的傅里叶变换频谱的数字频率度量是否都相同? 它们所对应的模拟频率是否相同? 为什么?

答:由???T可知,若采样频率不同,则其周期T不同,相应的数字频率?也不相同;而因为是同一信号,故其模拟频率?保持不变。

(2) 在卷积定理验证的实验中, 如果选用不同的频域采样点数M值, 例如, 选M=10和M=20, 分别做序列的傅里叶变换, 求得

Y(ej?k)?Xa(ej?k)H(ej?k),k?0,1,???,M?1j?k所得结果之间有无差异? 为什么? 答:有差异。因为所得Y(e)图形由其采样点数唯一确定,由频域采样定理可知,若M小于采样序列

的长度N,则恢复原序列时会发生时域混叠现象。

实验二:用FFT作谱分析

一、 实验目的

1、进一步加深DFT 算法原理和基本性质的理解(因为FFT 只是DFT 的一种快速算 法,所以FFT 的运算结果必然满足DFT 的基本性质)。 2、熟悉FFT 算法原理和FFT 子程序的应用。

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

二.实验步骤

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

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

(3) 编制信号产生子程序, 产生以下典型信号供谱分析用:

x1(n)?R4(n)

?n?1,0?n?3

?x(n)? 2?8?n4?n?7 ?0

?4?n0?n?3 ?x(n)??n?34?n?7 3?0 ??

x4(n)?cosn 4 ?x5(n)?sinn 8 x6(n)?cos8?t?cos16?t?cos20?t如果给出的是连续信号

(t),则首先要根据其最高频率确定采样速率

以及由频率分辨率选择采样点

(t),频率

数N,然后对其进行软件采样(即计算x(n)=

(nT )(0nN ?1),产生对应序列x(n)。对信号

?分辨率的选择要以能分辨开其中的三个频率对应的谱线为准则。对周期序列,最好截取周期的整数倍进行谱分析,否则有可能产生较大的分析误差。 (4) 编写主程序。

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

三.实验程序

按照实验内容及程序提示键入1~8,分别对(n)~(n)及分析。输出(n)~(n)的波形及其8点DFT和16点DFT,1.

(n)及其8点和16点DFT

ylabel('x1n');

title('x1n的波形’); subplot(1,3,2);

stem(k1,abs(X1),'.'); xlabel('k');

ylabel('|X(k)|');

title('x1n的N=8点FFT'); subplot(1,3,3);

stem(k2,abs(X2),'.'); xlabel('k');

ylabel('|X(k)|');

title('x1n的N=16点FFT');

M=8; N=16; k1=0:M-1; k2=0:N-1; n1=0:8;

x1n=[1,1,1,1,0,0,0,0]; figure(1)

X1=fft(x1n,M); X2=fft(x1n,N);

n1=0:length(x1n)-1; subplot(1,3,1); stem(n1,x1n,'.'); xlabel('n');

(n)=(n)+

(n)、(n)=

(n)+j(n)进行谱

(n)的16点、32点和64点采样序列及其DFT。

2.

(n)及其8点和16点DFT

X1=fft(x2n,M); X2=fft(x2n,N);

n1=0:length(x2n)-1; subplot(1,3,1); stem(n1,x2n,'.'); xlabel('n'); ylabel('x2n');

M=8; N=16; k1=0:M-1; k2=0:N-1; n1=0:8;

x2n=[1,2,3,4,4,3,2,1]; figure(2)

title('x2n的波形'); subplot(1,3,2);

stem(k1,abs(X1),'.'); xlabel('k');

ylabel('|X(k)|');

title('x2n的N=8点FFT');

subplot(1,3,3);

stem(k2,abs(X2),'.'); xlabel('k');

ylabel('|X(k)|');

title('x2n的N=16点FFT');

3.

(n)及其8点和16点DFT

ylabel('x3n'); title('x3的波形'); subplot(1,3,2);

stem(k1,abs(X1),'.'); xlabel('k');

ylabel('|X(k)|');

title('x3n的N=8点FFT'); subplot(1,3,3);

stem(k2,abs(X2),'.'); xlabel('k');

ylabel('|X(k)|');

title('x3n的N=16点FFT');

M=8; N=16; k1=0:M-1; k2=0:N-1; n1=0:8;

x3n=[4,3,2,1,1,2,3,4]; figure(3)

X1=fft(x3n,M); X2=fft(x3n,N);

n1=0:length(x3n)-1; subplot(1,3,1); stem(n1,x3n,'.'); xlabel('n');

4. (n)及其8点和16点DFT M=8; N=16; k1=0:M-1; k2=0:N-1; n1=0:8;

x4n1=cos(0.25*pi*n1); x4n2=cos(0.25*pi*n2); figure(4)

X1=fft(x4n1,M); X2=fft(x4n2,N);

n1=0:length(x4n1)-1; subplot(2,2,1); stem(n1,x4n1,'.'); xlabel('n'); ylabel('x4n');

title('x4n的波形');

subplot(2,2,2);

stem(k1,abs(X1),'.'); xlabel('k');

ylabel('|X(k)|');

title('x4n的N=8点FFT'); n2=0:length(x4n2)-1; subplot(2,2,3); stem(n2,x4n2,'.'); xlabel('n'); ylabel('x4n');

title('x4n的波形'); subplot(2,2,4);

stem(k2,abs(X2),'.'); xlabel('k');

ylabel('|X(k)|');

title('x4n的N=16点FFT');

5. ( (n)及其8点和16点DFT M=8; N=16; k1=0:M-1; k2=0:N-1; n1=0:8;

x5n1=sin(0.125*pi*n1); x5n2=sin(0.125*pi*n2); figure(5)

X1=fft(x5n1,M); X2=fft(x5n2,N);

n1=0:length(x5n1)-1; subplot(2,2,1); stem(n1,x5n1,'.'); xlabel('n'); ylabel('x5n');

title('x5n的波形');

subplot(2,2,2);

stem(k1,abs(X1),'.'); xlabel('k');

ylabel('|X(k)|');

title('x5n的N=8点FFT'); n2=0:length(x5n2)-1; subplot(2,2,3); stem(n2,x5n2,'.'); xlabel('n'); ylabel('x5n');

title('x5n的波形'); subplot(2,2,4);

stem(k2,abs(X2),'.'); xlabel('k');

ylabel('|X(k)|');

title('x5n的N=16点FFT');

6. ( (n)及其16点、32点和64点DFT N=16; P=32; Q=64; k1=0:M-1; k2=0:N-1; k3=0:P-1; k4=0:Q-1; n2=0:16; n3=0:40; n4=0:80;

x6n2=cos(8*pi*n2*T)+cos(16*pi*n2*T)+cos(20*pi*n2*T);

x6n3=cos(8*pi*n3*T)+cos(16*pi*n3*T)+cos(20*pi*n3*T);

x6n4=cos(8*pi*n4*T)+cos(16*pi*n4*T)+cos(20*pi*n4*T); figure(6)

X1=fft(x6n2,N); X2=fft(x6n3,P); X3=fft(x6n4,Q);

n2=0:length(x6n2)-1; subplot(3,2,1);

stem(n2,x6n2,'.'); xlabel('n'); ylabel('x6n');

title('x6n的波形'); subplot(3,2,2);

stem(k2,abs(X1),'.'); xlabel('k');

ylabel('|X(k)|');

title('x6n的N=16点FFT'); n3=0:length(x6n3)-1; subplot(3,2,3); stem(n3,x6n3,'.'); xlabel('n'); ylabel('x6n');

title('x6n的波形'); subplot(3,2,4);

stem(k3,abs(X2),'.'); xlabel('k');

ylabel('|X(k)|');

title('x6n的N=32点FFT'); n4=0:length(x6n4)-1; subplot(3,2,5);

stem(n4,x6n4,'.'); xlabel('n'); ylabel('x6n');

title('x6n的波形'); subplot(3,2,6);

stem(k4,abs(X3),'.'); xlabel('k');

ylabel('|X(k)|');

title('x6n的N=64点FFT');

7. 令x7(n)=x4(n)+x5(n),用FFT计算8点和16点离散傅里叶变换。 M=8; subplot(2,2,2); N=16; stem(k1,abs(X1),'.'); k1=0:M-1; xlabel('k'); k2=0:N-1; ylabel('|X(k)|'); n1=0:8; title('x7n的N=8点FFT'); n2=0:16; n2=0:length(x7n2)-1; x7n1=cos(0.25*pi*n1)+sin(0.125*pi*n1); subplot(2,2,3); x7n2=cos(0.25*pi*n2)+sin(0.125*pi*n2); stem(n2,x7n2,'.'); figure(7) xlabel('n'); X1=fft(x7n1,M); ylabel('x7n'); X2=fft(x7n2,N); title('x7n的波形'); n1=0:length(x7n1)-1; subplot(2,2,4); subplot(2,2,1); stem(k2,abs(X2),'.'); stem(n1,x7n1,'.'); xlabel('k'); xlabel('n'); ylabel('|X(k)|'); ylabel('x7n'); title('x7n的N=16点FFT'); title('x7n的波形');

8. 令x8(n)=x4(n)+j*x5(n),用FFT计算8点和16点离散傅里叶变换。 M=8; N=16; k1=0:M-1; k2=0:N-1; n1=0:8; n2=0:16;

x8n1=cos(0.25*pi*n1)+j*sin(0.125*pi*n1); x8n2=cos(0.25*pi*n2)+j*sin(0.125*pi*n2); figure(8)

X1=fft(x8n1,M); X2=fft(x8n2,N);

n1=0:length(x8n1)-1; subplot(2,2,1); stem(n1,x8n1,'.'); xlabel('n'); ylabel('x8n');

title('x8n的波形');

subplot(2,2,2);

stem(k1,abs(X1),'.'); xlabel('k');

ylabel('|X(k)|');

title('x8n的N=8点FFT'); n2=0:length(x8n2)-1; subplot(2,2,3); stem(n2,x8n2,'.'); xlabel('n'); ylabel('x8n');

title('x8n的波形'); subplot(2,2,4);

stem(k2,abs(X2),'.'); xlabel('k');

ylabel('|X(k)|');

title('x8n的N=16点FFT');

四.实验思考题分析

(1) 在N=8时,x2(n)和x3(n)的幅频特性会相同吗? 为什么? N=16呢? 答:N=8时幅频特性一样,N=16时幅频特性不一样。

(2) 如果周期信号的周期预先不知道,如何用FFT进行谱分析? 答:设一个定长的m值,先取2m,看2m/m的误差是否大,如大的话再取4m,看4m/2m的误差是否大,如不大,4m(4倍的m值)则可近似原来点的谱分析。

实验三:用双线性变换法设计IIR数字滤波器

一、 实验目的

1、熟悉用双线性变换法设计IIR 数字滤波器的原理与方法; 2、掌握数字滤波器的计算机仿真方法;

3、通过观察对实际心电图信号的滤波作用,获得数字滤波的感性知识。

二、 实验内容及原理

1、用双线性变换法设计一个巴特沃斯低通IIR 数字滤波器。设计指标参数为:在通带内截止频率低于0.2π时,最大衰减小于1dB;在阻带内[0.3π,π]频率区间上,最小衰减大于15dB。 2、以0.02π为采样间隔,打印出数字滤波器在频率区间[0,π/2]上的幅频响应特性曲线。

3、用所设计的滤波器对实际心电图信号采样序列进行仿真滤波处理,并分别打印出滤波前后的心电图信号波形图,观察总结滤波作用与效果。

三、 实验方法及步骤

(1)复习有关巴特沃斯模拟滤波器设计和用双线性变换法设计IIR数字滤波器的内容,用双线性变换法设计数字滤波器系统函数H(z)。其中满足本实验要求的数字滤波器系统函数为:

H?z???1?1.2686z3k?1?1?0.7051z?2??0.00073781?z?1

1?1.0106z?1?0.3583z?21?0.9044z?1?0.2155z?2??6?????Hk?z?

A1?2z?1?z?2式中: Hk?z??,k?1,2,3 ?1?21?Bkz?Ckz?? (3.2)

A?0.09036B1?1.2686,C1??0.7051 B2?1.0106,C2??0.3583B3?0.9044,C3??0.2155根据设计指标,调用MATLAB信号处理工具箱buttord和butter,也可以得到H?z?。 由公式(3.1)和(3.2)可见,滤波器H?z?由三个二阶滤波器H1?z?、H2?z?

x?n?H1?z? y1?n?H2?z? y2?n?H3?z? y3?n??y?n?图3-1 滤波器H?z?的组成

end end end

h=hd.*(B)'; %得到FIR数字滤波器

[H,m]=freqz(h,[1],1024,'whole'); %求其频率响应 mag=abs(H); %得到幅值 db=20*log10((mag+eps)/max(mag)); pha=angle(H); %得到相位 i=i+1; figure(i) subplot(2,2,1); n=0:N-1; stem(n,h,'.');

axis([0,N-1,-0.1,0.3]); hold on; n=0:N-1; x=zeros(N); plot(n,x,'-'); xlabel('n'); ylabel('h(n)');

title('实际低通滤波器的h(n)'); text((0.3*N),0.27,string); hold off; subplot(2,2,2); plot(m/pi,db); axis([0,1,-100,0]); xlabel('w/pi'); ylabel('dB');

title('衰减特性(dB)'); grid;

subplot(2,2,3); plot(m,pha); hold on; n=0:7; x=zeros(8); plot(n,x,'-'); title('相频特性'); xlabel('频率(rad)'); ylabel('相位(rad)'); axis([0,3.15,-4,4]); subplot(2,2,4);

plot(m,mag); title('频率特性'); xlabel('频率W(rad)'); ylabel('幅值'); axis([0,3.15,0,1.5]); text(0.9,1.2,string);

b=menu('Do You want To Continue ?','Yes','No'); if b==2 b=0; end end

temp=menu('Close All Figure ?','Yes','No'); if temp==1 close all end

%实验中的子函数:产生理想低通滤波器单位脉冲响应hd(n) function hd=ideal(w,N); alpha=(N-1)/2; n=[0:(N-1)]; m=n-alpha+eps; hd=sin(w*m)./(pi*m);

图像:

矩形窗(N=15)

矩形窗(N=33)

哈明窗(N=15)

哈明窗(N=33)

汉宁窗(N=15)

汉宁窗(N=33)

布莱克曼窗(N=15)

布莱克曼窗(N=33)

六、 思考题

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

答:① 首先确定模拟带通滤波器的技术指标。

② 确定归一化低通技术要求 ③ 设计归一化低通 ④ 将低通转化为带通

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

答:可以通过w1和w2求出wc这样便可以利用公式求出hd(n)。

本文来源:https://www.bwwdw.com/article/g3jv.html

Top