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语言姓名:_班级:_学号:专业:目录实验一随机序列的产生及数字特征估计 (2)实验目的 (2)实验原理 (2)实验内容及实验结果 (3)实验小结 (6)实验二随机过程的模拟与数字特征 (7)实验目的 (7)实验原理 (7)实验内容及实验结果 (8)实验小结 (11)实验三随机过程通过线性系统的分析 (12)实验目的 (12)实验原理 (12)实验内容及实验结果 (13)实验小结 (17)实验四窄带随机过程的产生及其性能测试 (18)实验目的 (18)实验原理 (18)实验内容及实验结果 (18)实验小结 (23)实验总结 (23)实验一随机序列的产生及数字特征估计实验目的1.学习和掌握随机数的产生方法。
2.实现随机序列的数字特征估计。
实验原理1.随机数的产生随机数指的是各种不同分布随机变量的抽样序列(样本值序列)。
进行随机信号仿真分析时,需要模拟产生各种分布的随机数。
在计算机仿真时,通常利用数学方法产生随机数,这种随机数称为伪随机数。
伪随机数是按照一定的计算公式产生的,这个公式称为随机数发生器。
伪随机数本质上不是随机的,而且存在周期性,但是如果计算公式选择适当,所产生的数据看似随机的,与真正的随机数具有相近的统计特性,可以作为随机数使用。
(0,1)均匀分布随机数是最最基本、最简单的随机数。
(0,1)均匀分布指的是在[0,1]区间上的均匀分布, U(0,1)。
即实际应用中有许多现成的随机数发生器可以用于产生(0,1)均匀分布随机数,通常采用的方法为线性同余法,公式如下:,序列为产生的(0,1)均匀分布随机数。
定理1.1若随机变量X 具有连续分布函数,而R 为(0,1)均匀分布随机变量,则有2.MATLAB中产生随机序列的函数(1)(0,1)均匀分布的随机序列函数:rand用法:x = rand(m,n)功能:产生m×n 的均匀分布随机数矩阵。
(2)正态分布的随机序列函数:randn用法:x = randn(m,n)功能:产生m×n 的标准正态分布随机数矩阵。
随机过程实验报告全

