综合性设计性实验报告
专业班级:
实验所属课程:
实验室(中心):
指导教师:
实验完成时间:
2010级通信工程1班8柴彦冲MATLAB信息科学与工程学院软件中心谭晋20__年11月7日
一、设计题目
峰均功率比设计
二、实验内容及要求
生成四个长度为的序列,分别为s1,s2,s3,s4,对每个序列乘上
[1,-1,j,-j]中的任意一个因子后求和.求所有可能的和序列中峰均功率比最低的序列及相应的因子.
三、实验过程(详细设计)
实验程序如下:
s1=rand(1,);
s2=rand(1,);
s3=rand(1,);
s4=rand(1,);
A=[1-1j-j];
Z=perms(A);
fora=1:24
s11=s1Z(a,1);
s21=s2Z(a,2);
s31=s3Z(a,3);
s41=s4Z(a,4);
S=s11+s21+s31+s41;
forb=1:
sum(a,b)=S(b);
S=0;
fora=1:24
Columns21through25
-0.0658-0.16i-0.0046-0.3547i0.7054-0.6522i0.8190+0.4203i-0.5804+0.2819i
Columns26through30
-0.3521-0.2030i-0.36+0.1709i-0.6094+0.5863i
Columns31through35
0.06-0.0242i-0.9068-0.0780i-0.4461-0.1087i
Columns36through40
-0.3690-0.2298i0.0460+0.2071i0.5008-0.3410i
Columns41through45
0.2397-0.2417i-0.8374-0.6908i0.2458-0.2375i
Columns46through50
0.2730-0.1169i0.5388+0.1858i-0.2274-0.0978i
Columns51through55
-0.5270-0.5904i-0.69-0.3291i-0.4735-0.3031i
-0.05-0.4160i-0.1658+0.3978i0.1052+0.5528i-0.7234-0.4550i-0.4274-0.2878i0.1299-0.4939i0.2858+0.4549i0.02+0.1771i-0.1530-0.0954i0.0941+0.1737i0.0484-0.4709i-0.6810-0.3504i
Columns56through60
-0.2485+0.0063i-0.4612+0.2537i0.0681-0.1261i0.0082-0.7095i0.7213-0.1721i
Columns61through
-0.3037+0.5776i0.3698-0.1375i-0.4970-0.3295i0.2366-0.0077i
ans=
0-1.0000i-1.00001.00000+1.0000i
2、设计分析
通过对本次实验结果进行分析,该程序较好的完成了实验的各项要求,达到了预期效果。
五、实验心得体会(含思考题)
起初刚看到题目的时候,对题目中的峰均功率比存在诸多的不解,后经老师和同学多次解释才明白题目的含义和要求,确定自己的思路。思路确定之后便是一步步去实现。在实现过程中遇到的第一个问题就是如何对序列进行全排列。起初写了一个全排列函数,但运行结果不太理想,总是报错。后经查阅相关资料,发现perms函数可以实现该功能,但最初使用该函数的时候发现若直接输入四个元素,该函数会把空格和负号也当做一个元素进行排列,经探索才发现可以先将四个元素组成先存入一个序列再对序列进行全排列。第二个遇到的问题就是如何通过最小峰均功率比找出相应因子,经认真思考,决定将全
排列之后的各个因子存入一个矩阵,求和之后的结果也存入一个矩阵,这样存入因子的矩阵中每行的因子就对应和矩阵中该因子所生成的和序列。找出最小的峰均功率比之后只要通过其所在行数就可以找到对应的因子。这才解决了问题,完成了实验。
六、思路及体会
2、体会通过本次设计实验我感到只有在正确理解题意后才能明确实验目的,设计相应的算法来实现程序该有的功能,通过坚持不断克服困难,才能最终在学业上更上一层楼。
一、设计题目
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,0.5,1.0
三、实验过程(详细设计)
实验程序如下:
clearall;
closeall;
clc;
Wc=1000pi;
Tb=0.0025;
N=16;
carrierFrequency=Wc/(2pi);
M=fi_(TbcarrierFrequency)+1
h=[0.2,0.5,1.0];
Dp=hpi/2;
bitstream=fi_(rand(1,118)>0.5);
figure
t=1/(N10):1/(N10):118;
_=ceil(t);
c=bitstream(ceil(t));
plot(t,c)
title('signal');
_label('t');
ylabel('原始信号');
L=length(bitstream);
forj=1:3
dataStream=[];
carrier_0=[];
carrier_1=[];
t=(2pi/N:2pi/N:2pi)/Wc;
fori=1:M
carrier_0=[carrier_0,10cos(Wct-Dp(j))];
carrier_1=[carrier_1,10cos(Wct+Dp(j))];
fori=1:length(bitstream)
if(bitstream(i)==0)
dataStream=[dataStream,carrier_0];
else
dataStream=[dataStream,carrier_1];
figure
subplot(3,1,1);
t=1/(N10):1/(N10):10;
_=ceil(t);
c=bitstream(ceil(t));
plot(t,c)
title('signal');
_label('t');
ylabel('数据流');
subplot(3,1,2);
plot(dataStream(1:320));
a_is([0320-1010]);
str=['h=',num2str(h(j))];
title(str);
_label('t');
ylabel('BPSK信号');
modu=fftshift(fft(dataStream));
t=0.025;
df=1/t;
sff=-fi_(length(modu))/2df:df:(fi_(length(modu))-1)/2df;subplot(3,1,3)
plot(sff,abs(modu));
title('频谱图如下')
四、测试结果及设计分析
1、生成的n位01信号
2、h=0.2时对信号前10个比特进行BPSK调制
3、h=0.5时对信号前10个比特进行BPSK调制
3、h=1.0时对信号前10个比特进行BPSK调制
2、设计分析
为较好的观察和判断实验结果是否正确,本次只对信号的前10个比特进行了BPSK调制。使产生的结果图形更加直观。通过结果图分析,本次实验程序实现了对信号的BPSK调制的功能。
五、实验心得体会(含思考题)
本次实验题目中出现了一些陌生词汇,如:双极性。所以我是在经过上网查询和反复斟酌之后才明白实验的相关要求。刚开始的时候以老师给的ASK调制程序为参考,再结合BPSK调制与ASK调制的不同点进行相关修改,因为对调制与解调的方法理解的不是很透彻,所以结果总是出错,后来经过认真思考和研究,才不断的加以改进,改正自身错误,完成了实验相关操作。其实各种调制的程序算法有很多相同的地方,我们只要认真理解,并结合各种调制方法的特点加以改进,就能达到我们的目的。
思考题:
解调方法只能使用相干解调。框图如下:
acde
b定时脉冲
最后可能会出现180度的相位模糊。因为BPSK是绝对相移键控,接收端的载波信号可能与载波不同步,经过低通滤波器后在进行
抽样判决后的结果也许就会与原来的序列刚好相反,是原来的反码,这就是所谓的相位模糊。
六、思路及体会
1、随机生成118位的01序列作为原始信号。
2、画出原始信号图形。
3、根据调制指数求出Dp。
4、把已知的载波频率Wc=1000π,Dp的值,以及信息位m(t)带入
公式里面去。
5、对原始信号的前10个比特进行BPSK调制。
6、画出波形图,以及调用系统函数fft来画出波形FFT的频谱。
通过这次实验,我掌握了BPSK的原理,这次实验相对来说是一个比较综合的实验,需要我们具有一系列的编程基础,还需要对信号的调制方式有一定的了解,对于h这个指灵敏系数,需要我们静下心来慢慢分析,才会发现它在BPSK调制中所起到的作用。在实践中,我们才会对matlab,对专业知识有更深入的了解,才能提高自己的专业技能水平。