信号处理实验一用matlab描述基本信号.docx

上传人:b****3 文档编号:13238678 上传时间:2023-06-12 格式:DOCX 页数:19 大小:200.81KB
下载 相关 举报
信号处理实验一用matlab描述基本信号.docx_第1页
第1页 / 共19页
信号处理实验一用matlab描述基本信号.docx_第2页
第2页 / 共19页
信号处理实验一用matlab描述基本信号.docx_第3页
第3页 / 共19页
信号处理实验一用matlab描述基本信号.docx_第4页
第4页 / 共19页
信号处理实验一用matlab描述基本信号.docx_第5页
第5页 / 共19页
信号处理实验一用matlab描述基本信号.docx_第6页
第6页 / 共19页
信号处理实验一用matlab描述基本信号.docx_第7页
第7页 / 共19页
信号处理实验一用matlab描述基本信号.docx_第8页
第8页 / 共19页
信号处理实验一用matlab描述基本信号.docx_第9页
第9页 / 共19页
信号处理实验一用matlab描述基本信号.docx_第10页
第10页 / 共19页
信号处理实验一用matlab描述基本信号.docx_第11页
第11页 / 共19页
信号处理实验一用matlab描述基本信号.docx_第12页
第12页 / 共19页
信号处理实验一用matlab描述基本信号.docx_第13页
第13页 / 共19页
信号处理实验一用matlab描述基本信号.docx_第14页
第14页 / 共19页
信号处理实验一用matlab描述基本信号.docx_第15页
第15页 / 共19页
信号处理实验一用matlab描述基本信号.docx_第16页
第16页 / 共19页
信号处理实验一用matlab描述基本信号.docx_第17页
第17页 / 共19页
信号处理实验一用matlab描述基本信号.docx_第18页
第18页 / 共19页
信号处理实验一用matlab描述基本信号.docx_第19页
第19页 / 共19页
亲,该文档总共19页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

信号处理实验一用matlab描述基本信号.docx

《信号处理实验一用matlab描述基本信号.docx》由会员分享,可在线阅读,更多相关《信号处理实验一用matlab描述基本信号.docx(19页珍藏版)》请在冰点文库上搜索。

信号处理实验一用matlab描述基本信号.docx

信号处理实验一用matlab描述基本信号

哈尔滨工程大学

实验报告

 

实验名称:

用matlab描述基本信号

班级:

电子信息工程4班

学号:

姓名:

实验时间:

2016年10月10日

成绩:

________________________________

指导教师:

栾晓明

 

实验室名称:

数字信号处理实验室

哈尔滨工程大学实验室与资产管理处制

实验一用matlab描述基本信号

一、冲激信号

1、原理:

最简单的信号是(移位的)单位冲激信号:

δ[n-n0]=

(3.1)

在MATLAB中产生冲激信号,必须先确定所关注信号部分的长度。

如果准备用冲激信号δ[n]来激励因果LTI系统,可能需要观察从n=0到n=L-1总共L个点。

若选择L=31,下面的MATLAB代码将产生一个“冲激信号”。

1.L=31;

2.nn=0:

(L-1);

3.imp=zeros(L,1);

4.imp

(1)=1;

注意,根据MATLAB编址约定,n=0标号必须对应imp

(1)。

例:

产生移位冲激信号程序(函数文件)

function[x,n]=impseq(n0,n1,n2)

%产生x(n)=delta(n-n0);n1<=n0<=n2

%----------------------------------------------

%[x,n]=impseq(n0,n1,n2)

%

if((n0n2)|(n1>n2))

error('参数必须满足n1<=n0<=n2')

end

n=[n1:

n2];

%x=[zeros(1,(n0-n1)),1,zeros(1,(n2-n0))];

x=[(n-n0)==0];

以上函数文件可以产生指定区间内的冲激移位脉冲。

例1—1:

调用这个函数文件生成并绘制:

x(n)=2δ[n+2]-δ[n-4]-5≤n≤5

程序

%x(n)=2*delta(n+2)-delta(n-4),-5<=n<=5

n=[-5:

5];

x=2*impseq(-2,-5,5)-impseq(4,-5,5);

stem(n,x);title('例2.1a的序列图')

ylabel('x(n)');axis([-5,5,-2,3]);text(5.5,-2,'n')

2、实验内容

(1)函数x1[n]=0.9δ[n-5]

n=[1:

20];

%区间1到20的点

x=0.9*impseq(5,1,20);

%调用impseq函数

stem(n,x);

%绘图

title('x1序列图')

ylabel('x(n)')

xlabel('n')

(2)函数x2[n]=0.8δ[n]

n=[-15:

15];

x=0.8*impseq(0,-15,15);

stem(n,x);

title('x2序列图')