随机过程实验报告学院:专业:学号:姓名:一、实验目的通过随机过程的模拟实验,熟悉随机过程编码规律以及各种随机过程的实现方法,通过理论与实际相结合的方式,加深对随机过程的理解。
二、实验内容(1)熟悉Matlab工作环境,会计算Markov链的n步转移概率矩阵和Markov链的平稳分布。
(2)用Matlab产生服从各种常用分布的随机数,会调用matlab自带的一些常用分布的分布律或概率密度。
(3)模拟随机游走。
(4)模拟Brown运动的样本轨道的模拟。
(5)Markov过程的模拟。
三、实验原理及实验程序n步转移概率矩阵根据Matlab的矩阵运算原理编程,Pn = P ^n。
已知随机游动的转移概率矩阵为:P =0.5000 0.5000 00 0.5000 0.50000.5000 0 0.5000求三步转移概率矩阵p3及当初始分布为P{x0 = 1} = p{x0 = 2} = 0, P{x0 = 3} = 1 时经三步转移后处于状态3的概率。
代码及结果如下:P = [0.5 0.5 0; 0 0.5 0.5; 0.5 0 0.5] %一步转移概率矩阵P3 = P ^3 %三步转移概率矩阵P3_3 = P3(3,3) %三步转移后处于状态的概率1、两点分布x=0:1;y=binopdf(x,1,0.55);plot(x,y,'r*');title('两点分布');2、二项分布N=1000;p=0.3;k=0:N;pdf=binopdf(k,N,p);plot(k,pdf,'b*');title('二项分布');xlabel('k');ylabel('pdf');gridon;boxon3、泊松分布x=0:100;y=poisspdf(x,50);plot(x,y,'g.');title('泊松分布')4、几何分布x=0:100;y=geopdf(x,0.2);plot(x,y,'r*');title('几何分布');xlabel('x');ylabel('y');5、泊松过程仿真5.1 % simulate 10 timesclear;m=10; lamda=1; x=[];for i=1:ms=exprnd(lamda,'seed',1);x=[x,exprnd(lamda)];t1=cumsum(x);end[x',t1']5.2%输入:N=[];for t=0:0.1:(t1(m)+1)if t<t1(1)N=[N,0];elseif t<t1(2)N=[N,1];elseif t<t1(3)N=[N,2];elseif t<t1(4)N=[N,3];elseif t<t1(5)N=[N,4];elseif t<t1(6)N=[N,5];elseif t<t1(7)N=[N,6];elseif t<t1(8)N=[N,7];elseif t<t1(9)N=[N,8];elseif t<t1(10)N=[N,9];elseN=[N,10];endendplot(0:0.1:(t1(m)+1),N,'r-') 5.3% simulate 100 timesclear;m=100; lamda=1; x=[];for i=1:ms= rand('seed');x=[x,exprnd(lamda)];t1=cumsum(x);end[x',t1']N=[];for t=0:0.1:(t1(m)+1)if t<t1(1)N=[N,0];endfor i=1:(m-1)if t>=t1(i) & t<t1(i+1)N=[N,i];endendif t>t1(m)N=[N,m];endendplot(0:0.1:(t1(m)+1),N,'r-')6、泊松过程function I=possion(lambda,m,n)for j=1:mX=poissrnd(lambda,[1,n]); %参数为lambda的possion 过程N(1)=0;for i=2:nN(i)=N(i-1)+X(i-1);endt=1:n;plot(t,N)grid onhold onend7、布朗运动7.1一维布朗运动程序:function [t,w]=br1(t0,tf,h)t=t0:h:tf;t=t';x=randn(size(t));w(1)=0;for k=1:length(t)-1w(k+1)=w(k)+x(k);endw=sqrt(h)*w;w=w(:);end调用t0=1;tf=10;h=0.01;[t,w]=br1(t0,tf,h);figure;plot(t,w,'*');xlabel('t');ylabel('w');title('一维Brown运动模拟图'); 7.2二维布朗运动:function [x,y,m,n]=br2(x0,xf,y0,yf,h)x=x0:h:xf;y=y0:h:yf;a=randn(size(x));b=randn(size(y));m(1)=0;n(1)=0;for k=1:length(x)-1m(k+1)=m(k)+a(k);n(k+1)=n(k)+b(k);endm=sqrt(h)*m;n=sqrt(h)*n;end调用x0=0;xf=10;h=0.01;y0=0;yf=10;[x,y,m,n]=br2(x0,xf,y0,yf,h);figure;plot(m,n);xlabel('m');ylabel('n');title('二维Brown运动模拟图');7.3三维布朗运动:npoints =1000;dt = 1;bm = cumsum([zeros(1, 3); dt^0.5*randn(npoints-1, 3)]);figure(1);plot3(bm(:, 1), bm(:, 2), bm(:, 3), 'k');pcol = (bm-repmat(min(bm), npoints, 1))./ ...repmat(max(bm)-min(bm), npoints, 1);hold on;scatter3(bm(:, 1), bm(:, 2), bm(:, 3), ...10, pcol, 'filled');grid on;hold off;8、马尔科夫链离散服务系统中的缓冲动力学m=200;p=0.2;N=zeros(1,m); %初始化缓冲区A=geornd(1-p,1,m); %生成到达序列模型, for n=2:mN(n)=N(n-1)+A(n)-(N(n-1)+A(n)>=1);endstairs((0:m-1),N);9、随机数游走9.1 100步随机游走n = 100; %选取步数。
随机过程-实验报告

