数字信号处理实验讲义(233)

数字信号处理实验讲义(233)
数字信号处理实验讲义(233)

《数字信号处理》实验指导书

目录

实验一 FFT频谱分析及应用 (3)

实验二 IIR数字滤波器的设计 (6)

实验三 FIR数字滤波器的设计 (10)

附录: MATLAB基本操作及常用命令 (14)

实验一 FFT频谱分析及应用

实验学时:2学时

实验类型:验证

实验要求:必修

一、实验目的:

1、学习MATLAB语言的编程和调试技巧;、

2、通过实验加深对FFT的理解;

3、熟悉应用FFT对典型信号进行频谱分析的方法。

二、实验内容

使用MATLAB程序实现信号频域特性的分析。涉及到离散傅立叶变换(DFT)、快速傅立叶变换(FFT)及信号频率分辨率等知识点。

三、实验原理与方法和手段

在各种信号序列中,有限长序列占重要地位。对有限长序列可以利用离散傅立叶变换(DFT)进行分析。DFT不但可以很好的反映序列的频谱特性,而且易于用快速算法(FFT)在计算机上进行分析。

有限长序列的DFT是其z变换在单位圆上的等距离采样,或者说是序列傅立叶的等距离采样,因此可以用于序列的谱分析。FFT是DFT的一种快速算法,它是对变换式进行一次次分解,使其成为若干小数据点的组合,从而减少运算量。

在MATLAB信号处理工具箱中的函数fft(x,n),可以用来实现序列的N点快速傅立叶变换。

经函数fft求得的序列一般是复序列,通常要求出其幅值和相位。MATLAB 中提供了求复数的幅值和相位的函数:abs、angle,这些函数一般和fft同时使用。

四、实验组织运行要求

1、学生在进行实验前必须进行充分的预习,熟悉实验内容;

2、学生根据实验要求,读懂并理解相应的程序;

3、学生严格遵守实验室的各项规章制度,注意人身和设备安全,配合和服从实验室人员管理;

4、教师在学生实验过程中予以必要的辅导,独立完成实验;

5、采用集中授课形式。

五、实验条件

1、具有WINDOWS 98/2000/NT/XP 操作系统的计算机一台; 2.、MATLAB 编程软件。 六、实验步骤

在“开始--程序”菜单中,找到MATLAB 程序,运行启动;

进入MATLAB 后 ,在Command Window 中输入实验程序,并执行; 记录运行结果图形,作分析。 具体步骤如下:

1、模拟信号)8cos(5)4sin(2)(t t t x ππ+=,以)1:0(01.0-==N n n t 进行采样,求: (1)N =40点FFT 的幅度频谱,从图中能否观察出信号的2个频谱分量? (2)提高采样点数,如N =128,再求该信号的幅度频谱,此时幅度频谱发生了什么变化?信号的2个模拟频率和数字频率各为多少?FFT 频谱分析结果与理论上是否一致?

2、一个连续信号含三个频谱分量,经采样得以下序列:

))215.0(2cos())15.0(2cos()15.02sin()(n df n df n n x +?++?+?=πππ

(1)N =64,df 分别为161、1/64,观察其频谱;

(2)N =64、128,df 为1/64,做128点得FFT ,其结果有何不同?

3、被噪声污染得信号,比较难看出所包含得频率分量,如一个由50Hz 和120Hz 正弦信号构成的信号,受零均值随机噪声的干扰,数据采样率为1000Hz ,试用FFT 函数来分析其信号频率成分,要求:(1)画出时域波形;(2)分析信号功率谱密度。

注:在MATLAB 中,可用函数rand (1,N )产生均值为0,方差为1,长度为N 的高斯随机序列。 七、思考题

FFT 对信号进行频谱分析时,信号的频率的分辨率与什么有关?能否给出其数学关系?

八、实验报告要求

1、报告中要给出实验的MATLAB 程序,并对每个语句给出注释,说明语句作用;

2、简述实验目的和原理;

3、按实验步骤附上实验信号序列和幅频特性曲线,分析所得到的图形,说明参数改变时对时域和频域的影响;

4、总结实验中的主要结论;

5、收获和建议。

九、参考程序

程序1:

N=40;n=0:N-1;

t=0.01*n;

x=2*sin(4*pi*t)+5*cos(8*pi*t);

k=0:N/2;w=2*pi/N*k;

X=fft(x,N);

magX=abs(X(1:N/2+1));

subplot(2,1,1);stem(n,x,'.');title('signal x(n)');

subplot(2,1,2);plot(w/pi,magX);title('FFT N=40');

xlabel('f (unit :pi)');ylabel('|X|');grid

程序3:

t=0:0.001:0.8;x=sin(2*pi*50*t)+cos(2*pi*120*t);

y=x+1.5*randn(1,length(t));

subplot(3,1,1);plot(t,x);

subplot(3,1,2);plot(t,y);

%title('press any key,continue...');

%pause;

Y=fft(y,512);

P=Y.*conj(Y)/512;

f=1000*(0:255)/512;

subplot(3,1,3);plot(f,P(1:256));

实验二 IIR 数字滤波器的设计

实验学时:3学时 实验类型:综合 实验要求:必修

知识点:IIR 数字滤波器,脉冲响应不变法,双线性变换法 一、实验目的

1、掌握脉冲响应不变法和双线性变换法设计IIR 数字滤波器的原理和方法;

2、观察双线性变换法和脉冲响应不变法设计的滤波器的频域特性,了解双线性变换法和脉冲响应不变法的特点和区别。 二、实验内容

使用MATLAB 编写程序,实现IIR 数字滤波器的设计。涉及脉冲响应不变法和双线性变换法设计IIR 数字滤波器的方法、不同设计方法得到的IIR 滤波器频域特性异同等知识点。 三、实验原理与方法和手段 1、脉冲响应不变法

所谓脉冲响应不变法就是使数字滤波器的单位脉冲响应序列h(n)等于模拟滤波器的单位冲激响应和a h (t)的采样值,即:)()()(nt h t h n h a nT t a ===,其中,T 为采样周期。

在MATLAB 中,可用函数impinvar 实现从模拟滤波器到数字滤波器的脉冲响应不变映射,调用格式为:

[b,a]=impinvar(c,d,fs) [b,a]=impinvar(c,d)

其中,c 、d 分别为模拟滤波器的分子和分母多项式系数向量;fs 为采样频率(Hz ),缺省值fs=1Hz ;b 、a 分别为数字滤波器分子和分母多项式系数向量。 2、双线性变换法:

由于s 平面和z 平面的单值双线性映射关系为s =1

1

211z T z

---+,其中T 为采样周期。

因此,若已知模拟滤波器的传递函数,将上式代入即可得到数字滤波器的系统函数H(z)。

在双线性变换中,模拟角频率和数字角频率的变换关系为:

2

2

w

tg

T

Ω=

可见,Ω和w之间的变换关系为非线性的。

在MATLAB中,可用函数bilinear实现从模拟滤波器到数字滤波器的双线性变换映射,调用格式为:[b,a]=bilinear(c,d,fs)

3、设计步骤:

(1)定技术指标转换为模拟低通原型设计性能指标。

(2)估计满足性能指标的模拟低通性能阶数和截止频率。

利用MATLAB中buttord、cheb1ord、cheb2ord、ellipord等函数,调用格式如:

)'',

,

,

,

(

]

,

[s

Rs

Rp

Ws

Wp

buttord

Wn

n=

其中,Wp为带通边界频率,rad/s;Ws为阻带边界频率,rad/s;Rp为带通波动,dB;Rs为阻带衰减,dB;‘s’表示为模拟滤波器;函数返回值n为模拟滤波器的最小阶数;Wn为模拟滤波器的截止频率(-3dB频率),rad/s。函数适用低通、高通、带通、带阻滤波器。

(3)设计模拟低通原型。利用MATLAB中buttap、cheb1ap、cheb2ap、elliap等函数,调用格式如[z,p,k]=buttap(n)。

采用上述函数所得到原型滤波器的传递函数为零点、极点、增益表达式,需要和函数[c,d]=zp2tf(z,p,k)配合使用,以转化为多项式形式。

(4)由模拟低通原型经频率变换获得模拟低通、高通、带通或带阻滤波器。

利用MATLAB中lp2lp、lp2hp、lp2bp、lp2bs等函数,调用格式如[c1,d1]lp2lp(c,d,Wn)。

(5)利用脉冲响应不变法或双线性不变法,实现模拟滤波器到数字滤波器的映射。

【说明】

MATLAB信号处理工具箱还提供了模拟滤波器设计的完全工具函数:butter、cheby1,cheby2、ellip、besself。用户只需一次调用就可自动完成以上步骤中的3~4步,调用格式如:[c,d]=butter(n,Wn,’ftype’,‘s’),其中,’ftype’为滤波器类型:

‘high ’表示高通滤波器,截止频率为Wn ; ‘stop ’表示带阻滤波器,Wn=[W1,W2] (W1

4、本实验用到的特殊函数:[db,mag,pha,w]=freqz_m(b,a),计算幅频和相频响应。 四、实验组织运行要求

1、学生在进行实验前必须进行充分的预习,熟悉实验内容;

2、学生根据实验要求,编写相应的程序;

3、学生严格遵守实验室的各项规章制度,注意人身和设备安全,配合和服从实验室人员管理;

4、教师在学生实验过程中予以必要的辅导,独立完成实验;

5、采用集中授课形式。 五、实验条件

1、具有WINDOWS 98/2000/NT/XP 操作系统的计算机一台;

2、MATLAB 编程软件。 六、实验步骤

在“开始--程序”菜单中,找到MATLAB 程序,运行启动;

进入MATLAB 后 ,在Command Window 中输入自己编写的主程序,并执行;记录运行结果图形,作分析对比。 具体步骤如下:

1、查看帮助文件,了解相关函数的调用格式。

2、1)用双线性变换法设计一个Chebyshev1型数字带通滤波器,设计指标为:

ms T 1=,dB Rp 3=,π5.01=W p ,π7.02=W p ,dB R 60s =,π3.01=Ws ,π9.02=Ws

2)(BW 型数字带通滤波器dB Rp 3=,π3.01=W p

,π5.02=W p ,dB R 15s =,π1.01=Ws ,π7.02=Ws )

3、KHz fp 1.0=,dB Rp 1=,KHz fs 3.0=,dB R 25s =,ms T 1=;(KHz fp 2=,

dB Rp 5.0=,KHz fs 10=,dB R 50s =,kHz 1.44抽样频率为

)分别用脉冲响应不变法和双线性变换法设计一个Butterworth 数字低通滤波器

(1) 观察所设计数字滤波器的幅频特性曲线,记录带宽和衰减量;

(2)比较两种方法的优缺点;

(3)利用y=filter(b,a,x)函数观察对实际心电图信号的滤波效果。

人体心电图信号在测量过程中往往受到工业高频干扰,所以必须经过低通滤波器处理。已知某一实际心电图信号的采样序列如下:

x(n)=[-4,-2,0,-4,-6,-4,-2,-4,-6,-6,-4,-4,-6,-6,-2,6,12,8,0,-16,-38,-60,-84,-90,-66,-32 ,-4,2,… -4,8,12,12,10,6,6,6,4,0,0,0,0,0, -2,-4,0,0,0,-2,-2,0,0,-2,-2,-2,-2,0],共56点

七、实验报告要求

1、报告中要给出实验的MATLAB程序,并对每个语句给出注释,说明语句作用;

2、简述实验目的和原理;

3、按实验步骤附上所设计滤波器的H(z)及相应的幅频特性曲线定性分析得到的图形,判断设计是否满足要求;

4、总结双线性变换法和脉冲不变法的特点和区别;

5、收获与建议。

八、部分参考程序

心电图信号的滤波

%Filter

clc;%clear;

x=[-4,-2,0,-4,-6,-4,-2,-4,-6,-6,-4,-4,-6,-6,...

-2,6,12,8,0,-16,-38,-60,-84,-90,-66,-32,-4,2,...

-4,8,12,12,10,6,6,6,4,0,0,0,0,0,...

-2,-4,0,0,0,-2,-2,0,0,-2,-2,-2,-2,0];

Y=filter(b,a,x);

N=56;n=0:N-1;

subplot(2,1,1);plot(n,x);subplot(2,1,2);plot(n,Y);

实验三 FIR 数字滤波器的设计

实验学时:3学时 实验类型:综合 实验要求:必修

知识点:FIR 数字滤波器,窗函数法,频率采样法, 一、实验目的

1、掌握用窗函数法和频率采样法设计FIR 数字滤波器的原理和方法;

2、熟悉线性相位FIR 滤波器的幅频特性和相频特性;

3、了解不同窗函数对滤波器性能的影响。 二、实验内容

使用MATLAB 编写程序,实现FIR 数字滤波器的设计。涉及窗函数法和频率采样法设计FIR 数字滤波器的方法、线性相位FIR 滤波器的幅频特性和相频特性的特点、窗函数选择及其对滤波器性能的影响等知识点。 三、实验原理与方法和手段

1、窗函数法设计线性相位FIR 滤波器的一般步骤为:

(1)确定理想滤波器()jw d H e 的特性; (2)由()jw d H e 求出()d h n ;

(3)选择适当的窗函数,并根据线性相位条件确定窗函数的长度N ;在MATLAB 中,可由w=boxcar(N)(矩形窗)、w=hanning(N)(汉宁窗)、w=hamming(N)(汉明窗)、w=Blackman(N)(布莱克曼窗)、w=Kaiser(N,beta)(凯塞窗)等函数来实现窗函数设计法中所需的窗函数。

(4)由h(n)=d h (n).w(n), 0≤n ≤ N-1,得出单位脉冲响应h(n); 2、对h(n)作离散时间傅立叶变换,得到H(jw e )。 3、频率采样法设计线性相位FIR 滤波器的一般步骤为:

频率采样法是从频域出发,把给定的理想频率响)(ωj d e H 加以等间隔采样,

)()