ylabel('x(n)')

xlabel('n')

 

 

(3)函数x3[n]=1.5δ[n-333]

n=[330:

350];

x=1.5*impseq(333,330,350);

stem(n,x);

title('x3序列图')

ylabel('x(n)')

xlabel('n')

 

(4)函数x4[n]=4.5δ[n+7]

n=[-10:

0];

x=4.5*impseq(-7,-10,0);

stem(n,x);

title('x4序列图')

ylabel('x(n)')

xlabel('n')

 

3、结果及分析

由实验代码及绘制出图形可以看出,产生移位冲激信号的函数功能正常,可以按要求产生移位冲激信号

二、正弦信号

1、原理:

另一个非常基本的信号是正弦信号。

一般地,完备地描述实正弦信号需要三个参数:

振幅A、频率ω0和相位φ。

x[n]=Acos(ω0n+φ)

产生并绘出下列每一个序列。

使用MATLAB的向量功能求解此问题,将向量参数赋予余弦(或正弦)函数,再利用一个函数调用。

在每种情形下,应只在指定的区间上展开并相应标注水平n轴。

使用stem指令显示每个序列。

 

2、实验内容

(1)x1[n]=sin(πn/17)0≤n≤25

L=26;

%区间长度范围

nn=0:

25;

%区间0到25

x1=sin(pi*nn/17);

%x1[n]与自变量关系

xlabel('n');

stem(nn,x1);

 

(2)x2[n]=sin(πn/17)-15≤n≤25

L=41;

nn=-15:

25;

x2=sin(pi*nn/17);

xlabel('n');

stem(nn,x2);

 

(3)x3[n]=sin(3πn+π/2)-10≤n≤10

 

L=21;

nn=-10:

10;

x3=sin(3*pi*nn+pi/2);

stem(nn,x3);

xlabel('n');

ylabe(‘x3’);

(4)x4[n]=cos(

n)0≤n≤50

L=51;

nn=0:

50;

x4=cos(pi*sqrt(23)*nn);

stem(nn,x4);

xlabel('n');

ylabel('x4');

4、结果及分析

由代码及绘制出图形可知,离散正弦信号不一定是周期信号,例如x[4]就是非周期信号,离散正弦信号是周期的需满足w0/2pi为两个整数之比

三、指数信号

1、原理:

(1)衰减的指数信号是数字信号处理中的基本信号。

因为它是线性常系数差分方程的解。

(2)在许多推导中,指数信号序列须在有限区间上求和。

这个和以实验讲义33页式3.3闭合式表示。

(3)指数序列在信号处理中常常出现的一个原因是,时移并不改变其信号特征。

(4)产生指数信号另外的方法是使用差分方程给出的递归表示式。

当输入是一个冲激信号的时候,信号是实验讲义33页式3.5差分方程的解。

2、实验内容

(1)研究下面的MATLAB函数,看它如何产生离散时间指数信号。

然后使用函数在区间n=0,1,2,…,20上绘出指数信号x[n]=(0.9)n。

指数函数

functiony=genexp(b,n0,L)

%GENEXPgenerateanexponentialsignal:

b^n

%usage:

Y=genexp(B,N0,L)

%Binputscalargivingratiobetweenterms

%N0startingindex(integer)

%Llengthofgeneratedsignal

%YoutputsignalY(1:

L)

if(L<=0)

