《Matlab峰均功率比设计.doc》由会员分享,可在线阅读,更多相关《Matlab峰均功率比设计.doc(10页珍藏版)》请在三一办公上搜索。
1、教师评阅意见: 签名: 年 月 日实验成绩:一、 设计题目峰均功率比设计。二、 实验内容及要求生成四个长度为64的序列,分别为s1,s2,s3,s4,对每个序列乘上1,-1,j,-j中的任意一个因子后求和.求所有可能的和序列中峰均功率比最低的序列及相应的因子。开始生成s1,s2等序列,以及其他相应的矩阵完成24种因子的排列求所有可能的峰均功率比pm以及最小峰均功率比pminpm(i)=pmini=1输出因子i=i+1i24结束NYNY1.流程图:三、实验过程(详细设计)2.相关知识:峰均比,或称峰值因数(crest factor),简称PAR(peak-to-average ratio),或叫
2、峰均功率比(简称PARR,peak-to-average power ratio)。 先说定义:峰均比是一种对波形的测量参数,等于波形的振幅除以有效值(RMS)所得到的一个比值峰值功率既是只以某种概率出现的肩峰的瞬时功率。通常概率取为0.01%。 平均功率是系统输出的实际功率。 在某个概率下峰值功率跟平均功率的比就称为某个概率下的峰均比,比如PAR=9.10.1%,各种概率的峰均比就形成了CCDF曲线(互补累积分布函数)。 在概率为0.01%处的PAR,一般称为CREST因子。3.峰均功率比详细设计:1)利用相关函数生成s1,s2,s3.s4序列;2)利用四重循环,再加判断语句完成因子的24种
3、不同的组合;3)求每一种因子的功率最大值,功率平均值,以及每一种因子对应的峰均功率比;4)求所有可能中的最小峰均功率比,以及对应的因子和序列。4.MATLAB源代码:clc;clear; %clc,清屏;clear,清楚变量,以免在程序运行中出现错误。s=rand(4,64); %生成s1,s2,s3,s4。a=1,-1,j,-j; %原始因子组合。b=zeros(1,4); %生成一个1*4的零矩阵,用于存放一种因子。d=zeros(24,4); %生成一个24*4的零矩阵,用于存放24种不同的排列的因子。x=1; %标记。c=zeros(24,64); %用于存放S与因子相乘之后的和。p=
4、zeros(24,64); %用于存放每一个元素的功率。for m1=1:4 %用四重循环,再加判断语句完成因子的24种不同的组合。 b(1)=a(m1); for m2=1:4 if m2=m1 b(2)=a(m2); else continue; end for m3=1:4 if m3=m2 & m3=m1 b(3)=a(m3); else continue; end for m4=1:4 if m4=m3 & m4=m2 & m4=m1 b(4)=a(m4); else continue; end end d(x,:)=b;x=x+1; %将每一种因子的组合放在d数组中,x加1。 en
5、d endendfor m6=1:24 c(m6,:)=d(m6,:)*s; p(m6,:)=abs(c(m6,:).2; %每一行求模,再求功率。 pmax(m6)=max(p(m6,:); %求每一行功率中的最大值,即每一种因子对应的功率的最大值。 avg(m6)=mean(p(m6,:); %求每一种因子对应的功率平均值。 pm(m6)=pmax(m6)/avg(m6); %求每一种因子对应的峰均功率比。endpmin=min(pm); %求所有可能中的最小峰均功率比。y=1; %标记y。for n=1:24 if pm(n)=pmin yinzi(y,:)=d(n,:); %求最小峰均
6、功率比对应的因子。 xulie(y,:)=c(n,:); y=y+1; endendyinzi,xulie四、 测试结果及设计分析1.得到的因子如下图所示:2.由于篇幅原因,只列出部分相应的序列,如下图:3.设计分析:对于这个实验的设计,其中的核心部分是对那24种不同的因子的排列的设计,只要这24种因子能正确的排列出来,并存放在一个矩阵中,其他的部分的问题也就迎刃而解了。而对于这24种因子的排列其实有两种方法:一、采用比较原始,相对比较麻烦一点的办法,就是将24种组合直接手动输入到一个矩阵中。显然这种方法的工作量比较大且容易由于疏忽而出错,不过比较简单,适用于排列较少的情况。二、利用循环加分支
7、语句,对其进行排列。采用这种的方法,工作量要少一些,而且也不容易出错,不过其设计思想要麻烦很多,重在程序的设计上。对于本实验,有24种组合,工作量还是相对比较大,因此采用第二种方法来进行设计。概要设计思想是:利用四重循环(因为一种因子有四个元素),再加上判断语句(判断语句主要是防止重复)完成因子的24种组合。五、 实验心得体会在刚开始做这个题的时候,真可谓是“丈二的和尚摸不着头脑”。造成这种情况的原因是,对题干中的一些专有名词比较陌生,另外就是对题意的理解不到位;以至于写了半天的程序最后发现完全理解错了题意。在这个实验过程中,还是遇到很多的问题,不仅是因为题本身有难度,另外就是我们刚接触MAT
8、LAB编程,对这种环境比较陌生。不过我想,最主要的原因还是我们自身的问题,写的程序的比较少,平时又没有太注重对自己编程能力的锻炼,才会出现如今的举步维艰。还好,经过不懈的努力,最终还是顺利地完成了实验的基本要求。经过这次实验,让我感觉到平时的积累是十分重要的,正所谓万丈高楼平地而起,没有平时坚实的基础,光靠临时抱佛佛脚是行不通的。六、思路及体会正如在上面设计分析中提到的一样,这个实验的主要之处,就是要正确无误的完成24种因子的排列问题。当然,这种排列的设计思想就显得至关重要了。在对这个排列的程序设计时,我们的确费了很多劲,几个同学一起讨论,程序被不断的修改。这当中让我体会最深就是心细,其实这个
9、排列的设计不是很难,关键在于心细,要考虑全面、周到,思维要严禁,也只有这样才能完成目标。教师评阅意见: 签名: 年 月 日实验成绩:一、 设计题目BPSK调制设计二、 实验内容及要求用一个双极性基带数据信号对载波进行角度调制产生BPSK信号s(t)=10cosWct+Dpm(t)。式中m(t)=1为n位01随机序列(n为学号后3位)Tb=0.0025秒,Wc=1000要求:画出调制指数为下述值时对应的BPSK信号波形及其FFT频谱h=0.2;h=0.5;h=1思考题:可以用哪些方法对产生的信号进行解调(给出解调框图)?是否会出现180度相位模糊?开始根据传入的N生成N个0、1序列m设置采样点数
10、并将上一步中的m转换成-1、1序列i=1用s(t)的公式调制;i=i+1iN结束NY1.流程图:三、 实验过程2.详细设计:1)考虑本题要画出不同调制指数h的BPSK信号波形及其FFT频谱,所以将本程序设计成函数的形式,便于传入不同的参数。2)利用传入的参数N(学号),生成一个1维N个的0、1矩阵m ;并利用表达式m=m*2-1将m变成-1、1序列;再选取抽样点数为16。3)利用for循环遍历N个元素,用s=10*cos(wc*t+h/2*pi*m(i)完成对每个元素的调制。4)然后再用fftshift函数对调制后的序列计算频谱,最后再画出其BPSK信号波形及其FFT频谱。3代码:functi
11、on trans=BPSKmodu(h,N) %h表示调制指数,N表示学号;close all; %关闭所有的对话框;wc=1000*pi; %角频率;t=linspace(0,0.0025,16); %选取采样点数16m=m*2-1; %将生成的0、1序列转换成-1、1序列;trans=; %用于存放调制后的序列;for i=1:length(m) s=10*cos(wc*t+h/2*pi*m(i); trans=trans,s;endfigure,plot(1:length(trans),trans);axis(0,100,-15,15); %由于数据相对较多,所以只画出一部分;mod=f
12、ftshift(abs(fft(trans); %计算频谱;figure,plot(mod);end四、测试结果及设计分析1. BPSK信号波形(只画出了0-100之间的):2.h=0.2时的频谱图:3.h=0.5时的频谱图:4. h=1时的频谱图:五、实验心得体会(含思考题)在通信系统中,BPSK信号的解调通常都采用相干解调,解调器原理图如下图,在相干解调过程中需要用到和接受的BPSK信号同频同相的相干载波。有可能会出现180度的相位模糊。因为BPSK解调过程中会用到带通滤波器、和低通滤波器,而信号经过滤波器之后会产生一定的延时。我们设延时为IN,滤波器的长度为M,它们之间的关系是:2*IN+1=M。根据这个公式我们就可以求出滤波器的延时。并且BPSK是绝对相移键控,接收端的信号可能与载波不同步,经过低通滤波器后在进行抽样判决后的结果也许就会与原来的序列刚好相反,是原来的反码,就会产生相位模糊。经过之前的一些小实验和峰均功率比的实验,这次的BPSK实验,在语法上基本没有多大的问题。而且要写的代码也不是很多,其中的算法也不如上一个实验的难懂。只要掌握了BPSK的基本原理,实现上不存在多大的问题。不过还是有很多注意的地方,比如采样点的选取;-1、1序列的生成等问题。六、思路及体会