数字信号处理实验.docx

上传人:b****4 文档编号:5657450 上传时间:2023-05-08 格式:DOCX 页数:33 大小:221.86KB
下载 相关 举报
数字信号处理实验.docx_第1页
第1页 / 共33页
数字信号处理实验.docx_第2页
第2页 / 共33页
数字信号处理实验.docx_第3页
第3页 / 共33页
数字信号处理实验.docx_第4页
第4页 / 共33页
数字信号处理实验.docx_第5页
第5页 / 共33页
数字信号处理实验.docx_第6页
第6页 / 共33页
数字信号处理实验.docx_第7页
第7页 / 共33页
数字信号处理实验.docx_第8页
第8页 / 共33页
数字信号处理实验.docx_第9页
第9页 / 共33页
数字信号处理实验.docx_第10页
第10页 / 共33页
数字信号处理实验.docx_第11页
第11页 / 共33页
数字信号处理实验.docx_第12页
第12页 / 共33页
数字信号处理实验.docx_第13页
第13页 / 共33页
数字信号处理实验.docx_第14页
第14页 / 共33页
数字信号处理实验.docx_第15页
第15页 / 共33页
数字信号处理实验.docx_第16页
第16页 / 共33页
数字信号处理实验.docx_第17页
第17页 / 共33页
数字信号处理实验.docx_第18页
第18页 / 共33页
数字信号处理实验.docx_第19页
第19页 / 共33页
数字信号处理实验.docx_第20页
第20页 / 共33页
亲,该文档总共33页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

数字信号处理实验.docx

《数字信号处理实验.docx》由会员分享,可在线阅读,更多相关《数字信号处理实验.docx(33页珍藏版)》请在冰点文库上搜索。

数字信号处理实验.docx

数字信号处理实验

JIANGSUUNIVERSITYOFTECHNOLOGY

数字信号处理实验报告

 

学院:

电气信息工程学院

专业:

测控技术与仪器

班级:

10测控2W

姓名:

刘斌

学号:

10314211

指导教师:

张维玺

设计时间:

2014年1月

 

实验一离散时间信号的产生

一、实验目的

1.通过本实验,会利用MATLAB产生一些常见的离散时间信号;

2.通过本实验,会实现信号的卷积运算;

3.通过本实验,会通过MATLAB中的绘图工具对产生的信号进行观察,加深对

常用离散信号和信号卷积和运算的理解。

二、实验原理

离散时间信号是指在离散时刻才有定义的信号,简称离散信号,或者序列。

离散序列通常用x(n)来表示,自变量必须是整数。

常见的离散信号如下:

(1)单位冲激序列δ(n)

如果δ(n)在时间轴上延迟了k个单位,得到δ(n-k),即长度为N的单位冲激序列δ(n)可以通过下面的MATLAB命令获得。

n=-(N-1):

N-1

x=[zeros(1,N-1)1zeros(1,N-1)];

stem(n,x)

延迟K个采样点的长度为N的单位冲激序列δ(n-k)(k

n=0:

N-1

y=[zeros(1,M)1zeros(1,N-M-1)];

stem(n,y)

(2)单位阶跃序列u(n)

如果u(n)在时间轴上延迟了k个单位,得到u(n-k),即长度为N的单位阶跃序列u(n)可以通过下面的MATLAB命令获得。

n=-(N-1):

N-1

x=[zeros(1,N-1)ones(1,N)];

stem(n,x)

延迟的单位阶跃序列可以使用类似于单位冲激序列的方法获得。

(3)矩形序列

矩形序列有一个重要的参数,就是序列的宽度N。

矩形序列与u(n)之间的关系为矩形序列等=u(n)—u(n-N)。

因此,用MATLAB表示矩形序列可利用上面的单位阶跃序列组合而成。

(4)正弦序列x(n)

这里,正弦序列的参数都是实数。

与连续的正弦信号不同,正弦序列的自变量n必须为整数。

可以证明,只有当2π/w为有理数时,正弦序列具有周期性。

长度为N的正弦序列x(n)可以通过下面的MATLAB命令获得。

n=0:

N-1

x=A*cos(2*pi*f*n/Fs+phase)

(5)单边实指数序列x(n)

长度为N的实指数序列x(n)可以通过下面的MATLAB命令实现。

n=0:

N-1

x=a.^n

stem(n,x)

单边指数序列n的取值范围为n>=0。

当|a|>1时,单边指数序列发散;当|a|<1时,单边指数序列收敛。

当a>0时,该序列均取正值;当a<0时,序列在正负摆动。

(6)负指数序列x(n)

当a=0时,得到虚指数序列x(n)。

与连续负指数信号一样,我们将负指数序列实部和虚部的波形分开讨论,得到如下结论:

1)当a>0时,负指数序列x(n)的实部和虚部分别是按指数规律增长的正弦振荡序列;

