无线实验指导书文档格式.docx

上传人:b****5 文档编号:18977611 上传时间:2023-01-02 格式:DOCX 页数:28 大小:376.98KB
下载 相关 举报
无线实验指导书文档格式.docx_第1页
第1页 / 共28页
无线实验指导书文档格式.docx_第2页
第2页 / 共28页
无线实验指导书文档格式.docx_第3页
第3页 / 共28页
无线实验指导书文档格式.docx_第4页
第4页 / 共28页
无线实验指导书文档格式.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

无线实验指导书文档格式.docx

《无线实验指导书文档格式.docx》由会员分享,可在线阅读,更多相关《无线实验指导书文档格式.docx(28页珍藏版)》请在冰豆网上搜索。

无线实验指导书文档格式.docx

MATLAB进行数值计算的基本单位是复数数组,这使得MATLAB高度“向量化”。

经过近30年的完善和扩充,其现已发展成为线性代数的标准工具。

由于它不需定义数组的维数,并提供了矩阵函数、特殊矩阵等专门的库函数,使之在求解诸如信号处理等领域问题时,显得大为简捷,这是其它高级语言所不能比拟的。

MATLAB中包括了被称做工具箱(Toolbox)的各类应用问题的求解工具。

MATLAB7.0.1中包括了图形界面编辑GUI,改变了以前单一的“在指令窗口通过文本型的指令进行各种操作”的状况。

这可让使用者也可以像VB、VC等语言那样进行一般的可视化程序编辑。

在MATLAB指令窗口“CommandWindow”键入“simulink”就可以打开“simulink”窗口。

以往十分困难的系统仿真问题,在“simulink”窗口只需拖动鼠标即可轻而易举地解决。

良好的人机界面使MATLAB得到了使用者的青睐。

1.1.2MATLAB集成开发环境

MATLAB启动后如图1-1所示,光标处在命令窗口“CommandWindow”下。

图1-1MATLAB命令窗口

输入命令pwd,可以显示当前所处的目录。

输入cdd:

\ls,可以切换到D盘ls文件夹下。

如下图:

图1-2pwd和cd命令

MATLAB共有File、Edit、Debug、Desktop、Window、Help等6个选单,每个主要功能之下又有下一层的功能。

对于初学者,可以在命令窗口键入“demo”,在出现的“Help”窗口中会有使用MATLAB进行仿真的流程,方便初学者学习。

如有不熟悉的函数,可在“CommandWindow”窗口键入“Help+函数名”查询函数的具体用法。

例如,要了解sin命令的意义与用法,可键入

Helpsin

其执行结果如下:

SINSine.

SIN(X)isthesineoftheelementofX.

Overloadedmethods

helpsym/sin.m

在MATLAB下进行基本数学运算时,只需直接在提示号(>

>

)之后输入运算式,并按“Enter”键即可。

例如:

(10*19+2/4-34)/2*3

ans=

234.7500

MATLAB的结果直接存入一变数ans,并将其显示在屏幕上,若在所输入的结尾加上“;

”则计算结果不会显示;

要想得知计算值,只须键入该变数名ans即可。

MATLAB使用中括号来建立一个行向量[1352],将其储存在变量s中。

如>

s=[1352];

若要一次执行大量的MATLAB语句,可将这些语句存放到一个扩展名为m的文件中,并在MATLAB命令提示号下输入此文件的主文件名即可。

这种包含MATLAB语句的文件都以m为扩展名,因此通称M文件。

例如一个名为test.m的M文件,包含许多的MATLAB语句,那么只要直接输入test,即可执行其所包含的语句。

MATLAB语句区分字母大小写。

MATLAB利用“↑”“↓”两个游标键将所操作过的指令“唤醒”,使之被重复使用。

按下“↑”键,则前一次指令重复出现,之后再按“Enter”键,即可执行该指令。

而“↓”键的功用则是往后执行指令。