P2 = 0.4167 0.3889 0.3889 0.3611 0.3889 0.3611 0.2222 0.2222 0.2500
7
(1) 2 步转移概率 P2 = 0.4167 0.3889 0.3889 0.3611 0.3889 0.3611 0.2222 0.2222 0.2500
(2) X 2 的分布律 S2 = 0.1667 (3) 平稳分布 T= 0.4000 0.3714 0.2286 2、为适应日益扩大的旅游事业的需要,某城市的 A,B,C 三个照相馆组成一个联 营部,联合经营出租相机的业务,旅游者可由 A,B,C 三处任何一处租出相机,用完 后还到 A,B,C 三处的任何一处即可.估计转移概率如表所示,今欲选择 A,B,C 之一 附设租机维修点,问该点设在何处为好? (程序与结果) 还相机处 A B C 租相机处 A 0.2 0.8 0 B 0.8 0 0.2 C 0.1 0.3 0.6
1 / 2 P 1/3 1/ 3 1/3 1/3 1/ 2 1/ 6 1/3 1/ 6
(1) 计算 2 步转移概率;(2) 已知初始分布为 P 2 / 5, 2 / 5,1 / 5 ,求 X 2 的分布律 (3) 求平稳分布,要求给出程序与结果。 程序:
9
程序: p=[0.2 0.8 0;0.8 0 0.2; 0.1 0.3 0.6]; P2=p^2 a=[p'-eye(3);ones(1,3)];b=[0 0 0 1]';T=a\b 结果:
0.1389
0.0611
解:由题意可知,该问题的转移概率矩阵 P 为:
8
0 .2 P 0 .8 0 .1
实验内容 判定一个 Markov 链是否是遍历的,若是遍历的,求其极限分布。并能从实际问 题中抽象出 Markov 链,并求出其极限分布,并理解其实际意义。 实验习题 1、已知齐次马氏链 X n , n 0,1, 2, 的状态空间 E 1, 2, 3 ,状态转移矩阵为
工程随机过程实验报告

《工程随机过程》
课程实验报告
实验一利用MATLAB编程描绘出随机过程
的图像。
X t x wt
()cos()
实验目的
掌握应用随机过程的本质含义, 会用MATLAB语言编写目标函数的
程序。
算法及其程序: w = 0.2 ; x = rand(1,50) ; t= -10 : 0.01 : 10 ; t=t';
Xt=zeros(size(t,1),size(x,2)); for i=1:size(Xt,2) Xt(:,i)=x(1,i)*cos(w*t); End figure; plot(t,Xt); xlabel('t'); ylabel('X(t)');
程序运行结果:
图1-1 该图为随机过程()cos()X t x wt =的图像。
实验三 利用MATLAB 绘制随机过程的谱密度222()x G w w αββ=+(αβ和为正数)
的图像 实验目的:
掌握随机过程的功率谱密度, 了解它的图像。
算法及其程序: w = -10 : 0.001 : 10 ;
a = 3;
b = 7; Gxw = 2*a*b ./ (b^2+w.^2) ; figure; plot(w,Gxw,'b','linewidth',10); xlabel('w'); ylabel('Gxw'); 程序运行结果:
图1-2
该图为随机过程的谱密度22
2()x G w w αββ=+(αβ和为正数)的图像。
非线性方程求解实验报告

数学实验报告非线性方程求解一、实验目的1.掌握用 MATLAB 软件求解非线性方程和方程组的基本用法,并对结果作初步分析;2.练习用非线性方程和方程组建立实际问题的模型并进行求解。
二、实验内容题目1【问题描述】(Q1)小张夫妇以按揭方式贷款买了1套价值20万元的房子,首付了5万元,每月还款1000元,15年还清。
问贷款利率是多少?(Q2)某人欲贷款50 万元购房,他咨询了两家银行,第一家银行开出的条件是每月还4500元,15 年还清;第二家银行开出的条件是每年还45000 元,20 年还清。
从利率方面看,哪家银行较优惠(简单假设:年利率=月利率×12)?【分析与解】假设初始贷款金额为x0,贷款利率为p,每月还款金额为x,第i个月还完当月贷款后所欠银行的金额为x i,(i=1,2,3,......,n)。
由题意可知:x1=x0(1+p)−xx2=x0(1+p)2−x(1+p)−xx3=x0(1+p)3−x(1+p)2−x(1+p)−x……x n=x0(1+p)n−x(1+p)n−1−⋯−x(1+p)−x=x0(1+p)n−x (1+p)n−1p=0因而有:x0(1+p)n=x (1+p)n−1p (1)则可以根据上述方程描述的函数关系求解相应的变量。
(Q1)根据公式(1),可以得到以下方程:150p(1+p)180−(1+p)180+1=0设 f(p)=150p(1+p)180−(1+p)180+1,通过计算机程序绘制f(p)的图像以判断解p的大致区间,在Matlab中编程如下:for i = 1:25t = 0.0001*i;p(i) = t;f(i) = 150*t*(1+t).^180-(1+t).^180+1;end;plot(p,f),hold on,grid on;运行以上代码得到如下图像:f(p)~p关系曲线图通过观察上图可知p∈[0.002,0.0022]。
Solution1:对于p∈[0.002,0.0022],采用二分法求解,在Matlab 中编程如下:clear;clc;x0=150000;n=180;x=1000;p0=0.002;p1=0.0022;while (abs(p1-p0)>1e-8)f0=x0*(1+p0).^n+x*(1-(1+p0).^n)/p0;f1=x0*(1+p1).^n+x*(1-(1+p1).^n)/p1;p2=(p0+p1)/2;f2=x0*(1+p2).^n+x*(1-(1+p2).^n)/p2;if (f0*f2>0 && f1*f2<0)p0=p2;elsep1=p2;end;end;p0结果得到p0=0.00208116455078125=0.2081%.所以贷款利率是0.2081%。
matlab实验报告
matlab实验报告MATLAB 实验报告1、在区间[-1,1]上分别取n=10、20用两组选中节点对龙格函数22511)(xx f +=作多项式插值及三次样条插值,对每个n 值,分别画出插值函数及f(x)的图形.解:n=10在matlab 命令窗口中键入:>>x=-1:0.2:1;y=1./(1+25*x.^2);y1=interp1(x,y,'pchip');y2=interp1(x,y,'spline');plot(x,y1,'o',x,y1,'-',x,y2,'*',x,y2,'-.'),gridlegend('样本点','三次插值','三次样条插值')回车得出:n=20在matlab 命令窗口中键入:>> x=-1:0.1:1;y=1./(1+25*x.^2);y1=interp1(x,y,'pchip');y2=interp1(x,y,'spline');plot(x,y1,'o',x,y1,'-',x,y2,'*',x,y2,'-.'),gridlegend('样本点','三次插值','三次样条插值')legend('样本点','三次插值','三次样条插值') 回车得出:由结果可见,用两种方法画出的曲线在样本点之间取值并无太大差异,曲线亦基本上一致。
2、对于给定函数22511)(xx f +=在区间[-1,1]上取)10,,1,0(2.01 =+-=i i x i ,试求3次曲线拟合,试画出拟合曲线并打印出方程。
解:在matlab 命令窗口中键入:>> x=-1:0.2:1;y=1./(25*x.^2+1);p=polyfit(x,y,3)回车得出:p =-0.0000 -0.5752 0.0000 0.4841即拟合的多项式为:4814.05752.02+-=x y键入:x1=-1:0.1:1;y1=polyval(p,x1);plot(x,y,'*',x1,y1),gridlegend('样本点','拟合曲线p3(x)')回车得出:由结果可看到,拟合曲线并未通过所有的样本点,它冲出了一些随机误差,更能真实地反映出两组量间关系变化的趋势。
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是一个非常强大和方便的工具,可以帮助我们更高效地完成任务。
数学实验报告——利用MALTAB进行非线性规划
㈡简要分析
本题是一道比较简单的非线性规划求解问题, 不涉及数学建模以及应用分析 等问题,只需要将所给问题转化为 MATLAB 代码进行处理。这里可以采用不同的 算法,并对比进行分析。
㈢方法与公式
1、求解规划方法
求解本题可以考虑几种规划。 对于第(1)组约束来说,仅含有上下界约束,可以考虑使用 SQP 方法或者置 信域方法;但是考虑到本题规模较小,这里仅采用 SQP 方法。(事实是,设定使 用大规模算法后,MATLAB 仍旧自动使用 SQP 完成计算,因而无法进行对比); 对第(2)组约束来说,仅可以使用 SQP 方法; 对第(3)组约束来说,可以使用 SQP 方法,也可以利用后两个等式把规划化 化简后再使用 SQP 方法。
5、脚本 2
5
v1 = -10*ones(1,4); v2 = 10*ones(1,4); x00 = [-3,-1,-3,-1]; x01 = -[-3,-1,-3,-1]; x02 = [10,-20,5,3]; x03 = [-5,10,15,-20]; opt = optimset('largeScale','off','MaxFunEvals',4000,'MaxIter', 1000,'Algorithm','active-set'); [x(1,:),f1,exitflag1,out(1)] = fmincon('fun',x00,[],[],[],[],v1,v2,@edge3,opt); [x(2,1:2),f2,exitflag2,out(2)] = fmincon('fun1',x00(2:3),[],[],[],[],v1(1:2),v2(1:2),@edge 31,opt); [x(3,:),f3,exitflag3,out(3)] = fmincon('fun',x01,[],[],[],[],v1,v2,@edge3,opt); [x(4,1:2),f4,exitflag4,out(4)] = fmincon('fun1',x01(2:3),[],[],[],[],v1(1:2),v2(1:2),@edge 31,opt); [x(5,:),f5,exitflag5,out(5)] = fmincon('fun',x02,[],[],[],[],v1,v2,@edge3,opt); [x(6,1:2),f6,exitflag6,out(6)] = fmincon('fun1',x02(2:3),[],[],[],[],v1(1:2),v2(1:2),@edge 31,opt); [x(7,:),f7,exitflag7,out(7)] = fmincon('fun',x03,[],[],[],[],v1,v2,@edge3,opt); [x(8,1:2),f8,exitflag8,out(8)] = fmincon('fun1',x03(2:3),[],[],[],[],v1(1:2),v2(1:2),@edge 31,opt); answer = zeros(1:8); for i = 1:8 out(i) end for j = 1:4 x(2*j,3)=x(2*j,1); x(2*j,1) = -x(2*j,2);
matlab非线性方程实验报告
一、课题名称非线性方程二、目的和意义1、通过实验进一步了解方程求根的算法;2、认识选择计算格式的重要性;3、掌握迭代算法和精度控制;4、明确迭代收敛性与初值选取的关系。
三、实验要求1、编制一个程序进行运算,最后打印出每种迭代格式的敛散情况;2、用事后误差估计来控制迭代次数,并且打印出迭代的次数;3、初始值的选取对迭代收敛有何影响;4、分析迭代收敛和发散的原因。
四、计算公式Newton法二、结构程序设计Newton迭代法Matlab程序function [c,err,count]=diedai(f,x0,delta,max)for k=1:maxx1=x0;x0=f(x0);if abs(x0-x1)<deltaendendc=x0;err=abs(x0-x1);count=k六、结果讨论和分析在命令窗口输入实参调用diedai函数文件进行计算>> f=inline('(3*x+1)/x.^2');>> x0=-2;>> delta=0.0005;>> max=30;>> [c,err]=diedai(f,x0,delta,max) err =5.5997e-005c =-1.5321err =5.5997e-005count =30>> f=inline('(x.^3-1)/3');>> x0=-1;>> delta=0.0005;>> max=30;>> [c,err]=diedai(f,x0,delta,max) err =c =-0.3473err =count =30>> f=inline('(3*x+1)^(1/3)'); >> x0=2;>> delta=0.0005;>> max=30;>> [c,err]=diedai(f,x0,delta,max) err =c =1.8794err =count =30>> f=inline('1/(x.^2-3)');>> x0=-2;>> delta=0.0005;>> max=30;>> [c,err]=diedai(f,x0,delta,max)err =c =-0.3473err =count =30>> f=inline('(3+1/x)^0.5');>> x0=-2;>> delta=0.0005;>> max=30;>> [c,err]=diedai(f,x0,delta,max)err =2.2204e-016c =1.8794err =2.2204e-016count =30>> f=inline('x-1/3*((x.^3-3*x-1)/(x.^2-1))'); >> x0=-2;>> delta=0.0005;>> max=30;>> [c,err]=diedai(f,x0,delta,max)err =c =-1.5321err =count =30X}收敛,才能求出方程的解。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
随机过程的线性变换姓名:徐延林学号:200904013026专业:电子工程指导教师:谢晓霞2012年4月17日一、实验目的了解随机过程线性变换的基本概念和方法,学会运用MATLAB 软件模拟各种随机过程的线性变换,对其结果进行仿真分析,并通过实验了解不同随机过程经过窄带系统的输出。
二、实验原理(1)均匀分布白噪声序列利用MATLAB 函数rand 产生;laplace 分布的白噪声表达式()()(0)2c x m c f x e m --==白噪声 据此我们可以产生拉普拉斯白噪声序列。
(2)自相关函数的估计||11ˆ()()()||N m xn R m x n m x n N m --==+-∑MATLAB 自带的函数为xcorr 。
(3)功率谱的估计先估计自相关函数ˆ()xR m ,再利用维纳-辛钦定理,功率谱为自相关函数的傅立叶变换:1(1)()()N jm x x m N G R m e ωω+-=--=∑MATLAB 自带的函数为periodogram 、pyulear 或pburg 。
(4)均值的估计111ˆ()N x n mx n N -==∑MATLAB 自带的函数为mean 。
(5)方差的估计12211ˆˆ[()]N xx n x n m N σ-==-∑MATLAB 自带的函数为var 。
(6) ARMA 模型的理论自相关函数和理论功率谱对于AR(1)模型()(1)()X n aX n W n =-+,其理论自相关函数和功率谱分别为2222()(0)1()(1)mX X j a R m m a G ae ωσσω-⎧=≥⎪-⎪⎨⎪=⎪-⎩对于ARMA 模型01201()(1)(2)()()(1)()N M a X n a X n a X n a X n N b W n bW n b W n M +-+-+⋯+-=+-+⋯+- 其理论的功率谱密度为220()Mjkwk k x N jkwkk b eG w a eσ-=-==∑∑(7)白噪声过有限系统或宽带信号过窄带系统输出信号成正态分布。
三、实验内容及结果分析 1.PAM 信号的匹配滤波假定信号为脉冲幅度调制(PAM )信号,10()()M k s k s t A p t kt -==-∑,k A 等概率取+1和-1两个值,1s t =,信号在信道中传输会受到加性高斯白噪声的污染,在接收端每一个脉冲要判断发射的是“1”还是“0”。
(1) 画出信号、信号加噪声的波形;(2) 对匹配滤波器输出信号,每隔s t 秒进行取样(在每个脉冲的结尾时刻取样),取样值与一门限(自行确定)进行比较,超过门限判“1”,低于门限判“0”,画出匹配滤波器输出的波形,并标出取样值。
(3)产生10000个二进制数字(随机产生),统计输出端检测的误码率。
结果分析:clear all;clc;ts=1;s=0;h=0;out=0;wuma=0;c=1;t0=100;a=2.*randint(1,100)-1; %随机等概率产生+1和-1t=0:0.01:100;for i=1:100p1=rectpuls(t-0.5-i.*ts); %产生单个矩形脉冲p2=rectpuls(-t-0.5-i.*ts+t0);f1=a(i).*p1;f11=a(i).*p1+0.8.*randn(1,10001);f2=a(i).*p2;h1=c.*p1; %产生单个矩形脉冲的匹配滤波器y=conv(f11,h1); %求单个矩形脉冲过匹配滤波器输出波形 out=out+y;s=s+f1;h=h+f2;endt1=0:0.01:200;figure;plot(t1,out);title('非量化输出波形');for i=1:10000;if out(i.*2)>0 out(i.*2)=1;else out(i.*2)=-1; %输出波形量化endoutput(i)=out(i.*2);if output(i)~=s(i) wuma=wuma+1;endendPwuma=wuma./10000; %统计误码率w=0.8.*randn(1,10001);zs=s+w;figure;subplot(2,1,1);plot(t,s);axis([0 100 -55]);legend('s(t)');title('random PAM signal')subplot(2,1,2);plot(t,zs);axis([0 100 -55]);legend('s(t)+w(n)');title('random PAM + guass noise signal'); figure;subplot(2,1,1);plot(0:0.01:99.99,output);axis([0 100 -5 5]);legend('output signal');title('量化后的输出波形');sc=conv(zs,h); %求所有脉冲和信号的匹配输出 subplot(2,1,2);plot(t1,sc);legend('The output signal');title('经过相参累加器后输出波形');经过运行程序得到相应结果如下(信噪比1:0.8)102030405060708090100-505random PAM signal102030405060708090100-505random PAM + guass noise signal非量化输出波形量化后输出波形经过相参累加器后的输出信噪比对误码率的影响(信号脉宽1s)信噪1:0.1 1:0.5 1:0.8 1:1.5 1:2 1:3 1:100从表格中的数据我们可以看到,信噪比越高,误码率越大,这从实际中也是很好理解的。
为了研究误码率与信噪比的定量关系,我们对上述数据进行拟合得到如下结果:由拟合结果看,误码率与信噪比是近似呈反指数关系的,关系式近似为0.270.305x werror p e-=根据我们自己的理解,当信噪比趋于零时,噪声已将信号完全“淹没”,此时的匹配滤波器就没有什么作用了,由于原信号是随机生成的二进制序列,那么此时的输出误码率应该趋近于50%,即理想的误码率与信噪比的关系应该为0.5x werror p eα-=信号脉宽对误码率的影响(信噪比1:0.8)从上面的结果来看,随着信号脉宽的加大,误码率逐渐降低。
这是由于匹配滤波器总是在脉冲结束的时刻将信号的能量集中起来,信号的脉宽越大,集中的能量就越多,匹配滤波器的输出信噪比就越大,这就越容易“解码”。
单个脉冲信号的能量信号2Q a x t =∆(x 表示脉冲信号的幅度,t ∆表示脉宽)所以匹配滤波器输出信号的信噪比正比于信号的脉宽,由上面的分析我们可知误码率是与信噪比呈反指数关系的,所以我们可以合理的猜测,误码率与脉冲信号的脉宽也是呈反指数关系的。
其实验拟合效果如下:由上面的拟合关系我们可以看到,误码率的确与信号脉宽呈反指数关系的,由于实验的随机性,上面的数据只能作为一种定性的描述,不能作为定量的关系式。
脉宽(*0.01s ) 1 2 3 4 52. 理论值与估计值的对比分析2.1设有AR(1)模型,=--+,X n X n W n()0.8(1)()W(n)是零均值正态白噪声,方差为4。
(1)用MATLAB模拟产生X(n)的500个样本,并绘出波形;(2)用产生的500个观测点估计()X n的均值和方差;(3)画出X(n)的理论的自相关函数和功率谱;(4)估计X(n)的自相关函数和功率谱。
结果分析:N=500;u=0;sigma2=4;a=-0.8;W=u+sqrt(sigma2).*randn(1,N);for n=1:N-1x(1)=0;x(n+1)=a.*x(n)+W(n+1);endfigure;stem(x,'.'); %画序列波形mu=mean(x);sigma=var(x);for i=1:500Rx0(i)=(sigma2.*(a.^i))./(1-(a.^2)); %计算理论自相关函数endfor j=1:1000if j<=500Rx1(j)=Rx0(501-j);elseRx1(j)=Rx0(j-500);endend%将自相关函数处理成轴对称序列Rx2=xcorr(x)/500;figure;subplot(2,1,1),stem(-500:1:499,Rx1,'.'),title('理论自相关函数');subplot(2,1,2),stem(-499:1:499,Rx2,'.'),title('估计自相关函数');Pw=fft(Rx0/5000);f=(0:length(Pw)-1)*1000/length(Pw);figure;subplot(2,1,1),plot(f,10*log10(abs(Pw))),title('理论功率谱'); subplot(2,1,2),periodogram(x,[],'twosided',512,1000),title('估计功率谱');经过运行程序,得到x(n)的序列如下图所示,此时该序列的均值为-0.023,方差为9.952。
并且该序列的理论和估计的自相关函数以及功率谱如下图示。
理论自相关函数估计自相关函数理论功率谱Frequency (Hz)P o w e r /f r e q u e n c y (d B /H z )估计功率谱从上面的自相关函数序列中我们可以看到:估计的自相关函数基本上与理论的自相关函数轮廓符合,都是逐渐衰减的序列;所不同的是,随着时间差的增大理论的自相关函数序列是单调减小的,而估计的自相关函数不是单调减小的,它是一个波动的减小过程,这主要是因为信号噪声的影响。
估计自相关函数的表达式为||11ˆ()()()||N m xn R m x n m x n N m --==+-∑它是与序列()x n的表达式中含有噪声分量,所以这就导致x n的值相关的,而()估计的相关函数必然是一个波动减小的过程,并且我们可以断定波动的程度是与噪声信号的方差呈正相关的。
从功率谱的理论和估计结果来看,我们同样可以发现,估计的双边功率谱与理论的功率谱基本吻合,但是估计的含有较大的波动性,其原因与上面分析的原因类似。
2.2设有ARMA(2,2)模型:+---=+---X n X n X n W n W n W n()0.3(1)0.2(2)()0.5(1)0.2(2)W n是零均值正态白噪声,方差为4。