《数字信号处理教程》利用matlab实现序列的运算 |
您所在的位置:网站首页 › matlab序列相加和相乘 › 《数字信号处理教程》利用matlab实现序列的运算 |
目录 一、实验名称 二、实验器材 三、实验目的 四、实验原理 五、实验内容及结果 六、实验收获 一、实验名称序列运算的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 |