当要在MATLAB中执行操作系统(例如DOS)的指令时,可以利用“!

”再加上原操作系统的指令,例如!

dir,!

formata:

“Ctrl+C”(即同时按“Ctrl”及“C”两个键)可以终止执行中的MATLAB工作。

有下述三种方法可以结束MATLAB:

●Exit

●Quit

●直接关闭MATLAB的指令窗口“CommandWindow”。

1.1.3MATLAB基本操作

1.变量及其命名规则与表达式

1)变量及其命名规则如下:

(1)MATLAB对变量名的大小写是敏感的。

(2)变量名的第一个字符必须为英文字母。

(3)预定义的变量如表1-1所示,这些变量名有特定的含义。

(4)键入“clear”,则是去除所有定义过的变量名称。

表1-1预定义的变量

变量名

含义

ans

预定的计算结果的变量名

pi

内建的π值

2)表达式

MATLAB书写表达式的规则与“手写算式”的基本类同。

如果一个指令过长,则可以在结尾加上…(代表此行指令与下一行连续),例如:

3*…

6

ans=

18

2.MATLAB系统命令

MATLAB系统命令如表1-2所示。

表1-2系统命令

命令

help

在线帮助

dir

显示目录内容

demo

运行演示程序

path

获取或设置搜索路径

pwd

显示当前的工作目录

cd

改变当前的工作目录

who

显示当前变量

load

把文件调入到变量工作间

whos

显示当前变量的详细信息

save

把变量存入文件中

clear

清空工作间的变量和函数

quit/exit

退出MATLAB

4.MATLAB语言中的关系与逻辑运算

在执行关系及逻辑运算时,MATLAB将输入的不为零的数值都视为真(True),而为零的数值则视为假(Flalse)。

运算的输出值将判断为真者以1表示,而判断为假者以0表示。

各个运算指令须用在两个维数相同的阵列或矩阵中。

1.1.4矩阵运算

MATLAB事实上是以阵列(Array)及矩阵方式在做运算的。

而这两种方式在MATLAB的基本运算中的性质有所不同,阵列强调元素对元素的运算,而矩阵则采用线性代数的运算方式。

当宣告一变数为阵列或是矩阵时,如果是要个别键入元素,须用中括号[]将元素置于其中。

阵列为一维元素所构成,而矩阵为多维元素所构成。

在MATLAB内部的数据结构中,每一个矩阵都是一个以行为主的阵列,因此对于矩阵元素的存取,我们可用一维或二维的索引(Index)来定址。

1.1.6MATLAB控制语句

1.for循环语句

for循环语句用于以预定的次数重复执行一组命令。

for循环语句的一般形式为

for循环控制变量=存储着该变量依次所取值的向量;

运算式;

End

在for和end语句之间的运算式重复执行的次数由上方向量的长度决定;

每次执行,循环控制变量依次取该向量的值。

如fori=1:

h(i)=1/i;

end

以上程序表示共循环6次。

2.while循环语句

while循环语句根据表达式的结果来确定循环执行一组语句的次数。

while循环的一般形式为

while表达式

运算式;

只要表达式的结果为真,就执行while和end语句之间的运算式。

通常,表达式的求值结果是一个标准值,但数组值也同样有效。

在数组情况下,所得到数组的所有元素必须都为真。

就是说,只要表达式成立,运算式就会一直被执行。

可以利用break命令直接跳出while循环。

while循环可按需要嵌套。

为了得到最大速度,while循环被执行之前,应预先分配数组。

x=zeros(1,6);

%表示把1个1行6列的0矩阵赋值给向量x,则x

(1)=0,x

(2)=0……,x(6)=0

i=1;

whilei<

=6

x(i)=1/i;

i=i+1;

3.if-else-end分支语句

最简单的if-else-end结构为

if表达式

如果在表达式中的所有元素为真(为零),那么就执行if和end语言之间的语句。

如果有两个选择,那么if-else-end结构为