(2k H e H d k

N

j d ==π

ωω,然后以此)(k H

d

作为实际FIR 滤波器频率特性

的采样值)(k H ,即令:k N

j d d e H k H k H πωω2)

()()(=

==,1,...,1,0-=N k

由于有限长序列h(n)和它的DFT 是一一对应的,应此可以由频域的这N 个采样值通过IDFT 来确定有限长h(n),同时根据H(z)的内插公式,也可由这N 个频域采样值内插恢复出FIR 滤波器的H(z)及)(ωj e H 。

用频率采样法设计线性相位FIR 滤波器的一般步骤为: (1)设计要求选择滤波器的种类;

(2)根据线性相位的约束条件确定k H ,进而得到H(k); 4、将H(k)代入H(jw e )内插公式得到所设计滤波器的频率响应。

关于第(3)步,在MATLAB 中可由函数h=real(ifft(H,N))和[db,mag,pha,w]=freqz_m(h,1)实现。 5、本实验用到的特殊函数:

),(_N Wc lp ideal hd =,计算截止频率为Wc 理想低通滤波器的单位脉冲响应

h d (n)。

[db,mag,pha,w]=freqz_m(b,a),计算幅频和相频响应 [Hr,w,a,L]=Hr_Type1(h); [Hr,w,b,L]=Hr_Type2(h) %计算1型和2型低通滤波器的振幅响应Hr(w)。 四、实验组织运行要求

1、学生在进行实验前必须进行充分的预习,熟悉实验内容;

2、学生根据实验要求,编写相应的程序;

3、学生严格遵守实验室的各项规章制度,注意人身和设备安全,配合和服从实验室人员管理;

4、教师在学生实验过程中予以必要的辅导,独立完成实验;

5、采用集中授课形式。 五、实验条件

具有WINDOWS 2000/XP 操作系统的计算机一台,安装MATLAB 软件 六、实验步骤

在“开始--程序”菜单中,找到MATLAB 程序,运行启动;

进入MATLAB 后 ,在Command Window 中输入自己编写的主程序,并执行; 记录运行结果图形,作分析对比。 具体步骤如下:

1、用窗函数法设计一线性相位FIR 低通滤波器,设计指标为:

π3.0=Wp ,π5.0=Ws ,dB Rp 25.0=,dB Rs 50=

(π4.0=Wp ,π6.0=Ws ,dB Rp 5.0=,dB Rs 45=)

(1)选择一个合适的窗函数,取N =15,观察所设计滤波器的幅频特性,分析是否满足设计要求;

(2)取N =45,重复上述设计,观察幅频和相频特性的变化,分析长度N 变化的影响;

(3)保持N =45不变,改变窗函数(如hamming 窗变为blackman 窗),观察并记录窗函数对滤波器幅频特性的影响,比较两种窗的特点。

2、用凯塞窗设计一个数字带通滤波器,设计指标为:dB Rp 1=,π35.01=Wp ,

π65.02=Wp ,dB R 60s =,π2.01=Ws ,π8.02=Ws

(用凯塞窗设计一个具有两个通带的FIR 数字滤波器,设计指标为:

π1.01=Ws ,π2.01=Wp ,π4.02=Wp ,π5.02=Ws ,π6.03=Ws ,π7.03=Wp ,π8.04=Wp ,π9.04=Ws ,01.0s =R )

*3、用频率采样法设计一个低通滤波器,设计指标为:

π2=Wp ,π35.0=Ws ,dB Rp 1=,dB Rs 50=

(1)采样点数N =33,过渡带设置一个采样点,H(k)=0.5,最小阻带衰减为多少,是否满足设计要求?

(2)采样点数N =34,过渡带设置2个采样点,5925.0)(1=k H ,1099.0)(2=k H ,最小阻带衰减为多少,是否满足设计要求? 七、实验报告要求

1、报告中要给出实验的MATLAB 程序,并对每个语句给出注释,说明语句作用;

2、简述实验目的和原理;

3、按实验步骤附上所设计滤波器的h(n)及相应的幅频和相频特性曲线,比较它

们的性能,说明不同的窗函数对滤波器性能的影响;

4、总结窗函数法和频率采样法的特点,归纳设计中的主要公式;

5、收获和建议。

八、部分参考程序

函数lp

ideal_:

function hd=ideal_lp(wc,N);

alpha=(N-1)/2;

n=0:1:N-1;

m=n-alpha+eps;

hd=sin(wc*m)./(pi*m);

函数freqz_m:

function[db,mag,pha,w]=freqz_m(b,a);

[H,w]=freqz(b,a,1000,'whole');

H=(H(1:1:501))';

w=(w(1:1:501))';

mag=abs(H);

db=20*log10((mag+eps)/max(mag));

pha=angle(H);

函数Hr_Type1:

function [Hr,w,a,L]=Hr_Type1(h);

M=length(h);L=(M-1)/2;

a=[h(L+1) 2*h(L:-1:1)];

n=[0:1:L];

w=[0:1:500]'*2*pi/500;

Hr=cos(w*n)*a';

函数Hr_Type2:

function [Hr,w,b,L]=Hr_Type2(h);

M=length(h);

L=M/2;b=2*[h(L:-1:1)];

n=[1:1:L];n=n-0.5;

w=[0:1:500]'*2*pi/500;

Hr=cos(w*n)*b';

附录: MATLAB基本操作及常用命令

1、MATLAB的启动

启动MATLAB有多种方式,最常用的方法就是双击系统桌面的MATLAB图标,也可以在开始菜单的程序选项中选择MATLAB快捷方式。

初次启动MATLAB后,将进入MATLAB默认设置的桌面平台。

2、桌面平台

默认设置情况下的桌面平台包括6个窗口,分别是MATLAB主窗口、命令窗口、历史窗口、当前目录窗口、发行说明书窗口和工作间管理窗口。下面分别对各窗口做简单介绍。

(1)MATLAB主窗口,与MATLAB的早期版本不同的是,MATLAB 6.1增加

了一个主窗口,其他的几个窗口都包含在这个大的主窗口中。

(2)命令窗口,在主窗口的“View”菜单下选择“Command Window”命

令,可以打开或关闭MATLAB的命令窗口。表示MATLAB

(3)历史窗口

在主窗口的“View”菜单下选择“Command History”命令可以打开或关闭MATLAB的历史窗口。

(4)当前目录窗口

在主窗口的“View”菜单下选择“Current Directory”命令,可以打开或关闭MATLAB的当前目录窗口。

(5)发行说明书窗口

发行说明书窗口是MATLAB 6.x版本所特有的,用来说明用户所拥有的Mathworks公司产品的工具包、演示以及帮助信息。在主窗口的“View”菜单下选择“Launch Pad”命令,可以打开或关闭该窗口。

(6)工作间窗口

在主窗口的“View”菜单下选择“Workspace”命令,可以打开或关闭MATLAB的工作间窗口,工作间窗口是MATLAB的重要组成部分。

2、MATLAB程序编辑/调试器(编写算法程序的地方)

在MATLAB的命令窗口中有三种方式可进入程序编辑/调试器:

(1)选择菜单栏的“File”项中的“New”或“Open”项。

(2)选择工具栏的“New”或“Open”项。

(3)在命令窗口中输入edit命令。

在程序编辑/调试器里,不同的文本内容分别用不同颜色的字体显示。其中MATLAB的关键字如for、if、end等为蓝色,注释语句为绿色,字符串为红色,其他文本为黑色,颜色的设置非常醒目,便于调试。

及运行程序所需要的其他文件处在当前目录之下,只有这样,才可以使程序得以正常运行。否则可能导致无法读取某些系统文件或数据,从而程序无法执行。

MATLAB的程序类型有三种

1)脚本M文件

