MATLAB实验报告北京邮电大学

合集下载

北邮 通信网实验报告

北邮 通信网实验报告

北京邮电大学实验报告通信网理论基础实验报告学院:信息与通信工程学院班级:2013211124学号:姓名:实验一 ErlangB公式计算器一实验内容编写Erlang B公式的图形界面计算器,实现给定任意两个变量求解第三个变量的功能:1)给定到达的呼叫量a和中继线的数目s,求解系统的时间阻塞率B;2)给定系统的时间阻塞率的要求B和到达的呼叫量a,求解中继线的数目s,以实现网络规划;3)给定系统的时间阻塞率要求B以及中继线的数目s,判断该系统能支持的最大的呼叫量a。

二实验描述1 实验思路使用MATLAB GUITOOL设计图形界面,通过单选按钮确定计算的变量,同时通过可编辑文本框输入其他两个已知变量的值,对于不同的变量,通过调用相应的函数进行求解并显示最终的结果。

2 程序界面3 流程图4 主要的函数符号规定如下:b(Blocking):阻塞率;a(BHT):到达呼叫量;s(Lines):中继线数量。

1)已知到达呼叫量a及中继线数量s求阻塞率b 使用迭代算法提高程序效率B(s,a)=a∙B(s−1,a) s+a∙B(s−1,a)代码如下:function b = ErlangB_b(a,s)b =1;for i =1:sb = a * b /(i + a * b);endend2)已知到达呼叫量a及阻塞率b求中继线数量s考虑到s为正整数,因此采用数值逼近的方法。

采用循环的方式,在每次循环中增加s的值,同时调用 B(s,a)函数计算阻塞率并与已知阻塞率比较,当本次误差小于上次误差时,结束循环,得到s值。

代码如下:function s = ErlangB_s(a,b)s =1;Bs = ErlangB_b(a,s);err = abs(b-Bs);err_s = err;while(err_s <= err)err = err_s;s = s +1;Bs = ErlangB_b(a,s);err_s = abs(b - Bs);ends = s -1;end3)已知阻塞率b及中继线数量s求到达呼叫量a考虑到a为有理数,因此采用变步长逼近的方法。

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时所得到的谱线非常理想。

北邮 通信网实验报告

北邮 通信网实验报告

北京邮电大学实验报告通信网理论基础实验报告学院:信息与通信工程学院班级:2013211124学号:姓名:实验一 ErlangB公式计算器一实验内容编写Erlang B公式的图形界面计算器,实现给定任意两个变量求解第三个变量的功能:1)给定到达的呼叫量a和中继线的数目s,求解系统的时间阻塞率B;2)给定系统的时间阻塞率的要求B和到达的呼叫量a,求解中继线的数目s,以实现网络规划;3)给定系统的时间阻塞率要求B以及中继线的数目s,判断该系统能支持的最大的呼叫量a。

二实验描述1 实验思路使用MATLAB GUITOOL设计图形界面,通过单选按钮确定计算的变量,同时通过可编辑文本框输入其他两个已知变量的值,对于不同的变量,通过调用相应的函数进行求解并显示最终的结果。

2 程序界面3 流程图4 主要的函数符号规定如下:b(Blocking):阻塞率;a(BHT):到达呼叫量;s(Lines):中继线数量。

1)已知到达呼叫量a及中继线数量s求阻塞率b 使用迭代算法提高程序效率B(s,a)=a∙B(s−1,a) s+a∙B(s−1,a)代码如下:function b = ErlangB_b(a,s)b =1;for i =1:sb = a * b /(i + a * b);endend2)已知到达呼叫量a及阻塞率b求中继线数量s考虑到s为正整数,因此采用数值逼近的方法。

采用循环的方式,在每次循环中增加s的值,同时调用 B(s,a)函数计算阻塞率并与已知阻塞率比较,当本次误差小于上次误差时,结束循环,得到s值。

代码如下:function s = ErlangB_s(a,b)s =1;Bs = ErlangB_b(a,s);err = abs(b-Bs);err_s = err;while(err_s <= err)err = err_s;s = s +1;Bs = ErlangB_b(a,s);err_s = abs(b - Bs);ends = s -1;end3)已知阻塞率b及中继线数量s求到达呼叫量a考虑到a为有理数,因此采用变步长逼近的方法。

北邮数字信号处理Matlab仿真实验-实验报告

北邮数字信号处理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时间抽选法),体会快速算法的效率。

北邮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),二者都具有较好的时间和空间复杂度。

第二次DSP上机实验报告 MATLAB实验报告

第二次DSP上机实验报告 MATLAB实验报告

第二次DSP上机实验报告 MATLAB实验报告第二次DSP上机实验报告 MATLAB实验报告北京邮电大学信息与通信工程学院DSP--MATLAB实验报告实验名称:学生姓名:班级:班内序号:学号:日期:1.实验要求与目的要求:(1)用DFT分析频谱,得到高分辨率频谱清楚的谱线;(2)利用基2时间抽选的FFT算法,计算有限点的DFT,并与理论值相比较。