运算式;

else

在这里,如果表达式为真,则执行第一组命令;

如果表达式为假,则执行第二组命令。

如x=4;

ifx>

1

fprintf(‘x大于1’);

%显示x大于1

4.switch-case语句

switch-case语句的一般格式为

switchnum

casen1

command

casen2

casen3

……

otherwise

一旦num等于n1,n2,n3,…中的每个值或字符串时,就执行所对应的指令;

否则执行otherwise后的语句。

1.1.7MATLAB编程语言

MATLAB程序大致分为两类,即M脚本文件(M-Script)和M函数(M-Function),它们都是普通的文本文件。

M脚本文件中包含一组由MATLAB语言编写的语句,它类似于DOS下的批处理文件。

M脚本文件的执行方式很简单,用户只需在MATLAB的提示符“>

”下键入该M文件的文件名,MATLAB就会自动执行该M文件中的各条语句,并将结果直接返回到MATLAB工作区。

M函数格式是MATLAB程序设计的主流,一般情况下,不建议使用M脚本文件格式编程。

MATLAB的M函数是由function语句引导的,其基本格式如下:

function[返回变量列表]=函数名(输入变量列表)

[注释(由%引导)]

[检查输入变量和输出变量的格式]

[函数体语句]

在M函数中,输入变量和返回变量的个数分别由nargin和nargout两个变量确定,并且这两个变量是由MATLAB自动生成的,只要进入该函数就可以使用,如果输入变量的数目大于1,则应该用括号“()”将它们包围起来,中间用逗号分割。

注释语句段的每行语句都应该由“%”引导,百分号后面的内容不执行,只起注释作用。

实验一四相移相键控(QPSK)调制及解调实验

一、实验目的

1、掌握QPSK调制解调原理及特性。

2、掌握利用MATLAB编程实现调制及解调的方法。

二、实验内容

1、利用MATLAB编程实现QPSK调制及解调。

2、观察I、Q两路基带信号的特征及与输入NRZ码的关系。

3、观察I、Q调制解调过程中各信号变化。

三、基本原理

1、QPSK调制原理

QPSK又叫四相绝对相移调制,它是一种正交相移键控。

QPSK利用载波的四种不同相位来表征数字信息。

由于每一种载波相位代表两个比特信息,因此,对于输入的二进制数字序列应该先进行分组,将每两个比特编为一组,然后用四种不同的载波相位来表征。

我们把组成双比特码元的前一信息比特用a代表,后一信息比特用b代表。

双比特码元中两个信息比特ab通常是按格雷码排列的,它与载波相位的关系如表1-1所示,矢量关系如图1-1所示。

图1-1(a)表示A方式时QPSK信号矢量图,图1-1(b)表示B方式时QPSK信号的矢量图。

由于正弦和余弦的互补特性,对于载波相位的四种取值,在A方式中:

45°

、135°

、225°

、315°

,则数据

通过处理后输出的成形波形幅度有两种取值±

B方式中:

、90°

、180°

、270°

通过处理后输出的成形波形幅度有三种取值±

1、0。

表1-1双比特码元与载波相位关系

双比特码元

载波相位

a

b

A方式

B方式

225°

315°

135°

90°

180°

270°

图1-1QPSK信号的矢量图

下面以A方式的QPSK为例说明QPSK信号相位的合成方法。

串/并变换器将输入的二进制序列依次分为两个并行序列,然后通过基带成形得到的双极性序列(从D/A转换器输出,幅度为±

)。

设两个双极性序列中的二进制数字分别为a和b,每一对ab称为一个双比特码元。

双极性的a和b脉冲通过两个平衡调制器分别对同相载波及正交载波进行二相调制,得到图1-2中虚线矢量,将两路输出叠加,即得到QPSK调制信号,其相位编码关系如表1-2所示。

图1-2矢量图

表1-2QPSK信号相位编码逻辑关系

-1

a路平衡调制器输出