入输出参数的调用,退出MATLAB后就释放了。

2)程序M文件

MATLAB指令和必要的注解。需要在工作

空间中创建并获取变量,也就是说处理的数据为命令窗口中的数据,没有输入参数,也不会返回参数。

3)函数M文件(常称为M函数)

与在命令窗口中输入命令一样,函数接受输入参数,然后执行并输出结果。用help命令可以显示它的注释说明。

具有标准的基本结构:

(1)函数定义行(关键字function)

function[out1,out2,..]=filename(in1,in2,..)

输入和输出(返回)的参数个数分别由nargin和nargout两个MATLAB保的变量来给出。

(2)第一行帮助行

以(%)开头,作为lookfor指令搜索的行

(3)函数体说明及有关注解

以(%)开头,用以说明函数的作用及有关内容

(4)函数体语句

函数体内使用的除返回和输入变量这些在function语句中直接引用的变量以外的所有变量都是局部变量,即在该函数返回之后,这些变量会自动在MATLAB的工作空间中清除掉。如果希望这些中间变量成为在整个程序中都起作用的变量,则可以将它们设置为全局变量。

例如,实现加减法运算的M函数调用方法如下:

首先编写一个M函数:(打开一个程序编辑器“Untitled”)

Function[outl,out2]=addec(inl,in2)

outl=inl+in2;

out2=inl-in2;

保存的文件名为addec(默认后缀名为.m)

然后,在MATLAB的命令窗口调用这个函数文件:

>>[a,b]=addec(10,20)

>>disp([a,b]) % 在命令窗口输出a、b的值

显示结果为:30 10

4、MATLAB帮助系统

1)单击MATLAB主窗口菜单的“Help”|“Demos”选项,或在命令窗口输入demo ,将进入MATLAB的演示界面。

2)命令窗口查询帮助

help+关键词,显示所有帮助说明;lookfor+关键字,查讯相关函数,等等。5、变量

(1

以是任意字母、数字或下划线;变量中不能包含有标点符号。

(2)一些特殊的变量

ans:用于结果的缺省变量名, i、j:虚数单位,pi:圆周率 nargin:函数的输入变量个数

eps:计算机的最小数, nargout:函数的输出变量个数,inf:无穷大, nan:不定量

6、向量的生成

由冒号运算符生成: A=初值:增值:终值

如:A=0:1:9----A=[0 1 2 3 4 5 6 7 8 9 ]

7、矩阵的生成

1)在命令窗口中直接输入

》y=[2,4, 5;3 6 8]

y=

2 4 5

3 6 8

2)由多个向量生成矩阵如: z=[x;y],x、y为向量。

3)一些常用的特殊矩阵

单位矩阵:eye(m,n); eye(m),零矩阵:zeros(m,n); zeros(m),一矩阵:ones(m,n); ones(m)

对角矩阵:对角元素向量 V=[a1,a2,…,an] A=diag(V)

随机矩阵:rand(m,n)产生一个m×n的均匀分布的随机矩阵

Y = randn(m,n) %生成m×n正态分布随机矩阵

8、矩阵运算

1)加、减运算

运算符:“+”和“-”分别为加、减运算符。

运算规则:对应元素相加、减,即按线性代数中矩阵的“十”,“一”运算进行。2)乘法运算

运算符:*

运算规则:按线性代数中矩阵乘法运算进行,即放在前面的矩阵的各行元素,分别与放在后面的矩阵的各列元素对应相乘并相加。

向量的点乘(内积)

、v为向量,其长度可不相同。

3)除法运算

MATLAB提供了两种除法运算:左除(\)和右除(/)。一般情况下,x=a\b是方程a*x =b的解,而x=b/a是方程x*a=b的解。

4)矩阵乘方运算符:^

数组乘方:A.^P:表示A的每个元素的P次乘方。

5)矩阵转置,运算符:′

9、基本平面图形绘制命令 plot的调用格式

1)

X,Y均为同维同型实数矩阵,X = [X(i)],

Y = [Y(i)],其中X(i),Y(i)为列向量,则plot(X,Y)依次画出plot(X(i),Y(i)),矩阵有几列就有几条线;若X,Y中一个为向量,另一个为矩阵,且向量的维数等于矩阵的行数或者列数,则矩阵按向量的方向分解成几个向量,再与向量配对分别画出,矩阵可分解成几个向量就有几条线;

2)plot(Y) %若Y为实数向量,Y的维数为m,则plot(Y)等价于plot(X,Y),3)plot(X1,Y1,X2,Y2,…),其中Xi与Yi成对出现,plot(X1,Y1,X2,Y2,…)将分别按顺序取两数据Xi与Yi进行画图。