目的:掌握(a)用傅立叶变换进行信号分析时基本参数的选择。

(b)经过离散时间傅立叶变换(DTFT)和有限长度离散傅立叶变换(DFT)后信号频谱上的区别,前者DTFT时间域是离散信号,频率域还是连续的,而DFT在两个域中都是离散的。

(c)离散傅立叶变换的基本原理、特性,以及经典的快速算法(基2时间抽选法),体会快速算法的效率。

(d)获得一个高密度频谱和高分辨率频谱的概念和方法,建立频率分辨率和时间分辨率的概念,为将来进一步进行时频分析(例如小波)的学习和研究打下基础。

2关键算法分析第1页北京邮电大学信息与通信工程学院代码的重点是利用fft函数计算离散序列的DFT,难点是矩阵的加减乘除及乘方中所涉及的matlab语句的特点。

实验代码如下:(1)N=1000;n=(0:N-1);y=0.001*cos(0.45*n*pi)+sin(0.3*n*pi)-cos(0.302*n*pi-pi/4);y=0.001*cos(0.45*n*pi)+sin(0.3*n*pi)-cos(0.302*n*pi-pi/4);XK=fft(y,N);--fft函数两个参数分别是进行DFT变换的序列,及DFT 的长度subplot(3,1,1);stem(n,y);title("时域波形");xlabel("n");ylabel("y");subplot(3,1,2);stem(abs(XK),".");axis([0,500,0,600]);--限定x 轴与y轴的范围title("频域前500点波形");xlabel("k");ylabel("XK");subplot(3,1,3);stem(abs(XK),".");axis([800,900,0,600]);--x轴的范围很小,目的是能看到两条很近的谱线title("频域后500点部分波形");xlabel("k");ylabel("XK");(2)N=25;Q=0.9+j*0.3;n=(0:24);x=Q.^n;WN=exp(-j*2*pi/N);k=(0:24);WK=WN.^k;XK=(1-Q.^N)./(1-Q*WK);stem(XK);---理论值的计算XK1=fft(x,32);--32点基2时间抽选法的计算subplot(3,1,1);stem(n,x);title("时域波形");xlabel("n");ylabel("x");subplot(3,1,2);stem(XK);title("频域理论值");xlabel("k");ylabel("XK");subplot(3,1,3);stem(XK1);title("频域波形");xlabel("k");ylabel("XK1");第2页北京邮电大学信息与通信工程学院3.程序运行结果(1)(2)第3页北京邮电大学信息与通信工程学院4.问题分析这次实验的题目相对简单,编程过程中遇到的问题主要是矩阵的加减乘除及乘方运算所对应的matlab语句的规则和fft函数的使用,fft函数的使用方法通过help语句便可查得,其两个参数:第一个是指进行fft运算的序列,第二个值fft运算的长度。

MATLAB实验报告北京邮电大学

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次乘法运算。

北邮Matlab仿真 实验

北邮Matlab仿真 实验

[键入公司名称]Matlab仿真实验[键入文档副标题]2010211201陈建文102109872012-12-10实验报告主要内容是对3个实验的完成过程的介绍和总结目录数字信号的FFT分析 (2)DTMF信号的编码 (6)FIR数字滤波器的设计和实现 (10)错误分析 (14)经验总结 (15)实验一:数字信号的FFT分析:实验目的:(1)用傅立叶变换进行分析是基本参数的选择。

(2)经过离散时间傅立叶变换和有限长度离散傅立叶变换后信号频谱上的区别,前者DTMF时间域是离散信号,频率域还是连续的,而DFT在两个区域中都是离散的。

(3)离散傅立叶变换的基本原理、特性,以及经典的快速算法,体会快速算法的效率(4)获得一个高密度频谱和高分辨率频谱的概念和方法,建立频率分辨率和时间分辨率的概念,为将来进一步进行时域分析的学习和研究大侠基础。

(5)建立DFT从整体上可看成是有窄带相邻滤波器组成的滤波器组的概念,此概念的一个典型应用是数字音频压缩中的分析滤波器,例如DVD AC3和 MPEG Audio。

实验内容和要求:(1)离散信号的频谱分析:设信号 x(n)=0.001*cos(0.45n*pi)+sin(0.3n*pi)-cos(0.302n*pi-pi/4)此信号的0.3pi和0.302pi的两根频谱线相距很近,谱线0.45pi的幅度很小,请选择合适的序列长度N和窗函数,用DFT分析其频谱,要求得到清楚的三根谱线。

(2)DTMF信号频谱分析用计算机声卡采用一段通信系统中电话双音多频(DTMF)拨号数字0——9的数据,采用快速傅立叶变换(FFT)分析这10个号码DTMF拨号是的频谱。

