《数字信号处理教程》利用matlab实现序列的运算

您所在的位置:网站首页 matlab序列相加和相乘 《数字信号处理教程》利用matlab实现序列的运算

《数字信号处理教程》利用matlab实现序列的运算

2023-09-12 21:41| 来源: 网络整理| 查看: 265

目录

一、实验名称

二、实验器材

三、实验目的

四、实验原理

五、实验内容及结果

六、实验收获

一、实验名称

序列运算的matlab实现。

二、实验器材

安装有matlab软件的电脑、《数字信号处理教程》课本。

三、实验目的

1. 了解复指数序列和它延扩周期得到的序列的图形和实现方法,并掌握matlab产生常用离散时间信号的编程方法;

2. 了解length函数、find函数和mod函数的用法,并能够在实验时很好的实现序列。

四、实验原理

1.常用序列的matlab实现

(1)随机序列。

当序列的取值不能用确定的数学表达式来描述时,这种序列就称为随机序列,MATLAB中,有两种随机序列(实际是伪随机序列)可供调用。

rand:此函数产生均值为0.5,幅度在0~1之间均匀分布的随机序列。调用格式是rand(1,N)或rand(NXM),前者产生N点随机序列,后者产生NXM随机矩阵。

randn:此函数产生均值为0,方差为1,服从正态(高斯)分布的白噪声序列。调用格式同上,有randn(1,N)和randn(NXM)两种,解释同上。

(2)周期序列。     设x(n),0<n<N-1,MATLAB可利用xtide(n)把它拓展成K个周期的周期序列,有两种办法。

①简单复制。

即原x(n)长度为N=length(x),复制K次得到xtide长度为K*N,但K太大时容易出错。 ②用求余数的方法(模运算)。 函数n1=mode(n.N)完成模运算nl=(n,mod,N)=((n)),即完成nl=n+KN,0<nl<N-1,K整数,即余数n1在0到N-1之间。把这一运算用到位置向量上,

就可实现有限长序列的周期延拓。

设x的起始位置为0,长度为N可用以下语句: nxtide=0:K·N-1; xtide=x(mod(nxtide,N)+1);

第二条语句中,由于mod(nxtide,N)的值永远在0到N-1之间,而MATLAB的规则是x的下标为nx=[1:N],故上面的后一条语句(即第二条语句)中必须把mod函数的结果加1才对。

2. 序列运算的MATLAB实现。

(1)序列之和。

将两序列x1、x2位置序号相同的样值相加,必须使x1、x2的位置向量的

起点、终点相同,因而序列的长度相同,故有可能要补“零值”。 首先,使x1、x2有同样的位置向量,因而要注意MATLAB的下标运算,将

x1的位置向量n1及x2的位置向量n2都变成相同的位置向量n,显然,min(n)应等于min(nl)和min(n2)中的小者。max(n)应等于max(nl)和max(n2)中的大者。随后,将x1及x2放到扩展后的位置向量n上,由于n比n1、n2都可能长,故应将x1、x2长度加长,加长后分别用y1,y2表示,即将x1、x2放到位置向量n的对应位置上,将多余之处的元素置零。

(2)序列之积。

将函数命名为seqmult,将函数的头语句改为function [y,n]=seqmult(x1,x2,n1,n2), 且将上面的第六行换成y=y1*y2,则得到序列的乘积运算。可以看出在一些情况下,序列的位置向量对序列的运算起着重要作用。

五、实验内容及结果

编制程序使用matlab实现复指数序列、延扩周期序列和两序列之和与之积的正确结果和产生图形。

(一)实验一:用编程产生下列复指数序列x(n)=e^[(aj-b)n],其中-1



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3