4)plot(X1,Y1,LineSpec1,X2,Y2,LineSpec2…) 将按顺序分别画出由三参数定

义Xi,Yi,LineSpeci

例 >>t = 0:pi/20:2*pi;

>>plot(t,t.*cos(t),'-.r*'),绘制一条红色点划线

10、二维图形注释命令

1)axis(V)%v=[x1,x2,y1,y2]或[x1,x2,y1,y2,z1,z2],人工设定坐标范围。2)grid on 给当前的坐标轴增加分隔线。grid off 从当前的坐标轴中去掉分隔线。

3)title(‘string’)在当前坐标轴上方正中央放置字符串string作为标题4)text(x,y,'string')在图形中指定的位置(x,y)上显示字符串string

5)xlabel('string')、 ylabel(‘string’)给当前轴对象中的x、y轴贴标签

6)[x,y]=ginput(n) %用鼠标从二维图中获取几个点的坐标值。

7)gtext l('string') ,在当前二维图形中用鼠标放置文字

8)多次叠绘,hold on/off,保持当前图形窗口中的图形。该命令是决定是否在当前坐标轴中只能增加新的图形对象还是覆盖原有图形对象。

9) plotyy(x1,y1,x2,y2) %左纵轴绘制x1-y1曲线,右纵轴画x2-y2曲线。

10) 多子图,subplot

功能生成与控制多个坐标轴。把当前图形窗口分隔成几个矩形部分,不同的部分是按行方向以数字进行标号的。每一部分有一坐标轴,后面的图

形输出于当前的部分中。

用法:

subplot(m,n,p) 将一图形窗口分成m*n个小窗口,在第p个小窗口中创建一新坐标轴,并将新的坐标轴成为当前坐标轴。

11)stem

功能画二维离散数据的柄形图。该图用线条显示数据点与x轴的距离,一小圆圈(缺省标记)或用指定的其他标记符号与线条相连,在y轴上标记数据点的值。

数字信号处理实验二报告

实验二 IIR数字滤波器设计及软件实现 1.实验目的 (1)熟悉用双线性变换法设计IIR数字滤波器的原理与方法; (2)学会调用MATLAB信号处理工具箱中滤波器设计函数(或滤波器设计分析工具fdatool)设计各种IIR数字滤波器,学会根据滤波需求确定滤波器指标参数。 (3)掌握IIR数字滤波器的MATLAB实现方法。 (3)通过观察滤波器输入输出信号的时域波形及其频谱,建立数字滤波的概念。 2.实验原理 设计IIR数字滤波器一般采用间接法(脉冲响应不变法和双线性变换法),应用最广泛的是双线性变换法。基本设计过程是:①先将给定的数字滤波器的指标转换成过渡模拟滤波器的指标;②设计过渡模拟滤波器;③将过渡模拟滤波器系统函数转换成数字滤波器的系统函数。MATLAB信号处理工具箱中的各种IIR数字滤波器设计函数都是采用双线性变换法。第六章介绍的滤波器设计函数butter、cheby1 、cheby2 和ellip可以分别被调用来直接设计巴特沃斯、切比雪夫1、切比雪夫2和椭圆模拟和数字滤波器。本实验要求读者调用如上函数直接设计IIR数字滤波器。 本实验的数字滤波器的MATLAB实现是指调用MATLAB信号处理工具箱函数filter对给定的输入信号x(n)进行滤波,得到滤波后的输出信号y(n)。 3. 实验内容及步骤 (1)调用信号产生函数mstg产生由三路抑制载波调幅信号相加构成的复合信号st,该函数还会自动绘图显示st的时域波形和幅频特性曲线,如图1所示。由图可见,三路信号时域混叠无法在时域分离。但频域是分离的,所以可以通过滤波的方法在频域分离,这就是本实验的目的。 图1 三路调幅信号st的时域波形和幅频特性曲线 (2)要求将st中三路调幅信号分离,通过观察st的幅频特性曲线,分别确定可以分离st中三路抑制载波单频调幅信号的三个滤波器(低通滤波器、带通滤波器、高通滤波器)的通带截止频率和阻带截止频率。要求滤波器的通带最大衰减为0.1dB,阻带最小衰减为

数字信号处理实验(吴镇扬)答案-2