error('GENEXP:

lengthnotpositive')

end

nn=n0+[1:

L]'-1;%---vectorofindices

y=b.^nn;

%数组乘方

end

函数x[n]=(0.9)n

L=21;

%区间长度

nn=0:

20;

%区间起点与终点

x1=genexp(0.9,0,21);

%调用函数

stem(nn,x1)

xlabel('n')

ylabel('x1')

 

(2)在许多推导中,指数信号序列anu[n]须在有限区间上求和。

这个和以下面闭合式表示:

a≠1

(3.1)

使用

(1)部分中的函数产生一个指数信号然后对其求和;将结果与(3.3)式比较。

a.用公式求和

y1=((1-0.9^21)/(1-0.9))

%将a数值代入3.1式,对指数信号序列求和

y1=

8.9058

b.直接求和

s=0;

%直接对指数信号序列求和,验证式3.1

fori=0:

20

s=s+0.9^i;

end

s

s=

8.9058

结果分析:

由y1及s数值相等可以公式(3.1)对于序列求和计算的正确性

(3)指数序列在信号处理中常常出现的一个原因是,时移并不改变其信号特征。

证明一有限长指数信号满足移位关系:

y[n]=ay[n-1],1≤n≤L-1

(3.2)

比较向量y(2:

L)和a*y(1:

L-1)。

在MATLAB中移位有限长度信号的时候,因为不能自动补零,所以必须留意信号终点。

 

y(2:

10)

%在命令窗口直接显示指数信号序列y(1:

L)

ans=

0.9000

0.8100

0.7290

0.6561

0.5905

0.5314

0.4783

0.4305

0.3874

0.9*y(1:

9)

%在命令窗口显示移位后乘以a的指数信号序列

%证明有限长指数信号满足式3.4的移位关系

ans=

0.9000

0.8100

0.7290

0.6561

0.5905

0.5314

0.4783

0.4305

0.3874

结果分析:

由两组序列值比较可知,时移并不改变信号特征

(4)产生指数信号另外的方法是使用差分方程给出的递归表示式。

当输入x[n]是一个冲激信号的时候,信号y[n]=anu[n]是下面差分方程的解:

y[n]-ay[n-1]=x[n],初始条件y[-1]=0

(3.3)

由于假定差分方程以因果方式递归(即n增大),n=-1的初始条件是必需的。

用MATLAB的filter函数可实现差分方程。

使用filter函数产生与(a)部分中信号相同的信号(即a=0.9)。

函数filter的用法如下所示

yout=filter(b,a,xin)

假设描述离散系统输入与输出关系的线性常系数差分方程为

那么

是差分方程中的系数组成的向量,xin是输入信号向量(filter()函数只向y返回与x中样本个数一样多的样本)。

a=[1,-0.9];

%a代表3.3左侧y式的系数对应的向量

b=[1];

%b代表x的系数

nn=0:

20;

xin=zeros(21,1);

xin

(1)=1;

%xin为一冲击信号,

yout=filter(b,a,xin);

stem(nn,yout);

%利用filter函数生成指数

%信号序列,并且显示出来

3、结果分析:

由这些实验验证了指数序列在有限区间求和的公式,指数序列信号时移特性,以及利用差分方程给出的递归表达式来产生指数信号的方法

四、复值信号

1、原理:

产生和处理实值信号并将其转化成复值信号非常有用,MATLAB中real函数和imag函数分别代表实部和虚部要想同时绘出实部和虚部,在stem指令之前的subplot(211)和subplot(212)指令会把两个绘图放置在同一屏幕上,位置为上下关系。

 

2、实验内容:

nn=0:

25;

xx=exp(1i*nn/3);

%复指数

subplot(211)

stem(nn,real(xx))

title('实部')

xlabel('INDEX(n)')

subplot(212)

stem(nn,imag(xx))

title('虚部')

xlabel('INDEX(n)')

3、结果分析:

该实验内容熟悉了复数用matlab分解为实部以及虚部分别绘制图形的方法

五、复指数信号

1、原理:

实指数信号表示式可以扩展成包含正弦信号和余弦信号的复指数信号形式。

这些信号构成了傅里叶变换的基础。

2、实验内容

(1)在MATLAB中,复信号是实指数信号的自然扩展。

这样参数a可以用来作为一个复数产生这些信号。

再用Euler公式表示复指数信号(以单一形式给出信号):

x[n]=(z0)n=

=rnejθn=rn(cosθn+jsinθn)

(4.1)

此处z0=rejθ=r∠θ。

使用这一关系式产生z0=0.9∠45°时的复指数信号。

绘出区间0≤n≤20上的x[n]的实部和虚部。

注意z0的幅角控制正弦信号的频率。

nn=0:

20;

%自变量区间

xx=0.9.^(nn).*(cos((pi./4).*nn)+1i.*sin((pi./4).*nn));

%有自变量产生xx函数值

subplot(211)

stem(nn,real(xx))

title('实部'),xlabel('INDEX(n)')

subplot(212)

stem(nn,imag(xx))

title('虚部'),xlabel('INDEX(n)')

(2)绘出

(1)部分中信号虚部与实部的对应点。

结果应该是螺旋线。

使用不同的角度θ做实验,θ的数值越小,绘出的螺旋线图越好。

先绘制

(1)中复指数函数实部与虚部对应关系

此时θ为45°

nn=0:

20;

xx=0.9.^(nn).*cos((pi./4).*nn);

yy=0.9.^(nn).*sin((pi./4).*nn);

plot(xx,yy)

将θ改为18°

nn=0:

20;

xx=0.9.^(nn).*cos((pi./10).*nn);

yy=0.9.^(nn).*sin((pi./10).*nn);

plot(xx,yy)

结果分析:

由matlab绘制出的复指数信号实部及虚部的对应关系很容易知道结果为螺线线,比较螺线线在θ为18°和45°时的区别,可以得到θ数值越小,螺线线图越好

 

(范文素材和资料部分来自网络,供参考。

可复制、编制,期待你的好评与关注)

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

当前位置:首页 > 医药卫生 > 基础医学

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

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