
实验二 离散时间信号的运算和卷积.docx
3页实验二 离散时间信号的运算和卷积一、 实验目的1. 掌握离散时间信号的各种运算在MATLAB中的实现方式2. 掌握卷积运算的MATLAB实现方式3. 掌握二、 实验内容1. 序列的运算例:已知两序列为 ,起始位置,,,求他们的和ya以及乘积ym.分析:两序列相加,是将两序列位置序号相同的样值相加,必须使两个序列和的起点、终点相同因而序列的长度相同,固有可能要补“零”要求:阅读以下程序,并将其拷贝到MATLAB的Editor中,保存,运行,说明实验结果clc;clear all;x1 = [1 3 4 7 6 4 2 1];ns1 = -3;x2 = [4 0 2 1 -1 3];ns2 = 1; nf1 = ns1 + length(x1) - 1;nf2 = ns2 + length(x2) - 1; n1 = ns1:nf1;n2 = ns2:nf2; n = min(ns1,ns2):max(nf1,nf2);y1 = zeros(1,length(n));y2 = y1;y1(find((n>=ns1)&(n<=nf1)==1)) = x1;y2(find((n>=ns2)&(n<=nf2)==1)) = x2; ya = y1+y2;ym = y1.*y2; subplot(221);stem(n1,x1,'.');ylabel('x1(n)');grid; subplot(222);stem(n2,x2,'.');xlabel('n');ylabel('x2(n)');grid; subplot(223);stem(n,ya,'.');ylabel('y1(n)+y2(n)');grid; subplot(224);stem(n,ym,'.');xlabel('n');ylabel('y1(n)*y2(n)');grid;2. 序列的卷积利用MATLAB来计算卷积,可以采用两种方式:第一,通过对两个序列进行翻褶、移位、相乘、相加等运算来实现;第二,采用MATLAB提供了内部函数conv来实现。
MATLAB提供了内部函数conv来计算两个有限长序列的卷积,使用时应注意两点:第一,它只对有限长序列做卷积;第二,这一卷积都是从n=0开始,调用方法为y=conv(x,h),因而不需要输入序列的位置信息,从而也无法给出输出序列的位置信息因而需要将conv加以扩展 设已知两个有限长序列x和h,其位置向量已知,即有及,要求与的卷积,以及其位置向量位置向量的起点和终点应满足下式:, 而序列的长度应满足下面,我们利用MATLAB里的conv函数,编写出能输出位置矢量的函数convwthn.m.function [y,ny] = convwthn(x,nx,h,nh)ny1 = nx(1) + nh(1);ny2 = nx(end) + nh(end);y = conv(x,h);ny = [ny1:ny2];用上述函数求解,与,的卷积clc;clear all;x = [1 2 3 -1 -2];nx = -1:3;h = [2 2 1 -1 4 -2];nh = -3:2;[y,ny] = convwthn(x,nx,h,nh);stem(ny,y,'.');xlabel('n');ylabel('y(n)');grid;三、 实验要求本次实验要交电子版实验报告,报告提交截止日期:9月30日晚10:00。
