2011信号处理A指导书正文

上传人:平*** 文档编号:14132041 上传时间:2017-10-28 格式:DOC 页数:28 大小:256.64KB
返回 下载 相关 举报
2011信号处理A指导书正文_第1页
第1页 / 共28页
2011信号处理A指导书正文_第2页
第2页 / 共28页
2011信号处理A指导书正文_第3页
第3页 / 共28页
2011信号处理A指导书正文_第4页
第4页 / 共28页
2011信号处理A指导书正文_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《2011信号处理A指导书正文》由会员分享,可在线阅读,更多相关《2011信号处理A指导书正文(28页珍藏版)》请在金锄头文库上搜索。

1、- 1 -实验 1 矩阵、序列的运算与显示一、实验目的掌握用 MATLAB 表示离散时间信号,以及它们的运算和显示。二、实验内容与要求1 用 MATLAB 产生并画出下列序列的样本。a 10()21,025mxnnmnb 2256.410u unc 3()0.9cos(./3),02nx nd ,式中 是在【-1,1】之间均匀24181w w分布的随机序列,你如何表征这个序列?e 为周期的,画出 5 个周期。 5.,3,.xn三、实验所用部分函数如下1.单位冲激序列(信号)生成函数 impseqx,n = impseq(n0,n1,n2)2.阶跃序列(信号)生成函数 stepseqx,n =

2、stepseq(n0,n1,n2)3.序列(信号)相加函数 sigaddy,n = sigadd(x1,n1,x2,n2)以上为 MATLAB 没有,需外加入的函数(将相应函数拷贝到自己当前目录下)4. 正(余)弦生成函数 sin、cosy = sin(x) ,y = cos(x) (注意:x 以弧度为单位)5. 随机序列生成函数 rand,用法如:Y = rand (n) 生成 nn 阶的均匀分布随机阵;Y = rand (m, n) 生成 mn 阶的随机阵;rand 返回在0 ,1区间上的一个随机数;将上面的 rand 写成 randn 则可以生成均值为 0、方差为 1 的正态分布的随机变

3、量。- 2 -6全 1 矩阵生成函数 ones (m, n) :生成 mn 阶全 1 矩阵7全 0 矩阵生成函数 zeros (m, n) :生成 mn 阶全 0 矩阵8离散序列绘图函数 stem stem (y) 以 1、2、3为横坐标, y 为纵坐标画杆形图;stem(x, y) 以 x 为横坐标, y 为纵坐标画杆形图(x 与 y 数据个数必须一致);stem (,fill) 选项fill指定杆顶为实心,若无此选项则默认空心。stem(.,LineSpec) 参数 LineSpec 指定杆形图的线形、数据标志符号及颜色,具体用法可查看 MATLAB 帮助9线性坐标平面绘图函数 plot用

4、法与 stem 类似,具体用法可查看 MATLAB 帮助以上为 MATLAB 内置函数(在此仅为同学复习 MATLAB 提供)四、在 MATLAB 程序中变量赋值注意问题在 MATLAB 中,对变量赋值时其维数可以按需要动态地改变,这样虽然方便程序设计但同时容易出错。另外,频繁分配变量空间会大大降低程序的执行速度,因而应该尽量避免不必要的矩阵、向量维数的改变。通常先用 zeros()函数给变量分配足够大小的空间,再对变量进行赋值。例:依次执行下面的语句tic %开始计时for i=1:10000c (i) = i; %每次都重新分配空间endtoc %读取计时时间tic %开始计时d=zero

5、s(1,10000); %预先分配空间for i=1:10000d (i) = i; %直接赋值,不必重新分配空间endtoc %读取计时时间运行结果如下:elapsed_time =- 3 -11560elapsed_time =00470从结果可以看出,第 2 种赋值方法所用的时间比第 1 种方法所用时间少得多(以上是在主频为 266GHZ 的机器上运行的结果) 。- 4 -实验 2 序列与系统的时域表示、运算和卷积一、实验目的1 用矩阵乘法实现有限长序列卷积的计算;2 序列的抽取(decimation, dilation)。二、实验原理1 有限长序列 x(n)和 h(n)的卷积也可以用矩

6、阵乘实现。把卷积和 y(n)与输入序列 x(n)用列向量 y 和 x 表示,则有y = HxH 称为 Toeplitz 矩阵,由单位样本响应 h(n)的元素构成。2 序列的抽取(decimation, dilation)对序列的抽取操作定义为y(n) = x(nM)M 是一整数。三、实验内容与要求同学们以后在用 MATLAB 写程序时,应该加入适当的注释说明。1 用 MATLAB 解以下两题。(1)已知序列 1,2343,21xnhn和a 构造 Toeplitz 矩阵,它的维数与 h(n)和 x(n)的长度有关:设 h 和 x 的长度分别为Nh、N x,那么 y 的长度是多少?H 的维数呢?b

7、 利用给出的序列验证你的函数。(2)在已知第一行和第一列下,MATLAB 提供一个称之为 toeplitz 矩阵的函数用于产生Toeplitz 矩阵。a 观察矩阵 H 的第一列和第一行有什么特点,利用 toeplitz 函数,建立另外一个MATLAB 函数用于实现线性卷积。写成 x、h 是行或列向量都可以调用。这个函数的格式应该是Function =conv_tp(h,x),y%Linear Convolution using Toeplitz Matrix%-% =conv_tp(h,x),yH%y= output sequence - 5 -%H=Toeplitz matrix corre