b路平衡调制器输出

合成相位

用调相法产生QPSK调制器框图如图1-3所示。

图1-3QPSK调制器框图

由图1-3可以看到,最初的基带信号是一个32位长的二进制序列,经过处理后变为4096维的二进制序列。

输入的基带信号经过串并变换,变成两路速率减半的序列,两个支路分别经过单/双极性变换器将单极性信号变换成双极性的二电平信号(即电平为+1和-1)I(t)和Q(t),然后对

进行调制,相加后即可得到QPSK信号。

经过串并变换后形成的两个支路如图1-4所示,一路为单数码元,另外一路为偶数码元,这两个支路互为正交,一个称为同相支路,即I支路。

I信号是一个4096维的双极性信号(值为+1或-1);

另外一路称为正交支路,即Q支路。

同样,Q信号也是一个4096维的双极性信号(值为+1或-1)。

I信号与本地产生的载波进行相乘,也即进行调制后,与经过调制的Q信号相加后,形成已调制的信号S(t)。

图1-4二进制码经串并变换后码型

QPSK信号经过高斯信道(即噪声信道)

2、QPSK解调原理

由于QPSK可以看作是两个正交2PSK信号的合成,故它可以采用与2PSK信号类似的解调方法进行解调,即由两个2PSK信号相干解调器构成,其原理框图如图1-5所示。

图1-5QPSK解调原理框图

3、数学推导

调制信号为:

调制信号经过高斯信道为:

I路相干解调:

Q路相干解调:

由公式推导可以知道,只需将

),

通过一个具有低通特性的系统即可获得只包含I和Q信息的信号,实现解调,这里选用了巴特沃斯型的低通滤波器。

附程序代码

%日期2013.1.14

%功能QPSK的调制解调,基带信号点数t(限偶数),基波频率w0可设置

clearall;

nb=32;

%传输的比特数

T=1;

%基带信号宽度,也就是基波频率

fc=8/T;

%载波频率

ml=2;

%调制信号类型的一个标志位(选取2的原因见23行)

c=4*nb;

%单周期采样点数

delta_T=T/c;

%采样间隔

fs=1/delta_T;

%采样频率

t=0:

delta_T:

nb*T-delta_T%限定t的取值范围c*nb

N=length(t);

%采样数

%%%%%%%%%%%%%%%%%%%调制部分

%基带信号的产生

data=fix(2*rand(1,nb));

%调用一个随机函数(0or1),输出到一个1*100的矩阵

datanrz=data.*2-1;

%变成极性码

fori=1:

nb

data1((i-1)/delta_T+1:

i/delta_T)=datanrz(i);

%将极性码变成对应的波形信号

end

%将基带信号变换成对应波形信号

data0((i-1)/delta_T+1:

i/delta_T)=data(i);

%将基带信号变成对应的波形信号

%串并转换,将奇偶位数据分开

idata=datanrz(1:

ml:

(nb-1));

%将奇偶位分开,因此间隔m1为2

qdata=datanrz(2:

nb);

%QPSK信号的调制

nb/2

ich(2*((i-1)/delta_T+1):

2*(i/delta_T))=idata(i);

forii=1:

N/T

a(ii)=(1/sqrt

(2))*cos(2*pi*fc*t(ii));

idata1=ich.*a;

%奇数位数据与余弦函数相乘,得到一路的调制信号

forj=1:

qch(2*((j-1)/delta_T+1):

2*(j/delta_T))=qdata(j);

forjj=1:

b(jj)=(1/sqrt

(2))*sin(2*pi*fc*t(jj));

qdata1=qch.*b;

%偶数位数据与余弦函数相乘,得到另一路的调制信号

st=idata1-qdata1;

%%%%%%%%%%%%%%%%%%%%%%%%信道中

SNR=0;

%信噪比

stn=awgn(st,SNR);

%%%%%%%%%%%%%%%%%%%%%%%%解调%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%设计滤波器%%%%%%%%