设计思路1:只要将x(n)表达式敲入,再利用fft(x(n),N)函数进行傅立叶变换,之后再用subplot函数进行图形绘制,本题关键在于N的确定,只有合适的大小才能满足题目要求。

代码1:N = 1000; % Length of DFT n = [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);xn1=0.001*cos(0.45*n*pi);Xk1 = fft(xn1,N);xn2=sin(0.3*n*pi);Xk2 = fft(xn2,N);xn3=-cos(0.302*n*pi-pi/4);Xk3 = fft(xn3,N);k=[0:1:N/2];subplot(5,1,1);stem(k,abs(xn(1:1:(N/2+1))),'.');title('x(n)');xlabel( 'k');axis([140,240,0,4]);subplot(5,1,2);stem(k,abs(Xk(1:1:(N/2+1))),'r.');title('DFT0.001*cos(0.45*n*pi)+sin(0.3*n*pi)-cos(0.302*n*pi-pi/4)');xlabel('k');axis([140,240,0,4]);subplot(5,1,3);stem(k,abs(Xk1(1:1:(N/2+1))),'g.');title('DFpi)');xlab el('k');axis([140,240,0,4]);subplot(5,1,4);stem(k,abs(Xk2(1:1:(N/2+1))),'b');title('DFTsin(0.3*n*pi)');xlabel('k');axis([140,240,0,4]);subplot(5,1,5);stem(k,abs(Xk3(1:1:(N/2+1))));title('DFT -cos(0.302*n*pi-pi/4)');xlabel('k');axis([140,240,0,4]);3 / 15截图 1:从图中可以看出,后边三幅图片的频谱特性还是有比较明显的区别的。

《MATLAB 语言及其应用》实验报告

《MATLAB 语言及其应用》实验报告

