北邮Matlab实验报告概论
MATLAB实验报告

MATLAB实验报告一、实验目的本次 MATLAB 实验旨在深入了解和掌握 MATLAB 软件的基本操作和应用,通过实际编程和数据处理,提高解决问题的能力,培养编程思维和逻辑分析能力。
二、实验环境本次实验使用的是 MATLAB R2020a 版本,运行在 Windows 10 操作系统上。
计算机配置为英特尔酷睿 i5 处理器,8GB 内存。
三、实验内容(一)矩阵运算1、矩阵的创建使用直接输入、函数生成和从外部文件导入等方式创建矩阵。
例如,通过`1 2 3; 4 5 6; 7 8 9` 直接输入创建一个 3 行 3 列的矩阵;使用`ones(3,3)`函数创建一个 3 行 3 列元素全为 1 的矩阵。
2、矩阵的基本运算包括矩阵的加减乘除、求逆、转置等。
例如,对于两个相同维度的矩阵`A` 和`B` ,可以进行加法运算`C = A + B` 。
3、矩阵的特征值和特征向量计算通过`eig` 函数计算矩阵的特征值和特征向量,加深对线性代数知识的理解和应用。
(二)函数编写1、自定义函数使用`function` 关键字定义自己的函数,例如编写一个计算两个数之和的函数`function s = add(a,b) s = a + b; end` 。
2、函数的调用在主程序中调用自定义函数,并传递参数进行计算。
3、函数的参数传递了解值传递和引用传递的区别,以及如何根据实际需求选择合适的参数传递方式。
(三)绘图功能1、二维图形绘制使用`plot` 函数绘制简单的折线图、曲线等,如`x = 0:01:2pi; y = sin(x); plot(x,y)`绘制正弦曲线。
2、图形的修饰通过设置坐标轴范围、标题、标签、线条颜色和样式等属性,使图形更加清晰和美观。
3、三维图形绘制尝试使用`mesh` 、`surf` 等函数绘制三维图形,如绘制一个球面`x,y,z = sphere(50); surf(x,y,z)`。
(四)数据处理与分析1、数据的读取和写入使用`load` 和`save` 函数从外部文件读取数据和将数据保存到文件中。
4)MATLAB实验报告

4)MATLAB实验报告MATLAB实验报告一、引言MATLAB是一种强大的数学软件,广泛应用于科学研究、工程设计和数据分析等领域。
本实验报告旨在介绍使用MATLAB进行数据处理和可视化的基本方法,并通过实例展示其应用。
二、数据处理1. 数据导入与读取在MATLAB中,可以使用load函数或importdata函数导入外部数据文件。
load函数适用于导入MATLAB格式的数据文件,而importdata函数可以导入多种格式的数据文件,如文本文件、Excel文件等。
2. 数据清洗与转换数据清洗是指对原始数据进行去除异常值、缺失值填充等处理,以保证数据的准确性和完整性。
MATLAB提供了丰富的函数和工具箱,如统计工具箱、优化工具箱等,可以方便地进行数据清洗和转换操作。
3. 数据分析与建模MATLAB具有强大的数学和统计分析功能,可以进行数据的描述性统计、回归分析、时间序列分析等。
通过使用相关函数和工具箱,可以对数据进行深入分析,并建立相应的数学模型。
三、数据可视化1. 统计图表MATLAB提供了丰富的绘图函数和工具箱,可以绘制各种统计图表,如直方图、散点图、箱线图等。
这些图表可以直观地展示数据的分布、关系和趋势,有助于更好地理解和解释数据。
2. 三维可视化除了二维图表外,MATLAB还支持三维数据的可视化。
通过使用plot3函数、mesh函数等,可以将三维数据以曲线、曲面等形式展示出来,进一步提供对数据的深入理解。
3. 动态可视化MATLAB还支持动态可视化,即通过动画或交互式图形来展示数据的变化过程。
通过使用animate函数、interactiveplot函数等,可以将数据的变化以动态的方式展示出来,增加数据分析和呈现的趣味性。
四、实例应用以某电商平台销售数据为例,展示如何使用MATLAB进行数据处理和可视化。
首先,导入销售数据文件,清洗数据,去除异常值和缺失值。
然后,通过统计分析,计算销售额、销量、平均价格等指标,并绘制相应的统计图表。
(最新版)MATLAB实验报告