2)当a<0时,负指数序列x(n)的实部和虚部分别是按指数规律衰减的正弦振荡序列;

3)当a=0时,负指数序列x(n)即为虚指数序列,其实部和虚部分别是等幅的正弦振荡序列;

长度为N的实指数序列x(n)可以通过下面的MATLAB命令实现。

n=0:

N-1

x=exp((a.+j*w)*n)

stem(n,real(x))

stem(n,imag(x))

三、实验内容与结果分析

1.1.1编制程序产生单位冲激序列δ(n)。

(一)程序

n=-5:

5;

x=[zeros(1,5)1zeros(1,5)];

stem(n,x)

xlabel('n');ylabel('x(n)');title('单位冲激序列');

(二)波形图

图1-1

(三)结果分析

从图1-1中可以看出,当且仅当n=0时,输出为1;其余全为0。

符合单位冲激序列δ(n)的要求,所以该程序设计正确。

 

1.1.2编制程序产生单位冲激序列δ(n-11)。

(一)程序

n=0:

20;

x=[zeros(1,11)1zeros(1,9)];

stem(n,x)

xlabel('n');ylabel('x(n)');title('延迟的单位冲激序列');

(二)波形图

图1-2

(三)结果分析

从图1-2中可以看出,当且仅当n=11时,输出为1;其余全为0。

符合单位冲激序列δ(n-11)的要求,所以该程序设计正确。

 

1.2.1编制程序产生单位阶跃序列u(n)。

(一)程序

n=-5:

5;

x=[zeros(1,5)1ones(1,5)];

stem(n,x)

xlabel('n');ylabel('x(n)');title('单位阶跃序列');

(二)波形图

图1-3

(三)结果分析

从图1-3中可以看出,当n>=0时,输出为1;当n<0时,输出为0。

符合单位阶跃序列u(n)的要求,所以该程序设计正确。

 

1.2.2编制程序产生单位阶跃序列u(n-11)。

(一)程序

n=0:

20;

x=[zeros(1,11)1ones(1,9)];

stem(n,x)

xlabel('n');ylabel('x(n)');title('延迟单位阶跃序列');

(二)波形图

图1-4

(三)结果分析

从图1-4中可以看出,当n>=11时,输出为1;当n<11时,输出为0。

符合单位阶跃序列u(n-11)的要求,所以该程序设计正确。

 

1.2.3编制程序产生单位阶跃序列u(n)-u(n-11)。

(一)程序

n=-20:

20;

x1=[zeros(1,20)1ones(1,20)];

x2=[zeros(1,31)1ones(1,9)];

x=x1-x2;

stem(n,x)

xlabel('n');ylabel('x(n)');title('矩形序列');

(二)波形图

图1-5

(三)结果分析

从图1-5中可以看出,当n>=0且n<=11时,输出为1;当n<0或者n>19时,输出为0。

符合单位阶跃序列u(n)-u(n-11)的要求,所以该程序设计正确。

 

1.3.1编制程序产生正弦序列x(n)=cos(2πn)。

(一)程序

A=1;

w=2*pi;

f=0;

n=0:

0.1:

4;

x=A*cos(w*n+f);

stem(n,x);

title('余弦信号');

gridon;

(二)波形图

图1-6

(三)结果分析

从图1-6中可以看出,该信号是周期为1的余弦信号,符合题目所要设计的

x(n)=cos(2πn)的要求,所以该程序设计正确。

 

1.3.2编制程序产生正弦序列x(n)=cos(2πn/11)。

(一)程序

A=1;

w=(2/11)*pi;

f=0;

n=0:

0.5:

20;

x=A*cos(w*n+f);

stem(n,x);

gridon;

(二)波形图

图1-7

(三)结果分析

从图1-7中可以看出,该信号是周期为19的余弦信号,符合题目所要设计的x(n)=cos(2πn/19)的要求,所以该程序设计正确。

 

1.3.3编制程序产生正弦序列x(n)=sin(2n)。

(一)程序

A=1;

w=2;

f=0;

n=0:

0.1:

4;

x=A*sin(w*n+f);

stem(n,x);

title('正弦信号');

gridon;

(二)波形图

图1-8

(三)结果分析

从图1-8中可以看出,该信号是周期为π的正弦信号,符合题目所要设计的x(n)=sin(2n)的要求,所以该程序设计正确。

 

1.4编制程序产生负正弦序列x(n)=e^(2+j11)。

(一)程序

n=0:

20;

x=exp((2.+j*11)*n);

stem(n,real(x))

xlabel('n');ylabel('x(n)');title('复指数序列(实部)');

n=0:

20;

x=exp((2.+j*11)*n);

stem(n,imag(x))

xlabel('n');ylabel('x(n)');title('复指数序列(虚部)');

 

(二)波形图

图1-9

(三)结果分析

从图1-9可以看出,该序列属于负指数序列,负指数序列x(n)的实部和虚部分别是按指数规律衰减的正弦振荡序列,符合题目所要设计的x(n)=e^(2+j11)的要求,所以该程序设计正确。

 

1.5.1编制程序产生指数序列x(n)=a^11。

(一)程序

n=0:

10;

x=11.^n;

stem(n,x)

xlabel('n');ylabel('x(n)');title('指数序列(a>1)');

(二)波形图

图1-10

1.5.2编制程序产生指数序列x(n)=a^(1/11)。

(一)程序

n=0:

10;

x=(1/11).^n;

stem(n,x)

xlabel('n');ylabel('x(n)');title('指数序列(0

(二)波形图

图1-11

 

 

实验二离散时间LTI系统的时域分析

一、实验目的

1、学会运用MATLAB求解离散时间系统的零状态响应;

2、学会运用MATLAB求解离散时间系统的单位冲激响应;

3、学会运用MATLAB求解离散时间系统的卷积和。

二、实验原理

离散时间LTI系统可以用线性常系数差分方程来描述,即

式中

(i=0,1,…,N)和

(j=0,1,…,M)为常实数。

MATLAB中函数filter可对上式的差分方程在指定时间范围内的输入序列所产生的响应进行求解。

函数filter的语句格式为

Y=filter(b,a,x)

其中,x为输入的离散序列;y为输出的离散序列;y的长度与x的长度一样;b与a分别为差分方程的右端与左端的系数向量。

系统的单位冲激响应定义为系统在δ(n)激励下系统的零状态响应,用h(n)表示。

MATLAB求解单位冲激响应可利用函数filter,并将激励设为δ(n)函数。

系统的单位阶跃响应定义为系统在u(n)激励下系统的零状态响应,用g(n)表示。

MATLAB求解单位冲激响应可利用函数filter,并将激励设为u(n)函数。

由于系统的零状态响应是激励与系统的单位冲激响应的卷积,因此卷积运算在离散时间信号领域被广泛应用。

离散时间信号的卷积定义为

y(n)=x(n)*h(n)=

可见,离散时间信号的卷积运算是求和运算,因而常称为卷积和。

MATLAB求离散时间信号卷积和的命令为conv,其语句格式为y=conv(x,h)

其中,x与h表示离散时间信号值的向量;y为卷积结果。

用MATLAB进行卷积和运算时,无法实现无限的累加,只能计算时限信号的卷积。

对于给定函数的卷积和,应计算卷积结果的起始点及其长度。

两个时限序列的卷积和长度一般等于两个序列长度的和减1.

三、实验内容

1、已知x(n)=u(n-“学号后两位”)-u(n-(“学号后两位”+4))、h(n)=R5(n).利用y=conv(x,h)计算卷积。

程序如下:

n1=0:

30;

x1=[zeros(1,11)1ones(1,19)];

x2=[zeros(1,15)1ones(1,15)];

x=x1-x2;

n2=-10:

10;

h1=[zeros(1,10)1ones(1,10)];

h2=[zeros(1,15)1ones(1,5)];

h=h1-h2;

y=conv(x,h);

n=-10:

40;

stem(n,y)

xlabel('n');ylabel('y');title('系统的卷积');

图形如下:

2、编制程序求解下列两个系统的单冲激响应和单位阶跃响应,并绘出其图形。

1)、y[n]+0.75y[n-1]+0.125y[n-2]=x[n]-x[n-1];

程序如下:

a=[1,0.75,0.125];

b=[1,-1];

n=-10:

10;

x=[zeros(1,10)1zeros(1,10)];

h=filter(b,a,x);

stem(n,h)

xlabel('n');ylabel('h(n)');title('系统的单位冲激响应');

a=[1,0.75,0.125];

b=[1,-1];

n=-10:

10;

x=[zeros(1,10)1ones(1,10)];

g=filter(b,a,x);

stem(n,g)

xlabel('n');ylabel('g(n)');title('系统的单位阶跃响应');

运行后的图形如下:

2)、y[n]=0.25{x[n-1]+x[n-2]+x[n-3]+x[n-4]}

程序如下:

a=[1];

b=[0,0.25,0.25,0.25,0.25];

n=-10:

10;

x=[zeros(1,10)1zeros(1,10)];

h=filter(b,a,x);

stem(n,h)

xlabel('n');ylabel('h(n)');title('系统的单位冲激响应');

a=[1];

b=[0,0.25,0.25,0.25,0.25];

n=-10:

10;

>>n=-10:

10;

x=[zeros(1,10)1ones(1,10)];

g=filter(b,a,x);

stem(n,g)

xlabel('n');ylabel('g(n)');title('系统的单位阶跃响应');

图形如下:

3、已知某系统的单位冲激响应为h(n)=0.5[u(n)-u(n-4)],试分别利用MATLAB卷积和两种方法求当激励信号为x(n)=u(n)-u(n-4)时,系统的零状态响应。

程序如下:

n=-5:

5;

x1=[zeros(1,5)1ones(1,5)];

x2=[zeros(1,9)1ones(1,1)];

x=x1-x2;

h=(0.5.^n).*x;

y=conv(x,h);

n=-10:

10;

stem(n,y)

xlabel('n');ylabel('y)');title('系统的零状态响应');

图形如下:

实验四离散时间LTI系统的Z域分析

一、实验目的

本实验通过使用MATLAB函数对离散时间系统的一些特性进行仿真分析,以加深对离散时间系统的零极点、稳定性,频率响应等概念的理解。

学会运用MATLAB分析离散时间系统的系统函数的零极点;学会运用MATLAB分析系统函数的零极点分布与其时域特性的关系;学会运用MATLAB进行离散时间系统的频率特性分析。

二、实验原理

离散时间系统的系统函数定义为系统零状态响应的Z变化与激励的Z变化之比。

在MATLAB中系统函数的零极点可通过函数roots得到,也可借助函数tf2zp得到,tf2zp的语句格式为

[Z,P,K]=tf2zp(B,A)

其中,B与A分别表示H(z)的分子与分母多项式的系数向量。

它的作用是将H(z)的有理分式表示式转换为零极点增益形式。