《MATLAB 语言及其应用》实验报告实验指导老师:学院:电气与信息工程学院班级:自动化姓名:学号:学号:《MATLAB 语言及其应用》实验指导目录实验一Matlab 使用方法和程序设计........................实验二控制系统的模型及其转换.............................实验三控制系统的时域、频域和根轨迹分析...........实验四动态仿真集成环境-Simulink.........................实验五直流电机自动调速系统控制器设计实验一Matlab使用方法和程序设计一、实验目的1、掌握Matlab软件使用的基本方法;2、熟悉Matlab的数据表示、基本运算和程序控制语句3、熟悉Matlab绘图命令及基本绘图控制4、熟悉Matlab程序设计的基本方法二、实验内容:1、帮助命令使用help命令,查找 sqrt(开方)函数的使用方法;2、矩阵运算(1)矩阵的乘法已知A=[1 2;3 4]; B=[5 5;7 8];求A^2*B>> A=[1 2;3 4];>> B=[5 5;7 8];>> C=A^2*BC =105 115229 251(2)矩阵除法已知 A=[1 2 3;4 5 6;7 8 9];B=[1 0 0;0 2 0;0 0 3];A\B,A/B>> A=[1 2 3;4 5 6;7 8 0];>> B=[1 0 0;0 2 0;0 0 3];>> A\B,A/Bans =-1.7778 1.7778 -0.33331.5556 -1.5556 0.6667-0.1111 0.4444 -0.3333ans =1.0000 1.0000 1.00004.0000 2.5000 2.00007.0000 4.0000 0(3)矩阵的转置及共轭转置已知A=[5+i,2-i,1;6*i,4,9-i];求A.', A'>> A=[5+i,2-i,1;6*i,4,9-i];>> A.',A'ans =5.0000 + 1.0000i 0 +6.0000i2.0000 - 1.0000i 4.00001.0000 9.0000 - 1.0000ians =5.0000 - 1.0000i 0 -6.0000i2.0000 + 1.0000i 4.00001.0000 9.0000 + 1.0000i(4)使用冒号表达式选出指定元素已知: A=[1 2 3;4 5 6;7 8 9];求A中第3列前2个元素;A中所有列第2,3行的元素;方括号[]用magic函数生成一个4阶魔术矩阵,删除该矩阵的第四列>> A=[1 2 3;4 5 6;7 8 9];>> B=A(1:2,3)B =6 >> B1=A(2:3,:) B1 =4 5 6 7 8 9 >> B1=A(2:3,:) B1 =4 5 6 7 8 9B(:,4)=[ ] B =16 2 3 5 11 10 9 7 6 4 14 153、多项式(1)求多项式 42)(3--=x x x p 的根 >> p=[1 0 -2 -4]; >> r=roots(p) r =2.0000 -1.0000 + 1.0000i -1.0000 - 1.0000i(2)已知A=[1.2 3 5 0.9;5 1.7 5 6;3 9 0 1;1 2 3 4] , 求矩阵A 的特征多项式;把矩阵A 作为未知数代入到多项式中;>> A=[1.2 3 5 0.9;5 1.7 5 6;3 9 0 1;1 2 3 4]; >> p=poly(A) p =1.0000 -6.9000 -77.2600 -86.1300 604.5500 >> y=sym(A)[ 6/5, 3, 5, 9/10][ 5, 17/10, 5, 6][ 3, 9, 0, 1][ 1, 2, 3, 4]4、基本绘图命令(1)绘制余弦曲线 y=cos(t),t∈[0,2π](2)在同一坐标系中绘制余弦曲线y=cos(t-0.25)和正弦曲线y=sin(t-0.5),t∈[0,2π]>> t=0:0.01:2*pi;>> y=cos(t);>> plot(t,y);>> title('余弦函数y=cos(t)');>> x=0:0.01:2*pi;y=cos(x-0.25);plot(x,y)hold ony=sin(x-0.5);plot(x,y)>> title('y=cos(t-0.25),y=sin(t-0.5)')5、基本绘图控制绘制[0,4π]区间上的x1=10sint曲线,并要求:(1)线形为点划线、颜色为红色、数据点标记为加号;(2)坐标轴控制:显示范围、刻度线、比例、网络线(3)标注控制:坐标轴名称、标题、相应文本;>> t=0:0.01:4*pi;>> x1=10*sin(t);>> plot(t,x1,'-.r+');>> xlabel('X');>> ylabel('Y');>> grid on>> title('x1=10sin(t)')>> legend('y',4)6、基本程序设计(1)编写命令文件:计算1+2+…+n<2000 时的最大n值;>> s=0;n=0;>> while s<2000;s=s+n;n=n+1;end>> mn=n-1mn =63(2)编写函数文件:分别用for和while循环结构编写程序,求2的0到n次幂的和。

数学实验报告-专业-班级-姓名-学号-试验1

数学实验报告-专业-班级-姓名-学号-试验1

北京邮电大学世纪学院《数学实验》实验报告班级: 学号: 姓名: 成绩: ______实验一: MATLAB 语言基础一、实验目的1、熟悉MATLAB 语言及系统环境;2、掌握MATLAB 的常用命令;3、学会使用MATLAB 的帮助系统;4、熟悉MATLAB 的基本数据类型及基本运算;5、熟悉MATLAB 的M 文件及类型,能建立、执行和调试M 文件程序;6、熟悉MATLAB 的三种程序结构,能运用三种程序结构和MATLAB 的数学方法功能编程处理一些基本的数学科学计算问题。

二、实验内容、原理、方法、分析及结果1、计算表达式7321ln 7tan19e +÷的值. (程序和结果 5分)解:exp(7)+21^3*log(7)/tan(19)结果ans =1.1998e+0052.、用等间隔冒号法创建一个数组(1,3,5,7,9,11)x =;用函数linspace 创建2到11之间5个等间隔插值点数组y ;用随机生成法生成一个10以内的3阶整数矩阵A . (程序和结果 10分 )解:x=[1,3,5,7,9,11]结果:x =1 3 5 7 9 11解: y=linspace(2,11,5)结果:y =2.0000 4.2500 6.5000 8.7500 11.0000解:x=fix(10*rand(3,3))结果:x =4 3 18 8 20 0 13、设4317⎛⎫= ⎪⎝⎭A,1734⎛⎫= ⎪⎝⎭B,输出矩阵,A B并计算1*=C A B,2.*=C A B,3.^=C A B,4./=C A B,并说明上述4个运算的含义.(程序和结果20分)解:A=[4,3;1,7]B=[1,7;3,4]A=[4,3;1,7];B=[1,7;3,4];C1=A*BA=[4,3;1,7];B=[1,7;3,4];C2=A.*BA=[4,3;1,7];B=[1,7;3,4];C3=A.^BA=[4,3;1,7];B=[1,7;3,4];C4=A/B结果:A =4 31 7B =1 73 4C1 =13 4022 35C2 =4 213 28C3 =4 218712401C4 =-0.4118 1.47061.0000 04、已知312204132-⎛⎫⎪=--⎪⎪-⎝⎭A,264153012-⎛⎫⎪=- ⎪⎪-⎝⎭B,在命令窗口中创建矩阵,A B并对其进行如下操作:(1)提取A 的第3行赋给a ,B 的第1列赋给b ;(2)分别从横向和竖向合并A 和B ;(3)将矩阵A 的第1,2行1,2列交叉处的四个元素值全部修改为2.(4)在前一步的基础上构建矩阵C ,C 的第1,2行分别由A 的1,2行1,2列的元素构成,C 的第3,4行分别由B 的2,3行2,3列元素构成. (程序和结果 20分)5、编写M 命令文件,定义符号函数337y x x =-+,并分别求当1,3,2x =-时的函数值. (程序和结果 10分)6、通过键盘输入卷面成绩:40,65,95,74,83,判断学生成绩的等级. 输出为以下信息:考试分数在[90,100]的显示为“优”,考试分数在[70,89] 的显示为“良”,考试分数在[60,69] 的显示为“中”,其它为“差” (程序和结果 15分)7、设计一个函数求和1111242n ++++调用该函数求n=100,300,500,800时的值. (程序和结果 15分)三、总结(体会、收获、存在的问题、改进等) ( 5分)1、2、......。

北邮scilab通信原理软件实验报告

北邮scilab通信原理软件实验报告

信息与通信工程学院通信原理软件实验报告实验二时域仿真精度分析一、实验目的1. 了解时域取样对仿真精度的影响2. 学会提高仿真精度的方法二、实验原理一般来说,任意信号s(t)是定义在时间区间(-无穷,+无穷)上的连续函数,但所有计算机的CPU 都只能按指令周期离散运行,同时计算机也不能处理这样一个时间段。

为此将把s(t)按区间[-T/2 ,+T/2 ]截短为按时间间隔dert T均匀取样,得到的取样点数为N=T/dert T.仿真时用这个样值集合来表示信号s(t)。

Dert T反映了仿真系统对信号波形的分辨率,越小则仿真的精确度越高。

据通信原理所学,信号被取样以后,对应的频谱是频率的周期函数,其重复周期是1/t;。

如果信号的最高频率为那么必须有才能保证不发生频域混叠失真,这是奈奎斯特抽样定理。

设则称为仿真系统的系统带宽。

如果在仿真程序中设定的采样间隔是,那么不能用此仿真程序来研究带宽大于这的信号或系统。

换句话说,就是当系统带宽一定的情况下,信号的采样频率最小不得小于2*Bs,如此便可以保证信号的不失真,在此基础上时域采样频率越高,其时域波形对原信号的还原度也越高,信号波形越平滑。

也就是说,要保证信号的通信成功,必须要满足奈奎斯特抽样定理,如果需要观察时域波形的某些特性,那么采样点数越多,可得到越真实的时域信号。

三、实验步骤1.将正弦波发生器模块、示波器模块、时钟模块按下图连接:四、实验结果对比分析时钟设置0.01,得到的结果如下:时钟设置0.3,以后得到的结果如下:五、思考题(1)观察分析两图的区别,解释其原因。

答:因为信号周期是1,而第一个图的采样周期是0.01,所以一个周期能采样100个点,仿真出来的波形能较精确地显示成完整波形,而第二个图采样周期是0.3,所以一个周期只有三个采样点,故信号失真了。

(2)将示波器的控制时钟的period的参数改为0.5,观察仿真结果,分析其原因。

结果如下:可见,此时根本没有信号显示了。

MATLAB实验报告

MATLAB实验报告

MATLAB实验报告⼀.试验时间:2013/10/15 ⼆.实验地点:⼤楼五楼8号机房三.实验名称:MATLAB 数值计算四.实验⽬的:1.掌握MATLAB 数据对象的特点以及数值的运算规则。

2.掌握MATLAB 中建⽴矩阵的⽅法以及矩阵处理和分析的⽅法。

3.掌握MATLAB 中常量与变量的使⽤及各种表达式的书写规则。

4.熟悉MATLAB 常⽤函数的使⽤以及多项式的运⽤。

⼆.实验内容1. 求下列表达式的值。

(1)z1=2185sin 2e +结果:>> z1=2*sin((85/360)*pi)/(1+eps*eps) z1 =1.3512(2)z2=),x 1(ln 21++x ?-+=5,45.0t *21,2x结果:>> x=[2 1+2*i;-0.45 5] x =2.0000 1.0000 + 2.0000i -0.4500 5.0000 >> z2=1/2*log(x+sqrt(1+x)) z2 =0.6585 0.6509 + 0.4013i -0.6162 1.0041 (3)z3=22.0^3.0^e a e a -×sin(a+0.3)+ln(23.0a +),a=-3.0,-2.9,-2.8,…2.8,2.9,3.0结果:>> a=-3:0.1:3;>> z3=(eps(a*0.3)-eps(a*0.2))/2.0.*sin(a+0.3)+log((a+0.3)/2.0) z3 =Columns 1 through 50.3001 + 3.1416i 0.2624 + 3.1416i 0.2231 + 3.1416i 0.1823 + 3.1416i 0.1398 + 3.1416i0.0953 + 3.1416i 0.0488 + 3.1416i -0.0000 + 3.1416i -0.0513 + 3.1416i -0.1054 + 3.1416i Columns 11 through 15-0.5108 + 3.1416i -0.5978 + 3.1416i -0.6931 + 3.1416i -0.7985 + 3.1416i -0.9163 + 3.1416i Columns 21 through 25-1.0498 + 3.1416i -1.2040 + 3.1416i -1.3863 + 3.1416i -1.6094 + 3.1416i -1.8971 + 3.1416i Columns 26 through 30-2.3026 + 3.1416i -2.9957 + 3.1416i -37.0245 -2.9957 -2.3026 Columns 31 through 35-1.8971 -1.6094 -1.3863 -1.2040 -1.0498Columns 36 through 40-0.9163 -0.7985 -0.6931 -0.5978 -0.5108Columns 41 through 45-0.4308 -0.3567 -0.2877 -0.2231 -0.1625Columns 46 through 50-0.1054 -0.0513 0.0000 0.0488 0.0953Columns 51 through 550.1398 0.1823 0.2231 0.2624 0.3001Columns 56 through 600.3365 0.3716 0.4055 0.4383 0.4700Column 610.50082.创建⼀个由10个元素组成的等差数列x,第⼀个元素是1,第10个元素是20.(1)计算其元素个数;(2)取出其中第⼆个元素赋值给y.(3)将数组X的前3个元素分别赋值为4,5,6.(4)将数组X的前5个元素倒序后构成⼀个字数组赋值给Z。

matlab实验报告(实验4)

matlab实验报告(实验4)

学生实验报告开课学院及实验室: 机电学院2012年12月21日学院机电学院年级、专业、班姓名学号实验课程名称MATLAB程序设计成绩实验项目名称实验4: 数据和函数的可视化指导老师一、实验目的1、掌握MATLAB绘图的基本步骤和相关指令调用的先后顺序。

2、掌握MATLAB绘图指令的调用方法。

二、实验内容数学函数从形式上可以分为离散函数和连续函数。

MATLAB对这两种函数数据的可视化都提供了相应的指令。

仔细阅读教材【例5.1-1】的实现代码, 运行并保存结果;并改用stem函数, 画出【例5.1-1】的序列图。

仔细阅读教材【例5.1-2】的实现代码, 运行并保存结果;并分别使用描点和连折线方式, 画出连续函数y=xcosx的近似图形(采样点数自定, 要求画出的图尽量接近原连续函数的图)。

仔细阅读【例5.2-2】的实现代码, 理解plot指令画多条曲线的运用方法, 运行并保存结果;并使用plot函数和legend函数, 在同一个图形窗口上画出y=sint和y=sin(2t)在[0,2pi]区间上的图形, 并标出图例。

仔细阅读【例5.2-4】的实现代码, 理解图形标识选项的运用方法, 运行并保存结果;并修改代码, 把“sin(t)”字体改为正体, 大小改为20, “极大值”改为宋体。

阅读【例5.2-6】, 理解使用hold on指令画多幅图的方法, 运行并保存结果。

阅读【例5.2-8】, 理解使用subplot函数画多个子图的方法, 运行并保存结果。

(1)综合实验: 阅读以下关于通过绘制二阶系统阶跃响应综合演示图形标识的示例, 理解示例中所有图形标识指令的作用, 掌握各个图形标识指令的运用方法, 并在原指令上改动以实现以下功能:(2)把横坐标范围改为0至5pi, 纵坐标范围改为0至2;(3)把图中的横轴的刻度改为从0开始到4pi, 中间各点间隔为pi/2;纵轴刻度改为从0开始到1.5, 中间各点间隔为0.3;(4)把图中的α改为σ。

matlab实验报告

matlab实验报告

matlab实验报告《matlab 实验报告》一、实验目的通过本次实验,熟悉 MATLAB 软件的基本操作和功能,掌握使用MATLAB 进行数学计算、数据处理、图形绘制等方面的方法和技巧,提高运用 MATLAB 解决实际问题的能力。

二、实验环境1、计算机:_____2、操作系统:_____3、 MATLAB 版本:_____三、实验内容及步骤(一)矩阵运算1、创建矩阵在 MATLAB 中,可以通过直接输入元素的方式创建矩阵,例如:`A = 1 2 3; 4 5 6; 7 8 9`,创建了一个 3 行 3 列的矩阵 A。

还可以使用函数来创建特定类型的矩阵,如全零矩阵`zeros(m,n)`、全 1 矩阵`ones(m,n)`、单位矩阵`eye(n)`等。

2、矩阵的基本运算加法和减法:两个矩阵相加或相减,要求它们的维度相同,对应元素进行运算。

乘法:矩阵乘法需要满足前一个矩阵的列数等于后一个矩阵的行数。

转置:使用`A'`来获取矩阵 A 的转置。

(二)函数的使用1、自定义函数可以在 MATLAB 中自定义函数,例如定义一个计算两个数之和的函数:```matlabfunction s = add_numbers(a,b)s = a + b;end```2、调用函数在命令窗口中输入`add_numbers(3,5)`即可得到结果 8。

(三)数据的读取和写入1、读取数据使用`load`函数可以读取数据文件,例如`load('datatxt')`。

2、写入数据使用`save`函数可以将数据保存到文件中,例如`save('resulttxt',A)`,将矩阵 A 保存到`resulttxt`文件中。

(四)图形绘制1、二维图形绘制折线图:使用`plot(x,y)`函数,其中 x 和 y 分别是横坐标和纵坐标的数据。

绘制柱状图:使用`bar(x,y)`函数。

2、三维图形绘制三维曲线:使用`plot3(x,y,z)`函数。

北邮现代通信技术实验报告

北邮现代通信技术实验报告

北邮现代通信技术实验报告1. 引言通信技术是现代社会中不可或缺的一部分,它不仅仅改变了我们的生活方式,还推动了科技的发展。

本文将介绍北邮现代通信技术实验的设计和实施过程。

2. 实验目标本实验的主要目标是让学生了解现代通信技术的基本原理和应用。

通过实践操作,学生将能够掌握以下内容:•了解通信系统的基本组成部分•掌握数字信号的调制和解调方法•学会使用软件模拟通信系统•了解信道编码和纠错技术3. 实验步骤步骤1:实验准备在实验开始之前,我们需要准备以下设备和软件:•一台个人计算机•MATLAB或其他模拟通信系统的软件步骤2:信号调制在这一步骤中,我们将学习数字信号的调制方法。

调制是将数字信号转换为模拟信号的过程,常见的调制方法包括调幅(AM)和调频(FM)。

我们将使用MATLAB软件进行信号调制的模拟。

步骤3:信号解调在这一步骤中,我们将学习如何从模拟信号中恢复出数字信号。

解调是调制的逆过程,常见的解调方法包括包络检测和相干解调。

我们将使用MATLAB软件进行信号解调的模拟。

步骤4:信道编码和纠错在实际通信中,信号会受到噪声的干扰,容易出现误码。

为了提高通信系统的可靠性,我们需要使用编码和纠错技术。

在这一步骤中,我们将学习如何对数字信号进行编码和纠错处理。

步骤5:实验总结实验结束后,我们将对实验结果进行总结和分析。

通过实验,我们可以对现代通信技术的原理和应用有更深入的了解,并加深对通信系统的认识。

4. 实验结果与分析在本实验中,我们成功地完成了信号调制、解调以及信道编码和纠错的实验。

通过对实验结果的分析,我们发现信道编码和纠错技术对于提高通信系统的可靠性和性能非常重要。

5. 结论通过本次实验,我们深入了解了现代通信技术的基本原理和应用。

通过实践操作,我们掌握了数字信号的调制和解调方法,并学会了使用软件模拟通信系统。

同时,我们也了解了信道编码和纠错技术的重要性。

6. 参考文献[1] 通信原理与系统仿真实验教程 [2] 现代通信技术导论以上是北邮现代通信技术实验报告的详细内容。

matlab 实验报告

matlab 实验报告

matlab 实验报告Matlab实验报告引言:Matlab是一种强大的数值计算和可视化软件,广泛应用于科学、工程和经济等领域。

本实验报告将介绍我在使用Matlab进行实验过程中的一些经验和结果。

实验一:矩阵运算在这个实验中,我使用Matlab进行了矩阵运算。

首先,我创建了一个3x3的矩阵A和一个3x1的矩阵B,并进行了矩阵相乘运算。

通过Matlab的矩阵乘法运算符*,我得到了一个3x1的结果矩阵C。

接着,我对矩阵C进行了转置操作,得到了一个1x3的矩阵D。

最后,我计算了矩阵C和矩阵D的点积,并将结果输出。

实验二:数据可视化在这个实验中,我使用Matlab进行了数据可视化。

我选择了一组实验数据,包括时间和温度两个变量。

首先,我将数据存储在一个矩阵中,并使用Matlab的plot函数将时间和温度之间的关系绘制成曲线图。

接着,我使用Matlab的xlabel、ylabel和title函数添加了横轴、纵轴和标题。

最后,我使用Matlab的legend函数添加了图例,以便更好地理解图表。

实验三:数值积分在这个实验中,我使用Matlab进行了数值积分。

我选择了一个函数f(x)进行积分计算。

首先,我使用Matlab的syms函数定义了符号变量x,并定义了函数f(x)。

接着,我使用Matlab的int函数对函数f(x)进行积分计算,并将结果输出。

为了验证结果的准确性,我还使用了Matlab的diff函数对积分结果进行了求导操作,并与原函数f(x)进行了比较。

实验四:信号处理在这个实验中,我使用Matlab进行了信号处理。

我选择了一个音频文件,并使用Matlab的audioread函数读取了该文件。

接着,我使用Matlab的fft函数对音频信号进行了傅里叶变换,并将结果绘制成频谱图。

为了进一步分析信号的特征,我还使用了Matlab的spectrogram函数绘制了信号的时频图。

通过对信号的频谱和时频图的观察,我可以更好地理解信号的频率和时域特性。

北京邮电大学MATLAB实验报告

北京邮电大学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的使用了解了许多,尤其是在对声音和图像的处理方面。

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

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)重叠保留法代码function[Y]=overlpsav(x,h,N)Lx=length(x);M=length(h);M1=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-1xk=x(k*L+1:k*L+N);b=fft(xk,N);C=fft(h,N);Z=b.*C;Y(k+1,:)=ifft(Z,N);endY=Y(:,M:N)';Y=(Y(:))'对应流程图三.实验结果重叠相加法x=[1,2,3] h=[1,2,3] N=4重叠保留法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 次乘法运算。