(1) 观察高斯序列的时域和幅频特性,固定信号)(n x a 中参数p=8,改变q 的 值,使q 分别等于2、4、8,观察他们的时域和幅频特性,了解当q 取不同值时,对信号序列的时域和幅频特性的影响;固定q=8,改变p,使p 分别等于8、13、14,观察参数p 变化对信号序列的时域和幅频特性的影响,注意p 等于多少时会发生明显的泄漏现象,混叠是否也随之出现?记录实验中观察到的现象,绘出相应的时域序列和幅频特性曲线。 ()() ?????≤≤=-其他0150,2n e n x q p n a 解:程序见附录程序一: P=8,q 变化时: t/T x a (n ) k X a (k ) t/T x a (n ) p=8 q=4 k X a (k ) p=8 q=4 t/T x a (n ) p=8 q=8 k X a (k ) p=8 q=8 幅频特性 时域特性

t/T x a (n ) p=8 q=8 k X a (k ) p=8 q=8 t/T x a (n ) 5 10 15 k X a (k ) p=13 q=8 t/T x a (n ) p=14 q=8 5 10 15 k X a (k ) p=14 q=8 时域特性幅频特性 分析: 由高斯序列表达式知n=p 为期对称轴; 当p 取固定值时,时域图都关于n=8对称截取长度为周期的整数倍,没有发生明显的泄漏现象;但存在混叠,当q 由2增加至8过程中,时域图形变化越来越平缓,中间包络越来越大,可能函数周期开始增加,频率降低,渐渐小于fs/2,混叠减弱; 当q 值固定不变,p 变化时,时域对称中轴右移,截取的时域长度渐渐地不再是周期的整数倍,开始无法代表一个周期,泄漏现象也来越明显,因而图形越来越偏离真实值, p=14时的泄漏现象最为明显,混叠可能也随之出现;

数字信号处理实验一

实验一 离散时间信号分析 班级 信息131班 学号 201312030103 姓名 陈娇 日期 一、实验目的 掌握两个序列的相加、相乘、移位、反褶、卷积等基本运算。 二、实验原理 1.序列的基本概念 离散时间信号在数学上可用时间序列)}({n x 来表示,其中)(n x 代表序列的第n 个数字,n 代表时间的序列,n 的取值范围为+∞<<∞-n 的整数,n 取其它值)(n x 没有意义。离散时间信号可以是由模拟信号通过采样得到,例如对模拟信号)(t x a 进行等间隔采样,采样间隔为T ,得到)}({nT x a 一个有序的数字序列就是离散时间信号,简称序列。 2.常用序列 常用序列有:单位脉冲序列(单位抽样)) (n δ、单位阶跃序列)(n u 、矩形序列)(n R N 、实指数序列、复指数序列、正弦型序列等。 3.序列的基本运算 序列的运算包括移位、反褶、和、积、标乘、累加、差分运算等。 4.序列的卷积运算 ∑∞ -∞==-= m n h n x m n h m x n y )(*)()()()( 上式的运算关系称为卷积运算,式中代表两个序列卷积运算。两个序列的卷积是一个序列与另一个序列反褶后逐次移位乘积之和,故称为离散卷积,也称两序列的线性卷积。其计算的过程包括以下4个步骤。 (1)反褶:先将)(n x 和)(n h 的变量n 换成m ,变成)(m x 和)(m h ,再将)(m h 以纵轴为对称轴反褶成)(m h -。

(2)移位:将)(m h -移位n ,得)(m n h -。当n 为正数时,右移n 位;当n 为负数时,左移n 位。 (3)相乘:将)(m n h -和)(m x 的对应点值相乘。 (4)求和:将以上所有对应点的乘积累加起来,即得)(n y 。 三、主要实验仪器及材料 微型计算机、Matlab6.5 教学版、TC 编程环境。 四、实验内容 (1)用Matlab 或C 语言编制两个序列的相加、相乘、移位、反褶、卷积等的程序; (2)画出两个序列运算以后的图形; (3)对结果进行分析; (4)完成实验报告。 五、实验结果 六、实验总结

数字信号处理实验程序2.

2.1 clc close all; n=0:15; p=8;q=2; x=exp(-(n-p.^2/q; figure(1; subplot(3,1,1; stem(n,x; title('exp(-(n-p^2/q,p=8,q=2'; xk1=fft(x,16; q=4; x=exp(-(n-p.^2/q; subplot(3,1,2; xk2=fft(x,16; stem(n,x; title('exp(-(n-p^2/q,p=8,q=4'; q=8; x=exp(-(n-p.^2/q;

xk3=fft(x,16; subplot(3,1,3; stem(n,x; title('exp(-(n-p^2/q,p=8,q=8';%时域特性figure(2; subplot(3,1,1; stem(n,abs(xk1; title('exp(-(n-p^2/q,p=8,q=2'; subplot(3,1,2; stem(n,abs(xk2; title('exp(-(n-p^2/q,p=8,q=4'; subplot(3,1,3; stem(n,abs(xk3; title('exp(-(n-p^2/q,p=8,q=8';%频域特性%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%% p=8;q=8; figure(3; subplot(3,1,1; stem(n,x; title('exp(-(n-p^2/q,p=8,q=8';

xk1=fft(x,16; p=13; x=exp(-(n-p.^2/q; subplot(3,1,2; xk2=fft(x,16; stem(n,x; title('exp(-(n-p^2/q,p=13,q=8'; p=14; x=exp(-(n-p.^2/q; xk3=fft(x,16; subplot(3,1,3; stem(n,x; title('exp(-(n-p^2/q,p=14,q=8';%时域特性figure(4; subplot(3,1,1; stem(n,abs(xk1; title('exp(-(n-p^2/q,p=8,q=8'; subplot(3,1,2; stem(n,abs(xk2; title('exp(-(n-p^2/q,p=13,q=8'; subplot(3,1,3;

数字信号处理实验作业

实验6 数字滤波器的网络结构 一、实验目的: 1、加深对数字滤波器分类与结构的了解。 2、明确数字滤波器的基本结构及其相互间的转换方法。 3、掌握用MA TLAB 语言进行数字滤波器结构间相互转换的子函数及程序编写方法。 二、实验原理: 1、数字滤波器的分类 离散LSI 系统对信号的响应过程实际上就是对信号进行滤波的过程。因此,离散LSI 系统又称为数字滤波器。 数字滤波器从滤波功能上可以分为低通、高通、带通、带阻以及全通滤波器;根据单位脉冲响应的特性,又可以分为有限长单位脉冲响应滤波器(FIR )和无限长单位脉冲响应滤波器(IIR )。 一个离散LSI 系统可以用系统函数来表示: M -m -1-2-m m m=0 012m N -1-2-k -k 12k k k=1 b z b +b z +b z ++b z Y(z)b(z)H(z)=== =X(z)a(z) 1+a z +a z ++a z 1+a z ∑∑ 也可以用差分方程来表示: N M k m k=1 m=0 y(n)+a y(n-k)=b x(n-m)∑∑ 以上两个公式中,当a k 至少有一个不为0时,则在有限Z 平面上存在极点,表达的是以一个IIR 数字滤波器;当a k 全都为0时,系统不存在极点,表达的是一个FIR 数字滤波器。FIR 数字滤波器可以看成是IIR 数字滤波器的a k 全都为0时的一个特例。 IIR 数字滤波器的基本结构分为直接Ⅰ型、直接Ⅱ型、直接Ⅲ型、级联型和并联型。 FIR 数字滤波器的基本结构分为横截型(又称直接型或卷积型)、级联型、线性相位型及频率采样型等。本实验对线性相位型及频率采样型不做讨论,见实验10、12。 另外,滤波器的一种新型结构——格型结构也逐步投入应用,有全零点FIR 系统格型结构、全极点IIR 系统格型结构以及全零极点IIR 系统格型结构。 2、IIR 数字滤波器的基本结构与实现 (1)直接型与级联型、并联型的转换 例6-1 已知一个系统的传递函数为 -1-2-3 -1-2-3 8-4z +11z -2z H(z)=1-1.25z +0.75z -0.125z 将其从直接型(其信号流图如图6-1所示)转换为级联型和并联型。

数字信号处理实验报告(实验1_4)

实验一 MATLAB 仿真软件的基本操作命令和使用方法 实验容 1、帮助命令 使用 help 命令,查找 sqrt (开方)函数的使用方法; 2、MATLAB 命令窗口 (1)在MATLAB 命令窗口直接输入命令行计算3 1)5.0sin(21+=πy 的值; (2)求多项式 p(x) = x3 + 2x+ 4的根; 3、矩阵运算 (1)矩阵的乘法 已知 A=[1 2;3 4], B=[5 5;7 8],求 A^2*B

(2)矩阵的行列式 已知A=[1 2 3;4 5 6;7 8 9],求A (3)矩阵的转置及共轭转置 已知A=[1 2 3;4 5 6;7 8 9],求A' 已知B=[5+i,2-i,1;6*i,4,9-i], 求B.' , B' (4)特征值、特征向量、特征多项式 已知A=[1.2 3 5 0.9;5 1.7 5 6;3 9 0 1;1 2 3 4] ,求矩阵A的特征值、特征向量、特征多项式;

(5)使用冒号选出指定元素 已知:A=[1 2 3;4 5 6;7 8 9];求A 中第3 列前2 个元素;A 中所有列第2,3 行的元素; 4、Matlab 基本编程方法 (1)编写命令文件:计算1+2+…+n<2000 时的最大n 值;

(2)编写函数文件:分别用for 和while 循环结构编写程序,求 2 的0 到15 次幂的和。

5、MATLAB基本绘图命令 (1)绘制余弦曲线 y=cos(t),t∈[0,2π]

(2)在同一坐标系中绘制余弦曲线 y=cos(t-0.25)和正弦曲线 y=sin(t-0.5), t∈[0,2π] (3)绘制[0,4π]区间上的 x1=10sint 曲线,并要求: (a)线形为点划线、颜色为红色、数据点标记为加号; (b)坐标轴控制:显示围、刻度线、比例、网络线 (c)标注控制:坐标轴名称、标题、相应文本; >> clear;

数字信号处理实验

实验一 离散傅里叶变换(DFT )对确定信号进行谱分析 一.实验目的 1.加深对DFT 算法原理和基本性质的理解。 2.熟悉DFT 算法和原理的编程方法。 3.学习用DFT 对信号进行谱分析的方法,了解可能出现的误差及其原因,以便在实际中正确利用。 二.实验原理 一个连续信号)(t x a 的频谱可以用其傅里叶变换表示,即 dt e t x j X t j a a Ω-∞ ∞ -? = Ω)()( 若对)(t x a 进行理想采样可得采样序列 )(|)()(nT x t x n x a nT t a === 对)(n x 进行DTFT ,可得其频谱为: ∑∞ -∞ =-= n n j j e n x e X ωω )()( 其中数字频率ω与模拟频率Ω的关系为: s f T Ω = Ω=ω )(n x 的DFT 为∑∞ -∞ =-= n nk N j e n x k X π 2)()( 若)(t x a 是限带信号,且在满足采样定理的条件下,)(ω j e X 是)(Ωj X a 的周期延拓, )(k X 是)(ωj e X 在单位圆上的等间隔采样值,即k N j e X k X πωω2| )()(= =。 为在计算机上分析计算方便,常用)(k X 来近似)(ω j e X ,这样对于长度为N 的有限 长序列(无限长序列也可用有限长序列来逼近),便可通过DFT 求其离散频谱。 三.实验内容 1.用DFT 对下列序列进行谱分析。 (1))()04.0sin(3)(100n R n n x π=

1 (2)]0,0,0,0,0,0,0,0,1,1,1,1[)(=n x 2.为了说明高密度频谱和高分辨率频谱之间的区别,考察序列 )52.0cos()48.0cos()(n n n x ππ+= (1)当0≤n ≤10时,确定并画出x(n)的离散傅里叶变换。 (2)当0≤n ≤100时,确定并画出x(n)的离散傅里叶变换。 四.实验结果 1. (1) (2)

数字信号处理实验一

一、实验目的 1. 通过本次实验回忆并熟悉MATLAB这个软件。 2. 通过本次实验学会如何利用MATLAB进行序列的简单运算。 3. 通过本次实验深刻理解理论课上的数字信号处理的一个常见方法——对时刻n的样本附近的一些样本求平均,产生所需的输出信号。 3. 通过振幅调制信号的产生来理解载波信号与调制信号之间的关系。 二、实验内容 1. 编写程序在MATLAB中实现从被加性噪声污染的信号中移除噪声的算法,本次试验采用三点滑动平均算法,可直接输入程序P1.5。 2. 通过运行程序得出的结果回答习题Q1.31-Q1.33的问题,加深对算法思想的理解。 3. 编写程序在MATLAB中实现振幅调制信号产生的算法,可直接输入程序P1.6。 4. 通过运行程序得出的结果回答习题Q1.34-Q1.35的问题,加深对算法思想的理解。 三、主要算法与程序 1. 三点滑动平均算法的核心程序: %程序P1.5 %通过平均的信号平滑 clf; R=51; d=0.8*(rand(R,1)-0.5);%产生随噪声 m=0:R-1; s=2*m.*(0.9.^m);%产生为污染的信号 x=s+d';%产生被噪音污染的信号 subplot(2,1,1); plot(m,d','r-',m,s,'g--',m,x,'b-.');

xlabel('时间序号n');ylabel('振幅'); legend('d[n]','s[n]','x[n]'); x1=[0 0 x];x2=[0 x 0];x3=[x 0 0]; y=(x1+x2+x3)/3; subplot(2,1,2); plot(m,y(2:R+1),'r-',m,s,'g--'); legend('y[n]','s[n]'); xlabel('时间序号n');ylabel('振幅'); 2. 振幅调制信号的产生核心程序:(由于要几个结果,因此利用subplot函数画图) %程序P1.6 %振幅调制信号的产生 n=0:100; m=0.1;fH=0.1;fL=0.01; m1=0.3;fH1=0.3;fL1=0.03; xH=sin(2*pi*fH*n); xL=sin(2*pi*fL*n); y=(1+m*xL).*xH; xH1=sin(2*pi*fH1*n); xL1=sin(2*pi*fL1*n); y1=(1+m1*xL).*xH; y2=(1+m*xL).*xH1; y3=(1+m*xL1).*xH; subplot(2,2,1); stem(n,y); grid; xlabel('时间序号n');ylabel('振幅');title('m=0.1;fH=0.1;fL=0.01;'); subplot(2,2,2); stem(n,y1); grid; xlabel('时间序号n');ylabel('振幅');title('m=0.3;fH=0.1;fL=0.01;'); subplot(2,2,3); stem(n,y2); grid; xlabel('时间序号n');ylabel('振幅');title('m=0.3;fH=0.3;fL=0.01;'); subplot(2,2,4); stem(n,y3); grid;

数字信号处理实验作业

实验5 抽样定理 一、实验目的: 1、了解用MA TLAB 语言进行时域、频域抽样及信号重建的方法。 2、进一步加深对时域、频域抽样定理的基本原理的理解。 3、观察信号抽样与恢复的图形,掌握采样频率的确定方法和插公式的编程方法。 二、实验原理: 1、时域抽样与信号的重建 (1)对连续信号进行采样 例5-1 已知一个连续时间信号sin sin(),1Hz 3 ππ=0001f(t)=(2f t)+6f t f ,取最高有限带宽频率f m =5f 0,分别显示原连续时间信号波形和F s >2f m 、F s =2f m 、F s <2f m 三情况下抽样信号的波形。 程序清单如下: %分别取Fs=fm ,Fs=2fm ,Fs=3fm 来研究问题 dt=0.1; f0=1; T0=1/f0; m=5*f0; Tm=1/fm; t=-2:dt:2; f=sin(2*pi*f0*t)+1/3*sin(6*pi*f0*t); subplot(4,1,1); plot(t,f); axis([min(t),max(t),1.1*min(f),1.1*max(f)]); title('原连续信号和抽样信号'); for i=1:3; fs=i*fm;Ts=1/fs; n=-2:Ts:2; f=sin(2*pi*f0*n)+1/3*sin(6*pi*f0*n); subplot(4,1,i+1);stem(n,f,'filled'); axis([min(n),max(n),1.1*min(f),1.1*max(f)]); end 程序运行结果如图5-1所示:

原连续信号和抽样信号 图5-1 (2)连续信号和抽样信号的频谱 由理论分析可知,信号的频谱图可以很直观地反映出抽样信号能否恢复原模拟信号。因此,我们对上述三种情况下的时域信号求幅度谱,来进一步分析和验证时域抽样定理。 例5-2编程求解例5-1中连续信号及其三种抽样频率(F s>2f m、F s=2f m、F s<2f m)下的抽样信号的幅度谱。 程序清单如下: dt=0.1;f0=1;T0=1/f0;fm=5*f0;Tm=1/fm; t=-2:dt:2;N=length(t); f=sin(2*pi*f0*t)+1/3*sin(6*pi*f0*t); wm=2*pi*fm;k=0:N-1;w1=k*wm/N; F1=f*exp(-j*t'*w1)*dt;subplot(4,1,1);plot(w1/(2*pi),abs(F1)); axis([0,max(4*fm),1.1*min(abs(F1)),1.1*max(abs(F1))]); for i=1:3; if i<=2 c=0;else c=1;end fs=(i+c)*fm;Ts=1/fs; n=-2:Ts:2;N=length(n); f=sin(2*pi*f0*n)+1/3*sin(6*pi*f0*n); wm=2*pi*fs;k=0:N-1; w=k*wm/N;F=f*exp(-j*n'*w)*Ts; subplot(4,1,i+1);plot(w/(2*pi),abs(F)); axis([0,max(4*fm),1.1*min(abs(F)),1.1*max(abs(F))]); end 程序运行结果如图5-2所示。 由图可见,当满足F s≥2f m条件时,抽样信号的频谱没有混叠现象;当不满足F s≥2f m 条件时,抽样信号的频谱发生了混叠,即图5-2的第二行F s<2f m的频谱图,,在f m=5f0的围,频谱出现了镜像对称的部分。

数字信号处理实验答案完整版

数字信号处理实验答案 HEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】

实验一熟悉Matlab环境 一、实验目的 1.熟悉MATLAB的主要操作命令。 2.学会简单的矩阵输入和数据读写。 3.掌握简单的绘图命令。 4.用MATLAB编程并学会创建函数。 5.观察离散系统的频率响应。 二、实验内容 认真阅读本章附录,在MATLAB环境下重新做一遍附录中的例子,体会各条命令的含义。在熟悉了MATLAB基本命令的基础上,完成以下实验。 上机实验内容: (1)数组的加、减、乘、除和乘方运算。输入A=[1 2 3 4],B=[3 4 5 6],求C=A+B,D=A-B,E=A.*B,F=A./B,G=A.^B并用stem语句画出A、B、C、D、E、F、G。 clear all; a=[1 2 3 4]; b=[3 4 5 6]; c=a+b; d=a-b; e=a.*b; f=a./b; g=a.^b; n=1:4; subplot(4,2,1);stem(n,a); xlabel('n');xlim([0 5]);ylabel('A'); subplot(4,2,2);stem(n,b); xlabel('n');xlim([0 5]);ylabel('B'); subplot(4,2,3);stem(n,c); xlabel('n');xlim([0 5]);ylabel('C'); subplot(4,2,4);stem(n,d); xlabel('n');xlim([0 5]);ylabel('D'); subplot(4,2,5);stem(n,e); xlabel('n');xlim([0 5]);ylabel('E'); subplot(4,2,6);stem(n,f); xlabel('n');xlim([0 5]);ylabel('F'); subplot(4,2,7);stem(n,g); xlabel('n');xlim([0 5]);ylabel('G'); (2)用MATLAB实现下列序列: a) x(n)= 0≤n≤15 b) x(n)=e+3j)n 0≤n≤15 c) x(n)=3cosπn+π)+2sinπn+π) 0≤n≤15 d) 将c)中的x(n)扩展为以16为周期的函数x(n)=x(n+16),绘出四个周期。

数字信号处理实验1认识实验

实验1认识实验-MATLAB语言上机操作实践 一、实验目的 ㈠了解MATLAB语言的主要特点、作用。 ㈡学会MATLAB主界面简单的操作使用方法。 ㈢学习简单的数组赋值、运算、绘图、流程控制编程。 二、实验原理 ㈠简单的数组赋值方法 MATLAB中的变量和常量都可以是数组(或矩阵),且每个元素都可以是复数。 在MATLAB指令窗口输入数组A=[1 2 3;4 5 6;7 8 9],观察输出结果。然后,键入:A(4,2)= 11 键入:A (5,:) = [-13 -14 -15] 键入:A(4,3)= abs (A(5,1)) 键入:A ([2,5],:) = [ ] 键入:A/2 键入:A (4,:) = [sqrt(3) (4+5)/6*2 –7] 观察以上各输出结果。将A式中分号改为空格或逗号,情况又如何?请在每式的后面标注其含义。 2.在MATLAB指令窗口输入B=[1+2i,3+4i;5+6i ,7+8i], 观察输出结果。 键入:C=[1,3;5,7]+[2,4;6,8]*i,观察输出结果。 如果C式中i前的*号省略,结果如何? 键入:D = sqrt (2+3i) 键入:D*D 键入:E = C’, F = conj(C), G = conj(C)’ 观察以上各输出结果, 请在每式的后面标注其含义。 3.在MATLAB指令窗口输入H1=ones(3,2),H2=zeros(2,3),H3=eye(4),观察输出结果。 ㈡、数组的基本运算 1.输入A=[1 3 5],B= [2 4 6],求C=A+B,D=A-2,E=B-A 2.求F1=A*3,F2=A.*B,F3=A./B,F4=A.\B, F5=B.\A, F6=B.^A, F7=2./B, F8=B.\2 *3.求B',Z1=A*B’,Z2=B’*A 观察以上各输出结果,比较各种运算的区别,理解其含义。 ㈢、常用函数及相应的信号波形显示 例1:显示曲线f(t)=2sin(2πt),(t>0) ⅰ点击空白文档图标(New M-file),打开文本编辑器。 ⅱ键入:t=0:0.01:3; (1) f=2*sin(2*pi*t); (2) plot(t,f); title(‘f(t)-t曲线’); xlabel(‘t’),ylabel(‘f(t)’);

数字信号处理实验(吴镇扬)答案-4

实验四 有限长单位脉冲响应滤波器设计 朱方方 0806020433 通信四班 (1) 设计一个线性相位FIR 高通滤波器,通带边界频率为0.6π,阻带边界频率为0.4π,阻 带衰减不小于40dB 。要求给出h(n)的解析式,并用MATLAB 绘出时域波形和幅频特性。 解: (1) 求数字边界频率: 0.6 , .c r ωπωπ== (2) 求理想滤波器的边界频率: 0.5n ωπ= (3) 求理想单位脉冲响应: []d s i n ()s i n [()] () ()1n n n n n n h n n παωαα παωα π?-- -≠??-=? ? -=?? (4) 选择窗函数。阻带最小衰减为-40dB ,因此选择海明窗(其阻带最小衰减为-44dB);滤 波器的过渡带宽为0.6π-0.4π=0.2π,因此 6.21 0.231 , 152 N N N ππα-=?=== (5) 求FIR 滤波器的单位脉冲响应h(n): []31d sin (15)sin[0.5(15)] 1cos ()15()()()15(15)1 15 n n n R n n h n w n h n n n ππππ?---????-? ?≠? ???==-???? ? ?=? 程序: clear; N=31; n=0:N-1; hd=(sin(pi*(n-15))-sin(0.5*pi*(n-15)))./(pi *(n-15)); hd(16)=0.5; win=hanning(N); h=win'.*hd; figure; stem(n,h); xlabel('n'); ylabel('h(n)'); grid; title('FIR 高通滤波单位脉冲响应h(n)'); [H,w]=freqz(h,1); H=20*log10(abs(H)); figure;3 plot(w/pi,H); axis([0 1 -100 10]); xlabel('\omega/\pi'); ylabel('幅度/dB'); grid; title('FIR 高通滤波器,hanning 窗,N=31');

数字信号处理实验三

实验三:离散LSI 系统的频域分析 一、实验内容 2、求以下各序列的z 变换: 12030() ()sin() ()sin()n an x n na x n n x n e n ωω-=== 程序清单如下: syms w0 n z a; x1=n*a^n;X1=ztrans(x1) x2=sin(w0*n);X2=ztrans(x2) x3= exp(-a*n)*sin(w0*n);X3=ztrans(x3) 程序运行结果如下: X1 =z/(a*(z/a - 1)^2) X2 =(z*sin(w0))/(z^2 - 2*cos(w0)*z + 1) X3 =(z*exp(a)*sin(w0))/(exp(2*a)*z^2 - 2*exp(a)*cos(w0)*z + 1) 3、求下列函数的逆z 变换 0 312342 1 1() () () ()() 1j z z z z X z X z X z X z z a z a z e z ω---= = = = ---- 程序清单如下: syms w0 n z a; X1=z/(z-a);x1=iztrans(X1) X2= z/(a-z)^2;x2=iztrans(X2) X3=z/ z-exp(j*w0);x3=iztrans(X3) X4=(1-z^-3)/(1-z^-1);x4=iztrans(X4) 程序运行结果如下: x1 =a^n x2 =n*a^n/a 课程名称 数字信号 实验成绩 指导教师 实 验 报 告 院系 信息工程学院 班级 学号 姓名 日期

x3 =charfcn[0](n)-iztrans(exp(i*w0),w0,n) x4 =charfcn[2](n)+charfcn[1](n)+charfcn[0](n) 4、求一下系统函数所描述的离散系统的零极点分布图,并判断系统的稳定性 (1) (0.3)()(1)(1) z z H z z j z j -= +-++ z1=[0,0.3]';p1=[-1+j,-1-j]';k=1; [b1,a1]=zp2tf(z1,p1,k); subplot(1,2,1);zplane(z1,p1); title('极点在单位圆外); subplot(1,2,2);impz(b1,a1,20); 由图可见:当极点位于单位圆内,系统的单位序列响应随着频率的增大而收敛;当极点位于单位圆上,系统的单位序列响应为等幅振荡;当极点位于单位圆外,系统的单位序列响应随着频率的增大而发散。由此可知系统为不稳定系统。 -1 -0.5 00.51 -2 -1.5-1-0.500.511.5 2Real Part I m a g i n a r y P a r t 极点在单位圆外 n (samples) A m p l i t u d e Impulse Response

数字信号处理实验及参考程序

数字信号处理实验实验一离散时间信号与系统及MA TLAB实现 1.单位冲激信号: n = -5:5; x = (n==0); subplot(122); stem(n, x); 2.单位阶跃信号: x=zeros(1,11); n0=0; n1=-5; n2=5; n = n1:n2; x(:,n+6) = ((n-n0)>=0); stem(n,x); 3.正弦序列: n = 0:1/3200:1/100; x=3*sin(200*pi*n+1.2); stem(n,x); 4.指数序列 n = 0:1/2:10; x1= 3*(0.7.^n); x2=3*exp((0.7+j*314)*n); subplot(221); stem(n,x1); subplot(222); stem(n,x2); 5.信号延迟 n=0:20; Y1=sin(100*n); Y2=sin(100*(n-3)); subplot(221); stem(n,Y1); subplot(222); stem(n,Y2);

6.信号相加 X1=[2 0.5 0.9 1 0 0 0 0]; X2=[0 0.1 0.2 0.3 0.4 0.5 0.6 0.7]; X=X1+X2; stem(X); 7.信号翻转 X1=[2 0.5 0.9 1]; n=1:4; X2=X1(5-n); subplot(221); stem(n,X1); subplot(222); stem(n,X2); 8.用MATLAB计算序列{-2 0 1 –1 3}和序列{1 2 0 -1}的离散卷积。a=[-2 0 1 -1 3]; b=[1 2 0 -1]; c=conv(a,b); M=length(c)-1; n=0:1:M; stem(n,c); xlabel('n'); ylabel('幅度'); 9.用MA TLAB计算差分方程 当输入序列为时的输出结果。 N=41; a=[0.8 -0.44 0.36 0.22]; b=[1 0.7 -0.45 -0.6]; x=[1 zeros(1,N-1)]; k=0:1:N-1; y=filter(a,b,x); stem(k,y) xlabel('n'); ylabel('幅度') 10.冲激响应impz N=64; a=[0.8 -0.44 0.36 0.22];

数字信处理上机实验答案全

数字信处理上机实验答 案全 Document number【SA80SAB-SAA9SYT-SAATC-SA6UT-SA18】

第十章 上机实验 数字信号处理是一门理论和实际密切结合的课程,为深入掌握课程内容,最好在学习理论的同时,做习题和上机实验。上机实验不仅可以帮助读者深入的理解和消化基本理论,而且能锻炼初学者的独立解决问题的能力。本章在第二版的基础上编写了六个实验,前五个实验属基础理论实验,第六个属应用综合实验。 实验一系统响应及系统稳定性。 实验二时域采样与频域采样。 实验三用FFT对信号作频谱分析。 实验四 IIR数字滤波器设计及软件实现。 实验五 FIR数字滤波器设计与软件实现 实验六应用实验——数字信号处理在双音多频拨号系统中的应用 任课教师根据教学进度,安排学生上机进行实验。建议自学的读者在学习完第一章后作实验一;在学习完第三、四章后作实验二和实验三;实验四IIR数字滤波器设计及软件实现在。学习完第六章进行;实验五在学习完第七章后进行。实验六综合实验在学习完第七章或者再后些进行;实验六为综合实验,在学习完本课程后再进行。 实验一: 系统响应及系统稳定性 1.实验目的 (1)掌握求系统响应的方法。 (2)掌握时域离散系统的时域特性。 (3)分析、观察及检验系统的稳定性。 2.实验原理与方法 在时域中,描写系统特性的方法是差分方程和单位脉冲响应,在频域可以用系统函数描述系统特性。已知输入信号可以由差分方程、单位脉冲响应或系统函数求出系统对于该输入信号的响应,本实验仅在时域求解。在计算机上适合用递推法求差分方程的解,最简单的方法是采用MATLAB语言的工具箱函数filter函数。也可以用MATLAB语言的工具箱函数conv函数计算输入信号和系统的单位脉冲响应的线性卷积,求出系统的响应。 系统的时域特性指的是系统的线性时不变性质、因果性和稳定性。重点分析实验系统的稳定性,包括观察系统的暂态响应和稳定响应。 系统的稳定性是指对任意有界的输入信号,系统都能得到有界的系统响应。或者系统的单位脉冲响应满足绝对可和的条件。系统的稳定性由其差分方程的系数决定。 实际中检查系统是否稳定,不可能检查系统对所有有界的输入信号,输出是否都是有界输出,或者检查系统的单位脉冲响应满足绝对可和的条件。可行的方法是在系统的输入端加入单位阶跃序列,如果系统的输出趋近一个常数(包括零),就可以断定系统是稳定的[19]。系统的稳态输出是指当∞ n时,系统的输出。如果系统稳定,信号加入 → 系统后,系统输出的开始一段称为暂态效应,随n的加大,幅度趋于稳定,达到稳态输出。 注意在以下实验中均假设系统的初始状态为零。 3.实验内容及步骤

数字信号处理实验4

数字信号处理实验四 第一题结果: (1)没有增加过渡点 源码如下: N = 15; H = [1 1 1 0.5 zeros(1,7) 0.5 1 1 1]; %确定抽样点的幅度大小 %H(3,13) = 0.75;H(5,11) = 0.25; %设置过渡点 k = 0:N-1; A = exp(-j*pi*k*(N-1)/N); %抽样点相位大小 HK = H.*A; %求抽样点的H(k) hn = ifft(HK,N); %求出FIR的单位冲激响应h(n) freqz(hn,1,256); %画出幅频相频曲线figure(2); stem(real(hn),'.'); %绘制单位冲激响应的实部 line([0,35],[0,0]);xlabel('n');ylabel('Real(h(n))'); 单位脉冲响应曲线 幅频和相频特性曲线

(2)增加过渡点 源码如下: N = 15; H = [1 1 1 0.5 zeros(1,7) 0.5 1 1 1]; %确定抽样点的幅度大小 H(3) = 0.75;H(13) = 0.75;H(5) = 0.25;H(11) = 0.25; %设置过渡点 k = 0:N-1; A = exp(-j*pi*k*(N-1)/N); %抽样点相位大小 HK = H.*A; %求抽样点的H(k) hn = ifft(HK,N); %求出FIR的单位冲激响应h(n) freqz(hn,1,256); %画出幅频相频曲线figure(2); stem(real(hn),'.'); %绘制单位冲激响应的实部 line([0,35],[0,0]);xlabel('n');ylabel('Real(h(n))'); 单位脉冲响应曲线 幅频和相频特性曲线 第二题结果:

数字信号处理上机实验代码

文件名:tstem.m(实验一、二需要) 程序: f unction tstem(xn,yn) %时域序列绘图函数 %xn:被绘图的信号数据序列,yn:绘图信号的纵坐标名称(字符串)n=0:length(xn)-1; stem(n,xn,'.'); xlabel('n');ylabel('yn'); axis([0,n(end),min(xn),1.2*max(xn)]); 文件名:tplot.m(实验一、四需要) 程序: function tplot(xn,T,yn) %时域序列连续曲线绘图函数 %xn:信号数据序列,yn:绘图信号的纵坐标名称(字符串) %T为采样间隔 n=0;length(xn)-1;t=n*T; plot(t,xn); xlabel('t/s');ylabel(yn); axis([0,t(end),min(xn),1.2*max(xn)]); 文件名:myplot.m(实验一、四需要)

%(1)myplot;计算时域离散系统损耗函数并绘制曲线图。function myplot(B,A) %B为系统函数分子多项式系数向量 %A为系统函数分母多项式系数向量 [H,W]=freqz(B,A,1000) m=abs(H); plot(W/pi,20*log10(m/max(m)));grid on; xlabel('\omega/\pi');ylabel('幅度(dB)') axis([0,1,-80,5]);title('损耗函数曲线'); 文件名:mstem.m(实验一、三需要) 程序: function mstem(Xk) %mstem(Xk)绘制频域采样序列向量Xk的幅频特性图 M=length(Xk); k=0:M-1;wk=2*k/M;%产生M点DFT对应的采样点频率(关于pi归一化值) stem(wk,abs(Xk),'.');box on;%绘制M点DFT的幅频特性图xlabel('w/\pi');ylabel('幅度'); axis([0,2,0,1.2*max(abs(Xk))]); 文件名:mpplot.m(实验一需要)

数字信号处理第二章上机题作业

数字信号处理作业实验题报告 第一章16.(1) 实验目的: 求解差分方程所描述的系统的单位脉冲响应和单位阶跃响应。 实验要求: 运用matlab求出y(n)=0.6y(n-1)-0.08y(n-2)+x(n)的单位脉冲响应和单位阶跃响应的示意图。 源程序: B1=1;A1=[1, -0.6, 0.08]; ys=2; %设差分方程 xn=[1, zeros(1, 20)]; %xn=单位脉冲序列,长度N=31 xi=filtic(B1, A1, ys); hn1=filter(B1, A1, xn, xi); %求系统输出信号hn1 n=0:length(hn1)-1; subplot(2, 1, 1);stem(n, hn1, '.') title('单位脉冲响应'); xlabel('n');ylabel('h(n)') xn=ones(1, 20); sn1=filter(B1, A1, xn, xi); %求系统输出信号sn1 n=0:length(sn1)-1; Subplot(2, 1, 2); stem(n, sn1, '.') title('单位阶跃响应'); xlabel('n'); ylabel('s(n)')

运行结果: 实验分析: 单位脉冲响应逐渐趋于0,阶跃响应保持不变,由此可见,是个稳定系统。

第二章31题 实验目的: 用matlab判断系统是否稳定。 实验要求: 用matlab画出系统的极,零点分布图,输入单位阶跃序列u(n)检查系统是否稳定。 源程序: A=[2, -2.98, 0.17, 2.3418, -1.5147]; B=[0, 0, 1, 5, -50]; subplot(2,1,1); zplane(B,A); %求H(z)的极点 p=roots(A); %求H(z)的模 pm=abs(p); if max(pm)<1 disp('系统因果稳定'), else,disp('系统因果不稳定'),end un=ones(1,800); sn=filter(B, A, un); n=0:length(sn)-1; subplot(2, 1, 2);plot(n, sn) xlabel('n');ylabel('s(n)')

习题集-02 数字信号处理习题答案

§ Z 变换 ? Z 变换的定义及收敛域 【习题】 1. 假如)(n x 的z 变换代数表示式是下式,问)(z X 可能有多少不同的收敛域。 )83451)(411(411)(2122----+++- =z z z z z X 【分析】 )要单独讨论,(环状、圆外、圆内:有三种收敛域:双边序列的收敛域为:特殊情况有:左边序列的收敛域为:因果序列的收敛域为:右边序列的收敛域为:特殊情况有:有限长序列的收敛域为 0 0 , , 0 0 , , 0 , 0 0 , 0 , 0 22 11 212 1∞==<<≤≤<≤<<≥≥∞≤<≥∞<<≤∞<≤≥∞≤<≤≤∞<<+ -++--z z R z R n n R z n n R z n n z R n n z R n z n z n n n z x x x x x x

解:对X (Z )的分子和分母进行因式分解得 )43 1 )(21 1)(211(2111111----+-+- =Z jZ jZ Z X (Z )的零点为:1/2,极点为:j/2,-j/2,-3/4 ∴ X (Z )的收敛域为: (1) 1/2 < | Z | < 3/4,为双边序列,见图一 (2) | Z | < 1/2,为左边序列,见图二 (3) | Z | > 3/4,为右边序列,见图三 图一 图二 图三 )431)(211)(411()211)(211()(11211-----++++- =Z Z Z Z Z Z X

? Z 反变换 【习题】 2. 有一右边序列 )(n x ,其 z 变换为)1)(211(1 )(11----=z z z X (a) 将上式作部分分式展开(用 1-z 表示),由展开式求 )(n x 。 (b) 将上式表示成 z 的多项式之比,再作部分分式展开,由展开式求 )(n x ,并说明所得到的序列 与(a)所得的是一样的。 【注意】不管哪种表示法最后求出 x (n ) 应该是相同的。 解:(a) 因为11122 111)(---+--=z z z X 且x(n)是右边序列 所以 )()212()(n u n x n ?? ? ??-= (b) 122 1211 )1)(2 1(21231 )1)(2 1()(2 -+--+=---+=--=z z z z z z z z z X )()212( )1(2)1(21)()( n u n u n u n n x n n ??? ??-=-+-?? ? ??-=δ则

相关文档
最新文档