信号处理实验.docx

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

信号处理实验.docx

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

信号处理实验.docx

信号处理实验

数字信号处理实验

实验一:

基本信号

2015-9-20

班级:

姓名及学号:

信号处理实验一实验报告

实验内容:

熟悉MATLABE环境,产生绘出各种基本信号。

本节专注于用Matlab产生一些基本离散时间信号的问题。

主要使用matlab内部向量程序来产生信号。

用matlab的steam指令绘出离散事件信号。

下面的matlab代码产生31点离散时间正弦信号。

nn=0:

30;

sinus=sin(nn/2+1);

依据matlab的编址约定,标号n=0必须对应nn

(1);同样的,sinus

(1)是正弦信号的第一个数值。

Stem指令产生离时间信号图形。

使用stem指令绘出正弦波。

Stem(nn,sinus);

必须给定参量的第一个参数以得到正确的n轴。

为了比较,试用stem(sinus)观察默认的坐标。

具体实验内容

1.冲激信号

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

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

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

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

L=31;

nn=0:

(L-1);

imp=zeros(L,1);

imp

(1)=1;

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

(1)。

产生并绘出下面的序列。

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

使用stem指令使每个序列显示成离散时间信号。

x[n]=0.9δ[n-5]1<=n<=20

x[n]=0.8δ[n]-15<=n<=15

x[n]=1.5δ[n-333]300<=n<=350

x[n]=4.5δ[n+7]-10<=n<=0

2.正弦信号

产生并绘出实验讲义32页第2至5行所示序列。

使用MATLAB的向量功能求解,将向量参数赋予余弦函数,在利用一个函数调用。

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

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

3.指数信号

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

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

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

然后使用函数在区间n=0,1,2,3…,20上绘出指数信号

functiony=genexp(b,n0,L)

if(L<=0)

error('GENEXP:

lengthnotpoxitive')

end

nn=n0+[1:

L]'-1;

y=b.^nn;

end

b.使用(a)中的函数产生一个指数信号然后对其求和;将结果与上式比较。

c.证明一有限长指数信号满足实验讲义33页式3.4所示移位关系。

比较向量y(2:

L)和a*y(1:

L-1)。

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

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

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

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

函数filter的用法如下所示yout=filter(b,a,xin)

4.复值信号

1、实验原理及内容

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

>>nn=0:

25;

>>xx=exp(j*nn/3);

>>subplot(211)

>>stem(nn,real(xx))

>>title('REALPART'),xlabel('INDEX(n)')

>>subplot(212)

>>stem(nn,imag(xx))

>>title('IMAGPART'),xlabel('INDEX(n)'

%将长度为复值信号的实部和虚部在

%双子图上显示出来

5.复指数信号

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

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

a)在matlab中,复指数信号是实指数信号的自然扩展。

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

b)绘出(a)部分中信号虚部与实部的对应点。

结果应该是螺旋线。

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

c)产生并绘下列每一个每一个序列。

将正弦信号转变成复数表达形式;然后使用exp函数产生信号向量。

如果信号纯实的,它应该由提取复信号的实部产生。

在每个绘图中,应该在所在制定的区间上展开并相应标注水平n轴。

 

d)这些复指数信号可由一阶差分方程产生:

滤波器系数是复数。

容易看出序列中连续项之间的比;但是正确的振幅和相位必须由选择激励差分方程的冲激信号的复振幅来设置。

e)在一阶差分方程中,令

表示y[n]的实部虚部

f)写出matlab程序以实现这一对实方程,并使用改程序产生差分方程的冲激响应。

其中r=1/2,θ=0,θ=π/4.对于这两种情形,绘出得到冲激响应的实部,并与差分方程复值递归式得到的输出的实部相比较。

实验程序及结果

冲激信号

1.

L=21%范围为1到20共20个点,

nn=0:

(L-1);%从1开始第5个点加一个幅度

imp=zeros(L,1);%为0.9的脉冲,其余的点为0

imp(6)=1;

stem(nn,imp);%并显示它们

 

2.

L=31;

nn=-15:

(L-16);

imp=zeros(L,1);

imp(16)=0.8;

stem(nn,imp);

 

3.L=51;

nn=300:

350;

imp=zeros(L,1);

imp(34)=1.5;

stem(nn,imp);

 

4.

L=11;

nn=-10:

0;

imp=zeros(L,1);

imp(4)=4.5;

stem(nn,imp);

 

正弦信号

1.

L=26;%显示的长度范围共26个点

nn=0:

25;%从0到25,每个点脉冲的

sinus=sin(pi*nn/17);%幅度为sin(pi*nn/17),

stem(nn,sinus);%并标注水平轴为“n”

%显示这些脉冲

 

2.L=15+25+1

nn=-15:

25;

sinus=sin(pi*nn/17);

stem(nn,sinus);

 

3.

L=10+10+1;;

nn=-10:

10;

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

stem(nn,sinus);

 

4.

L=51;

nn=0:

50;

sinus=cos(pi*nn/sqrt(23));

stem(nn,sinus);

 

指数信号

1.建立m函数文件如下:

functiony=genexp(b,n0,L)

%GENEXPgenerateanexponentialsignal:

b^n

%usage:

Y=genexp(B,N0,L)

%Binputscalargivingratiobetweenterms

%N0staringindex(integer)

%Llengthofgeneratedsignal

%YoutputsignalY(1:

L)

if(L<=0)

error('GENEXP:

lengthnotpositive')

end

nn=n0+[1:

L]'-1;

y=b.^nn;

end

程序如下:

(a)

>>nn=0:

20;

>>y=genexp(0.9,0,21);

>>stem(nn,y);

%考虑的长度范围为n从0到20

%利用产生离散时间指数信号的

%函数genexp,第一个点为nn=0

%第一个点处脉冲幅度为0.9,

%脉冲长度为21个点

(b):

>>y1=((1-0.9^21)/(1-0.9))%将a数值代入3.3式,对指数信号序列求和

y1=

8.9058

>>s=0;%直接对指数信号序列求和,验证式3.3

>>fori=1:

21

s=s+y(i);

end

>>s

s=

8.9058

(c)

>>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

(d)

>>a=[1,-0.9];

>>b=[1];

>>nn=0:

20;

>>imp=zeros(21,1);

>>imp

(1)=1;

>>yout=filter(b,a,xin);

>>stem(nn,yout);

%a代表3.5左侧y式的系数

%对应的向量,b代表x的系

%数,xin为一冲击信号,

%利用filter函数生成指数

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

 

复值信号

a)

nn=0:

25;

xx=exp(j*nn/3);

subplot(211);

stem(nn,real(xx));

title('REALPART'),xlabel('INDEX(n)');

subplot(212);

stem(nn,imag(xx));

title('IMAGPART'),XLABEL('INDEX(n)');

复指数信号

a)nn=0:

20;%定义n轴长度

xx=0.9.^n%产生指数信号

yy=exp(j*(45/180)*pi);%产生复值信号

zz=yy*xx;%产生复指数信号

subplot(211);

stem(nn,real(zz));

title('REALPART'),xlabel('INDEX(n)');

subplot(212);

stem(nn,imag(zz));

title('IMAGPART'),XLABEL('INDEX(n)');%分别绘出实部和虚部;

b)绘出a中的图像,发现是螺旋线

c)

nn=-15:

25;

xx=exp(j*pi*nn/17);

subplot(211);

stem(nn,real(xx));

title('REALPART'),xlabel('INDEX(n)');

 

2.nn=0:

50;

xx=(1.1.^nn)

yy=(exp(j*((pi*nn/11)+(pi/4))));

zz=xx*yy;

subplot(211);

stem(nn,real(zz));

title('REALPART'),xlabel('INDEX(n)');

3.nn=-10:

20;

xx=(0.9.^nn).*exp(j.*(pi.*nn/11));

subplot(211);

stem(nn,real(xx));

title('RAALPART'),xlabel('INDEX(n)');

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

当前位置:首页 > IT计算机 > 电脑基础知识

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

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