北邮Matlab实验报告
- 格式:doc
- 大小:651.16 KB
- 文档页数:11
matlab实验报告总结电气工程学院自动化102班 2012年12月21日实验一 MATLAB环境的熟悉与基本运算一、实验目的1.熟悉MATLAB开发环境2.掌握矩阵、变量、表达式的各种基本运算二、实验基本知识1.熟悉MATLAB环境MATLAB桌面和命令窗口、命令历史窗口、帮助信息浏览器、工作空间浏览器、文件和搜索路径浏览器。
2.掌握MATLAB常用命令变量与运算符变量命名规则如下:变量名可以由英语字母、数字和下划线组成变量名应以英文字母开头长度不大于31个区分大小写MATLAB中设置了一些特殊的变量与常量,列于下表。
MATLAB运算符,通过下面几个表来说明MATLAB的各种常用运算符表2 MATLAB算术运算符表3 MATLAB关系运算符表4 MATLAB逻辑运算符表5 MATLAB特殊运算的一维、二维数组的寻访表6 子数组访问与赋值常用的相关指令格式的基本运算表7 两种运算指令形式和实质内涵的异同表的常用函数表8 标准数组生成函数表9 数组操作函数三、实验内容1、新建一个文件夹2、启动,将该文件夹添加到MATLAB路径管理器中。
3、保存,关闭对话框4、学习使用help命令,例如在命令窗口输入help eye,然后根据帮助说明,学习使用指令eye5、学习使用clc、clear,观察command window、command history和workspace等窗口的变化结果。
6、初步程序的编写练习,新建M-file,保存,学习使用MATLAB的基本运算符、数组寻访指令、标准数组生成函数和数组操作函数。
注意:每一次M-file的修改后,都要存盘。
练习A:help rand,然后随机生成一个2×6的数组,观察command window、command history和workspace等窗口的变化结果。
学习使用clc、clear,了解其功能和作用。
答:clc是清除命令窗体内容 clear是清除工作区间输入C=1:2:20,则C表示什么?其中i=1,2,3,?,10。
(最新版)MATLAB实验报告实验一典型环节的MATLAB仿真一、实验目的1.熟悉MATLAB桌面和命令窗口,初步了解SIMULINK功能模块的使用方法。
2.通过观察典型环节在单位阶跃信号作用下的动态特性,加深对各典型环节响应曲线的理解。
3.定性了解各参数变化对典型环节动态特性的影响。
二、SIMULINK的使用MATLAB中SIMULINK是一个用来对动态系统进行建模、仿真和分析的软件包。
利用SIMULINK功能模块可以快速的建立控制系统的模型,进行仿真和调试。
1.运行MATLAB软件,在命令窗口栏“>>”提示符下键入simulink命令,按Enter 键或在工具栏单击按钮,即可进入如图1-1所示的SIMULINK仿真环境下。
2.选择File菜单下New下的Model命令,新建一个simulink 仿真环境常规模板。
3.在simulink仿真环境下,创建所需要的系统。
以图1-2所示的系统为例,说明基本设计步骤如下:1)进入线性系统模块库,构建传递函数。
点击simulink下的“Continuous”,再将右边窗口中“Transfer Fen”的图标用左键拖至新建的“untitled”窗口。
2)改变模块参数。
在simulink仿真环境“untitled”窗口中双击该图标,即可改变传递函数。
其中方括号内的数字分别为传递函数的分子、分母各次幂由高到低的系数,数字之间用空格隔开;设置完成后,选择OK,即完成该模块的设置。
3)建立其它传递函数模块。
按照上述方法,在不同的simulink 的模块库中,建立系统所需的传递函数模块。
例:比例环节用“Math”右边窗口“Gain”的图标。
4)选取阶跃信号输入函数。
用鼠标点击simulink下的“Source”,将右边窗口中“Step”图标用左键拖至新建的“untitled”窗口,形成一个阶跃函数输入模块。
5)选择输出方式。
用鼠标点击simulink下的“Sinks”,就进入输出方式模块库,通常选用“Scope”的示波器图标,将其用左键拖至新建的“untitled”窗口。
信号与系统MATLAB第一次实验报告一、实验目的1.熟悉MATLAB软件并会简单的使用运算和简单二维图的绘制。
2.学会运用MATLAB表示常用连续时间信号的方法3.观察并熟悉一些信号的波形和特性。
4.学会运用MATLAB进行连续信号时移、反折和尺度变换。
5.学会运用MATLAB进行连续时间微分、积分运算。
6.学会运用MATLAB进行连续信号相加、相乘运算。
7.学会运用MATLAB进行连续信号的奇偶分解。
二、实验任务将实验书中的例题和解析看懂,并在MATLAB软件中练习例题,最终将作业完成。
三、实验内容1.MATLAB软件基本运算入门。
1). MATLAB软件的数值计算:算数运算向量运算:1.向量元素要用”[ ]”括起来,元素之间可用空格、逗号分隔生成行向量,用分号分隔生成列向量。
2.x=x0:step:xn.其中x0位初始值,step表示步长或者增量,xn 为结束值。
矩阵运算:1.矩阵”[ ]”括起来;矩阵每一行的各个元素必须用”,”或者空格分开;矩阵的不同行之间必须用分号”;”或者ENTER分开。
2.矩阵的加法或者减法运算是将矩阵的对应元素分别进行加法或者减法的运算。
3.常用的点运算包括”.*”、”./”、”.\”、”.^”等等。
举例:计算一个函数并绘制出在对应区间上对应的值。
2).MATLAB软件的符号运算:定义符号变量的语句格式为”syms 变量名”2.MATLAB软件简单二维图形绘制1).函数y=f(x)关于变量x的曲线绘制用语:>>plot(x,y)2).输出多个图像表顺序:例如m和n表示在一个窗口中显示m行n列个图像,p表示第p个区域,表达为subplot(mnp)或者subplot(m,n,p)3).表示输出表格横轴纵轴表达范围:axis([xmax,xmin,ymax,ymin])4).标上横轴纵轴的字母:xlabel(‘x’),ylabel(‘y’)5).命名图像就在subplot写在同一行或者在下一个subplot前:title(‘……’)6).输出:grid on举例1:举例2:3.matlab程序流程控制1).for循环:for循环变量=初值:增量:终值循环体End2).while循环结构:while 逻辑表达式循环体End3).If分支:(单分支表达式)if 逻辑表达式程序模块End(多分支结构的语法格式)if 逻辑表达式1程序模块1Else if 逻辑表达式2程序模块2…else 程序模块nEnd4).switch分支结构Switch 表达式Case 常量1程序模块1Case 常量2程序模块2……Otherwise 程序模块nEnd4.典型信号的MATLAB表示1).实指数信号:y=k*exp(a*t)举例:2).正弦信号:y=k*sin(w*t+phi)3).复指数信号:举例:4).抽样信号5).矩形脉冲信号:y=square(t,DUTY) (width默认为1)6).三角波脉冲信号:y=tripuls(t,width,skew)(skew的取值在-1~+1之间,若skew取值为0则对称)周期三角波信号或锯齿波:Y=sawtooth(t,width)5.单位阶跃信号的MATLAB表示6.信号的时移、反折和尺度变换:Xl=fliplr(x)实现信号的反折7.连续时间信号的微分和积分运算1).连续时间信号的微分运算:语句格式:d iff(function,’variable’,n)Function:需要进行求导运算的函数,variable:求导运算的独立变量,n:求导阶数2).连续时间信号的积分运算:语句格式:int(function,’variable’,a,b)Function:被积函数variable:积分变量a:积分下限b:积分上限(a&b默认是不定积分)8.信号的相加与相乘运算9.信号的奇偶分解四、小结这一次实验让我能够教熟悉的使用这个软件,并且能够输入简单的语句并输出相应的结果和波形图,也在一定程度上巩固了c语言的一些语法。
程序设计实验报告(matlab)实验一: 程序设计基础实验目的:初步掌握机器人编程语言Matlab。
实验内容:运用Matlab进行简单的程序设计。
实验方法:基于Matlab环境下的简单程序设计。
实验结果:成功掌握简单的程序设计和Matlab基本编程语法。
实验二:多项式拟合与插值实验目的:学习多项式拟合和插值的方法,并能进行相关计算。
实验内容:在Matlab环境下进行多项式拟合和插值的计算。
实验方法:结合Matlab的插值工具箱,进行相关的计算。
实验结果:深入理解多项式拟合和插值的实现原理,成功掌握Matlab的插值工具箱。
实验三:最小二乘法实验目的:了解最小二乘法的基本原理和算法,并能够通过Matlab进行计算。
实验内容:利用Matlab进行最小二乘法计算。
实验方法:基于Matlab的线性代数计算库,进行最小二乘法的计算。
实验结果:成功掌握最小二乘法的计算方法,并了解其在实际应用中的作用。
实验六:常微分方程实验目的:了解ODE的基本概念和解法,并通过Matlab进行计算。
实验内容:利用Matlab求解ODE的一阶微分方程组、变系数ODE、高阶ODE等问题。
实验方法:基于Matlab的ODE工具箱,进行ODE求解。
实验结果:深入理解ODE的基本概念和解法,掌握多种ODE求解方法,熟练掌握Matlab的ODE求解工具箱的使用方法。
总结在Matlab环境下进行程序设计实验,使我对Matlab有了更深刻的认识和了解,也使我对计算机科学在实践中的应用有了更加深入的了解。
通过这些实验的学习,我能够灵活应用Matlab进行各种计算和数值分析,同时也能够深入理解相关的数学原理和算法。
这些知识和技能对我未来的学习和工作都将有着重要的帮助。
1. 利用符号极限判定函数的连续性。
微积分是数学分析中的一个重要内容,是高等数学建立的基础和整个微分方程体系的基础内容。
Matlab 能够通过符号函数的计算实现微积分运算,如极限、微分、积分、级数等。
极限是当变量无限接近特定值时函数的值,例如,一元函数f(x)的导数f ’(x)的定义为下面的极限:f ’(x)=hx f h x f h )()(0lim -+→ Matlab 符号工具箱利用函数limit 计算符号的极限,其调用格式如下: ● l imit(expr, x , a):求x 趋近于a 的极限,但是当左、右极限不想同时,极限不存在。
● l imit(expr , a): 用 findsym(expr)作为独立变量。
● l imit(expr): 对x 求右趋于a=0的极限。
● l imit(expr, x , a , ‘left ’): 对x 求左趋于a 的极限。
● l imit(expr, x , a , ‘right ’): 对x 求左趋于a 的极限。
函数limit 要求第一个输入变量为符号函数,limit 不支持符号函数的句柄,但是对符号函数句柄f , 可以将f(x)作为输入变量。
例如:讨论函数f(x)= {0x x,0x ,2x 1)(cosx =≠= 的连续性。
求解过程:当x<0, x>0时,f(x)为初等函数,其连续性是显然的,只要考虑在x=0处的连续性。
根据需要,首先创建符号函数的M 文件,其源代码为:保存M 文件,名为ex0.m 。
调用limit 函数判定函数的连续性,代码为由结果可以看出,0lim →x f(x)=+→0lim x f(x)=-→0lim x f(x)=- 1/2 =0=f(0), 所以,在x=0时函数是不连续的。
2.在实际应用中,常常提出这样一种需求:把同一自变量的两个不用量纲、不同数量级的函数量的变化绘制在同一张图上。
例如希望在同一张图上表现出温度、湿度随时间的变化;人口数量、GDP 的变化曲线等。
MATLAB实验一一、常用离散信号的MATLAB产生和图形显示1、单位抽样序列>> n=-5:15;>>zeros(1,20);>> x=(n==0);>>stem(n,x,'.');2、单位阶跃序列>> n=-5:15;>>zeros(1,20);>> x=(n>=0);>>stem(n,x,'.');3、正弦序列>> n=0:20;>> f=10;>> Fs=100;>>fai=pi/4;>> x=5*sin(2*pi*f*n/Fs+fai);>>stem(n,x,'.');4、复正弦序列>> x=exp(i*0.1*pi*n);>>stem(n,x);5、指数序列>> n=0:10;>> x=2.^n;>>stem(n,x,'.');二、离散系统的差分方程、冲击响应和卷积分析1、y[n]+0.75y[n-1]+0.125y[n-2]=x[n]-x[n-1]冲激响应:>> n=0:20;>> x=(n==0);>> y=filter([1,-1],[1,0.75,0.125],x);>>stem(n,y,'.');阶跃响应:>> n=0:20;>> x=(n>=0);>> y=filter([1,-1],[1,0.75,0.125],x);>>stem(n,y,'.');2、y[n]=0.25{x[n-1]+x[n-2]+x[n-3]+x[n-4]}冲激响应:>> n=0:20;>> x=(n==0);>> y=filter([0,0.25,0.25,0.25,0.25],[1],x);>>stem(n,y,'.');阶跃响应:>> n=0:20;>> x=(n>=0);>> y=filter([0,0.25,0.25,0.25,0.25],[1],x);>>stem(n,y,'.');三、离散系统的频率响应分析和零、极点分布>>num=[0.0528,0.0797,0.1295,0.797,0.0528]; >>den=[1,-1,2.4947,-1.88,0.9537,-0.2336];>>zplane(num,den);>> [H,w]=freqz(num,den);>>Hf=abs(H);>>plot(w,Hf);。
实验结果及分析实验1:程序如下x=1:10y=2*x;plot(x,y)仿真结果:实验结果分析:仿真结果是条很规则的直线,X轴和Y轴一一对应,清楚明了,而序又特别简单。
所以用Maltab 软件很方便地画出规则的直线,方便研究。
实验结果及分析1、A=2、A=1A=实验结果及分析实验三 Matlab在信号与系统中的应用实验名称实验1、掌握信号与系统课程中基本知识的Matlab编程、仿真方法目的实验原理实验1程序:b=[1];a=[1 1];p=;t=0:p:5;x=exp(-3*t);subplot(1,2,1);impulse(b,a,0:p:5);title('冲激响应');subplot(1,2,2);step(b,a,0:p:5);title('阶跃响应');实验内容<设计性实验>1、用MATLAB在时域中编程求解y′(t)+y(t)=f(t), f(t)= exp(-3t)ε(t)的冲激响应、阶跃响应。
在simulink仿真环境下,设计系统框图,分析系统的冲激响应、阶跃响应。
<设计性实验>(选做)2、用MATLAB在时域中编程求解y′(t)+y(t)=f(t), f(t)=(1+exp(-3t))ε(t)的冲激响应、阶跃响应,要求用conv编程实现系统响应。
在simulink仿真环境下,设计系统框图,分析系统的冲激响应、阶跃响应。
实验结果及分析实验1仿真结果:simulink仿真环境下冲激响应阶跃响应实验名称实验四 Matlab在数字信号处理中的应用实验结果及分析实验1仿真结果:6khz12kHZ。
matlab程序设计实验报告《MATLAB程序设计实验报告》摘要:本实验报告旨在介绍MATLAB程序设计的基本原理和实践操作,通过实验演示和分析,展示了MATLAB在工程领域的应用和重要性。
本报告详细介绍了MATLAB程序设计的基本语法和常用函数,以及如何利用MATLAB进行数据处理、图像处理、信号处理等工程应用。
通过本报告的学习,读者将能够掌握MATLAB程序设计的基本技能,为工程实践提供有力的支持。
1. 引言MATLAB是一种用于算法开发、数据可视化、数据分析和数值计算的高级技术计算语言和交互式环境。
它具有强大的数学计算功能和丰富的绘图工具,广泛应用于工程、科学和金融等领域。
本实验报告将介绍MATLAB程序设计的基本原理和实践操作,帮助读者快速掌握MATLAB的基本技能。
2. 实验目的本实验的主要目的是让读者了解MATLAB程序设计的基本语法和常用函数,掌握MATLAB在工程领域的应用和重要性。
通过实验演示和分析,展示MATLAB 在数据处理、图像处理、信号处理等方面的应用。
3. 实验内容(1)MATLAB程序设计的基本语法和常用函数(2)利用MATLAB进行数据处理的实验演示(3)利用MATLAB进行图像处理的实验演示(4)利用MATLAB进行信号处理的实验演示4. 实验步骤(1)学习MATLAB程序设计的基本语法和常用函数(2)编写MATLAB程序,实现数据处理、图像处理、信号处理等功能(3)进行实验演示和分析,展示MATLAB在工程领域的应用和重要性5. 实验结果与分析通过本实验的学习,读者将能够掌握MATLAB程序设计的基本技能,包括数据处理、图像处理、信号处理等方面的应用。
通过实验演示和分析,读者将了解MATLAB在工程领域的重要性,为工程实践提供有力的支持。
6. 结论MATLAB程序设计是一种强大的工程工具,具有广泛的应用前景。
通过本实验报告的学习,读者将能够掌握MATLAB程序设计的基本技能,为工程实践提供有力的支持。
一、实训目的1. 熟悉MATLAB语言的使用2. 了解MATLAB在电子信息课程中的应用3. 掌握MATLAB矩阵输入、运算以及MATLAB数值的运算功能4.掌握各种数据的创建、访问、扩建及缩减5.了解利用MATLAB计算系统响应的方法;验证信号与系统的基本概念、基本理论,掌握信号与系统的分析方法。
二、实训任务和要求1、熟练利用MATLAB语言编程对系统S平面分析2、掌握利用MATLAB分析系统时域的方法,熟悉系统的零输入响应,零状态响应及冲击响应的步骤。
3、MATLAB是目前国际上最流行,应用最广泛的科学与工程计算软件,它由MATLAB语言,MATLAB工作环境,MATLAB图像处理系统,MATLAB数据函数库,MATLAB应用程序接口五大部分组成的集数值计算,图形处理,程序开发为一体的功能强大的系统.它应用于自动控制,数学计算,信号分析,计算机技术,图像信号处理,财务分析,航天工业,汽车工业,生物医学工程,语音处理和雷达工程等各行业,也是国高校和研究部门进行许多科学研究的重要工具。
MATLAB的基本数据单位是矩阵,它的指令表达式与数学,工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完相同的事情简捷得多。
MATLAB是“矩阵实验室”(MATrix LABoratoy)的缩写,它是以矩阵运算为基础的交互式程序语言,能够满足科学、工程计算和绘图的需求。
与其它计算机语言相比,其特点是简洁和智能化,适应科技专业人员的思维方式和书写习惯,使得编程和调试效率大大提高。
它用解释方式工作,键入持续后立即得出结果,人机交互性能好,易于调试并被科技人员所乐于接受。
特别是它可适应多种平台,并且随着计算机硬软件的更新及时升级,因此MATLAB语言在国外的大学工学院中,特别是频繁进行数值计算的电子信息类学科中,已经成为每个学生都掌握的工具了。
它大大提高了课程教学、解题作业、分析研究的效率。
《数字信号处理》Matlab实验 信通十三班 黄嘉慧 2012210389 一.实现重叠相加和重叠保留算法,完成线性卷积的分段计算(可任意指定()xn及()hn);试验报告包括: 1、 对算法的概括性说明; 重叠相加法是将待过滤的信号分割成长为N 的若干段,每一段都可以和有限时宽单位取样响应作卷积,再将过滤后的各段重叠相加。建立缓存序列,每次输入N 点序列,通过 计算x(n)和h(n) 的循环卷积实现线性卷积运算,将缓存的M‐1 点序列和卷积结果相加,并 输出前N 点作为计算结果,同时缓存后M‐1 点,如此循环,直至所有分段计算完毕,则输出序列y(n)为最终计算结果。重叠保留法相当于将想xl(n)和h(n)作循环卷积,然后找出循环卷中相当于线性的部分。在这种情况下,将序列 y(n)分为长N 的若干段,每个输入段和前一段有 M‐1 个重叠点。此时只需要将发生重叠的前 M‐1 个点舍去,保留重叠的部分并输出,则可获得序列 y(n)。 2、 源代码及流程图; 流程图: 重叠相加法:
否
开始 输入xn,hn和长度N
L点循环卷积 重叠相加输出前N点
是否完成全部数据处理
是
源代码:function y = circular_conv( x1,x2,L)%循环卷积 X1k = fft(x1,L); X2k = fft(x2,L); Yk = X1k.*X2k; y = ifft(Yk);
function [y]=overlaplus(x,h,N)%重叠相加法 lenx=length(x); M=length(h); L=N+(M-1); x=[x,zeros(1,L-1)]; K=floor(lenx/N); for k=0:K xk=x(k*N+1:k*N+N); Y(k+1,:)= circular_conv(xk,h,L); end tn=zeros(1,M-1);
for k=0:K Y(k+1,1:M-1)= Y(k+1,1:M-1)+tn; tn=Y(k+1,N+1:L); end
Y=Y(:,2:N+1)'; y=(Y(:))'; 结果: > x=[1 2 3 4 5 6 7]; h=[2 3 4 5 6 72 4 56 ]; y=overlaplus(x,h,10)
y = 7.0000 16.0000 30.0000 50.0000 142.0000 238.0000 374.0000 500.0000 615.0000 718.0000
连接输出y(n) 重叠保留法: 否 是 源代码:function y = overlapsave(x,h,N)%重叠保留法 Lx = length(x); M = length(h);
输入xn,hn和N 分段成xk(n) 填入保留值,进行分段卷积
是否处理完全部数据
输出y(n) if N N = M+1; end L = N+M-1; t = zeros(1,M-1); T = ceil(Lx/N); x = [x,zeros(1, (T+1)*N-Lx)]; y = zeros(1, (T+1)*N); for i=0:1:T xi = i*N+1; x_seg = [t,x(xi:xi+N-1)]; t = x_seg(N+1:N+M-1); y_seg = circular_conv(x_seg,h,L); y(xi:xi+N-1)=y_seg(M:N+M-1); end 结果: x=[1 2 3 4 5 6 7]; h=[2 3 4 5 6 72 4 56 ]; y=overlaplus(x,h,10)
y = 7.0000 16.0000 30.0000 50.0000 142.0000 238.0000 374.0000 500.0000 615.0000 718.0000
3、 结合教材3.5.1节作运算量分析; 若有限长因果序列x(n)和h(n)的长度分别为N 和M,计算其线性卷积y(n),需MN 次乘法运算,(M‐1)(N‐1)次加法运算。如果利用循环卷积方法,按基2 时域抽选法实现L 点FFT和IFFT。可以看出:(1)当M、N取值较大且相近时,可实现对线性卷积的快速计算;(2)当M、N 有较大差异时,线性卷积和循环卷积运算量相当,此时若希望降低线性卷积计算开销,需采用重叠相加法或重叠保留法。重叠保留法和相加运行效率与分段长度关性较强。分段数和卷积运算的序列长度为非线性关系,在实际应用中,重叠保留和相加主要用于实施信号处理,在保证实时性的要求下,输入序列的分段不能太长。 4.总结实验过程中出现的问题以及解决问题的具体措施。 利用自定义函数解决代码重复使用的问题,避免多次输入同样代码。构造分段补零不会实现,通过上网查资料后获得实现相关功能的代码 二.周期序列的谱分析 利用DFT分析模拟信号cos16axtt之频谱;试验要求: 1、 设定采样周期T并说明原因; 根据奈奎斯特取样条件,fs>=2f=2*8=16Hz,所以取fs=20Hz,T=1/f=0.05s。 2、 若令()cos(16)xnnT,确定该序列之周期N并说明原因; 2*pi/0.8pi=5/2 则N=5 3、 绘制10个周期内()xn的取值情况; T = 1/20; t = 0:T:5-T; N = 5; figure(1); xn = cos(16*pi*t); stem(0:10*N-1, xn(1:10*N)); title('10 个周期内x(n)的取值情况'); ylabel('x(n)'); xlabel('n');
4、 令1()xn表示()xn的主值序列,绘制1(())DFTxn,解释取值情况; figure(2); x1n = xn(1:N); stem(0:N-1, x1n); title('x(n)的主值序列'); ylabel('x1(n)'); xlabel('n'); figure(3); Xk = fft(x1n, N); stem(0:N-1, abs(Xk)); title('|DFT(x1(n))|'); ylabel('X1(k)'); xlabel('k');
5、 令1()xn表示()xn的任一周期,绘制1(())DFTxn,解释取值情况;
figure(4); r = 4; x2n = xn(r:r+N-1); stem(0:N-1, x2n); title('x(n)的任一周期'); ylabel('x2(n)'); xlabel('n'); figure(5); Xk = fft(x2n, N); stem(0:N-1, abs(Xk));
title('|DFT(x2(n))|'); ylabel('X2(k)'); xlabel('k');
6、 令1()xn表示()xn的2个周期,绘制1(())DFTxn,解释取值情况(参照习题3.7、3.8或3.16分析); figure(6); x3n = xn(1:2*N); stem(0:2*N-1, x3n); title('x(n)的2 个周期'); ylabel('x3(n)'); xlabel('n'); figure(7); Xk = fft(x3n, 2*N); stem(0:2*N-1, abs(Xk));
title('|DFT(x3(n))|'); ylabel('X3(k)'); xlabel('k'); 7、 (选作)若1()()()MxnxnRn,而M不是()xn周期的整数倍,绘制1(())DFTxn,解释取值情况。 figure(8); M = 8; x4n = xn(1:M); stem(0:M-1, x4n); title('x(n)*R8(n)'); ylabel('x4(n)'); xlabel('n'); figure(9); Xk = fft(x4n, M); stem(0:M-1, abs(Xk));
title('|DFT(x4(n))|'); ylabel('X4(k)'); xlabel('k'); 三.梳状滤波器的应用 录制一段自己的话音,时间长度及取样频率自定;对该段声音加入一次反射、三次反射和无穷多次反射。试验报告要求: 1、 对试验原理的说明; 回声可以认为是由原始声音衰减后的多个延迟叠加组成的,因此回声可以用延迟单元来 生成。x(n)表示原始声音信号,a 为衰减系数,T 为延迟周期,回声信号Y(n)=X(n)+a*x(n‐T) +a^2*x(n‐2T)+„„+a^k*x(n‐kT)。Z 变换后的系统函数H(z)可由梳状滤波器实现。本实验用MATLAB 中的filter(b,a,x)函数可用来仿真差分方程: a(1)*y(n)=b(1)*x(n)+b(2)*x(n‐1)+...+b(nb+1)*x(n‐nb)‐a(2)*y(n‐1)‐...‐a(na+1)*y(n‐na)。 2、 在同一张图上,绘制原声音序列()xn、加入一次反射后的声音序列1()xn、加入三次反射后的声音序列3()xn和加入无穷多次反射后的声音序列()Ixn;
其中蓝色为原声音序列x(n),粉红色为加入一次反射后的声音序列x1(n),绿色为加入 三次反射后的声音序列x3(n),红色为加入无穷多次反射后的声音序列xI(n)。
3、 结合上述各序列,分析延时、衰减系数对回声效果的影响(提示:定量考察序列()xn、1()xn、3()xn和()Ixn之间的区别)。
延时不变时,衰减系数a 从零增大到1 的过程中,回声效果由差变好再变差。a 很小时几乎听不到回声,a 在0.5(±0.1)时,回声效果最明显,a 接近1 时,声音变得很不清晰, 几乎不可识别。衰减系数不变时,延时T 从零增大的过程中,回声效果由差变好再变差。T 接近0 时,可以听到回声,但多次回声的层次感不清晰。0.1s次回声层次感强。T>1s 时,回声感不强,感觉只是单纯地对输入声音的重复。
备注: