Matlab峰均功率比设计Word文档下载推荐.docx
- 文档编号:13426309
- 上传时间:2022-10-10
- 格式:DOCX
- 页数:10
- 大小:224.71KB
Matlab峰均功率比设计Word文档下载推荐.docx
《Matlab峰均功率比设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《Matlab峰均功率比设计Word文档下载推荐.docx(10页珍藏版)》请在冰豆网上搜索。
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=zeros(24,64);
%用于存放每一个元素的功率。
form1=1:
4%用四重循环,再加判断语句完成因子的24种不同的组合。
b
(1)=a(m1);
form2=1:
4
ifm2~=m1
b
(2)=a(m2);
else
continue;
end
form3=1:
ifm3~=m2&
&
m3~=m1
b(3)=a(m3);
form4=1:
ifm4~=m3&
m4~=m2&
m4~=m1
b(4)=a(m4);
d(x,:
)=b;
x=x+1;
%将每一种因子的组合放在d数组中,x加1。
end
form6=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);
%求每一种因子对应的峰均功率比。
pmin=min(pm);
%求所有可能中的最小峰均功率比。
y=1;
%标记y。
forn=1:
ifpm(n)==pmin
yinzi(y,:
)=d(n,:
);
%求最小峰均功率比对应的因子。
xulie(y,:
)=c(n,:
y=y+1;
yinzi,xulie
四、测试结果及设计分析
1.得到的因子如下图所示:
2.由于篇幅原因,只列出部分相应的序列,如下图:
3.设计分析:
对于这个实验的设计,其中的核心部分是对那24种不同的因子的排列的设计,只要这24种因子能正确的排列出来,并存放在一个矩阵中,其他的部分的问题也就迎刃而解了。
而对于这24种因子的排列其实有两种方法:
一、采用比较原始,相对比较麻烦一点的办法,就是将24种组合直接手动输入到一个矩阵中。
显然这种方法的工作量比较大且容易由于疏忽而出错,不过比较简单,适用于排列较少的情况。
二、利用循环加分支语句,对其进行排列。
采用这种的方法,工作量要少一些,而且也不容易出错,不过其设计思想要麻烦很多,重在程序的设计上。
对于本实验,有24种组合,工作量还是相对比较大,因此采用第二种方法来进行设计。
概要设计思想是:
利用四重循环(因为一种因子有四个元素),再加上判断语句(判断语句主要是防止重复)完成因子的24种组合。
五、实验心得体会
在刚开始做这个题的时候,真可谓是“丈二的和尚摸不着头脑”。
造成这种情况的原因是,对题干中的一些专有名词比较陌生,另外就是对题意的理解不到位;
以至于写了半天的程序最后发现完全理解错了题意。
在这个实验过程中,还是遇到很多的问题,不仅是因为题本身有难度,另外就是我们刚接触MATLAB编程,对这种环境比较陌生。
不过我想,最主要的原因还是我们自身的问题,写的程序的比较少,平时又没有太注重对自己编程能力的锻炼,才会出现如今的举步维艰。
还好,经过不懈的努力,最终还是顺利地完成了实验的基本要求。
经过这次实验,让我感觉到平时的积累是十分重要的,正所谓万丈高楼平地而起,没有平时坚实的基础,光靠临时抱佛佛脚是行不通的。
六、思路及体会
正如在上面设计分析中提到的一样,这个实验的主要之处,就是要正确无误的完成24种因子的排列问题。
当然,这种排列的设计思想就显得至关重要了。
在对这个排列的程序设计时,我们的确费了很多劲,几个同学一起讨论,程序被不断的修改。
这当中让我体会最深就是心细,其实这个排列的设计不是很难,关键在于心细,要考虑全面、周到,思维要严禁,也只有这样才能完成目标。
BPSK调制设计
用一个双极性基带数据信号对载波进行角度调制产生BPSK信号s(t)=10cos[Wct+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度相位模糊?
三、
实验过程
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.代码:
functiontrans=BPSKmodu(h,N)%h表示调制指数,N表示学号;
closeall;
%关闭所有的对话框;
wc=1000*pi;
%角频率;
t=linspace(0,0.0025,16);
%选取采样点数16
m=m*2-1;
%将生成的0、1序列转换成-1、1序列;
trans=[];
%用于存放调制后的序列;
fori=1:
length(m)
s=10*cos(wc*t+h/2*pi*m(i));
trans=[trans,s];
figure,plot(1:
length(trans),trans);
axis([0,100,-15,15]);
%由于数据相对较多,所以只画出一部分;
mod=fftshift(abs(fft(trans)));
%计算频谱;
figure,plot(mod);
四、测试结果及设计分析
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序列的生成等问题。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Matlab 功率 设计