北邮dspmatlab实验三和四报告
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` 函数从外部文件读取数据和将数据保存到文件中。
(最新版)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实验报告班别:09电气3班姓名:李嘉明学号:200924122301实验一/二 MATLAB的基础操作3.自定义一个变量,然后分别用8种不同的数字显示格式显示查看。
>> a=[1.1,1.2,1.3;1.4,1.5,1.6;1.7,1.8,1.9]a =1.1000 1.2000 1.30001.4000 1.5000 1.60001.7000 1.8000 1.9000>> format long>> aa =1.100000000000000 1.200000000000000 1.3000000000000001.400000000000000 1.500000000000000 1.6000000000000001.700000000000000 1.800000000000000 1.900000000000000>> format short e>> aa =1.1000e+000 1.2000e+000 1.3000e+0001.4000e+000 1.5000e+000 1.6000e+0001.7000e+000 1.8000e+000 1.9000e+000>> format long e>> aa =1.100000000000000e+000 1.200000000000000e+000 1.300000000000000e+0001.400000000000000e+000 1.500000000000000e+000 1.600000000000000e+0001.700000000000000e+000 1.800000000000000e+000 1.900000000000000e+000 >> format hex>> aa =3ff199999999999a 3ff3333333333333 3ff4cccccccccccd3ff6666666666666 3ff8000000000000 3ff999999999999a3ffb333333333333 3ffccccccccccccd 3ffe666666666666>> format +>> aa =+++++++++>> format rat>> aa =11/10 6/5 13/107/5 3/2 8/517/10 9/5 19/10>> format short>> aa =1.1000 1.2000 1.30001.4000 1.5000 1.60001.7000 1.8000 1.90005、己举例比较给矩阵的全行赋值,取出矩阵中某一个或几个元素,然后组成一个新的矩阵。
北邮DSP Matlab仿真实验
《数字信号处理》Matlab 实验一. 离散信号的 FFT 分析 知识点:利用FFT 对信号频谱进行分析,用DFT 进行信号分析时基本参数的选择,以及信号经过离散时间傅立叶变换(DTFT )和有限长度离散傅立叶变换(DFT )后信号频谱上的区别。
实验教学内容:1.用Matlab 编程上机练习。
已知: N=25。
这里Q=+。
可以推导出 ,首先根据这个式子计算X(k)的理论值,然后计算输入序列x(n)的32个值,再利用基2时间抽选的FFT 算法,计算x(n)的DFT X(k),与X(k)的理论值比较(要求计算结果最少6位有效数字)。
解:format long Q=+;WN=exp(-2*pi*1i/32); Xk=(1-Q^32)./(1-Q*WN.^[0:24]); xn=Q.^[0:24]; Xkfft=fft(xn,32); for (k0=1:1:25)difference=Xk(k0)-Xkfft(k0); end;subplot(3,1,1);stem(abs(Xk(1:1:24)),'.');title('DFT x(n)');xlabel('k');axis([0,35,0,15]); subplot(3,1,2);stem(abs(Xkfft(1:1:32)),'g.');title('FFT x(n)');xlabel('k');axis([0,35,0,15]); subplot(3,1,3);stem(abs(difference(1:1:25)),'r.');title('Xk-Xkfft');xlabel('k');axis([0,35,0,15]);0n N-1()0 n 0, n Nn Q x n ⎧≤≤=⎨<≥⎩11,011)()()(k k1nk1-=--===∑∑-=-=N k QW Q QW W n x k X N NnN N n NN n Λ,2.假设信号 x(n) 由下述信号组成:请选择合适的长度 N 和窗函数,用 DFT 分析其频谱,得到清楚的三根谱线。
matlab实践报告
竭诚为您提供优质文档/双击可除matlab实践报告篇一:matlab实习报告mATLAb实习报告姓名:吴涛专业:电子信息工程班级学号:信息(2)班20XX1605010230指导教师:宋艳霞钱云实习时间:20XX,5,13至20XX,5,17目录:一:实习目的 (3)二:实习任务...........................三:实习要求...........................四:实习目的...........................五:实习体会...........................一:实习目的熟悉matlab的软件环境熟悉matlab的基本使用方法二:实习任务1.掌握matlab语言的基本语法规则及基本操作命令的使用。
2.熟悉运用matlab的数组,矩阵运算,数学运算的运算方法。
3.熟悉matlab的字符串,单元数组。
4.熟悉matlab的程序设计。
5.熟悉matlab的符号计算功能。
6.熟悉matlab的绘图及句柄图形。
7.6熟悉matlab的guI设计。
三:实习要求1.每次上机要签到,记录。
2.做的题目要在上机结束后以电子版和woRD文档形式交给指定负责人。
3.认真做一份实习总结报告。
四:实习内容共六题第1题:求a和b的和。
代码:a=[1,2,3]b=[4,5,6]s=a+b结果:s=579第2题:求a和b的差。
代码:a=[4,5,6]b=[1,2(:matlab实践报告),3]h=a-b结果:h=333第3题:求下列方程组的解。
6x1+3x2+4x3=3-2x1+5x2+7x3=-48x2-4x2-3x3=-7代码:A=[6,3,4;-2,5,7;8,-4,-3] b=[3;-4;-7]a=A\b结果:a=0.60007.0000-5.4000第4题:用for语句求三角函数表。
代码:forx=0:0.1:pi/4disp([x,sin(x),cos(x),tan(x)]),en d结果:00100.10000.09980.99500.10030.20000.19870.98010.20270.30000.29550.95530.30930.40000.38940.92110.4228篇二:matlab课程实践报告mATLAb实践》课程设计学生姓名:林淑真学号:110900824专业班级:通信工程四班指导教师:郑晓明二○一二年六月十五日《目录1.设计目的.........................................................22.题目分析.........................................................23.总体设计.........................................................34.具体设计.........................................................35.结果分析.........................................................226.心得体会.........................................................237.参考书目.........................................................238.附录 (24)1、设计目的综合运用mATLAb工具箱实现图像处理的guI程序设计。
dsp实验4
实验四IIR滤波器的DSP实现思考题:对照参考程序,编写实现四阶或更高阶数的低通、高通、带通、带阻IIR 数字滤波器的DSP程序并仿真。
提示:滤波器系数一般通过MATLAB仿真得到。
4阶低通:.title "IIR.asm".mmregs.def startx4 .usect "x",1x3 .usect "x",1x2 .usect "x",1x1 .usect "x",1x0 .usect "x",1COEF .usect "COEF",9Indata .usect "buffer",1outdata .usect "buffer",1*PA0 .set 10*PA1 .set 1.datatable.word 0 ;x(n-1).word 0 ;x(n-2).word 0;x(n-3).word 0;x(n-4).word 0 ;分子系数B3=0.word 15*32768/10000;B3=0.0015.word 78*32768/10000;分子系数B2=0.0078.word 25*32768/10000 ;分子系数B1=0.0025.word 0;分子系数B0=0.word 3783*32768/10000;分母系数A4=0.3783.word -6258*32768/10000 ;分母系数A3=-1.8776/3.word 88705*32768/100000 ;分母系数A2=3.5482/4.word -826775*32768/1000000;分母系数A1=-3.0372/4.textstart: SSBX FRCTSTM #x4,AR1RPT #3MVPD #table,*AR1+STM #indata,AR5STM #outdata,AR2STM #COEF,AR1RPT #8MVPD #table+2,*AR1+STM #x2,AR3STM #COEF+9,AR4;AR4-->A1MVMM AR4,AR1 ;保存地址值在AR1中STM #5,BK ;设置循环缓冲区长度STM #-1,AR0 ;设置变址寻址步长IIR2: ;PORTR PA1,*AR3;从PA1口输入数据x(n)MVDD *AR5,*AR3 ;在这里设置断点与探针LD *AR3+0%,16,A;计算反馈通道,A=x(n)MAC *AR3,*AR4,A;A=x(n)+A1*x1MAC *AR3,*AR4,A;A=x(n)+2A1*x1MAC *AR3,*AR4,A;A=x(n)+3A1*x1MAC *AR3+0%,*AR4-,A;A=x(n)+3*A1*x1+A1*x1MAC *AR3+0%,*AR4-,A ;A=x(n)+4*A1*x1+A2*x2MAC *AR3,*AR4,A;A=x(n)+4*A1*x1 +2*A2*x2MAC *AR3,*AR4,A;A=x(n)+4*A1*x1 +3*A2*x2MAC *AR3+0%,*AR4-,A ;A=x(n)+4*A1*x1+4*A2*x2MAC *AR3+0%,*AR4-,A;A=x(n)+4*A1*x1+4*A2*x2+A3*x3MAC *AR3,*AR4,A;A=x(n)+4*A1*x1+4*A2*x2+2*A3*x3MAC *AR3+0%,*AR4-,A ;A=x(n)+4*A1*x1+4*A2*x2+3*A3*x3MAC *AR3+0%,*AR4-,A ;A=x(n)+4*A1*x1+4*A2*x2+2*A3*x3+A4*x4 STH A,*AR3 ;保存x0MPY *AR3+0%,*AR4-,A;计算前向通道,A=B0*x0MAC *AR3+0%,*AR4-,A;A=B0*x0+B1*x1MAC *AR3+0%,*AR4-,A ;A=B0*x0+B1*x1+B2*x2MAC *AR3,*AR4-,A;B=B0*x0+B1*x1+B2*x2+B3*x3=y(n)STH A,*AR3 ;保存y(n)MVMM AR1,AR4 ;AR4重新指向A1BD IIR2 ;循环; PORTW *AR3,PA0;向PA0口输出数据MVDD *AR3,*AR2 ;在这里设置断点与探针nop.end高通:*用双操作数指令实现二阶高通IIR滤波器**反馈通道:x0=w(n)=x(n)+A1*x1+A2*x2+A3*x3+A4*x4 前向通道:y(n)=B0*x0+B1*x1+B2*x2+B3*x3+B4*x4 *.title "IIR2.asm".mmregs.def startx4 .usect "x",1x3 .usect "x",1x2 .usect "x",1x1 .usect "x",1x0 .usect "x",1COEF .usect "COEF",9indata .usect "buffer",1outdata .usect "buffer",1*PA0 .set 10*PA1 .set 1.datatable .word 0.word 0.word 0.word 0.word 0.word 2754*32768/10000 ;分子系数B4=0.2754.word -551*32768/1000;分子系数B3/2=-0.551.word 413*32768/1000 ;分子系数B2/4=0.413.word -551*32768/1000;分子系数B1/2=-0.551.word 2754*32768/10000 ;分子系数B0=0.2754.word -762*32768/10000;分母系数A4=-0.0762.word 7415*32768/10000 ;分母系数A3=0.4844.word -319*32768/1000;分母系数A2/4=-0.319.word 3925*32768/10000 ;分母系数A1/4=0.3925.textstart: SSBX FRCTSTM #x4,AR1RPT #4MVPD #table,*AR1+STM #indata,AR5STM #outdata,AR2STM #COEF,AR1RPT #8MVPD #table+5,*AR1+STM #COEF+8,AR4;AR4-->A1MVMM AR4,AR1 ;保存地址值在AR1中STM #5,BK ;设置循环缓冲区长度STM #-1,AR0 ;设置变址寻址步长STM #x4,AR3IIR2: ;PORTR PA1,*AR3 ;从PA1口输入数据x(n) MVDD *AR5,*AR3 ;在这里设置断点与探针LD *AR3+0%,16,A;计算反馈通道,A=x(n)RPT #2MAC *AR3,*AR4,A;3*A1*x1 ???MAC *AR3+0%,*AR4-,A ;A=x(n)+4*A1*x1RPT #2MAC *AR3,*AR4,A;4*A2*x2 ???MAC *AR3+0%,*AR4-,A ;A=x(n)+4*A1*x1+5*A2*x2MAC *AR3+0%,*AR4-,A;A=x(n)+4*A1*x1+5*A2*x2+4*A3*x3MAC *AR3+0%,*AR4-,A;A=x(n)+4*A1*x1+5*A2*x2+4*A3*x3+A4*x4STH A,*AR3 ;保存x0MPY *AR3+0%,*AR4-,A;计算前向通道,A=B0*x0MAC *AR3,*AR4,A ;3*B1*x1MAC *AR3+0%,*AR4-,A ;A=B0*x0+4*B1*x1RPT #2MAC *AR3,*AR4,A;4*A2*x2 ???MAC *AR3+0%,*AR4-,A ;A=B0*x0+4*B1*x1+5*B2*x2MAC *AR3,*AR4,A ;3*B3*x3MAC *AR3+0%,*AR4-,A;A=B0*x0+4*B1*x1+5*B2*x2+4*B3*x3MAC *AR3,*AR4,A;B=A=B0*x0+4*B1*x1+5*B2*x2+4*B3*x3+B4*x4=y(n)STH A,*AR3 ;保存y(n)MVMM AR1,AR4 ;AR4重新指向A1BD IIR2 ;循环; PORTW *AR3,PA0;向PA0口输出数据MVDD *AR3,*AR2 ;在这里设置断点与探针nop.end带阻:.title "IIR2.asm".mmregs.def startx4 .usect "x",1x3 .usect "x",1x2 .usect "x",1x1 .usect "x",1x0 .usect "x",1COEF .usect "COEF",9indata .usect "buffer",1outdata .usect "buffer",1*PA0 .set 10*PA1 .set 1.datatable .word 0.word 0.word 0.word 0.word 0.word 8004*32768/10000 ;分子系数B4=0.8004.word -6475*32768/10000;分子系数B3/4=-0.6475.word 924*32768/1000 ;分子系数B2/4=0.924.word -6475*32768/10000;分子系数B1/4=-0.6475.word 8004*32768/10000 ;分子系数B0=0.8004.word -6411*32768/10000;分母系数A4=-0.6411.word 575*32768/1000 ;分母系数A3/4=0.575.word -914*32768/1000;分母系数A2/4=-0.914.word 7202*32768/10000 ;分母系数A1/4=0.7202.textstart: SSBX FRCTSTM #x4,AR1RPT #4MVPD #table,*AR1+STM #indata,AR5STM #outdata,AR2STM #COEF,AR1RPT #8MVPD #table+5,*AR1+STM #COEF+8,AR4;AR4-->A1MVMM AR4,AR1 ;保存地址值在AR1中STM #5,BK ;设置循环缓冲区长度STM #-1,AR0 ;设置变址寻址步长STM #x4,AR3IIR2: ;PORTR PA1,*AR3;从PA1口输入数据x(n)MVDD *AR5,*AR3 ;在这里设置断点与探针LD *AR3+0%,16,A;计算反馈通道,A=x(n)RPT #2MAC *AR3,*AR4,A;3*A1*x1MAC *AR3+0%,*AR4-,A ;A=x(n)+4*A1*x1RPT #2MAC *AR3,*AR4,A;3*A2*x2 ???MAC *AR3+0%,*AR4-,A ;A=x(n)+4*A1*x1+4*A2*x2 RPT #2MAC *AR3,*AR4,A;3*A3*x3 ???MAC *AR3+0%,*AR4-,A ;A=x(n)+A1*x1+4*A2*x2+4*A3*x3MAC *AR3+0%,*AR4-,A;A=x(n)+A1*x1+4*A2*x2+4*A3*x3+A4*x4STH A,*AR3 ;保存x0MPY *AR3+0%,*AR4-,A;计算前向通道,A=B0*x0RPT #2MAC *AR3,*AR4,A;3*B1*x1 ???MAC *AR3+0%,*AR4-,A ;A=B0*x0+4*B1*x1RPT #2MAC *AR3,*AR4,A;3*B2*x2 ???MAC *AR3+0%,*AR4-,A ;A=B0*x0+4*B1*x1+4*B2*x2 RPT #2MAC *AR3,*AR4,A;3*B3*x3 ???MAC *AR3+0%,*AR4-,A;A=B0*x0+4*B1*x1+4*B2*x2+4*B3*x3MAC *AR3,*AR4,A;B=A=B0*x0+B1*x1+B2*x2+B3*x3+B4*x4=y(n)STH A,*AR3 ;保存y(n)MVMM AR1,AR4 ;AR4重新指向A1BD IIR2 ;循环; PORTW *AR3,PA0;向PA0口输出数据MVDD *AR3,*AR2 ;在这里设置断点与探针nop.end带通:.title "IIR2.asm".mmregs.def startx4 .usect "x",1x3 .usect "x",1x2 .usect "x",1x1 .usect "x",1x0 .usect "x",1 COEF .usect "COEF",9 indata .usect "buffer",1 outdata .usect "buffer",1 *PA0 .set 10*PA1 .set 1.datatable .word 0.word 0.word 0.word 0.word 0.word 201*32768/10000 ;分子系数B4=0.0201.word 0*32768/10000;分子系数B3=0.word -402*32768/10000 ;分子系数B2=-0.0402.word 0*32768/10000;分子系数B1=0.word 201*32768/10000 ;分子系数B0=0.0201.word -6411*32768/10000;分母系数A4=-0.6411.word 575*32768/10000 ;分母系数A3/4=0.575.word -914*32768/1000;分母系数A2/4=-0.914.word 7202*32768/10000 ;分母系数A1=0.7202.textstart: SSBX FRCTSTM #x4,AR1RPT #4MVPD #table,*AR1+STM #indata,AR5STM #outdata,AR2STM #COEF,AR1RPT #8MVPD #table+5,*AR1+STM #COEF+8,AR4;AR4-->A1MVMM AR4,AR1 ;保存地址值在AR1中STM #5,BK ;设置循环缓冲区长度STM #-1,AR0 ;设置变址寻址步长STM #x4,AR3IIR2: ;PORTR PA1,*AR3;从PA1口输入数据x(n)MVDD *AR5,*AR3 ;在这里设置断点与探针LD *AR3+0%,16,A;计算反馈通道,A=x(n)MAC *AR3+0%,*AR4-,A ;A=x(n)+A1*x1RPT #2MAC *AR3,*AR4,A;3*A2*x2 ???MAC *AR3+0%,*AR4-,A;A=x(n)+4*A1*x1+4*A2*x2RPT #2MAC *AR3,*AR4,A ;3*A3*x3MAC *AR3+0%,*AR4-,A;A=x(n)+A1*x1+4*A2*x2+4*A3*x3MAC *AR3+0%,*AR4-,A;A=x(n)+A1*x1+4*A2*x2+4*A3*x3+A4*x4STH A,*AR3 ;保存x0MPY *AR3+0%,*AR4-,A ;计算前向通道,A=B0*x0MAC *AR3+0%,*AR4-,A ;A=B0*x0+B1*x1MAC *AR3+0%,*AR4-,A ;A=B0*x0+B1*x1+B2*x2MAC *AR3+0%,*AR4-,A;A=B0*x0+B1*x1+B2*x2+B3*x3MAC *AR3,*AR4,A;B=A=B0*x0+B1*x1+B2*x2+B3*x3+B4*x4=y(n)STH A,*AR3 ;保存y(n)MVMM AR1,AR4 ;AR4重新指向A1BD IIR2 ;循环; PORTW *AR3,PA0;向PA0口输出数据MVDD *AR3,*AR2 ;在这里设置断点与探针nop.end。
北邮Matlab实验报告概论
《数字信号处理》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<MN = M+1;endL = 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:Txi = 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);endy = y(1:Lx+M-1);endfunction[y] = overlap_save(x,h,N)Lx = length(x);M = length(h);if N<MN = M+1;endL = 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:Txi = 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); endy = y(1:Lx+M-1);endfunction[y] = circular_conv(x1,x2,L) X1k = fft(x1,L);X2k = fft(x2,L);Yk = X1k.*X2k;y = ifft(Yk);endn = 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),二者都具有较好的时间和空间复杂度。
DSP实验报告 (使用MatLab)
××××大学实验报告实验名称采样、系统性质及滤波系统频率响应和样本处理算法实现加窗和离散傅氏变换数字滤波器设计陷波器设计课程名称______数字信号处理_______班级学号_______ __________ 姓名_______ ____________开课时间 20 /20 学年,第学期实验一1实验名称: 采样、系统性质及滤波2实验目的和任务,实验内容一、观察采样引起的混叠设模拟信号为)3sin()2sin(4)5cos()(t t t t x πππ⋅+=,t 的单位为毫秒(ms)。
(1)设采样频率为3kHz ,确定与)(t x 混叠的采样重建信号)(t x a 。
(2)画出)(t x 和)(t x a 在)(60ms t ≤≤范围内的连续波形。
(因数字计算机无法真正画出连续波形,可用较密的离散点的连线来近似。
) (3)分别用"" 和""⨯在两信号波形上标记出3kHz 采样点。
两信号波形是否相同?采样后的两序列是否相同?二、判别离散时间系统的时不变性设输入序列为)(n x ,系统)2()(n x n y =实现对)(n x 的抽取。
(1)设500,...,2,1),1002sin()(==n n n x π。
取延迟量D (例如D =30)。
记)()(D n x n x D -=,画出)(n x 、)(n x D 的序列波形。
(2)编程求出系统对)(n x 的响应)(n y 以及对)(n x D 的响应)(n y D (3)画出)(D n y -、)(n y D 的波形。
三、利用卷积计算出输入信号通过FIR 滤波器的输出,并观察输出信号的input-on 暂态、input-off 暂态和稳态部分。
1.考虑下面两个滤波器,第一个的单位脉冲响应为⎩⎨⎧≤≤*=其它0140)75.0(25.0n h nn ,另一个的单位脉冲响应为]1,5,10,105,1[51--=,-h ;输入为周期方波,在一个周期内⎩⎨⎧≤≤≤≤=492502401)(x x n x 。
MATLAB实验报告北京邮电大学
Matlab实验报告学院:信息与通信工程学院班级:201321113学号:2013210381班内序号:18姓名:石雪原实验题目1.实现重叠相加和重叠保留算法一.实验原理重叠相加法和重叠保留法的实质都是以逐段地方式通过循环卷积来完成线性卷积的计算。
将输入序列x (n)进行分段,每段长为N,且N>M(M为有限长因果序列h (n)的长度),x (n) 逐段与h (n)进行循环卷积,在重叠保留法中需在x (n)序列首部加入长度为M-1的0序列。
在算法中,在获得N个点的输入后,进行N+M-1点循环卷积计算,之后输出N个点。
通过for循环逐段进行循环卷积,使用FFT和IFFT 计算两个有限长序列的N点循环卷积结果。
二.源代码和流程图重叠相加法代码function [Y]=overpl(x,h,N)Lx=length(x); % 序列长度M=length(h); %h (n )长度x=[x,zeros(1,N-1)];t=zeros(1,M-1);Y=zeros(1,Lx+M-1);a=floor(Lx/N);for k=0:aA=x(k*N+1:k*N+N);y1=fft(A,Lx+M-1); % 利用fft 进行运算y2=fft(h,Lx+M-1);y3=y1.*y2;q=ifft(y3,Lx+M-1);Y(k*N+1:k*N+M-1)=q(1:M-1)+t(1:M-1);Y(k*N+M:k*N+N)=q(M:N);t(1:M-1)=q(N+1:N+M-1);endY(1:Lx+M-1);对应流程图图一:每段利用fft和ifft实现循环卷积图二:对X (n)逐段进行循环卷积然后相加得输出线性卷积结果y (n)重叠保留法代码fun cti on [Y]二overlpsav(x,h,N)Lx=le ngth(x);M=le ngth(h);M仁M -1;L=N-M1;h=[h,zeros(1,N-M)];图x=[zeros(1,M1),x,zeros(1,N-1)];a 二floor ((Lx+M1-1)/(L))+1; Y=zeros(1,N); for k=0:a-1 xk=x(k*L+1:k*L+N); b=fft(xk,N); C=fft(h,N); Z=b.*C;Y (k+1,:)=ifft(Z,N); end Y=Y (:,M:N): Y=( Y(:))'对应流程图装成单列向量再转置成行向量 输出输入数据 x I 各段搭接长 长度及脉冲 —\度M1,有效 响应长度k数据长度L将h 延长 至循环 长度N㈡把x 前面 加上(M- 1)个零各段进 行卷积把 K+1X N 阶输出矩 阵Y 初始 化Y 中各行均去 掉前M-1个样 Z 本,转置后构V成新的Y三.实验结果重叠相加法x=[1,2,3] h二[1,2,3] N=41 5]? 3X] 1 K 12 9 0緒=1 1 10 12 9 0重叠保留法x=[1,2,3,4,5,6,7,8,9,10] h=[1,0,-1] N=4四.结果分析(有关运算量的定量分析结果)有限长因果序列x (n)h (n)的长度分别为N和M直接计算线性卷积y (n),y(n)可视为N个序列的叠加结果,序列长度为M 所以每生成一个序列需完成M次乘法,共需完成MN次乘法运算。
DSP数字信号处理实验Matlab实验代码及输出图
实验一:线型与离散图x=0:0.1*pi:2*pi;y=sin(x);figure(1);subplot(1,2,1);plot(x,y,'k');xlabel('x');ylabel('y');subplot(1,2,2);stem(x,y,'k');xlabel('x');ylabel('y');实验二:函数:function[X,wk]=DFT(x,M)N=length(x);n=0:N-1;for k=0:M-1wk(k+1)=2*pi/M*k;X(k+1)=sum(x.*exp(-j*wk(k+1)*n)); endclc;clear all;A=444.128;a=50*sqrt(2)*pi;w0=50*sqrt(2)*pi;fs=input('输入采样频率fs=');T=1/fs;N=50;n=0:N-1;xa=A*exp(-a*n*T).*sin(w0*n*T); subplot(1,2,1);stem(n,xa,'.');grid;M=100;[Xa,wk]=DFT(xa,M);f=wk*fs/(2*pi);subplot(1,2,2);plot(f,abs(Xa));grid;1000hz500hz200hzDFT程序:Clcclear allxbn=[1,0,0,0];hbn=[1,2.5,2.5,1]N=4;n=0:N-1;Xb=fft(xbn,N);Xh=fft(hbn,N);ybn=conv(xbn,hbn); subplot(3,2,1); stem(n,xbn,'.');title('xbn wave'); subplot(3,2,2); stem(n,abs(Xb),'.'); title('Xb wave');subplot(3,2,3);stem(n,hbn,'.');title('hbn wave'); subplot(3,2,4);stem(n,abs(Xh),'.'); title('Xh wave');n1=0:6;Xy=fft(ybn,8);subplot(3,2,5);stem(n1,ybn,'.');title('ybn wave')n2=0:7;subplot(3,2,6);stem(n2,abs(Xy),'.'); title('Xy wave结果:hbn =1.00002.5000 2.5000 1.0000实验三:第一个方程:clc;clear all;a1=[1 ,0.75,0.125];b1=[1,-1];n=0:20;x1=[1 zeros(1,20)];subplot(2,3,1);y1filter=filter(b1,a1,x1); stem(n,y1filter);title('y lfilter');xlabel('x');ylabel('y');x1=[1 zeros(1,10)];[h]=impz(b1 ,a1,10); subplot(2,3,2);y1conv=conv(h,x1);n=0:19;stem(n,y1conv,'filled') subplot(2,3,3);impz(b1 ,a1,21);n=0:20;x2=ones(1,21);subplot(2,3,4);y1filter=filter(b1,a1,x2); stem(n,y1filter);title('y1filter_step'); xlabel('x');ylabel('y');x2=ones(1,21);[h]=impz(b1,a1,20);y1=conv(h,x2);y1conv=y1(1:21);n1=0:20;subplot(2,3,5);stem(n1,y1conv,'filled'); title('y1conv');xlabel('n');ylabel('y1[n]');subplot(2,3,6);b1=1;impz(b1,a1);第二个方程:clc;clear all;a1=[1];b1=[0.25,0.25,0.25,0.25]; n=0:20;x1=[1 zeros( 1,20)];y1filter=filter(b1,a1,x1); subplot(2,3,1);stem(n,y1filter);title('y 1filter');xlabel('x');ylabel('y');x1=[1 zeros(1,10)];[h]=impz(b1,a1,10);y1conv=conv(h,x1);n=0:19;subplot(2,3,2);stem(n,y1conv,'filled') subplot(2,3,3);impz(b1,a1,21);n=0:20;x2=ones(1,21);y1filter=filter(b1,a1,x2); subplot(2,3,4);stem(n,y1filter);title('y1filter_step'); xlabel('x');ylabel('y');x2=ones(1,21);[h]=impz(b1,a1,20);y1=conv(h,x2);y1conv=y1(1:21);n1=0:20;subplot(2,3,5);stem(n1,y1conv,'filled');title('y1conv');xlabel('n');ylabel('y1[n]');subplot(2,3,6);n=0:20;a1=1;b1=[0,0.25,0.5,0.75,ones(1,17)] ;impz(b1,a1,21);第一个方程结果第二个方程结果:实验四:程序:clc;clear all;num=[0.0528 0.0797 0.1295 0.1295 0.797 0.0528];den=[1 -1.8107 2.4947 -1.8801 0.9537 -0.2336];[z,p,k]=tf2zp(num,den);m=abs(p);disp('零点');disp(z);disp('极点');disp(p);disp('增益系数');disp(k);sos=zp2sos(z,p,k);figure(1)subplot(2,3,5);zplane(num,den)k=256;w=0:pi/k:pi;h=freqz(num,den,w);subplot(2,3,1);plot(w/pi,real(h));grid title('实部')xlabel('\omega/\pi');ylabel('幅度')subplot(2,3,2);plot(w/pi,imag(h));gridtitle('虚部')xlabel('\omega/\pi');ylabel('Am plitude')subplot(2,3,3);plot(w/pi,abs(h));gridtitle('幅度谱')xlabel('\omega/\pi');ylabel('幅值')subplot(2,3,4);plot(w/pi,angle(h));gridtitle('相位谱')xlabel('\omega/\pi');ylabel('弧度')figure(2)freqz(num,den,128);结果:零点-1.5870 + 1.4470i -1.5870 - 1.4470i 0.8657 + 1.5779i 0.8657 - 1.5779i -0.0669 + 0.0000i 极点0.2788 + 0.8973i 0.2788 - 0.8973i 0.3811 + 0.6274i 0.3811 - 0.6274i 0.4910 + 0.0000i 增益系数0.0528实验五:clc;clear all;wp=input('通带内频率wp=');ap=input('容许幅度误差ap=');ws=input('频率ws=');as=input('阻带衰减as=');fs=1;[N,Wn]=buttord(wp,ws,ap,as,'s'); [Z,P,K]=buttap(N);[Bap,Aap]=zp2tf(Z,P,K);[b,a]=lp2lp(Bap,Aap,Wn);[bz,az]=bilinear(b,a,fs);[H,W]=freqz(bz,az,64);subplot(2,1,1);stem(W/pi,abs(H));grid;xlabel('频率');ylabel('幅度');subplot(2,1,2);stem(W/pi,20*log10(abs(H))); grid;xlabel('频率');ylabel('幅度(dB)');bzaz结果:通带内频率wp=0.1*pi容许幅度误差ap=0.5频率ws=0.5*pi阻带衰减as=20bz =0.0238 0.0714 0.0714 0.0238 az =1.0000 -1.6217 1.0505 -0.2384实验六:Blackman方式:clc;clear all;b=fir1(21,0.5,blackman(22)); figure(1);y=freqz(b,1);subplot(2,2,1);plot(abs(y));grid;title('幅度响应');subplot(2,2,2); plot(angle(y)); grid;title('相位响应'); subplot(2,2,3); cj=impz(b,1,20); stem(cj);title('冲激响应'); grid;Hamming方式:clc;clear all;b=fir1(21,0.5,hamming(22)); figure(1);y=freqz(b,1);subplot(2,2,1);plot(abs(y));grid;title('幅度响应');subplot(2,2,2); plot(angle(y)); grid;title('相位响应'); subplot(2,2,3); cj=impz(b,1,20); stem(cj);title('冲激响应'); grid;Hanning方式:clc;clear all;b=fir1(21,0.5,hanning(22)); figure(1);y=freqz(b,1);subplot(2,2,1);plot(abs(y));grid;title('幅度响应');subplot(2,2,2); plot(angle(y)); grid;title('相位响应'); subplot(2,2,3); cj=impz(b,1,20); stem(cj);title('冲激响应'); grid;实验七:0个过渡点:clc;clear all;N=64;wc=0.8*pi;k=0:N-1;phase=(-pi*k*(N-1)/N+pi/2);HK=[zeros(1,26),ones(1,13),zero s(1,25)];HK1=HK.*exp(j*phase);hn=ifft(HK1,N);figure(1);freqz(hn,1,512);[H,W]=freqz(hn,1,512);figure(2);subplot(3,1,1);stem(k,hn);title('h(n)')subplot(3,1,2);plot(W/pi,abs(H));title('|H(eiw)|')subplot(3,1,3);plot(W/pi,20*log10(abs(H))); title('20lg|H(eiw)|');clc;clear all;N=64;wc=0.8*pi;k=0:N-1;phase=(-pi*k*(N-1)/N+pi/2);HK=[zeros(1,25),0.5,ones(1,13), 0.5,zeros(1,24)];HK1=HK.*exp(j*phase);hn=ifft(HK1,N); figure(1);freqz(hn,1,512);[H,W]=freqz(hn,1,512);figure(2);subplot(2,1,1);plot(W/pi,abs(H));title('|H(eiw)|')subplot(2,1,2);plot(W/pi,20*log10(abs(H))); title('20lg|H(eiw)|');clc;clear all;N=64;wc=0.8*pi;k=0:N-1;phase=(-pi*k*(N-1)/N+pi/2);HK=[zeros(1,24),1/3,2/3,ones(1, 13),2/3,1/3,zeros(1,23)];HK1=HK.*exp(j*phase);hn=ifft(HK1,N); figure(1);freqz(hn,1,512);[H,W]=freqz(hn,1,512);figure(2);subplot(2,1,1);plot(W/pi,abs(H));title('|H(eiw)|')subplot(2,1,2);plot(W/pi,20*log10(abs(H))); title('20lg|H(eiw)|');实验八:clc;clear all;x=[4,-2,0,-4,-6 ...-4,-2, -4,-6,-6 ...-4,-4,-6, -6,-2 ...6,12,8,0,-16, -38 ...-60,-84,-90,-66 ...-32,-4,-2,-4,8,12 ...12, 10,6,6,6,4,0,0 ...0,0,0, -2,-4,0,0,0 ...-2,-2,0, 0,-2,-2 ...-2,-2,0];subplot(3,1,1);plot([0:length(x)-1],x,'k'); title('输入')N=21;wn=hamming(N+1);wp=0.2*pi; h=fir1(N,wp/pi,wn);y=conv(x,h);subplot(3,1,2);plot([0:length(y)-1],y,'r'); title('经FIR滤波')A=0.2318;a=A*[1,2,1];b1=[1,0.4164,-0.6006];b2=[1,0.3093,-0.1888];b3=[1,0.2692,-0.0349];y1=filter(a,b1,x);y2=filter(a,b2,y1);y3=filter(a,b3,y2);subplot(3,1,3);plot([0:length(y3)-1],y3,'m'); title('经IIR滤波')。
Matlab实验报告
实验结果及分析实验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基本操作实验报告.doc
MATLAB基本操作课程名称:院系:专业班级:学号:学生姓名:指导教师:开课时间:至学年第学期一、学生撰写要求按照实验课积培养方案的要求,每门实验课程中的毎一个实验项冃完成后,每位参加实验的学生均须在实验教师规定的时间N独立完成一份实验报告,不得抄袭,不得缺交。
学生撰写实验报告时应严格按照木实验报告规定的A容和要求填写。
字迹工整,文字简练,数据齐全,图表规范,计算正确,分析充分、具体、定量。
二、教师评阅与装订要求1.实验报告批改要深入细致,批改过程中要发现和纠正学生实验报告中的问题,给山评语和实验报告成绩,签名并注明批改日期。
实验报告批改完成后,应采用适当的形式将学生实验报告中存在的问题及时反馈给学生。
2.实验报告成绩用百分制评定,并给出成绩评定的依据或评分标准(附于实验报告成绩登记表后)。
对迟交实验报告的学生要酌情扣分,对缺交和抄袭实验报告的学生应及时批评教育,并对该次实验报告的分数以零分处理。
对单独设课的实验课程,如学生抄袭或缺交实验报告达该课程全学期实验报告总次数三分之一以上,不得同意其参加本课程的考核。
3.各实验项冃的实验报告成绩登记在实验报告成绩登记表中。
木学期实验项目全部完成后,给定实验报告综合成绩。
4.实验报告综合成绩应按课程教学大纲规定比例(一般为10- 15%)计入实验课总评成绩;实验总评成绩原则上应包括考勤、实验报告、考核(操作、理论)等多方面成绩;5.实验教师每学期负责对拟存档的学生实验报告按课程、学生收齐并装订,按如下顺序装订成册:实验报告封面、实验报告成绩登记表、实验报告成绩评定依据、实验报告(按教学进度表规定的实验项冃顺序排序)。
装订时统一靠左侧按“两钉三等分”原则装订。
实验一:MATLAB基本操作学生姓名:实验类型:验证性实验时间:实验地点:一、实验目的通过木实验使学生熟悉MATLAB的工作环境,熟悉MATLAB的命令窗U、当前工作目录窗口、历史命令窗口、工作空问窗口等常用工作窗口及应用技巧,了解常用命令的用法,掌握使用帮助命令和帮助浏览器的方法,掌握编写M命令文件和函数文件的方法。
北邮DSP软件仿真MATLAB实验报告
DSP软件仿真实验姓名孙尚威学院电子工程学院专业电子信息科学与技术班级2013211202学号2013210849班内序号04实验一:数字信号的 FFT 分析1、实验内容及要求(1) 离散信号的频谱分析:设信号为:此信号的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时间抽选法),体会快速算法的效率。
(d) 获得一个高密度频谱和高分辨率频谱的概念和方法,建立频率分辨率和时间分辨率的概念,为将来进一步进行时频分析(例如小波)的学习和研究打下基础。
(e) 建立 DFT 从整体上可看成是由窄带相邻滤波器组成的滤波器组的概念,此概念的一个典型应用是数字音频压缩中的分析滤波器,例如 DVD AC3 和MPEG Audio 。
3、设计思路(1)由信号可知,频谱分析以后 0.3pi 和 0.302pi 两根谱线相距很近,因此所用的FFT 的N 值要足够大,才能保证看到两条清晰的谱线;而谱线 0.45pi 的幅度很小,所以加窗时应该适当提高幅度。
在加窗的时,如若参数选取不当会产生频谱泄漏,为了满足题设要求得到三根清晰的谱线,根据w=2*pi/N*k => k=w/2/pi*N(k 属于整数),得N 必须是1000的倍数,在程序中设定N 的值为20000.用matlab 提供的fft 函数进行DFT 变换,再利用stem 函数画出频谱图,用axis 函数限定了坐标轴范围。
MATLAB应用实验指导书1234-结果
MATLAB应用实验指导书1234-结果************************ MATLAB语言实验指导书************************中国矿业大学信息与电气工程学院2014年3月实验一 MATLAB 工作环境熟悉及基本运算一、实验目的:熟悉MATLAB 的工作环境,学会使用MATLAB 进行一些简单的运算。
掌握基本的矩阵运算及常用的函数。
二、实验内容:MATLAB 的启动和退出,熟悉MATLAB 的桌面(Desktop ),包括菜单(Menu )、工具条(Toolbar )、命令窗口(Command Window)、历史命令窗口、工作空间(Workspace)等;完成一些基本的矩阵操作;学习使用在线帮助系统。
三、实验步骤:1、启动MATLAB ,熟悉MATLAB 的桌面。
2、在命令窗口执行命令完成以下运算,观察workspace 的变化,记录运算结果。
(1)(365-522-70) 3 = (2)area=pi*^2 = (3)已知x=3,y=4,在MATLAB 中求z :()232y x y x z -== 576 (4)将下面的矩阵赋值给变量m1,在workspace 中察看m1在内存中占用的字节数。
m1=11514412679810115133216 执行以下命令>>m1( 2 , 3 )=10 >>m1( 11 )=6>>m1( : , 3 )= 3 10 6 15>>m1( 2 : 3 , 1 : 3 )=[ 5 11 10;9 7 6]>>m1( 1 ,4 ) + m1( 2 ,3 ) + m1( 3 ,2 ) + m1( 4 ,1)=34(5)执行命令>>help abs查看函数abs 的用法及用途,计算abs( 3 + 4i )=5 (6)执行命令>>x=0::6*pi; >>y=5*sin(x); >>plot(x,y)(7)运行MATLAB 的演示程序,>>demo ,以便对MATLAB 有一个总体了解。
matlab实验报告
matlab实验报告实验报告:Matlab实验分析1. 实验目的本实验旨在通过Matlab软件完成一系列数值计算和数据分析的任务,包括绘制曲线、解方程、矩阵运算等,以加深对Matlab软件的理解和掌握。
2. 实验内容2.1 绘制函数曲线首先,我们通过在Matlab中输入函数的表达式来绘制函数曲线。
例如,我们可以输入y = sin(x)来绘制正弦函数的曲线。
另外,我们还可以设置曲线的颜色、线型和坐标轴范围等。
2.2 解方程接下来,我们使用Matlab来解方程。
对于一元方程,我们可以使用solve函数来求出方程的解。
例如,我们输入syms x; solve(x^2 - 2*x - 8)来解方程x^2 - 2x - 8 = 0。
而对于多元方程组,我们可以使用solve函数的向量输入形式来求解。
例如,我们输入syms x y; solve(x^2 + y^2 - 1, x - y - 1)来求解方程组x^2 + y^2 - 1 = 0和x - y - 1 = 0的解。
2.3 矩阵运算Matlab也可以进行矩阵运算。
我们可以使用矩阵相乘、相加和取逆等运算。
例如,我们可以输入A = [1 2; 3 4]和B = [5 6;7 8]来定义两个矩阵,然后使用A * B来计算它们的乘积。
3. 实验结果与分析在本实验中,我们成功完成了绘制函数曲线、解方程和矩阵运算等任务。
通过Matlab软件,我们可以快速、准确地进行数值计算和数据分析。
使用Matlab的高级函数和工具箱,我们可以更方便地处理复杂的数值计算和数据分析问题。
4. 实验总结通过本次实验,我们进一步加深了对Matlab软件的理解和掌握。
Matlab提供了丰富的函数库和工具箱,适用于各种不同的数值计算和数据分析任务。
在日常科研和工程实践中,Matlab是一个非常强大和方便的工具,可以帮助我们更高效地完成任务。
DSP实验报告_matlab
按时间抽取的基2-FFT算法实现一、实验目的1.掌握按时间抽取的基2-FFT 的原理及具体实现方法。
2.编程实现按时间抽取的基2-FFT 算法。
3.加深理解按时间抽取FFT 算法的特点二、实验内容1.编程实现序列长度为N = 8的按时间抽取的基2-FFT 算法。
给定一个8 点序列,采用编写的程序计算其DFT,并与MATLAB 中fft 函数计算的结果相比较,以验证结果的正确性。
程序代码disp ('请输入一个N=8的序列');for ii=1:8 %用户输入一个N=8的序列x(ii)= input(['x(',num2str(ii),')=']);endnxd=bin2dec(fliplr(dec2bin([0:7])))+1; %求数列序号的倒序y=x(nxd); %将x的倒序序列给yfor m=1:3 %做3级蝶形运算,每级2^(3-m)组Nz=2^m; %蝶形运算间隔序号数NzWN=exp(-1i*2*pi/Nz); %定义旋转因子u=WN^0;for j=1: Nz/2 %每组需要Nz/2个蝶形运算for k=j:Nz:8 %蝶形运算第一个因数kp=k+Nz/2; %蝶形运算的二个因数t=y(kp)*u; %蝶形运算乘积项y(kp)=y(k)-t; %蝶形运算y(k)=y(k)+t; %蝶形运算每级2^m个endu=u*WN; %修改旋转因子endendy1=fft(x); %结果核对subplot(211); %绘出通过程序变换后的谱线stem(1:8,y);xlabel('k');ylabel('X(k)');grid off;subplot(212); %绘出通过函数调用后的谱线stem(1:8,y1);xlabel('k');ylabel('X(k)');grid off;进行试验请输入一个 N=8的序列 x(1)=2 x(2)=67 x(3)=3 x(4)=3 x(5)=45 x(6)=44 x(7)=21 x(8)=1输出图像:具体数据:Y=1.8600 -0.2815 + 0.0032i 0.2300 - 1.0700i -0.5785 - 0.3568i -0.4400 -0.5785 + 0.3568i 0.2300 + 1.0700i -0.2815 - 0.0032iY1=1.8600 -0.2815 + 0.0032i 0.2300 - 1.0700i -0.5785 - 0.3568i -0.4400 -0.5785 + 0.3568i 0.2300 + 1.0700i -0.2815 - 0.0032i对比Y 与Y1,完全一样,确认实验结果无误,完成题目要求2. 将第 1 题的 FFT 程序推广到N=2v 的情况,要求利用原位运算。
北京邮电大学MATLAB实验报告
DSP--MATLAB实验报告实验名称:MATLAB第一次上级实验学生姓名:班级:班内序号:学号:日期:1.实验要求(1) 常用数字信号序列的产生:熟悉Matlab 产生数字信号的基本命令,加深对数字信号概念的理解,并能够用Matlab 产生和绘制出一些常用离散信号序列。
请用Matlab 画出下列序列的波形(-10<n<10):a) δ(n)b) 单位阶跃序列2 u(n-5)c) 矩形序列R(n)d) y(n)=2sin(0.3πn)+ 0.5cos2(0.6πn)(2)加、减、尺度(乘除)和移位是数字信号处理中最基本的算术运算,将上述基本序列进行这些基本运算,得到多个序列构成的组合序列。
(3)请用您的计算机声卡采用一段您自己的声音x(n),长度为45秒,单声道,取样频率44.1kHz,16bit/样值,然后与给定的一段背景音乐y(n) 按下式叠加为一个声音信号z(n):z(n) = 0.7x(n) + 0.3y(n)要求在同一个Figure 中,画出采集声音x(n)、背景音乐y(n)和混音z(n) 的时域波形;2关键算法分析产生δ(n),单位阶跃序列 2 u(n-5),矩形序列R(n),y(n)=2sin(0.3πn)+ 0.5cos2(0.6πn)序列,首先在matlab中新建一个m文件,将各种序列的定义写进去,再在命令窗口中写入命令语句,便可得到。
单位取样序列x=impseq(0,-20,120);n=[-20:120]; >> plot(n,x)单位阶跃序列2 u(n-5) :x=stepseq(5,-20,120),n=[-20:120];plot(n,2*x)矩形序列R(n):x1=stepseq(-10,-10,60),n1=[-10:60],x2==stepseq(10,-10,60),n2=[-10:60],y=x1-x2,n= [-10:60],plot(n,y)y(n)=2sin(0.3πn)+ 0.5cos2(0.6πn):n=[0:0.1:20];x=2*sin(0.3*pi*n)+0.5*cos(2*0.6*pi*n);plot(n,x)加法:δ(n)+ 2 u(n-5):x1=impseq(0,-20,120);n=[-20:120];x2=2*stepseq(5,-20,120),n=[-20:120];y=x1+x2,plot(n,y)减法:δ(n)- 2 u(n-5):x1=impseq(0,-20,120);n=[-20:120]; x2=2*stepseq(5,-20,120),n=[-20:120];y=x1-x2,plot(n,y)乘法: δ(n)- 2 u(n-5): x1=impseq(0,-20,120);n=[-20:120]; x2=2*stepseq(5,-20,120),n=[-20:120];y=x1.*x2,plot(n,y)一个figure中显示多个波形:[y,fs,bits]=wavread('我的声音'),t1=(0:length(y)-1)/fs;[x,fs,bits]=wavread('天空之城'),t2=(0:length(x)-1)/fs;subplot(2,2,1),plot(t1,y);subplot(2,2,2),plot(t2,x);3. 程序运行结果单位取样序列单位阶跃序列2 u(n-5)矩形序列:y(n)=2sin(0.3πn)+ 0.5cos2(0.6πn)::加法:δ(n)+ 2 u(n-5) 乘法: u(n)*R5:移位:一个figure中显示多个波形:4. 总结通过这次实验,我对MATLAB的使用了解了许多,尤其是在对声音和图像的处理方面。