8、sponding to sequence h so that y = Hx%h =Impulse response sequence %x = input sequence b对题(1)给出的序列验证你的函数。2 若 ,243,651,8xn 那么减采样因子 2 的序列为,y a 建立 一 MATLAB 函数 dnsample,它有形式为function y =dnsample(x,M)用于实现上述运算。细心关注在时间轴上的原点 n=0,利用 MATLAB 的编序机理。b 产生 以 4 对 抽取得到 。利用sin0.125,50,nxnynsubplot 画出 和 ,并对结果作评述。xyc 用

9、 重做(b) 。定性讨论信号在减采样后的效果。si.,3 选作:序列的内插运算(interpolation, or up-sampling)y(n) = x (n/L), n = kL, k 为整数= 0, n 不满足以上条件时用 MATLAB 函数表示,应该是: y = upsampling(x, L)注意:upsample 是 MATLAB 信号处理工具箱中的函数,所以我们用 upsampling。MATLAB 还提供了一个对信号作内插、抽取、滤波的函数y = resample (x, p, q)对信号做 p/q(p, q 均为整数)的速率调整。我们的实验只是抽取、内插。四、参考文件及程序

10、2 个音频波形文件供有兴趣的同学们做抽取、内插实验用,其中 pronounciation.wav 是 C+之父 Bjarne Stroustrup 告诉我们他自己的名字应该怎么念。注意:这个文件是立体声的(双声道) 。MATLAB Notebook 读音频文件.doc ,告诉你如何读音频文件,如何播放音频序列。附:音频文件的读入与音频信号播放1、音频文件的读入x = wavread (orig.wav);x, Fs, bits = wavread (orig.wav);- 6 -. = wavread (orig.wav, N);. = wavread (orig.wav, N1 N2)siz

11、 = wavread (orig.wav, size)第 1 句从当前子目录下的音频波形文件 orig.wav 把数字音频数据读入矩阵 x;如果波形文件不在当前目录,应该在波形文件名参数加入相应的路径。当读入单声道数据时,x 是一列向量,读入立体声时,x 为 2 列的矩阵,分别对应 2 个声道。数据 x 每个样点值的范围在-1, 1之间。第 2 句除了读入波形数据,还把数字音频信号的抽样频率读入变量 Fs,每个样本占用的比特数放在变量 bits。如果不播放声音或把音频数据写入文件,不用改动后两个参数;你应该看出来,第 1 句其实是第 2 句的简化,只读入了音频数据,没有读其它参数;第 3、第

12、4 句写法表示赋值等号左边写法同上 2 句,但第 3 句只读入每个声道的前 N 点数据,而第 4 句读出每个声道从 N1 到 N2 点的数据。第 5 句读入音频文件的相应信息,size是这种用法的固定参数,这时将不读入音频数据。返回 siz 是一个 2 元数组,组成成分如下:siz = samples channels第一个元素 siz(1)是音频文件中所含的样本数,也就是第一句读入的 x 的长度,第二个元素siz(2)是该文件所含数字音频的声道数,单声道是 1,立体声为 2。求取向量 x 的长度也可以用Len = length (x)这样就不用用上面的第 2 句。但函数 length ()总

13、是返回矩阵最大的维数,所以使用它不能获得信号的信道数信息(mono or stereo) 。2、音频信号播放sound (y, Fs)sound (y, Fs, bits)sound (y)y 是音频信号向量/矩阵Fs 是抽样频率, 缺省值是 8192Hzbits 数字音频每个样本的比特数,8 或 16一般播放从音频文件读出的数据用第一种形式就可以,Fs 是数字音频自己的抽样频率。3、音频信号播放实例- 7 -如果你有耳机可以插在计算机面板上那个浅黄色的插孔。如果要直接执行下面的 MATLAB 语句,要先设置好 MATLAB 的 notebook,具体步骤参见为实验 1提供的文件。下面的语句打

14、开并播放 orig.wav(这个文件所在目录应该是当前目录,否则应在文件名字符串中加入文件所在路径):x, Fs, bits = wavread(orig.wav); sound(x,Fs) 再听这句呢?sound(x) 是不是不一样?这是因为播放的缺省速率和原来信号的速率不一样。如果只播放信号向量的一部分,对单声道一维向量,播放 N1 : N2 区间的样本,可以用sound (x(N1 : N2), Fs) 对二维立体声,则用sound (x (N1 : N2, :), Fs) 下面这句返回 pronounciation.wav 数据大小的参数siz = wavread(pronounciation.wav, size) siz =265847 2 可以看到,pronounciation.wav 有 2 个声道,如果读入数据x, Fs, bits = wavread (pronounciation.wav);这时 x 应该视为 265647x2 的矩阵,即 2 列。注意:在一次播放音频信号未结束时,不要做另一次播放。- 8 -实验 3 离散信号、系统的频域表示一、实验目的1. 考察抽样间隔对信号频谱的影响;2. 考察信号观察时间对信号频谱的影响。二、实验原理根据对连续时间信号抽样与重建的原理,考察抽样间隔对信号频谱的影响。三、实验内容与要求在本次实验中,同学们要阅读、运行一

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号