这N 个序列依次向右移动一位故需(N-1)(M-1)次加法运算。

按照FFT 和IFFT 计算线性卷积时,设L=N=M-1,整个运算过程包含了2个FFT 、一个IFFT 和L 此乘法运算,所以,按基2频域抽选算法实现FFT 或IFFT ,共需完成1.5L 次乘法和加法运算。

五. 讨论总结1. N 越大快算法的运算量越小,即实现重叠相加法和重叠保留法的运算量越小。

2. MATLAB 软件使用方法和语言不熟悉,通过查阅书籍网络解决。

实验题目2:周期序列的谱分析实验目的:利用 DFT 分析模拟信号()()cos 16a x t t π=之频谱。

试验内容:1、设定采样周期 T 并说明原因根据奈奎斯特取样条件,fs>=2f=2*8=16Hz ,所以取 fs=20Hz ,T=1/f=0.05s 。

2、若令()cos(16)x n nT π=,确定该序列之周期 N 并说明原因 因为 x(n)=cos(0.8 πn), 2π/0.8π=2.5所以周期 N=5.3、绘制 10个周期内 x(n)的取值情况 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、令x1(n)表示x(n)的主值序列,绘制|DFT(x1(n)|,解释取值情况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');所得X1(k)取值即为x(n)的5点(一个周期内)DFT结果,为清晰谱线。

5、令x2(n)表示x(n)的任一周期,绘制|DFT(x2(n)|,解释取值情况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');所得X2(k)取值与x(n)主值序列DFT结果相同。

因为DFT是反映信号的频域特性,所以同为一个周期,频域特性一定相同,无论起始位置如何,其DFT情况都相同。

6、令x3(n)表示x(n)的2个周期,绘制|DFT(x3(n)|,解释取值情况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');因为选取了2个周期,所以DFT点数是X1(k)的2倍。

因为取的周期的整数倍,所以可以得到清晰谱线。

所得X3(k)是在x(n)主值序列DFT结果的基础上插入取值为零的点,将点数提高至10,仍为清晰谱线。

7、若x4(n)=x(n)×RM(n),而M不是x(n)周期的整数倍,绘制|DFT(x4(n)|,解释取值情况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');所得X4(k)是非周期整数倍点数的DFT,不是清晰谱线。

因为选取了1.3个周期,不是周期的整数倍,选取的x4(n)没有体现出x(n)的周期特性,所以得到的谱线的形状特征必然与X1(k)、X2(k)、X3(k)不同。

实验题目3:梳状滤波器的应用实验目的:录制一段自己的话音,时间长度及取样频率自定;对该段声音加入一次反射、三次反射和无穷多次反射。

试验内容: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(n1)+...+b(nb+1)*x(n-nb)-a(2)*y(n-1)-...-a(na+1)*y(n-na)。

2、在同一张图上,绘制原声音序列x(n)、加入一次反射后的声音序列x1(n)、加入三次反射后的声音序列x3(n)和加入无穷多次反射后的声音序列xI(n)。

[x, fs] = wavread('843.wav');% sound(x, fs);a = 0.6; T = 0.6;y1 = filter([1, zeros(1,T*fs-1), a], 1, x);% sound(y1, fs); wavwrite(y1, fs, 'echo1.wav'); y2 = filter([1, zeros(1,T*fs-1), a, zeros(1,T*fs-1), a^2, zeros(1,T*fs-1), a^3],1, x);% sound(y2, fs); wavwrite(y2, fs, 'echo2.wav'); y3 = filter(1, [1, zeros(1,T*fs-1), a], x);% sound(y3, fs); wavwrite(y3, fs, 'echo3.wav'); plot(y3, 'm');hold on; plot(y2, 'r');hold on; plot(y1, 'g');hold on; plot(x, 'b');a=0.6;T=0.2a=0.3;T=0.2a=0.9;T=0.2a=0.6;T=0.6a=0.6;T=1.0在这里我使用了一段名叫“843。

WAV”的短音频,得到上图,其中蓝色为原声音序列x(n),粉红色为加入一次反射后的声音序列x1(n),绿色为加入三次反射后的声音序列x3(n),红色为加入无穷多次反射后的声音序列xI(n)。

相关文档
最新文档