若要获得系统函数H(z)的零极点分布图,可直接应用zplane函数,其语句格式为

Zplane(B,A)

其中,B与A分别表示H(z)的分子和分母多项式的系数向量。

它的作用是在z平面上画出单位圆、零点与极点。

离散系统中z变化建立了时域函数h(n)与z域函数H(z)之间的对应关系。

因此,z变化的函数H(z)从形式可以反映h(n)的部分内在性质。

可根据系统的传递函数H(z)求单位冲激响应h(n)的函数impz、filter等。

利用系统的频率响应,可以分析系统对各种频率成分的响应特性,并推出系统的特性(高通、低通、带通、带阻等)。

MATLAB提供了求离散时间系统频响特性的函数freqz,调用freqz的格式主要有两种。

一种形式为

[H,w]=reqz(B,A,N)

其中,B与A分别表示H(z)分子和分母多项式的系数向量;N为正整数,默认值为512;返回值w包含[0,π]范围内的N个频率等分点;返回值H则是离散时间系统频率响应在0~π范围内N个频率处的值。

另一种形式为

[H,w]=freqz(B,A,N,‘whole’)

与第一种方式不同之处在于角频率的范围由[0,π]扩展到[0,2π]。

三、实验内容与结果分析

已知LTI离散时间系统,要求由键盘实现系统参数输入,并绘出幅频和相频响应曲线和零极点分布图,进而分析系统的滤波特性和稳定性。

(一)程序

a=[0.05280.7970.12950.12950.7970.0528];

b=[1-1.81072.4947-1.88010.9537-0.2336];

[Hw]=freqz(a,b,512);

subplot(2,2,1),plot(w,abs(H)),title('幅频响应曲线');

subplot(2,2,2),plot(w,angle(H)),title('相频响应曲线');

subplot(2,2,3),zplane(a,b);title('零极点分布');

(二)波形图

图4-1幅频、相频响应曲线、零极点分布图

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

一、实验目的

数字滤波器包括IIR(无限冲激响应)和FIR(有限冲激响应)型,在设计时通常采用不同的方法。

本实验通过使用MATLAB函数对数字滤波器进行设计和实现,要求掌握IIR数字巴特沃斯滤波器、数字切比雪夫滤波器的设计原理、设计方法和设计步骤;能根据给定的滤波器指标进行滤波器设计;同时也加深对数字滤波器的常用指标和设计过程的理解。

二、实验原理

在IIR滤波器的设计中,常用的方法是:

先根据设计要求寻找一个合适的模拟原型滤波器,然后根据一定的准则将此模拟原型滤波器转换为数字滤波器。

IIR滤波器的阶数就等于所选的模拟原型滤波器的阶数,所以其阶数确定主要是在模拟原型滤波器中进行的。

IIR数字滤波器的设计方法如下:

(1)冲激响应不变法。

(2)双线性变化法。

一般来说,在要求时域冲激响应能模仿模拟滤波器的场合,一般使用冲激响应不变法。

冲激响应不变法一个重要特点是频率坐标的变化是线性的,因此如果模拟滤波器的频率响应带限于折叠频率的话,则通过变换后滤波器的频率响应可不失真地反映原响应与频率的关系。

与冲激响应不变法比较,双线性变化的主要优点是靠频率的非线性关系得到s平面与z平面的单值一一对应关系,整个值对应于单位圆一周。

所以从模拟传递函数可直接通过代数置换得到数字滤波器的传递函数。

MATLAB提供了一组标准的数字滤波器设计函数,大大简化了滤波器的设计工程。

(1)butter。

(2)cheby1、cheby2。

三、实验内容与结果分析

6.1基于chebyshevI型模拟滤波器原型使用冲激不变转换方法设计数字滤波器,要求参数为通带截止频率0.2π,;通带最大衰减1dB;阻带截止频率0.4π;阻带最小衰减35dB。

(一)程序

wp=0.2*pi;

ws=0.4*pi;

Rp=1;

Rs=35;

