实验1 常见离散信号产生和基本运算

合集下载

实验一常见离散信号的MATLAB产生和图形显示

实验一常见离散信号的MATLAB产生和图形显示

实验一 常见离散信号‎的MATLA ‎B 产生和图形‎显示 授课课时:2学时一、实验目的:(1)熟悉MATL ‎A B 应用环境‎,常用窗口的功‎能和使用方法‎。

(2)掌握MATL ‎A B 在时域内‎产生常用离散‎时间信号的方‎法。

(3)掌握离散信号‎的基本运算。

(4)掌握简单的绘‎图命令。

二、实验原理:(一)信号的表示和‎产生① 单位抽样序列‎⎩⎨⎧=01)(n δ 00≠=n n 如果在时间轴‎)(n δ上延迟了k 个‎单位,得到)(k n -δ即:⎩⎨⎧=-01)(k n δ0≠=n k n参考程序:例1-1:)2010(()(<<-=n n n x )δclear all n1=-10;n2=20;n0=0;%在起点为n1‎,终点为n2的‎范围内,于n0处产生‎冲激。

n=n1:n2;%生成离散信号‎的时间序列x=[n==n0];%生成离散信号‎x (n)stem(n,x);%绘制脉冲杆图‎xlabel ‎(' n');ylabel ‎('x(n)');%横坐标和纵坐‎标的标注说明‎。

title('Unit Sample ‎ Sequen ‎c e');%图形上方标注‎图名axis([-10 20 0 1.2]);%确定横坐标和‎纵坐标的取值‎范围② 单位阶跃序列‎⎩⎨⎧=01)(n u 00<≥n n 例1-2:)202((u )(<<-=n n n x )clear alln1=-2;n2=20;n0=0;n=n1:n2;%生成离散信号‎的时间序列x=[n>=n0];%生成离散信号‎x (n)stem(n,x,'filled ‎');xlabel ‎('n');ylabel ‎('x(n)');title('Unit step Sequen ‎c e');axis([-2 20 0 1.2]);③ 正弦序列)sin()(ϕ+=wn A n x例1-3:一正弦信号的‎频率为1HZ ‎,振幅值幅度A ‎为1V ,在窗口显示2‎个周期的信号‎波形,并对该信号的‎一个周期进行‎32点采样获‎得离散信号并‎显示该连续信‎号和离散信号‎的波形。

信号实验1

信号实验1

实验一 离散时间信号的产生1.实验目的信号可以分为连续时间信号和离散时间信号。

要研究信号,首先要产生出各种信号,使用MATLAB 软件可以很方便地产生各种常见的信号,而且他还具有强大的绘图功能,便于用户直观地处理输出结果。

通过本实验,将学习如何使用MATLAB 产生一些常见的时间信号,并通过MATLAB 中的绘图工具对产生的信号进行观察,加深对常用信号的理解。

2.实验原理离散时间信号是指在离散时刻才有定义的信号。

常见的离散时间信号如下:(1)单位冲激序列10()00n n n δ=⎧=⎨≠⎩如果(n)在时间轴上延迟了k 个单位,得到(n-k),即1()0n k n k n kδ=⎧-=⎨≠⎩(2)单位阶跃序列10()00n u n n ≥⎧=⎨<⎩如果u(n)在时间轴上延迟了k 个单位,得到u(n-k),即1()0n k u n k n k≥⎧-=⎨<⎩(3)矩阵序列矩阵序列()N R n 定义为1(01)()0(0,)N n N R n n n N ≤≤-⎧=⎨<≥⎩R(n)=u(n)-u(n-k),因此,用MATLAB 表示矩阵序列可以利用上面的单位阶跃序列组合而成。

(4)正弦序列x(n)=Acos(0ωn+)A, 0ω和都是实数,它们分别称为正弦信号x(n)的振幅,角频率和初始相位。

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

(5)单边实指数序列()()n x n a u n =单边实指数序列n 的取值范围为0n ≥。

当1a时,单边指数序列发散;当1a 时,该序列收敛;当0a 时,该序列均取正值;当0a时,序列在正负摆动。

(6)负指数序列0()()a j n x n e ω+=当0a =时,得到虚指数序列0()()a j n x n e ω+=,式中,0ω是正弦序列的数字域频率。

由欧拉公式知,负指数序列可进一步表示为[]00()00()cos()sin()a j n j n an an x n e e e e n j n ωωωω+===+有以下结论:1)当0a 时,负指数序列x(n)的实部和虚部分别是按指数规律增长的正弦振荡序列;2)当0a 时,负指数序列x(n)的实部和虚部分别是按指数规律衰减的正弦振荡序列;3)当0a =时,负指数序列x(n)即为虚指数序列,其实部和虚部分别是等幅的正弦振荡序列。

常见离散信号产生和实现实验报告

常见离散信号产生和实现实验报告

常见离散信号产生和实现实验报告实验1常见离散信号产生和实现学院信息科学与工程学院专业通信工程1班姓名学号一、实验目的1、加深对常用离散信号的理解;2、熟悉使用MATLAB在时域中产生一些基本的离散时间信号。

二、实验原理MATLAB语言提供了一系列函数用来产生信号,如exp,sin,cos, square,sawtooth,ones,zeros等函数。