[B,A]=butter(3,0.01,'

low'

);

[h1,w]=freqz(B,A);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%相干解调

ist=stn.*a;

p=length(ist)

qst=stn.*(-b);

%%%%%%%%%%%%%%%%%%%%滤波

istl=filter(B,A,ist);

qstl=filter(B,A,qst);

%%%%%%%%%%%%%%%%%%%%%%%%%抽样判决%%%%%%%%%%

fori=1:

nb/2

ifistl(2*(p/nb)*(i-1)+(1*(p/nb)))>

=0

in(i)=1;

elsein(i)=0;

end

ifqstl(2*(p/nb)*(i-1)+(1*(p/nb)))>

qn(i)=1;

elseqn(i)=0;

%%%%%%%%%%%%%%%%%并串转换

y(2*i-1)=in(i);

y(2*i)=qn(i);

nb

yy((i-1)/delta_T+1:

i/delta_T)=y(i);

data

y

N

figure;

subplot(4,1,1)

plot(data0*0.7),title('

基带信号,4096维二进制序列,对应向量是data0'

subplot(4,1,2)

plot(data1*0.7),title('

双极性信号,4096维双极性序列,对应向量是data1'

subplot(4,1,3)

plot(ich*0.7),title('

I路数据,4096维双极性序列,对应向量是ich'

subplot(4,1,4)

plot(qch*0.7),title('

Q路数据,4096维双极性序列,对应向量是qch'

plot(ist),title('

相干解调I路信号,4096维且值为(-1,1)的序列,对应向量是ist'

plot(qst),title('

相干解调Q路信号,4096维且值为(-1,1)的序列,对应向量是qst'

plot(istl),title('

I路解调波形,4096维且值为(-1,1)的序列,对应向量是istl'

plot(qstl),title('

Q路解调波形,4096维且值为(-1,1)的序列,对应向量是qstl'

%%%%%%%%%%%%%%%%%画图%%%%%%%%%%%%%%%%%%%%%%%%%%%

subplot(4,2,1);

基带信号'

subplot(4,2,2);

psd(abs(fft(data0))),title('

基带信号频谱'

subplot(4,2,3);

plot(st),title('

调制信号'

subplot(4,2,4);

psd(abs(fft(st))),title('

调制信号频谱'

subplot(4,2,5);

plot(stn),title('

stn信道波形'

subplot(4,2,6);

psd(abs(fft(stn))),title('

经过高斯信道信号频谱'

subplot(4,2,7);

plot(yy*0.7),title('

解调后的基带信号'

subplot(4,2,8);

psd(abs(fft(yy))),title('

解调后的基带信号频谱'

实验二m序列产生及其特性实验

通过本实验掌握m序列的产生方法、特性及应用。

1、编写MATLAB程序生成并观察m序列,识别其特征。

2、编写程序验证m序列的相关性质,要求至少验证一条性质。

CDMA通信要求扩频序列具有良好的伪随机特性。

由于随机噪声难以重复产生,而伪随机噪声便于重复产生,因而伪随机序列(PN序列)被广泛应用于扩频通信。

目前应用最广的是m序列,它是由线性反馈移存器产生的周期最长的二进制数字序列。

码分多址系统主要采用两种长度的m序列:

一种是周期为

的m序列,又称短PN序列;

另一种是周期为

的m序列,又称为长PN码序列。

m序列主要有两个功能:

①扩展调制信号的带宽到更大的传输带宽,即所谓的扩展频谱;

②区分通过多址接入方式使用同一传输频带的不同用户的信号。

1、产生原理

图2-1给出了一个4阶移位寄存器序列生成器。

图2-14阶移位寄存器序列生成器

该序列生成器能够产生周期为15的0,1二值序列。

设初始状态(a1,a2,a3,a4)=(1,0,0,0),则周期序列输出为:

000111101011001。

图2-2是反馈移存

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 药学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1