[N,Wn]=cheb1ord(wp,ws,Rp,Rs,'s');%估计滤波器最小阶数

[z,p,k]=cheb1ap(N,Rp);%模拟滤波器函数引用

[A,B,C,D]=zp2ss(z,p,k);

[AT,BT,CT,DT]=lp2lp(A,B,C,D,Wn);%频率转换

[b,a]=ss2tf(AT,BT,CT,DT);

[bz,az]=impinvar(b,a);%调用脉冲响应不变法

[H,w]=freqz(bz,az);

plot(w,abs(H));title('chebyshevI');

xlabel('频率')

ylabel('幅值')

(二)波形图

图6-1幅度曲线

6.2基于Butterworth型模拟滤波器原型使用双线性变化方法设计数字滤波器,要求参数为通带截止频率0.4π,;通带最大衰减1dB;阻带截止频率=0.25π;阻带最小衰减40dB。

(一)程序

wp=0.4*pi;

ws=0.25*pi;

Rp=1;

Rs=40;

Fs=10000;

Nn=128;

[N,Wn]=buttord(wp,ws,Rp,Rs,'s');%估计滤波器最小阶数

[z,p,k]=buttap(N);%模拟滤波器函数引用

[Bap,Aap]=zp2tf(z,p,k);

[b,a]=lp2lp(Bap,Aap,Wn);%频率转换

[bz,az]=bilinear(b,a,Fs);%调用双线性变换法

freqz(bz,az,Nn,Fs);title('Butterworth型');

(二)波形图

图6-2幅度、相位频响曲线

(三)结果分析

从图6-2中可以看出,用双线性变化方法设计的该数字滤波器,通带截止频率0.4π,;通带最大衰减1dB;阻带截止频率=0.25π;阻带最小衰减40dB。

与题目要求的基本一致,故该程序设计正确。

 

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

一、实验目的

掌握用窗函数法设计FIR数字滤波器的原理及其设计步骤;熟悉线性相位数字滤波器的特性。

学习编写数字滤波器的设计程序的方法,并能进行正确程;根据给定的滤波器指标,给出设计步骤。

二、实验原理

如果系统的冲激响应h(n)为已知,则系统的输入输出关系为

y(n)=x(n)*h(n)

对于低通滤波器,只要设计出低通滤波器的冲激响应函数,就可以由式得到系统的输出了。

但是将h(n)作为滤波器的脉冲响应有两个问题:

一是它是无限长的;二是它是非因果的。

对此,采取两项措施:

一是将h(n)截短;二是将其右移。

设计时,要根据阻带的最小衰减和过渡带宽度来选择恰当的窗函数类型和窗口长度N。

常用的窗函数有矩形窗、海明窗和布莱克曼窗等。

窗函数设计FIR滤波器步骤如下:

(1)给定理想频率响应的幅频特性和相频特性;

(2)求理想单位脉冲响应,在实际计算中,可对理想频率响应采样。

(3)根据过渡带宽度和阻带最小衰减,确定窗函数类型和窗口长度N;

(4)求FIR滤波器单位脉冲响应;

(5)分析幅频特性,若不满足要求,可适当改变窗函数形式或长度N,重复上述设计过程,以得到满意的结果。

三、实验内容及=结果分析

7.1分别用海明窗和布莱克曼窗设计一个48阶的FIR带通滤波器,通带为[0.450.55]

(一)程序

n=48;

wn=[0.45,0.55];

b=fir1(n,wn,hamming(n+1));

%freqz(b);

[h1,w1]=freqz(b,1);

plot(w1/pi,20*log10(abs(h1)));

gridon;

title('海明窗');

b=fir1(n,wn,blackman(n+1));

[h1,w1]=freqz(b,1);

figure;

plot(w1/pi,20*log10(abs(h1)));

gridon;

title('布莱克曼');

(二)波形图

图7-1海明窗

图7-2布莱克曼窗

 

7.2用矩形窗设计一个线性相位高通滤波器。

(一

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2