1.基本信号序列1)单位抽样序列???=01)(nδ≠=n n在MATLAB中可以利用zeros()函数实现。

x=[1zeros(1, n-1)]程序:clear all;n=-20:20;u=[zeros(1,20)ones(1,21)];stem(n,u)xlabel('Time index n');ylabel('Amplitude'); title('p21');axis([-20200 1.2]);图形:Request1:编写一个)(k n-δ的函数。

???=-01)(k nδ≠=n kn程序:clear all;n=-20:20;k=5;u=[zeros(1,20+k)ones(1,21-k)];stem(n,u)xlabel('Time index n');ylabel('Amplitude'); title('p22');axis([-20200 1.2]);图形:(2)单位阶跃序列???01)(n u00<≥n n在MATLAB中可以利用ones()函数实现。

);,1(N ones x=Request2:编写一个)(k n u-的函数。

程序:clf;n=-20:20;u=[zeros(1,20)1zeros(1,20)];stem(n,u);xlabel('Time index n');ylabel('Amplitude');title('Unit Sample Sequence p10');axis([-20200 1.2]);图形:Request2:编写一个)(k n u-的函数。

实验1_常见离散信号产生和实现

实验1_常见离散信号产生和实现

实验1 常见离散信号产生和实现一、实验目的:1、加深对常用离散信号的理解;2、掌握matlab 中一些基本函数的建立方法。

二、实验原理:1.单位抽样序列⎩⎨⎧=01)(k δ 00≠=k k在MATLAB 中可以利用zeros()函数实现。

;1)1();,1(==x N zeros x 如果)(k δ在时间轴上延迟了n 个单位,得到)(n k -δ即:⎩⎨⎧=-01)(n k δ nk n k ≠= 2.单位阶越序列⎩⎨⎧01)(k u 00<≥k k在MATLAB 中可以利用ones()函数实现。

);,1(N ones x =3.正弦序列)/2sin()(ϕπ+=Fs fk A k x在MATLAB 中)/***2sin(*1:0fai Fs k f pi A x N k +=-=4.复指数序列k j e r k x ϖ⋅=)(在MATLAB 中)**exp(1:0k w j r x N k ⋅=-=5.指数序列k a k x =)(在MATLAB 中k a x N k .^1:0=-= 三、实验内容1、五种基本函数的图形生成(1)、单位抽样序列% 单位抽样序列和延时的单位抽样序列clf;n=0:10;x1=[1 zeros(1,10)];x2=[zeros(1,5) 1 zeros(1,5)];subplot(1,2,1);stem(n,x1);xlabel ('时间序列n');ylabel('振幅');title('单位抽样序列x1');subplot(1,2,2);stem(n,x2); xlabel('时间序列n');ylabel('振幅');title('延时了5的单位抽样序列');(2)、单位阶越序列clf;n=0:10;u=[ones(1,11)];stem(n,u);xlabel ('时间序列n');ylabel('振幅');title('单位阶越序列');所得的图形如下所示:(3)正弦函数clf;n=1:30;x=2*sin(pi*n/6+pi/3);stem(n,x); xlabel ('时间序列n');ylabel('振幅');title('正弦函数序列x=2*sin(pi*n/6+pi/3)');(4)、复指数序列clf;n=1:30;x=2*exp(j*3*n);stem(n,x); xlabel ('时间序列n');ylabel('振幅');title('复指数序列x=2*exp(j*3*n)');图形如下:(5)实指数序列clf;n=1:30;x=1.2.^n;stem(n,x); xlabel ('时间序列n');ylabel('振幅');title('指数序列x=1.2.^n');2、使用帮助功能学习square(方波), sawtooth(锯齿波)和sinc 函数,并绘图。

实验一 典型离散信号的生成及运算

实验一 典型离散信号的生成及运算

实验一 典型离散信号的生成及运算一、实验目的:1)熟悉MATLAB 环境。

2)理解离散时间信号。

3)掌握几个典型离散信号类型及其运算。

4)学会利用MATLAB 表示和实现典型离散信号类型及其运算。

二、实验原理:广义讲,信号可以分为模拟和离散信号【1】:一个模拟信号:)(t x a ,t 可以代表任何物理量,现假定t 代表时间,连续的。

一个离散信号:)(n x ,n 是整数值,现假定n 代表时间上离散的时刻。

因此()n x 称为离散时间信号,是一个数值的序列。

在MATLAB 中,只需要两一个行向量来表示()n x 这个有限长序列: 例如:图1 命令窗口(Command Window)图2 工作空间(WorkSpace )注意,要准确的表示一个离散信号,还需要另外一个向量表示n (样本位置信息),但是一般来说,当序列从位置n = 1 开始时(MATLAB 中数组下标从1开始而不是从0开始),只用x 向量表示该信号。

下面说明几种典型离散信号类型和运算,及其MATLAB 的表示:1、单位抽样序列{} ,0,0,1,0,0,0,00,1)(=⎩⎨⎧≠==n n n δ又称为单位脉冲序列/单位样本序列,其特点是在n=0时取值为1,其它取值为0。

MATLAB 中,使用函数zeros (1,N )可以产生一个N 个零的行向量。

然后对其中 n = 0 这个位置进行单独赋值为1即可。

如:图3 没有明确样本的位置信息及其stem 图图4 明确样本的位置信息及其stem 图这里还有另外一种便利的表示方法——利用逻辑关系式表示方法:图5 使用逻辑关系式表示及其stem 图2、单位阶跃序列{} ,1,1,1,0,0,0,00,1)(=⎩⎨⎧<≥=n n n uMATLAB 中,使用函数ones (1,N )可以产生一个N 个1的行向量。

下面通过N 个0序列合并上N+1个1序列产生单位阶跃序列。

注意1和0的样本位置。

常见离散信号产生和实现

常见离散信号产生和实现

一、实验过程1、预习实验内容、实验要求;2、分析各序列表达式及特征;3、使用MATLAB软件编写程序,得出各序列的图形;4、回答实验指导书上的问题。

二、实验程序及结果1、单位抽样序列function chouyang()n1=input('起始值n1:')n2=input('终点值n2:')dn=1;n=n1:dn:n2;N=length(n);x=zeros(1,N);x(1,(N+1)/2)=1stem(n,x,'filled');axis([n1,n2,0,2])xlabel('n')ylabel('y(n)')title('单位抽样序列')起始值n1:-5 终点值n2:5 2、单位阶越序列function jieyu()n1=input('起始值n1:')n2=input('终点值n2:')nz=input('跳跃点nz:')dn=1; %步长na=n1:dn:nz-1; %第一阶段变量的取值nb=nz:dn:n2; %第二阶段变量的取值N1=length(na); %na的长度N2=length(nb); %nb的长度x1=zeros(1,N1); %第一阶段变量取值x2=ones(1,N2); %第二阶段变量取值stem(na,x1,'filled');hold on %使下面图形在同一坐标显示stem(nb,x2,'filled');hold offaxis([n1,n2,0,2])xlabel('n')ylabel('y(n)')title('单位阶跃序列')起始值n1:-5 终点值n2:5 跳跃点nz:03、正弦序列function zhengxian()n1=input('起始值n1:')n2=input('终点值n2:')A=input('幅度A:')f=input('频率f/Fs:f=:')Fs=input('频率f/Fs:Fs=:')fai=input('初相位角fai:')dn=1; %步长n=n1:dn:n2; %n,取值N=length(n); %n的长度x=A*sin(2*pi*f*n/Fs+fai); stem(n,x,'filled');axis([n1,n2,-3,3])xlabel('n')ylabel('y(n)')title('正弦序列') 起始值n1:-20 终点值n2:20 幅度A:1.5 频率f/Fs:f=:1 频率f/Fs:Fs=:24 初相位角fai:1/64、复指数序列function fuzhishu()n1=input('起始值n1:')n2=input('终点值n2:')r=input('半径r:')w=input('角频率:')dn=1; %步长n=n1:dn:n2; %n,取值N=length(n); %n的长度x=r*exp(j*w*n);stem(n,x,'filled');axis([n1,n2,-3,3])xlabel('n')ylabel('y(n)')title('复指数序列') 起始值n1:-6*pi 终点值n2:6*pi 半径r:2 角频率:pi/125、指数序列function zhishun()n1=input('起始值n1:') n2=input('终点值n2:') a=input('幅度值a:') dn=1;n=n1:dn:n2;N=length(n); x=a.^n;stem(n,x,'filled'); axis([n1,n2,0,500]) xlabel('n')ylabel('y(n)')title('指数序列')起始值n1:0 终点值n2:15幅度值a:1.5点数fs:1000 起始值t1:-5 终点值t2:56、square(方波) function fangbo()fs=input('点数fs:') t1=input('起始值t1:') t2=input('终点值t2:') t =t1:1/fs:t2; x = square(2*pi*t);plot(t,x), axis([-5 5 -1.5 1.5]) xlabel('t')ylabel('y(t)')title('方波')7、sawtooth(锯齿波)function sanjiaobo()fs=input('点数fs:')t1=input('起始值t1:')t2=input('终点值t2:')t =t1:1/fs:t2;x = sawtooth(2*pi*50*t); %频率为50HZplot(t,x)axis([t1 t2 -1 1]) xlabel('t') ylabel('y(t)') title('三角波')点数fs:1000 起始值t1:0终点值t2:0.2起始值t1:-5终点值t2:58、sinc函数function sinc_1()t1=input('起始值t1:') t2=input('终点值t2:') x = linspace(t1,t2);y = sinc(x);plot(x,y)xlabel('t')ylabel('y(t)')title('正弦波')9、问题A:复指数序列的性质function f2_1()n1=input('起始值n1:')n2=input('终点值n2:')n=n1:n2;z1=-(1/12)+j*pi/6;z2=(1/12)+j*pi/6;z3=1/12;z4=2+j*pi/6;x1=exp(z1*n);x2=exp(z2*n);x3=exp(z3*n);x4=exp(z4*n);subplot(5,2,1);stem(n,real(x1),'filled');xlabel('时间序列n');ylabel('实部'); title('复指数z1=-(1/12)+j*pi/6时序列实部')subplot(5,2,2);stem(n,imag(x1),'filled');xlabel('时间序列n');ylabel('虚部'); title('复指数z1=-(1/12)+j*pi/6时序列虚部')subplot(5,2,3);stem(n,real(x2),'filled');xlabel('时间序列n');ylabel('实部'); title('复指数z2=(1/12)+j*pi/6时序列实部')subplot(5,2,4);stem(n,imag(x2),'filled');xlabel('时间序列n');ylabel('虚部'); title('复指数z2=(1/12)+j*pi/6时序列虚部')subplot(5,2,5);stem(n,real(x3),'filled');xlabel('时间序列n');ylabel('实部'); title('复指数z3=1/12时序列实部')subplot(5,2,6);stem(n,imag(x3),'filled');xlabel('时间序列n');ylabel('虚部'); title('复指数z3=1/12时序列虚部')subplot(5,2,7);stem(n,real(x4),'filled');xlabel('时间序列n');ylabel('实部'); title('复指数z4=2+j*pi/6时序列实部')subplot(5,2,8);stem(n,imag(x4),'filled');xlabel('时间序列n');ylabel('虚部'); title('复指数z4=2+j*pi/6时序列虚部')起始值n1:-20 终点值n2:2010、问题B:正弦序列的性质function f3_1()n1=input('起始值n1:')n2=input('终点值n2:')n=n1:n2;x1=1.5*sin(2*pi*0.1*n);x2=sin(0.9*n);subplot(1,2,1);stem(n,x1,'filled');xlabel('时间序列n');ylabel('振幅');title('正弦序列x1=1.5*sin(2*pi*0.1*n)');subplot(1,2,2);stem(n,x2,'filled');xlabel('时间序列n');ylabel('振幅');title('正弦序列x2=sin(0.9*n)');起始值n1:-20 终点值n2:20三、实验总结1、实验中出现的问题:(1)、对序列函数的不了解和对MATLAB软件的不熟悉,以致开始的时候对程序的编写无从下手。

实验一离散信号序列的产生、运算和分解

实验一离散信号序列的产生、运算和分解

实验一 离散信号序列的产生、运算和分解一、实验目的(1)熟悉MA TLAB 信号处理工具箱的使用;(2)学习和掌握用MA TLAB 产生离散信号的方法;(3)学习和掌握用MA TLAB 对离散信号进行运算。

二、实验设备及环境PC 计算机一台,MATLAB 运行环境6.0版以上。

三、实验原理1.单位抽样序列⎩⎨⎧=01)(n δ 00≠=n n在MA TLAB 中可以利用zeros()函数实现。

;1)1();,1(==x N zeros x 如果)(n δ在时间轴上延迟了k 个单位,得到)(k n -δ即:⎩⎨⎧=-01)(k n δk n kn ≠= 2.单位阶跃序列 ⎩⎨⎧01)(n u 00<≥n n在MA TLAB 中可以利用ones()函数实现。

);,1(N ones x =3.正弦序列)/2sin()(ϕπ+=Fs fn A n x在MA TLAB 中 )/***2sin(*1:0fai Fs n f pi A x N n +=-=4.复指数序列n j e n x ϖ=)(在MA TLAB 中)**exp(1:0n w j x N n =-= 5.指数序列n a n x =)(在MA TLAB 中 n a x N n .^1:0=-=四、实验内容1、编制程序产生几种常用信号,并绘出其图形(1)产生单位采样序列)(n δ(2)产生单位阶跃序列)(n u(3)产生矩形阶跃序列)(R N n 其他1n 001n)(R N -≤≤⎩⎨⎧=N(4)产生正弦和余弦序列+∞<≤∞-=n n A n x )sin()(ω +∞<≤∞-=n n A n y )(cos )(ω2、编制离散信号序列的常用运算,并绘出其图形(1)已知两个离散序列⎭⎬⎫⎩⎨⎧---==↑3,2,1,0,1,2,3)(01k k f ,⎭⎬⎫⎩⎨⎧--==↑2,1,0,1,2)(02k k f ,用MATLAB 绘出)()()(21k f k f k f +=的波形。

离散信号分析实验报告

离散信号分析实验报告

一、实验名称离散信号分析实验二、实验目的1. 理解离散信号的基本概念和特点。

2. 掌握离散信号的表示方法,包括时域和频域表示。

3. 熟悉离散信号的基本运算,如加、减、乘、除等。

4. 理解离散系统响应的概念,并学会使用MATLAB进行离散信号与系统分析。

三、实验原理离散信号是指只在离散时刻上有定义的信号,其特点是时域上的不连续性。

离散信号可以通过时域采样和频域变换进行分析。

四、实验内容1. 离散信号的生成与表示使用MATLAB生成以下离散信号:- 单位脉冲序列:δ[n]- 单位阶跃序列:u[n]- 单位斜坡序列:r[n]- 正弦信号:sin(nω0)- 指数信号:e^(αn)并分别绘制这些信号的时域波形图。

2. 离散信号的运算对上述生成的信号进行以下运算:- 加法运算:δ[n] + u[n]- 乘法运算:δ[n] e^(αn)- 移位运算:δ[n - 1]- 反褶运算:δ[-n]绘制运算结果的时域波形图。

3. 离散系统响应假设离散系统由以下差分方程描述:y[n] = x[n] + x[n - 1] - y[n - 1]使用MATLAB编写程序,对输入信号x[n] = δ[n] 进行仿真,并绘制系统响应y[n] 的时域波形图。

4. 离散信号的频域分析对上述生成的信号进行傅里叶变换,得到其频域表示。

绘制信号的频谱图,并分析信号的频率特性。

五、实验步骤1. 使用MATLAB编写程序,生成上述离散信号。

2. 绘制信号的时域波形图。

3. 对信号进行运算,绘制运算结果的时域波形图。

4. 使用MATLAB编写程序,对输入信号进行仿真,并绘制系统响应的时域波形图。

5. 对信号进行傅里叶变换,绘制信号的频谱图。

六、实验结果与分析1. 离散信号的生成与表示通过实验,我们成功生成了上述离散信号,并绘制了它们的时域波形图。

可以看出,这些离散信号在时域上是不连续的。

2. 离散信号的运算通过实验,我们验证了离散信号的基本运算规律,如加法、乘法、移位和反褶等。

实验一离散信号的MATLAB实现

实验一离散信号的MATLAB实现

实验一离散信号的MATLAB实现实验一:离散信号的MATLAB实现一、实验目的本实验旨在通过MATLAB实现离散信号的生成、绘制和基本操作,加深对离散信号处理的理解,并为后续实验做好准备。

二、实验原理离散信号是指在时间域或幅值域上取值有限的信号。

常见的离散信号包括矩形波、三角波、正弦波等。

在MATLAB中,可以使用不同的函数和参数来生成这些离散信号。

同时,使用MATLAB的绘图功能可以将离散信号绘制出来,以便观察和分析。

三、实验步骤1.生成离散信号首先,我们需要生成一个离散信号。

在MATLAB中,可以使用以下代码生成一个长度为N的离散信号:N = 100; % 信号长度t = 0:N-1; % 时间向量x = sin(2*pi*t/N); % 离散正弦波信号这段代码将生成一个长度为100、采样频率为N Hz的正弦波信号。

其中,t是时间向量,表示信号在每个采样点上的时间;x是信号的幅值向量,表示在每个采样点上的幅值。

2.绘制离散信号生成离散信号后,我们可以使用MATLAB的绘图功能将其绘制出来。

在MATLAB 中,可以使用以下代码将离散信号绘制出来:plot(t, x); % 绘制离散正弦波信号xlabel('Time (s)'); % 设置X轴标签ylabel('Amplitude'); % 设置Y轴标签title('Discrete Sine Wave'); % 设置标题这段代码将绘制出离散正弦波信号的图形,并添加了X轴和Y轴标签以及标题。

3.基本操作除了生成和绘制离散信号外,我们还可以对离散信号进行一些基本操作,如加减、乘除、翻转等。

例如,我们可以使用以下代码将两个离散信号相加:y = x + 2; % 将离散正弦波信号加上2这段代码将生成一个新的离散信号y,它是原来信号x的基础上加上2。

同样地,我们还可以对离散信号进行其他基本操作。

四、实验结果与分析通过本实验,我们成功地生成了离散正弦波信号,并将其绘制出来。

DSP实验报告.实验一 .离散信号的分析

DSP实验报告.实验一 .离散信号的分析

实验 步骤 及源 程序
n=-4:2;x=[1,-2,4,6,-5,8,10]; [x21,n21]=sigshift(5*x,n,-5); [x22,n22]=sigshift(4*x,n,-4); [x23,n23]=sigadd(x21,n21,x22,n22); [x2,n2]=sigadd(x23,n23,3*x,n); subplot(2,1,1);stem(n2,x2); xlabel('n');ylabel('x_1(n)');
DSP 实验报告书
姓名 学号 实验时间
实验 名称 实验 目的
实验一 离散信号的分析
1.观察常用离散时间信号的图形,掌握离散时间信号的基本序列运算。 2.理解离散时间系统的时域特性,加深对离散时间系统差分方程的理解。 3.熟悉连续信号经理想采样前后的频谱变化关系,加深对时域采样定理的理解。
1.在给出的区间上产生并画出下面序列:
问题 讨论
y1(find(n>=min(n1)&(n<=max(n1))==1))=x1; y2(find(n>=min(n2)&(n<=max(n2))==1))=x2; y=y1+y2; sigmult.m 程序—— function [y,n]=sigmult(x1,n1,x2,n2); m=[min(n1),min(n2)]; p=[max(n1),max(n2)]; n=min(m):1:max(p); y1=zeros(1,length(n)); y2=y1; y1(find(n>=min(n1)&(n<=max(n1))==1))=x1; y2(find(n>=min(n2)&(n<=max(n2))==1))=x2; y=y1.*y2; 函数程序: n=-4:2;x=[1,-2,4,6,-5,8,10];n4=-10:10;x3=2*exp(0.5*n4);x4=cos(0.1*pi); [x31,n31]=sigmult(x3,n4,x,n); [x32,n32]=sigshift(x,n,-2); [x33,n33]=sigmult(x4,n4,x32,n32); [x34,n34]=sigadd(x31,n31,x33,n33); subplot(2,1,1);stem(n34,x34); xlabel('n');ylabel('x_1(n)');

数字信号处理实验一 时域离散信号的产生与基本运算

数字信号处理实验一 时域离散信号的产生与基本运算

实验一 时域离散信号的产生与基本运算一、实验目的1、了解常用的时域离散信号及其特点;2、掌握Matlab 产生常用时域离散信号的方法;3、掌握时域离散信号简单的基本运算方法;二、实验内容1、自己设定参数,分别表示并绘制单位抽样序列、单位阶跃序列、正弦序列、 实指数序列、随机序列;2、自己设定参数,分别表示并绘制信号移位、信号相加、信号相乘、信号翻转、 信号和、信号积、信号能量。

3、已知信号⎪⎩⎪⎨⎧≤≤-≤≤-+=其他040614452)(n n n n x(1) 描绘)(n x 序列的波形;(2) 用延迟的单位脉冲序列及其加权和表示)(n x 序列; (3) 描绘一下序列的波形)2()(),2(2)(),2(2)(321n x n x n x n x n x n x -=+=-=三、实现步骤1、自己设定参数,分别表示并绘制单位抽样序列、单位阶跃序列、正弦序列、 实指数序列、随机序列。

输出图形如图1所示。

x=zeros(1,10); x(2)=1;subplot(3,2,1); stem(x,'filled')axis([0,10,-0.2,1]); title('单位抽样序列');N=10;u=ones(1,N); subplot(3,2,2); stem(u,'filled') axis([-10,10,0,1]); title('单位阶跃序列');x=-20:1:20;y=sin(0.2*pi.*x+0.5*pi); subplot(3,2,3);stem(x,y,'filled'); axis([-20,20,-2,2]); title('正弦序列');n=0:10; a1=1/2; y1=a1.^n;subplot(3,2,4);stem(n,y1,'filled');axis([0,10,0,1]);title('实指数序列,a=1/2');n=0:10;a2=2;y2=a2.^n;subplot(3,2,5);stem(n,y2,'filled');title('实指数序列,a=2');y=rand(1,20);subplot(3,2,6);stem(y,'filled');title('随机序列');图12、自己设定参数,分别表示并绘制信号移位、信号相加、信号相乘、信号翻转、信号和、信号积、信号能量。

实验1常见离散信号产生和实现(作业1)

实验1常见离散信号产生和实现(作业1)

实验1常见离散信号产⽣和实现(作业1)实验1 常见离散信号产⽣和实现⼀、实验⽬的:1、加深对常⽤离散信号的理解;2、掌握matlab 中⼀些基本函数的建⽴⽅法。

⼆:matlab 使⽤1)创建M ⽂件 File-→New-→M-file 2)运⾏ Debug->run注:在试验过程中若有某些函数不懂,可以通过Help->search->输⼊要查询的函数名即可⼆、实验原理:1.单位抽样序列=01)(n δ0≠=n n在MATLAB 中可以利⽤zeros()函数实现。

;1)1();,1(==x N zeros x如果)(n δ在时间轴上延迟了k 个单位,得到)(k n -δ即:=-01)(k n δ≠=n kn 2.单位阶跃序列1)(n u00<≥n n 在MATLAB 中可以利⽤ones()函数实现。

);,1(N ones x = %⼀个长度为N 的1矩阵3.正弦序列)/2sin()(?π+=Fs fn A n x在MATLAB 中)/***2sin(*1:0fai Fs n f pi A x N n +=-=4.复指数序列n j e r n x ??=)(在MATLAB 中)**exp(1:0n w j r x N n ?=-=5.指数序列n a n x =)(在MATLAB 中na x N n .^1:0=-=三、实验内容实现和图形⽣成1、五种基本函数的⽣成程序如下:(1)、单位抽样序列做出单位抽样序列以及延时了5的单位抽样序列,并对图进⾏标记说明注意使⽤绘图的函数为stem ;标记xlabel 、ylabel 、title clc clear n=0:10;x1=[1 zeros(1,10)];x2=[zeros(1,5) 1 zeros(1,5)]; subplot(1,2,1); stem(n,x1);xlabel ('time n'); ylabel('zhenfu');title('danweichouyangx1'); subplot(1,2,2); stem(n,x2);xlabel('time n');title('yanshi 5');51000.10.20.30.40.50.60.70.80.91time nz h e n f udanweichouyangx151000.10.20.30.40.50.60.70.80.91time nz h e n f uyanshi 5(2)、单位阶跃序列 clc clear n=0:10;u=[ones(1,11)]; stem(n,u);xlabel('time n'); ylabel('zhenfu'); title('jieyue');1234567891000.10.20.30.40.50.60.70.80.91time nz h e n f ujieyue(3)正弦函数x=2*sin(pi*n/6+pi/3); 并对图进⾏标记说明 clc clear n=1:30; x=2*sin(pi*n/6+pi/3); stem(n,x);xlabel('time n');title('x=2*sin(pi*n/6+pi/3)');051015202530-2-1.5-1-0.500.511.52time nz h e n f ux=2*sin(pi*n/6+pi/3)(4)、复指数序列x=2*exp(j*3*n); 并对图进⾏标记说明 clc clear n=1:30;x=2*exp(j*3*n); stem(n,x);xlabel('time n'); ylabel('zhenfu');title('x=2*exp(j*3*n)');051015202530-2-1.5-1-0.500.511.52time nz h e n f ux=2*exp(j*3*n)(5)指数序列x=1.2.^n;并对图进⾏标记说明 clcclear n=1:30; x=1.2.^n; stem(n,x);xlabel('time n'); ylabel('zhenfu'); title('x=1.2.^n');51015202530050100150200250time nz h e n f ux=1.2.n2、绘出信号zn e n x =)(,当6)12/1(πj z +-=、6 )12/1(πj z +=时、121=z 、62πj z +=、6πj z =时的信号实部和虚部图;并对图标记说明,将以上⼏个图合在⼀个图⾥进⾏显⽰。

数字信号处理实验指导

数字信号处理实验指导

实验一 离散时间信号与系统的时域分析(基础验证型)1.实验目的(1)熟悉离散时间信号的产生与基本运算。

(2)熟悉离散时间系统的时域特性。

(3)利用卷积方法观察分析系统的时域特性。

2.实验原理(1)典型离散时间信号单位样本序列(通常称为离散时间冲激或单位冲激)用[]n δ表示,其定义为1,0[]0,0n n n δ=⎧=⎨≠⎩(1.1) 单位阶跃序列用[]n μ表示,其定义为1,0[]0,0n n n μ≥⎧=⎨<⎩ (1.2) 指数序列由 []n x n A α= (1.3)给定。

其中A 和α可以是任意实数或任意复数,表示为00(),j j e A A e σωφα+==式(1.3)可改写为 0000()00[]cos()sin()n j n n n x n A e A e n j A e n σωφσσωφωφ++==+++ (1.4) 带有常数振幅的实正弦序列形如0[]cos()x n A n ωφ=+ (1.5)其中A ,0ω和φ是实数。

在式(1.4)和(1.5)中,参数A ,0ω和φ分别称为正弦序列[]x n 的振幅、角频率和初始相位。

002f ωπ=称为频率。

(2)序列的基本运算长度N 的两个序列[]x n 和[]h n 的乘积,产生长度也为N 的序列[]y n[][][]y n x n h n =⋅ (1.6)长度为N 的两个序列[]x n 和[]h n 相加,产生长度也为N 的序列[]y n[][][]y n x n h n =+ (1.7)用标量A 与长度为N 的序列[]x n 相乘,得到长度为N 的序列[]y n[][]y n A x n =⋅ (1.8)无限长序列[]x n 通过时间反转,可得到无限长序列[]y n[][]y n x n =- (1.9)无限长序列[]x n 通过M 延时,可得到无限长序列[]y n[][]y n x n M =- (1.10)若M 是一个负数,式(1.10)运算得到序列[]x n 的超前。

常见离散信号产生和实现实验

常见离散信号产生和实现实验

实验1 常见离散信号产生和实现一、实验目的1、加深对常用离散信号的理解;2、熟悉使用MATLAB 在时域中产生一些基本的离散时间信号。

二、实验原理MATLAB 语言提供了一系列函数用来产生信号,如exp, sin, cos, square, sawtooth ,ones, zeros 等函数。

1. 基本信号序列 1) 单位抽样序列⎩⎨⎧=01)(n δ 00≠=n n 程序:n=-10:20; %生成一个从-10到20的序列u=[zeros(1,10) 1 zeros(1,20)]; %生成一个前10位为0,第十一位为1,后20位为0的矩阵stem(n,u); %画出n 为横轴,u 为纵轴的序列xlabel('Time indexn');ylabel('Amplitude'); %添上x y 轴的标签title('Unit Sample Sequence'); %图表的标签axis([-10 20 0 1.2]); %规定横轴,纵轴的显示范围图形:如果)(n δ在时间轴上延迟了k 个单位,得到)(k n -δ即:⎩⎨⎧=-01)(k n δ 0≠=n k n程序:n=-10:20;u=[zeros(1,15) 1 zeros(1,15)];stem(n,u);xlabel('Time indexn');ylabel('Amplitude');title('Unit Sample Sequence');axis([-10 20 0 1.2]);图形:2) 单位阶跃序列⎩⎨⎧01)(n u 00<≥n n 程序:n=-10:20;x=[zeros(1,10),ones(1,21)];stem(n,x);图形:3) 实指数序列 R a n a n x n∈∀=,)(程序:a1=1.1;a2=0.9;a3=-1.1;a4=-0.9;n=[-5:15];x1=(a1.^n);x2=(a2.^n);x3=(a3.^n);x4=(a4.^n); subplot(2,2,1);stem(n,x1,'.k');title('a>1');axis([-5,15,-0.5,5]);subplot(2,2,2);stem(n,x2,'.k');title('0<a<1');axis([-5,15,-0.2,1.2]);subplot(2,2,3);stem(n,x3,'.k');title('a<-1');axis([-5,15,-6,4]);subplot(2,2,4);stem(n,x4,'.k');title('<-1a<0');axis([-5,15,-1,1.2]);图形:4) 复指数序列n e n x nj ∀=+)()(ωσ程序:n=0:10;lu=0.2;w0=pi;x=exp((lu+j*w0)*n);stem(n,x);xlabel('Time indexn');ylabel('Amplitude');title('Unit Sample Sequence'); axis tight图形:5)随机序列程序:x=rand(1,20);stem(x);xlabel('Time indexn');ylabel('Amplitude');title('Unit Sample Sequence');axis tight图形:基本周期波形1)方波程序:t=0:0.1*pi:6*pi; %定义t为从0开始,间距为0.1pi,截止为6pi的序列y=square(t); %由函数生成方波axis([0 7*pi -1.5 1.5]); %规定尺度距离plot(t,y); %画出横轴为t 纵轴为y 的方波函数xlabel(‘时间 t’); % 为x 轴添加标签ylabe l(‘幅度y’); % 为y 轴添加标签axis([0 20 0 2])图形:2) 正弦波)/2sin()(ϕπ+=Fs fn A n x程序:t=0:0.1:15;A=2;x=A*sin(0.7*pi*t+0.5);plot(t,x);xlabel('Time index t');ylabel('Amplitude x');axis([0 2*pi -3 3])title('正弦波')图形:3)锯齿波程序:Fs=10000;t=0:1/Fs:2;x=sawtooth(2*pi*40*t);plot(t,x);xlabel('Time index t');ylabel('Amplitude x');axis([0 0.2 -2 2])title('锯齿波')图形:2.基本非周期波形程序:t=0:1/1000:2;x=chirp(t,0.1,80);plot(t,x);xlabel('Time index t');ylabel('Amplitude x'); specgram(x,256,100,256,250); title('基本非周期波形')图形:3.sinc信号程序:t=linspace(-5,5);x=sinc(t);plot(t,x);xlabel('Time index t');ylabel('Amplitude x');title('sinc信号')图形:4.序列的操作1)信号加x(n)=x1(n)+x2(n)MATLAB实现:x=x1+x2;注意:x1和x2序列应该具有相同的长度,位置对应,才能相加。

《数字信号处理》实验讲义(信息计算)

《数字信号处理》实验讲义(信息计算)

《数字信号处理》实验指导书实验一 常见离散信号的产生一、实验目的1. 加深对离散信号的理解。

2. 掌握典型离散信号的Matlab 产生和显示。

二、实验原理及方法在MATLAB 中,序列是用矩阵向量表示,但它没有包含采样信息,即序列位置信息,为此,要表示一个序列需要建立两个向量;一是时间序列n,或称位置序列,另一个为取值序列x ,表示如下: n=[…,-3,-2,-1,0,1,2,3,…]x=[…,6,3,5,2,1,7,9,…]一般程序都从0 位置起始,则x= [x(0), x(1), x(2),…]对于多维信号需要建立矩阵来表示,矩阵的每个列向量代表一维信号。

数字信号处理中常用的信号有指数信号、正弦信号、余弦信号、方波信号、锯齿波信号等,在MATLAB 语言中分别由exp, sin, cos, square, sawtooth 等函数来实现。

三、实验内容1. 用MATLAB 编制程序,分别产生长度为N(由输入确定)的序列:①单位冲击响应序列:()n δ可用MATLAB 中zeros 函数来实现; ②单位阶跃序列:u(n)可用MATLAB 中ones 函数来实现; ③正弦序列:()sin()x n n ω=; ④指数序列:(),nx n a n =-∞<<+∞⑤复指数序列:用exp 函数实现()0()a jb nx n K e+=,并给出该复指数序列的实部、虚部、幅值和相位的图形。

(其中00.2,0.5,4,40a b K N =-===.)参考流程图:四、实验报告要求1. 写出实验程序,绘出单位阶跃序列、单位阶跃序列、正弦序列、指数序列的图形以及绘 出复指数序列的实部、虚部、幅值和相位的图形。

2. 序列信号的实现方法。

3. 在计算机上实现正弦序列0()sin(2)x n A fn πϕ=+。

实验二 离散信号的运算一、实验目的1. 掌握离散信号的时域特性。

2. 用MATLAB 实现离散信号的各种运算。

实验一++离散信号的产生和运算

实验一++离散信号的产生和运算

实验目的:掌握利用Matlab产生各种离散时间信号,实现信号的相加、相乘及卷积运算实验函数:参考课本77-19页,注意式(2.11.1)的表达与各matlab子函数间的关系。

1、stem(x,y) % 绘制以x为横轴,y为纵轴的离散序列图形2、[h ,t] = impz(b, a) % 求解数字系统的冲激响应h,取样点数为缺省值[h, t] = impz(b, a, n) % 求解数字系统的冲激响应h,取样点数为nimpz(b, a) % 在当前窗口用stem(t, h)函数出图3、[h ,t] = dstep(b, a) % 求解数字系统的阶跃响应h,取样点数为缺省值[h, t] = dstep (b, a, n) % 求解数字系统的阶跃响应h,取样点数为ndstep (b, a) % 在当前窗口用stairs(t, h)函数出图4、y = filter(b,a,x) % 在已知系统差分方程或转移函数的情况下求系统输出实验原理:一、常用的时域离散信号及其程序1、产生单位抽样函数δ(n)n1 = -5;n2 = 5;n0 = 0;n = n1:n2;x = [n==n0]; % x在n=n0时为1,其余为0stem(n,x,'filled'); %filled:序列圆心处用实心圆表示axis([n1,n2,0,1.1*max(x)])title('单位抽样序列')xlabel('time(n)')ylabel('Amplitude:x(n)')2、产生单位阶跃序列u(n)n1 = -2;n2 = 8;n0 = 0;n = n1:n2;x = [n>=n0]; % x在n>=n0时为1,其余为0stem(n,x,'filled');axis([n1,n2,0,1.1*max(x)])title('单位阶跃序列')xlabel('time(n)')ylabel('Amplitude:x(n)')3、复指数序列复指数序列的表示式为()(),00,0j n en x n n σω+⎧≥⎪=⎨<⎪⎩,当0ω=时,()x n 为实指数序列;当0σ=时,()x n 为虚指数序列,即()()cos sin j n e n j n ωωω=+,即其实部为余弦序列,虚部为正弦序列。

常见离散信号产生与实现+grid on

常见离散信号产生与实现+grid on

实验1 常见离散信号产生和实现一、实验目的1、加深对常用离散信号的理解;2、熟悉使用MATLAB在时域中产生一些基本的离散时间信号。

二、实验原理1、单位抽样序列在MATLAB中可以利用函数实现。

k1=input('k1='),k2=input('k2='),k0=input('k0=') k=k1:k2;n=length(k);x=zeros(1,n);x(1,k0-k1+1)=1;stem(k,x,'filled')axis([k1,k2,0,1.5])title('单位抽样序列')grid on2、单位阶跃序列在MATLAB中可以利用函数实现:单位抽样序列k1=input('k1='),k2=input('k2='),k0=input('k0=') k=k1:k0-1; kk=k0:k2; n=length(k); nn=length(kk); u=zeros(1,n); uu=ones(1,nn); stem(kk,uu,'filled') hold onstem(k,u,'filled') hold offtitle('单位阶跃序列') axis([k1,k2,0,1.5]) grid on 3、正弦序列在MATLAB 中实现过程如下:k1=input('k1='),k2=input('k2='),A=input('A='),f=input('f='),fai=input ('fai='),Fs=input('Fs=') k=k1:k2;y= A*sin(2*pi*f*k/Fs+fai) stem(k,y,'filled')title('离散时间正弦序列f(n)=Asin(2*pi*f*n/Fs+fai)') xlabel('n')ylabel('f(n)')grid on参考初值:k1=-30;k2=30;A=3;f=1/(8*pi);fai=0;Fs=44、复指数序列在MATLAB 中实现过程如下:单位阶跃序列nf (n )k1=input('k1='),k2=input('k2='),c=input('c='),w=input('w=') k=k1:k2; x=c*exp(j*w*k);subplot(2,2,1);stem(k,real(x),'filled') title('指数序列实部') grid onxlabel('n');ylabel('f(n)')subplot(2,2,2);stem(k,imag(x),'filled') title('指数序列虚部') grid onsubplot(2,2,3);stem(k,angle(x),'filled') title('指数序列辐角') grid onxlabel('n');ylabel('f(n)')subplot(2,2,4);stem(k,abs(x),'filled') title('指数序列幅值') grid onstem(k,x,'filled') hold onplot([k1,k2],[0,0]) hold offtitle('复指数序列') xlabel('n') ylabel('f(n)') grid on 5、指数序列在MATLAB 中实现过程如下:51015指数序列实部nf (n )051015指数序列虚部51015指数序列辐角nf (n )51015复指数序列nf (n )k1=input('k1='),k2=input('k2='),a=input('a=') k=k1:k2;x=(a.^k);stem(k,x,'filled')hold onplot([k1,k2],[0,0])hold offtitle('指数序列')grid onxlabel('n')ylabel('f(n)')三、预习要求1、预先阅读实验讲义(MATLAB基础介绍);2、讨论正弦序列、复指数序列的性质。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验项目一 常见离散信号产生和基本运算
1.实验目的
(1)掌握MATLAB 最基本的矩阵运算语句;
(2)掌握对常用离散信号的理解与运算实现。

2.实验内容
(1)熟悉MATLAB 的使用环境和方法;
(2)练习使用基本的向量生成、矩阵运算、绘图等语句;
利用冒号(:)生成向量:
X1=[1 2 3 4 5]
X2=[1.000 1.500 2.000 2.500]
X3=[5 4 3 2 1]
分别生成3*3,3*4的全0矩阵,全1矩阵和随机矩阵;
分别输入矩阵: 123
456789A = 1.0 1.1 1.22.0 2.1 2.23.0 3.1 3.2
B =
分别计算A+B ,A-B ,A+3,A-4,A*B ,A.*B ,C=inv (A ),A/B,A./B ; 分别计算sin(x1),cos(x1),exp(x1),log(x2),sqrt(x2)。

(3)生成以上五种基本离散信号函数;
(4)绘出信号zn e n x =)(,当6)12/1(π
j z +-=、6)12/1(π
j z +=时、
121=z 、62π
j z +=、6π
j z =时的信号实部和虚部图;
(5)绘出信号)1.0*2sin(5.1)(n n x π=的频率是多少?周期是多少?产生一个数字频率为0.9的正弦序列,并显示该信号,说明其周期并绘图。

3.实验技能要求
掌握并能灵活运用MATLAB 语句对离散时间信号进行基本建立和运算。

4.实验操作要求
在实验操作过程中要注意对基本实验仪器的保护。

5.实验场所
魂芯DSP应用实验室
6.实验课后训练
实验课后训练以实验报告为表现形式,在实验报告中要对实验过程中出现的问题进行分析和思考,对所测得的数据进行数据处理,并根据结果进行总结。

相关文档
最新文档