重庆交通大学信息科学与工程学院
综合性设计性实验报告
专 业 班 级: 2010级通信工程1班
学 号 : 10950118
姓 名: 柴 彦 冲
实验所属课程: MATLAB
实验室(中心):信息科学与工程学院软件中心
指 导 教 师 : 谭 晋
实验完成时间: 2012 年 11月 7 日
一、设计题目
峰均功率比设计
二、实验内容及要求
生成四个长度为64的序列,分别为s1,s2,s3,s4,对每个序列乘上[1,-1,j,-j]中的任意一个因子后求和.求所有可能的和序列中峰均功率比最低的序列及相应的因子.
三、实验过程(详细设计)
实验程序如下:
s1=rand(1,64);
s2=rand(1,64);
s3=rand(1,64);
s4=rand(1,64);
A=[1 -1 j -j];
Z=perms(A);
for a=1:24
s11=s1*Z(a,1);
s21=s2*Z(a,2);
s31=s3*Z(a,3);
s41=s4*Z(a,4);
S=s11+s21+s31+s41;
for b=1:64
sum(a,b)=S(b);
end
S=0;
end
for a=1:24
for b=1:64
sum1(a,b)=abs(sum(a,b))^2;
end
end
for a=1:24
sum2(a)=max(sum1(a,:))/mean(sum1(a,:));
end
[mx,I]=min(sum2);
sum(I,:)
Z(I,:)
四、测试结果及设计分析
1、测试结果:
ans =
Columns 1 through 5
-0.2166 - 0.4896i 0.4626 - 0.5439i -0.8300 + 0.1403i -0.3752 - 0.6629i -0.1520 + 0.6798i
Columns 6 through 10
-0.8347 + 0.0124i -0.0985 + 0.8787i 0.0378 + 0.4764i -0.0768 + 0.3023i -0.2015 + 0.5511i
Columns 11 through 15
-0.6022 - 0.0780i -0.6365 - 0.3490i -0.7473 - 0.1631i 0.3167 - 0.0080i -0.2522 - 0.1146i
Columns 16 through 20
0.4486 - 0.8725i 0.5835 - 0.0139i 0.3628 + 0.2208i -0.1429 - 0.6396i -0.0500 + 0.4281i
Columns 21 through 25
-0.0658 - 0.1896i -0.0046 - 0.3547i 0.7054 - 0.6522i 0.8190 + 0.4203i -0.5804 + 0.2819i
Columns 26 through 30
-0.3521 - 0.2030i -0.3646 + 0.1709i -0.0564 - 0.4160i -0.1658 + 0.3978i -0.6094 + 0.5863i
Columns 31 through 35
0.0689 - 0.0242i -0.9068 - 0.0780i 0.1052 + 0.5528i -0.7234 - 0.4550i -0.4461 - 0.1087i
Columns 36 through 40
-0.3690 - 0.2298i 0.0460 + 0.2071i -0.4274 - 0.2878i 0.1299 - 0.4939i 0.5008 - 0.3410i
Columns 41 through 45
0.2397 - 0.2417i -0.8374 - 0.6908i 0.2858 + 0.4549i 0.0892 + 0.1771i 0.2458 - 0.2375i
Columns 46 through 50
0.2730 - 0.1169i 0.5388 + 0.1858i -0.1530 - 0.0954i 0.0941 + 0.1737i -0.2274 - 0.0978i
Columns 51 through 55
-0.5270 - 0.5904i -0.6989 - 0.3291i 0.0484 - 0.4709i -0.6810 - 0.3504i -0.4735 - 0.3031i
Columns 56 through 60
-0.2485 + 0.0063i -0.4612 + 0.2537i 0.0681 - 0.1261i 0.0082 - 0.7095i 0.7213 - 0.1721i
Columns 61 through 64
-0.3037 + 0.5776i 0.3698 - 0.1375i -0.4970 - 0.3295i 0.2366 - 0.0077i
ans =
0 - 1.0000i -1.0000 1.0000 0 + 1.0000i
2、设计分析
通过对本次实验结果进行分析,该程序较好的完成了实验的各项要求,达到了预期效果。
五、实验心得体会(含思考题)
起初刚看到题目的时候,对题目中的峰均功率比存在诸多的不解,后经老师和同学多次解释才明白题目的含义和要求,确定自己的思路。思路确定之后便是一步步去实现。在实现过程中遇到的第一个问题就是如何对序列进行全排列。起初写了一个全排列函数,但运行结果不太理想,总是报错。后经查阅相关资料,发现perms函数可以实现该功能,但最初使用该函数的时候发现若直接输入四个元素,该函数会把空格和负号也当做一个元素进行排列,经探索才发现可以先将四个元素组成先存入一个序列再对序列进行全排列。第二个遇到的问题就是如何通过最小峰均功率比找出相应因子,经认真思考,决定将全排列之后的各个因子存入一个矩阵,求和之后的结果也存入一个矩阵,这样存入因子的矩阵中每行的因子就对应和矩阵中该因子所生成的和序列。找出最小的峰均功率比之后只要通过其所在行数就可以找到对应的因子。这才解决了问题,完成了实验。
六、思路及体会
1、设计实验流程图如下:
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
三、实验过程(详细设计)
实验程序如下:
clear all;
close all;
clc;
Wc=1000*pi;
Tb=0.0025;
N=16;
carrierFrequency=Wc/(2*pi);
M=fix(Tb*carrierFrequency)+1
h=[0.2,0.5,1.0];
Dp=h*pi/2;
bitstream=fix(rand(1,118)>0.5);
figure
t=1/(N*10):1/(N*10):118;
x=ceil(t);
c=bitstream(ceil(t));
plot(t,c)
title('signal');
xlabel('t');
ylabel('原始信号');
L=length(bitstream);
for j=1:3
dataStream=[];
carrier_0=[];
carrier_1=[];
t=(2*pi/N:2*pi/N:2*pi)/Wc;
for i=1:M
carrier_0=[carrier_0,10*cos(Wc*t-Dp(j))];
carrier_1=[carrier_1,10*cos(Wc*t+Dp(j))];
end
for i=1:length(bitstream)
if(bitstream(i)==0)
dataStream=[dataStream,carrier_0];
else
dataStream=[dataStream,carrier_1];
end
end
figure
subplot(3,1,1);
t=1/(N*10):1/(N*10):10;
x=ceil(t);
c=bitstream(ceil(t));
plot(t,c)
title('signal');
xlabel('t');
ylabel('数据流');
subplot(3,1,2);
plot(dataStream(1:320));
axis([0 320 -10 10]);
str=['h=',num2str(h(j))];
title(str);
xlabel('t');
ylabel('BPSK信号');
modu=fftshift(fft(dataStream));
t=0.025;
df=1/t;
sff=-fix(length(modu))/2*df:df:(fix(length(modu))-1)/2*df;
subplot(3,1,3)
plot(sff,abs(modu));
title('频谱图如下')
end
四、测试结果及设计分析
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调制的不同点进行相关修改,因为对调制与解调的方法理解的不是很透彻,所以结果总是出错,后来经过认真思考和研究,才不断的加以改进,改正自身错误,完成了实验相关操作。其实各种调制的程序算法有很多相同的地方,我们只要认真理解,并结合各种调制方法的特点加以改进,就能达到我们的目的。
思考题:
解调方法只能使用相干解调。框图如下:
a c d e
输出
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,对专业知识有更深入的了解,才能提高自己的专业技能水平。
第二篇:Matlab综合实验报告
Matlab综合实验报告
图形可以帮助我们直观感受科学计算结果的全局意义和很多内在本质,可以帮助我们更深刻的了解我们所学的知识,例如我们可以用图形来了解信号的性质和特点,可以用波形来表示信号,光波,声波。Matlab具有非常强大的图形功能,既可以绘制二维图形,又可以绘制三维图形,还可以标注,视点,颜色,光照等操作对图形进行修饰。所以我以“图形绘制”这一专题进行研究实验。
一, 实验目的。
1, 掌握绘制二维和三维图形的方法。
2, 掌握图形控制函数的使用方法。
3, 了解图像处理的基本方法和动画制作的基本原理。
4, 运用matlab进行信号方面的图形处理。
二, 实验环境。
Windows xp matlab7.0
三, 实验内容。
1.运用plot函数绘制二维图像:绘制直角坐标系下的二维曲线可以利用plot函数,基本的调用格式是 plot(x,y) 其中,x和y为大小相同的向量,分别用于存储x坐标和y坐标数据。
例如 y=A*exp(a*x)
程序如下:A=1;
a= -0.4;
x=0:0.001:10;
y=A*exp(a*x);
plot(x,y)
结果如右图:
2在同一坐标内,分别用不同线型和颜色绘制曲线y1=0.2e-0.5xcos(4πx) 和y2=2e-0.5xcos(πx),标记两曲线交叉点。
程序如下:
x=linspace(0,2*pi,1000);
y1=0.2*exp(-0.5*x).*cos(4*pi*x);
y2=2*exp(-0.5*x).*cos(pi*x);
k=find(abs(y1-y2)<1e-2);
x1=x(k);
y3=0.2*exp(-0.5*x1).*cos(4*pi*x1);
plot(x,y1,x,y2,‘r:',x1,y3,'bp');
运行结果:
注意:
线型选项
颜色选项
标记符号选项
3图形标注和坐标控制:
标注:title(图形名称);xlabel(x轴说明);ylabel(y轴说明);
text(x,y,图形说明);legend(图形1,图形2,······)。
坐标控制:axis autu(使用默认设置);axis equal (纵,横坐标轴采用等长刻度)axis square(产生正方形坐标系);axis on/off(显示/取消坐标轴)。
例子:三阶butterworth模拟低通滤波器的频率响应为
H(jw)=1/{[(jw)^3]+2*[(jw)^2]+2*(jw)+1}
试画出系统的幅度响应|H(jw)|和相位响应f(w).
程序如下: 运行结果:
w=linspace(0,2*pi,200);
b=[1];
a=[1 2 2 1];
H=freqs(b,a,w);
subplot(2,1,1);
plot(w,abs(H));
set(gca,'xtick',[0 1 2 3 4 5]);
set(gca,'ytick',[0 0.4 0.707 1]);
grid;
xlabel('\omega');
ylabel('|H(j\omega)|')
subplot(2,1,2);
plot(w,angle(h));
plot(w,angle(H));
set(gca,'xtick',[0 1 2 3 4 5]);
grid;
xlabel('\omega');
ylabel('\phi('\omega')
4.在图形窗口中,以子图形式同时绘制多根曲线。
程序如下:
subplot(2,2,1);
t= -3*pi:pi/100:3*pi;
xt=sinc(t/pi);
plot(t,xt);
subplot(2,2,2);
t=0:0.001:4;
T=1;
xt=rectpuls( t- 2*T,T);
plot(x,xt); axis([0,4,-0.5,1.5])
subplot(2,2,3);
t= -4:0.001;4;
xt=tripuls(t,4,0.5);
plot(t,xt);
subplot(2,2,4);
t=0:0.0001:5;
A=1;
T=1;
w0=2*pi/T;
ft=A*square(w0*t,20);
plot(t,xt);
axis([0,5,-1,5,1.5])
5分别以条形图、阶梯图、杆图和填充图形式绘制曲线y=2sin(x)。
程序如下:
x=0:pi/10:2*pi;
y=2*sin(x);
subplot(2,2,1);
bar(x,y,‘g’);
title('bar(x,y,''g'')');
axis([0,7,-2,2]);
subplot(2,2,2);
stairs(x,y,‘b’);
title('stairs(x,y,''b'')');
axis([0,7,-2,2]);
subplot(2,2,3);
stem(x,y,‘k’);
title('stem(x,y,''k'')');
axis([0,7,-2,2]);
subplot(2,2,4);
fill(x,y,‘y’);
title('fill(x,y,''y'')');
axis([0,7,-2,2]);
6,绘制三维曲线,
{x=sint+tcost y=cost-tsint z=t}(0<=t<=10π)
程序如下
t=0:pi/10:10*pi;
x=sin(t)+t.*cos(t);
y=cos(t)-t.*sin(t);
z=t;
plot3(x,y,z);
axis([-30 30 -30 30 0 35])
title=(‘Line in 3-D Space’);
xlabel(‘x’);
ylabel(‘y’);
zlabel(‘z’);
grid on;
7并生成其图形轨迹
程序如下:
t=0:pi/250:10*pi;
x=sin(t)+t.*cos(t);
y=cos(t)-t.*sin(t);
comet3(x,y,t);
8绘制了一个peaks函数曲面并且将它绕z轴旋转。
程序如下
[X,Y,Z]=peaks(30);
surf(X,Y,Z)
axis([-3,3,-3,3,-10,10])
axis off;
shading interp;
colormap(hot);
m=moviein(20);
for i=1:20
view(-37.5+24*(i-1),30) m(:,i)=getframe;
end
movie(m,2);
9绘制不同视角图形
p=peaks;
subplot(2,2,1);
mesh(peaks,p);
view(-37.5,30);
title('azimuth=-37.5,elevation=30');
subplot(2,2,2);
mesh(peaks,p);
view(-17,60);
title('azimuth=-17,elevation=60');
subplot(2,2,3);
mesh(peaks,p);
view(-90,0);
title('azimuth=-90,elevation=0');
subplot(2,2,4);
mesh(peaks,p);
view(-7,-10);
title('azimuth=-7,elevation=10');