北邮dspmatlab实验三和四报告

合集下载

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` 函数从外部文件读取数据和将数据保存到文件中。

(最新版)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实验报告

北京邮电大学_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实验报告(打印版)

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仿真实验

北邮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实习报告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

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实验报告概论

《数字信号处理》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),二者都具有较好的时间和空间复杂度。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档