(最新版)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”窗口。
北京邮电大学_dsp_matlab实验报告

数字信号处理实验报告实验名称:数字信号处理实验学生姓名:班级:班内序号:1.实验要求假设信号x(n) 由下述信号组成:请选择合适的长度N 和窗函数,用DFT 分析其频谱,得到清楚的三根谱线。
2.实验代码和实验结果N = 1000; % Length of DFTn = [0:1:N-1];xn = 0.001*cos(0.45*n*pi)+sin(0.3*n*pi)-cos(0.302*n*pi-pi/4);Xk = fft(xn,N);k=[0:1:N-1];subplot(5,1,1);stem(k,abs(Xk(1:1:N)));title('DFT x(n)');xlabel('k');axis([140,240,0,6])subplot(5,1,2);stem(k, abs(Xk(1:1:N)),'r');%画出sin(0.3npi)-cos(0.302npi-pi/4) axis([140,160,0,6]);title('sin(0.3*pi*n)-cos(0.302*pi*n) ');xlabel('k');subplot(5,1,3);stem(k, 1000*abs(Xk(1:1:N)),'g');%画出0.001*cos(0.45npi)axis([220,230,0,6]);title('cos(0.45*pi*n) ');xlabel('k');subplot(5,1,4);stem(k,0.01*abs(Xk(1:1:N)),'k');%画%sin(0.3npi)-cos(0.302npi-pi/4)axis([140,160,0,6]);title('sin(0.3*pi*n)-cos(0.302*pi*n) ');xlabel('k');subplot(5,1,5);stem(k, 10*abs(Xk(1:1:N)),'m');%画出0.001*cos(0.45npi)axis([220,230,0,6]);title('cos(0.45*pi*n) ');xlabel('k');结论:由上图及过程可知,当DFT变换长度为1000时所得到的谱线非常理想。
matlab实验报告

MATLAB实验报告姓名:学号: 0905130129专业班级:通信工程1301班学院:信息科学与工程学院指导老师:陈科文、支国明、张金焕、周扬目录实验一熟悉MATLAB环境 (3)[实验目的] (3)[实验原理] (3)[实验内容] (4)[实验结果] (5)[实验遇到的问题及解决] (11)实验二数值数组创建、应用及可视化 (12)[实验目的] (12)[实验原理] (12)[实验内容] (13)[实验结果] (15)[实验遇到的问题及解决] (20)实验三字符串数组的使用、简单脚本文件和函数的编写 (21)[实验目的] (21)[实验原理] (21)[实验内容] (24)[实验结果] (26)[实验遇到的问题及解决] (35)实验四数据可视化方法 (35)[实验目的] (35)[实验原理] (35)[实验内容] (37)[实验结果] (39)[实验遇到的问题及解决] (46)总结 (46)实验一熟悉MATLAB环境[实验目的]1 .熟悉MATLAB 主界面,并学会简单的菜单操作。
2 .学会简单的矩阵输入与信号输入。
3 .掌握部分绘图函数。
[实验原理]MATLAB 是以复杂矩阵作为基本编程单元的一种程序设计语言。
它提供了各种矩阵的运算与操作,并有较强的绘图功能。
用户第一次使用MATLAB 时,建议首先在屏幕上键入demo 命令,它将启动MATLAB 的演试程序,用户可在此演示程序中领略MATLAB 所提供的强大的运算与绘图功能。
也可以键入help 进行进一步了解。
MATLAB 启动界面如图所示:操作界面主要的介绍如下:指令窗(Command Window ),在该窗可键入各种送给MATLAB 运作的指令、函数、表达式,并显示除图形外的所以运算结果。
历史指令窗(Command History ),该窗记录已经运行过的指令、函数、表达式;允许用户对它们进行选择复制、重运行,以及产生M 文件。
工作空间浏览器(Workspace Browser ),该窗口罗列出MATLAB 工作空间中所有的变量名、大小、字节数;并且在该窗中,可对变量进行观察、编辑、提取和保存。
MATLAB实验报告

v1.0 可编辑可修改实验一 MATLAB 环境的熟悉与基本运算一、实验目的及要求1.熟悉MATLAB 的开发环境; 2.掌握MATLAB 的一些常用命令;3.掌握矩阵、变量、表达式的输入方法及各种基本运算。
二、实验内容1.熟悉MATLAB 的开发环境: ① MATLAB 的各种窗口:命令窗口、命令历史窗口、工作空间窗口、当前路径窗口。
②路径的设置:建立自己的文件夹,加入到MATLAB 路径中,并保存。
设置当前路径,以方便文件管理。
2.学习使用clc 、clear ,了解其功能和作用。
3.矩阵运算:已知:A=[1 2;3 4]; B=[5 5;7 8]; 求:A*B 、A.*B ,并比较结果。
4.使用冒号选出指定元素:已知:A=[1 2 3;4 5 6;7 8 9]; 求:A 中第3列前2个元素;A 中所有列第2,3行的元素; 5.在MATLAB 的命令窗口计算: 1) )2sin(π2) 5.4)4.05589(÷⨯+ 6.关系及逻辑运算1)已知:a=[5:1:15]; b=[1 2 8 8 7 10 12 11 13 14 15],求: y=a==b ,并分析结果 2)已知:X=[0 1;1 0]; Y=[0 0;1 0],求: x&y+x>y ,并分析结果 7.文件操作1)将0到1000的所有整数,写入到D 盘下的文件 2)读入D 盘下的文件,并赋给变量num8.符号运算1)对表达式f=x 3-1 进行因式分解2)对表达式f=(2x 2*(x+3)-10)*t ,分别将自变量x 和t 的同类项合并 3)求3(1)xdz z +⎰三、实验报告要求完成实验内容的3、4、5、6、7、8,写出相应的程序、结果实验二 MATLAB 语言的程序设计一、实验目的1、熟悉 MATLAB 程序编辑与设计环境2、掌握各种编程语句语法规则及程序设计方法3、函数文件的编写和设计4、了解和熟悉变量传递和赋值二、实验内容1.编写程序,计算1+3+5+7+…+(2n+1)的值(用input 语句输入n 值)。
matlab实验报告总结精选

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仿真试验>实验报告班级: xxx学院: xxx实验室: xxx 审阅教师:姓名(班内序号): xxx 学号: xxx实验时间: xxx评定成绩:目录实验一:数字信号的FFT 分析 (2)1、实验内容及要求 (2)(1)离散信号的频谱分析 (2)(2)DTMF信号频谱分析 (2)2、实验目的 (2)3、分析设计 (2)(1)离散信号的频谱分析 (2)(2)DTMF信号频谱分析 (3)4、设计结果 (4)(1)离散信号的频谱分析 (4)(2)DTMF信号频谱分析 (4)实验二:DTMF 信号的编码 (5)1、实验内容及要求 (5)2、实验目的 (6)3、分析设计 (6)4、设计结果 (7)实验三:FIR 数字滤波器的设计和实现 (8)1、实验内容及要求: (8)2、实验目的 (8)3、分析设计 (8)4、设计结果 (13)实验一:数字信号的 FFT 分析1、实验内容及要求(1)离散信号的频谱分析设信号00010450303024().*cos(.)sin(.)cos(.)x n n n n ππππ=+--此信号的0.3pi 和0.302pi 两根谱线相距很近,谱线0.45pi 的幅度很小,请选择合适的序列长度N 和窗函数,用DFT 分析其频谱,要求得到清楚的三根谱线。
(2)DTMF 信号频谱分析用计算机声卡采用一段通信系统中电话双音多频(DTMF )拨号数字0~9的数据,采用快速傅立叶变换(FFT )分析这10个号码DTMF 拨号时的频谱。
2、实验目的通过本次实验,应该掌握:(a)用傅立叶变换进行信号分析时基本参数的选择。
(b)经过离散时间傅立叶变换(DTFT )和有限长度离散傅立叶变换(DFT )后信号频谱上的区别,前者DTFT 时间域是离散信号,频率域还是连续的,而DFT 在两个域中都是离散的。
(c)离散傅立叶变换的基本原理、特性,以及经典的快速算法(基2时间抽选法),体会快速算法的效率。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《数字信号处理》Matlab 实验
一.实现重叠相加和重叠保留算法,完成线性卷积的分段计算(可任意指定()x n 及()h n );
1、 对算法的概括性说明;
1)重叠相加法
重叠相加法是将待过滤的信号分割成长为N 的若干段,每一段都可以和有限时宽单位取
样响应作卷积,再将过滤后的各段重叠相加。
具体算法实现:建立缓存序列,每次输
入N 点序列,通过计算x(n)和h(n) 的循环卷积实现线性卷积运算,将缓存的M-1点序
列和卷积结果相加,并输出前N 点作为计算结果,同时缓存后M-1点,如此循环,直至
所有分段计算完毕,则输出序列y(n)为最终计算结果。
2)重叠保留法
重叠保留法相当于将x l (n )和h(n )作循环卷积,然后找出循环卷积中相当于线性卷积的部
分。
在这种情况下,将序列y(n)分为长为N 的若干段,每个输入段和前一段有M-1个重
叠点 。
此时只需要将发生重叠的前M-1个点舍去,保留重叠的部分并输出,则可获得序
列y(n)。
2、源代码及流程图;
2.1 源代码:
function[y] = overlap_add(x,h,N)
M = length(h);
if N<M
N = M+1;
end
L = M+N-1;
Lx = length(x);
T = ceil(Lx/N);
t = zeros(1,M-1);
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 = x(xi:xi+N-1);
y_seg = circular_conv(x_seg,h,L);
y_seg(1:M-1) = y_seg(1:M-1)+t(1:M-1); t(1:M-1) = y_seg(N+1:L);
y(xi:xi+N-1) = y_seg(1:N);
end
y = y(1:Lx+M-1);
end
function[y] = overlap_save(x,h,N)
Lx = length(x);
M = length(h);
if N<M
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
y = y(1:Lx+M-1);
end
function[y] = circular_conv(x1,x2,L) X1k = fft(x1,L);
X2k = fft(x2,L);
Yk = X1k.*X2k;
y = ifft(Yk);
end
n = 0:9;
xn = n+1;
hn = [1,0,-1];
N = 6;
y1 = conv(hn,xn)
y2 = overlap_add(xn,hn,N)
y3 = overlap_save(xn,hn,N)
2.2流程图
1)重叠相加法
2)重叠保留法
3、实验结果;
4、结合教材3.5.1节作运算量分析;
重叠相加法和重叠保留法的算法的时间复杂度均为O(n),空间复杂度均为O(1),二者都具有较好的时间和空间复杂度。
5、总结实验过程中出现的问题以及解决问题的具体措施。
①运算完整性问题
在写好代码之后的测试中,出现了一个十分奇怪的现象,即:当输入点数为1000、10000
或者更大时卷积运算最后M-1个结果为0.反复测试发现,不仅1000和10000,只要是分
段数N 的倍数的输入点数都存在同样问题,而其他非倍数的输入,运算与conv() 函数运
算结果完全一致。
通过设置断点,逐句调试,最终发现问题的症结,当输入序列为N 的
倍数时,最后的一段卷积实际上没有做。
因而将循环次数增加1,将最后一次保留的M-1
个点补全N 个0,做最后一次分段卷积。
修改后,测试结果正确。
②算法硬件实现
第一, 重叠保留和重叠相加算法在硬件实现时将算法中的临时变量都化为缓存,所以考
虑缓存的大小限制,不能将输入序列分段过长,否则所需的缓存将加大,成本加
大。
第二, 接收延时和处理延时两者存在矛盾,减少分段长度,可减少接收延时但会增加处
理延时,同理,增大分段长度,可减少处理延时,但将增加接收延时。
具体实现
时需要综合考虑两者的作用,去最优化值。
二.周期序列的谱分析
利用DFT 分析模拟信号()()cos 16a x t t π=之频谱;试验要求:
1、 设定采样周期T 并说明原因;
取T= 1/20,理由:f = 8,fs≥2f,所以取T = 1/20。
2、 若令()cos(16)x n nT π=,确定该序列之周期N 并说明原因;
N= 5。
2π/(16πT )=5/4,周期为整数,所以N= 5。
3、 绘制10个周期内()x n 的取值情况;
4、 令1()x n 表示()x n 的主值序列,绘制1(())DFT x n ,解释取值情况;
所得X1(k)取值即为x(n)的5点(一个周期内)DFT 结果,为清晰谱线。
5、 令1()x n 表示()x n 的任一周期,绘制1(())DFT x n ,解释取值情况;
所得X2(k)取值与x(n)主值序列DFT 结果相同。
因为DFT 是反映信号的频域特性,所以同
为一个周期,频域特性一定相同,无论起始位置如何,其DFT 情况都相同。
6、 令1()x n 表示()x n 的2个周期,绘制1(())DFT x n ,解释取值情况(参照习题3.
7、3.8
或3.16分析);
所得X3(k)是在x(n)主值序列DFT 结果的基础上插入取值为零的点,将点数提高至10,仍
为清晰谱线。
因为选取了2个周期,所以DFT 点数是X1(k)的2倍。
因为取的周期的整数
倍,所以可以得到清晰谱线。
7、 (选作)若1()()()M x n x n R n =⨯,而M 不是()x n 周期的整数倍,绘制1(())DFT x n ,解
释取值情况。
所得X4(k)是非周期整数倍点数的DFT ,不是清晰谱线。
因为选取了1.3个周期,不是周
期的整数倍,选取的x4(n)没有体现出x(n)的周期特性,所以得到的谱线的形状特征必然
与X1(k)、X2(k)、X3(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、 在同一张图上,绘制原声音序列()x n 、加入一次反射后的声音序列1()x n 、加入三次反射
后的声音序列3()x n 和加入无穷多次反射后的声音序列()I x n ;
其中蓝色为原声音序列x(n),粉红色为加入一次反射后的声音序列x1(n),绿色为加入三次反射后的声音序列x3(n),红色为加入无穷多次反射后的声音序列x1(n)。
3、结合上述各序列,分析延时、衰减系数对回声效果的影响(提示:定量考察序列()
x n、
1()
x n、
3()
x n和()
I
x n之间的区别)。
延时不变时,衰减系数 a 从零增大到 1 的过程中,回声效果由差变好再变差。
a 很小时,几乎听不到回声,a 在 0.5(±0.1)时,回声效果最明显,a 接近 1 时,声音变得很不清晰,几乎不可识别。
衰减系数不变时,延时 T 从零增大的过程中,回声效果由差变好再变差。
T接近 0 时,可以听到回声,但多次回声的层次感不清晰。
0.1s<T<1s 时,回声效果最好,多次回声层次感强。
T>1s 时,回声感不强,感觉只是单纯地对输入声音的重复。