通信原理报告.docx

上传人:b****4 文档编号:5506782 上传时间:2022-12-17 格式:DOCX 页数:40 大小:377.33KB
下载 相关 举报
通信原理报告.docx_第1页
第1页 / 共40页
通信原理报告.docx_第2页
第2页 / 共40页
通信原理报告.docx_第3页
第3页 / 共40页
通信原理报告.docx_第4页
第4页 / 共40页
通信原理报告.docx_第5页
第5页 / 共40页
点击查看更多>>
下载资源
资源描述

通信原理报告.docx

《通信原理报告.docx》由会员分享,可在线阅读,更多相关《通信原理报告.docx(40页珍藏版)》请在冰豆网上搜索。

通信原理报告.docx

通信原理报告

[键入公司名称]

通信原理实验报告

姓名:

陶冬波

 

学号:

2010550921

 

班级:

10通信工程三班

[键入文档副标题]

 

实验三二进制数字信号调制仿真实验

一、实验目的

1.加深对数字调制的原理与实现方法;

2.掌握OOK、2FSK、2PSK功率谱密度函数的求法;

3.掌握OOK、2FSK、2PSK功率谱密度函数的特点及其比较;

4.进一步掌握MATLAB中M文件的调试、子函数的定义和调用方法。

二、实验内容

1.复习二进制数字信号幅度调制的原理

2.编写MATLAB程序实现OOK调制;

3.编写MATLAB程序实现2FSK调制;

4.编写MATLAB程序实现2PSK调制;

5.编写MATLAB程序实现数字调制信号功率谱函数的求解。

三、实验原理

在数字通信系统中,需要将输入的数字序列映射为信号波形在信道中传输,此时信源输出数字序列,经过信号映射后成为适于信道传输的数字调制信号。

数字序列中每个数字产生的时间间隔称为码元间隔,单位时间内产生的符号数称为符号速率,它反映了数字符号产生的快慢程度。

由于数字符号是按码元间隔不断产生的,经过将数字符号一一映射为响应的信号波形后,就形成了数字调制信号。

根据映射后信号的频谱特性,可以分为基带信号和频带信号。

通常基带信号指信号的频谱为低通型,而频带信号的频谱为带通型。

调制信号为二进制数字基带信号时,对应的调制称为二进制调制。

在二进制数字调制中,载波的幅度、频率和相位只有两种变化状态。

相应的调制方式有二进制振幅键控(OOK/2ASK)、二进制频移键控(2FSK)和二进制相移键控(2PSK)。

下面分别介绍以上三种调制方法的原理,及其MATLAB实现:

本实验研究的基带信号是二进制数字信号,所以应该首先设计MATLAB程序生成二进制数字序列。

根据实验一的实践和第一部分的介绍,可以很容易的得到二进制数字序列生成的MATLAB程序。

假定要设计程序产生一组长度为500的二进制单极性不归零信号,以之作为后续调制的信源,并求出它的功率谱密度,以方便后面对已调信号频域特性和基带信号频域特性的比较。

整个过程可用如下程序段实现:

%定义相关参数

clearall;

closeall;

A=1

fc=2;%2Hz;

N_sample=8;

N=500;%码元数

Ts=1;%1Baud/s

dt=Ts/fc/N_sample;%波形采样间隔

t=0:

dt:

N*Ts-dt;

Lt=length(t);

%产生二进制信源

d=sign(randn(1,N));

%dd=sigexpand((d+1)/2,fc*N_sample);

N1=length((d+1)/2);

dd=zeros(fc*N_sample,N1);

dd(1,:

)=(d+1)/2;

dd=reshape(dd,1,fc*N_sample*N1);

gt=ones(1,fc*N_sample);%NRZ波形

figure

(1)

subplot(221);%输入NRZ信号波形(单极性)

d_NRZ=conv(dd,gt);

plot(t,d_NRZ(1:

length(t)));

axis([01001.2]);ylabel('输入信号');

subplot(222);%输入NRZ频谱

dt=t

(2)-t

(1);

T=t(end);

df=1/T;

N=length(d_NRZ(1:

length(t)));

f=-N/2*df:

df:

N/2*df-df;

d_NRZf=fft(d_NRZ(1:

length(t)));

d_NRZf=T/N*fftshift(d_NRZf);

plot(f,10*log10(abs(d_NRZf).^2/T));

axis([-22-5010]);ylabel('输入信号功率谱密度(dB/Hz)');

3.2OOK调制

二进制振幅键控(OOK/2ASK)是利用载波的幅度变化来传递数字信息的,而其频率和初始相位保持不变。

在2ASK中,载波的幅度只有两种变化状态,分别对应二进制信息“0”和“1”。

2ASK信号的一般表达式为:

其中,

所以,要进行OOK调制,定义完二进制数字序列和载波参量后,将之相乘即可。

相关的MATLAB指令如下:

ht=A*cos(2*pi*fc*t);

s_2ask=d_NRZ(1:

Lt).*ht;

subplot(223)

plot(t,s_2ask);

axis([010-1.21.2]);

ylabel('OOK');

要对OOK调制之前与之后信号的频域特性进行比较,可以通过比较两者的功率谱密度曲线来实现。

也就是求出OOK调制信号s_2ask的功率谱密度函数,并将之与3.1中求得的基带信号的功率谱密度函数进行比较。

根据《通信原理》的学习,可以知道,求解某信号功率谱密度的过程就是先求出该信号的傅立叶变换,再求该傅立叶变换的幅值的绝对值的平方的过程。

如何求功率谱密度函数在实验二中已经详细介绍过了,本处不再赘述。

根据前面的介绍,我们已经知道要求得某信号的傅立叶变换,可以通过调用实验一附录中的T2F子函数实现,也可以直接编程实现。

实验二中使用的都是子函数调用的方式,下面给出直接编程实现傅立叶变换的MATLAB程序:

dt=t

(2)-t

(1);

T=t(end);

df=1/T;

N=length(s_2ask);

f=-N/2*df:

df:

N/2*df-df;

s_2askf=fft(s_2ask);

s_2askf=T/N*fftshift(s_2askf);

subplot(224)

plot(f,10*log10(abs(s_2askf).^2/T));

axis([-fc-4fc+4-5010]);

ylabel('OOK功率谱密度(dB/Hz)');

通过以上程序,我们将基带信号波形及其功率谱密度曲线,OOK调制信号及其功率谱密度曲线分别画在了同一个图的四个子图中,以方便对调制前后信号的频域特性进行比较。

3.32FSK调制

频移键控是利用载波的频率的变化来传递数字信息的。

在2FSK中,载波的频率随二进制基带信号在f1和f2两个频率点间变化。

故其表达式为:

《通信原理》中已经介绍过,2FSK信号的调制可通过两个方法实现,一是将2FSK信号理解为两路不同频率的ASK信号相加的结果;二是将2FSK信号表示成如下的形式:

第一种方法实现起来相当简单,直接参照3.2中ASK信号的产生方法,产生两路不同频率的ASK信号,将之相加即可得到2FSK信号,这种方法留待同学们课后自己实现。

下面我们介绍用第二种方法产生2FSK信号的MATLAB程序设计过程。

首先,为了使2FSK信号不至覆盖了前面产生的信号,新建一个图,其指令为:

figure

(2)

然后,在这个图上画2FSK信号的波形,及其功率谱密度曲线波形。

%2FSK

%s_2fsk=A*cos(2*pi*fc*t+int(2*d_NRZ-1));

sd_2fsk=2*d_NRZ-1;

s_2fsk=A*cos(2*pi*fc*t+2*pi*sd_2fsk(1:

length(t)).*t);

subplot(223)

plot(t,s_2fsk);

axis([010-1.21.2]);

xlabel('t');

ylabel('2FSK')

subplot(224)

求出2FSK调制信号的功率谱密度函数:

%[f,s_2fsk]=T2F(t,s_2fsk);

dt=t

(2)-t

(1);

T=t(end);

df=1/T;

N=length(s_2fsk);

f=-N/2*df:

df:

N/2*df-df;

s_2fsk=fft(s_2fsk);

s_2fsk=T/N*fftshift(s_2fsk);

plot(f,10*log10(abs(s_2fsk).^2/T));

axis([-fc-4fc+4-5010]);xlabel('f');

ylabel('2FSK功率谱密度(dB/Hz)');

3.42PSK调制

相移键控是利用载波的相位变化来传递数字信息,而振幅和频率保持不变。

以载波的不同相位直接去表示相应二进制数字信号的调制方式,称为二进制绝对相移键控(2PSK)。

其时域表达式为:

与2ASK信号的产生方法相比较,2PSK和2ASK只是对s(t)的要求不同,在2ASK中s(t)是单极性的,而在2PSK中s(t)是双极性的基带信号。

除此之外,所有的设计流程都是相似的。

参考程序如下:

%2PSK信号

d_2psk=2*d_NRZ-1;

s_2psk=d_2psk(1:

Lt).*ht;

subplot(221)

plot(t,s_2psk);

axis([010-1.21.2]);

ylabel('2PSK');

subplot(222)

求出2PSK调制信号的功率谱密度函数:

%[f,s_2pskf]=T2F(t,s_2psk);

dt=t

(2)-t

(1);

T=t(end);

df=1/T;

N=length(s_2psk);

f=-N/2*df:

df:

N/2*df-df;

s_2pskf=fft(s_2psk);

s_2pskf=T/N*fftshift(s_2pskf);

plot(f,10*log10(abs(s_2pskf).^2/T));

axis([-fc-4fc+4-5010]);

ylabel('PSK功率谱密度(dB/Hz)');

四、实验内容

(1)按照如上介绍的方法,分别产生一组长度为500的二进制单极性不归零信号和归零信号,存档名为Q3_1。

并求分别求出它们的功率谱密度。

请写出相应的MATLAB程序,将不归零信号波形及功率谱和归零信号波形及功率谱分别画在同一图形的四个子图中,将结果图保存,贴在下面的空白处。

编写的MATLAB程序为:

%定义相关参数

clearall;

closeall;

A=1

fc=2;%2Hz;

N_sample=8;

N=500%码元数

Ts=1;%1Baud/s

dt=Ts/fc/N_sample;%波形采样间隔

t=0:

dt:

N*Ts-dt;

Lt=length(t);

%产生二进制信源

d=sign(randn(1,N));

%dd=sigexpand((d+1)/2,fc*N_sample);

N1=length((d+1)/2);

dd=zeros(fc*N_sample,N1);

dd(1,:

)=(d+1)/2;

dd=reshape(dd,1,fc*N_sample*N1);

gt=ones(1,fc*N_sample);%NRZ波形

gt2=ones(1,fc*N_sample/2);

gt2=[gt2zeros(1,fc*N_sample/2)];

figure

(1)

d_NRZ=conv(dd,gt);

d_NRZ2=conv(dd,gt2);

subplot(221);%输入NRZ信号波形(单极性)

plot(t,d_NRZ(1:

length(t)));

axis([010-1.21.2]);ylabel('输入信号');

subplot(223);%输入RZ信号波形(单极性)

plot(t,d_NRZ2(1:

length(t)));

axis([010-1.21.2]);ylabel('输入信号2');

subplot(222);%输入NRZ频谱

dt=t

(2)-t

(1);

T=t(end);

df=1/T;

N=length(d_NRZ(1:

length(t)));

f=-N/2*df:

df:

N/2*df-df;

d_NRZf=fft(d_NRZ(1:

length(t)));

d_NRZf=T/N*fftshift(d_NRZf);

plot(f,10*log10(abs(d_NRZf).^2/T));

axis([-22-5010]);ylabel('输入信号功率谱密度(dB/Hz)');

subplot(224);%输入NRZ频谱

dt=t

(2)-t

(1);

T=t(end);

df=1/T;

N2=length(d_NRZ2(1:

length(t)));

f=-N/2*df:

df:

N/2*df-df;

d_NRZf2=fft(d_NRZ2(1:

length(t)));

d_NRZf2=T/N*fftshift(d_NRZf2);

plot(f,10*log10(abs(d_NRZf2).^2/T));

axis([-22-5010]);ylabel('输入信号功率谱密度王成立陶冬波(dB/Hz)');

结果图为:

(2)对刚才产生的长度为500的不归零波形对载波频率为2Hz,幅度为1的余弦信号进行OOK调制,并求出调制信号的功率谱密度。

编写程序实现之,存档名为Q3_2。

要求将不归零信号波形及功率谱和OOK调制信号波形及功率谱分别画在同一图形的四个子图中,图形名为图2,将结果图保存,贴在下面的空白处。

编写的程序为:

%定义相关参数

clearall;

closeall;

A=1

fc=2;%2Hz;

N_sample=8;

N=500;%码元数

Ts=1;%1Baud/s

dt=Ts/fc/N_sample;%波形采样间隔

t=0:

dt:

N*Ts-dt;

Lt=length(t);

%产生二进制信源

d=sign(randn(1,N));

%dd=sigexpand((d+1)/2,fc*N_sample);

N1=length((d+1)/2);

dd=zeros(fc*N_sample,N1);

dd(1,:

)=(d+1)/2;

dd=reshape(dd,1,fc*N_sample*N1);

gt=ones(1,fc*N_sample);%NRZ波形

figure

(1)

subplot(221);%输入NRZ信号波形(单极性)

d_NRZ=conv(dd,gt);

plot(t,d_NRZ(1:

length(t)));

axis([01001.2]);ylabel('输入信号王成立');

subplot(222);%输入NRZ频谱

dt=t

(2)-t

(1);

T=t(end);

df=1/T;

N=length(d_NRZ(1:

length(t)));

f=-N/2*df:

df:

N/2*df-df;

d_NRZf=fft(d_NRZ(1:

length(t)));

d_NRZf=T/N*fftshift(d_NRZf);

plot(f,10*log10(abs(d_NRZf).^2/T));

axis([-22-5010]);ylabel('输入信号功率谱密度(dB/Hz)陶冬波');

ht=A*cos(2*pi*fc*t);

s_2ask=d_NRZ(1:

Lt).*ht;

subplot(223)

plot(t,s_2ask);

axis([010-1.21.2]);

ylabel('OOK王成立');

dt=t

(2)-t

(1);

T=t(end);

df=1/T;

N=length(s_2ask);

f=-N/2*df:

df:

N/2*df-df;

s_2askf=fft(s_2ask);

s_2askf=T/N*fftshift(s_2askf);

subplot(224)

plot(f,10*log10(abs(s_2askf).^2/T));

axis([-fc-4fc+4-5010]);

ylabel('OOK功率谱密度(dB/Hz)陶冬波');

 

结果图为:

(3)按照3.3所提供的2FSK调制的思路和范例程序,运用

(1)产生的不归零码组对载波频率为2Hz,幅度为1的余弦信号进行2FSK调制,存档为Q3_3,并将所得的结果存盘,贴在下面空格处。

编写的程序为:

clearall;

closeall;

A=1

fc=2;%2Hz;

N_sample=8;

N=500%码元数

Ts=1;%1Baud/s

dt=Ts/fc/N_sample;%波形采样间隔

t=0:

dt:

N*Ts-dt;

Lt=length(t);

%产生二进制信源

d=sign(randn(1,N));

%dd=sigexpand((d+1)/2,fc*N_sample);

N1=length((d+1)/2);

dd=zeros(fc*N_sample,N1);

dd(1,:

)=(d+1)/2;

dd=reshape(dd,1,fc*N_sample*N1);

gt=ones(1,fc*N_sample);%NRZ波形

figure

(1)

subplot(221);%输入NRZ信号波形(单极性)

d_NRZ=conv(dd,gt);

plot(t,d_NRZ(1:

length(t)));

axis([01001.2]);ylabel('输入信号陶冬波');

subplot(222);%输入NRZ频谱

dt=t

(2)-t

(1);

T=t(end);

df=1/T;

N=length(d_NRZ(1:

length(t)));

f=-N/2*df:

df:

N/2*df-df;

d_NRZf=fft(d_NRZ(1:

length(t)));

d_NRZf=T/N*fftshift(d_NRZf);

plot(f,10*log10(abs(d_NRZf).^2/T));

axis([-22-5010]);ylabel('输入信号功率谱密度(dB/Hz)王成立');

%2FSK

%s_2fsk=A*cos(2*pi*fc*t+int(2*d_NRZ-1));

sd_2fsk=2*d_NRZ-1;

s_2fsk=A*cos(2*pi*fc*t+2*pi*sd_2fsk(1:

length(t)).*t);

subplot(223)

plot(t,s_2fsk);

axis([010-1.21.2]);

xlabel('t');

ylabel('2FSK陶冬波')

subplot(224)

%[f,s_2fsk]=T2F(t,s_2fsk);

dt=t

(2)-t

(1);

T=t(end);

df=1/T;

N=length(s_2fsk);

f=-N/2*df:

df:

N/2*df-df;

s_2fsk=fft(s_2fsk);

s_2fsk=T/N*fftshift(s_2fsk);

plot(f,10*log10(abs(s_2fsk).^2/T));

axis([-fc-4fc+4-5010]);xlabel('f');

ylabel('2FSK功率谱密度(dB/Hz)王成立');

结果为:

 

(4)按照3.4所提供的2PSK调制的思路和范例程序,运用

(1)产生的不归零码组对载波频率为2Hz,幅度为1的余弦信号进行2PSK调制,存档为Q3_4,并将所得的结果存盘,贴在下面空格处。

编写的程序为:

%定义相关参数

clearall;

closeall;

A=1

fc=2;%2Hz;

N_sample=8;

N=500%码元数

Ts=1;%1Baud/s

dt=Ts/fc/N_sample;%波形采样间隔

t=0:

dt:

N*Ts-dt;

Lt=length(t);

%产生二进制信源

d=sign(randn(1,N));

%dd=sigexpand((d+1)/2,fc*N_sample);

N1=length((d+1)/2);

dd=zeros(fc*N_sample,N1);

dd(1,:

)=(d+1)/2;

dd=reshape(dd,1,fc*N_sample*N1);

gt=ones(1,fc*N_sample);%NRZ波形

figure

(1)

subplot(221);%输入NRZ信号波形(单极性)

d_NRZ=conv(dd,gt);

plot(t,d_NRZ(1:

length(t)));

axis([01001.2]);ylabel('输入信号王成立');

subplot(222);%输入NRZ频谱

dt=t

(2)-t

(1);

T=t(end);

df=1/T;

N=length(d_NRZ(1:

length(t)));

f=-N/2*df:

df:

N/2*df-df;

d_NRZf=fft(d_NRZ(1:

length(t)));

d_NRZf=T/N*fftshift(d_NRZf);

plot(f,10*log10(abs(d_NRZf).^2/T));

axis([-22-5010]);ylabel('输入信号功率谱密度(dB/Hz)陶冬波');

%2PSK信号

d_2psk=2*d_NRZ-1;

s_2psk=d_2psk(1:

Lt).*ht;

subplot(223)

plot(t,s_2psk);

axis([010-1.21.2]);

ylabel('2PSK'王成立);

subplot(224)

%[f,s_2pskf]=T2F(t,s_2psk);

dt=t

(2)-t

(1);

T=t(end);

df=1/T;

N=length(s_2psk);

f=-N/2*df:

df:

N/2*df-df;

s_2pskf=fft(s_2psk);

s_2pskf=T/N*fftshift(s_2pskf);

plot(f,10*log10(abs(s_2pskf).^2/T));

axis([-fc-4fc+4-5010]);

ylabel('PSK功率谱密度(dB/Hz)陶冬波');

结果为:

(5)按照3.4所提供用两路不同频率的2ASK信号合成一路2FSK信号的思想,设计相关程序实现之,存档为Q3_5,并将所得的结果存盘,贴在下面空格处。

程序为:

clearall;

closeall;

A=1;

fc=2;

fa=3;

N_sample=8;

N=500;

Ts=1;

dt=Ts/fc/N_sample;

t=0:

dt:

N*Ts-dt;

Lt=length(t);

d=sign(randn(1,N));

%dd=sigexpand((d+1)/2,fc*N_sample);

N1=length((d+1)/2);

dd=zeros(fc*N_sample,N1);

dd(1,:

)=(d+1)/2;

dd=reshape(dd,1,fc*N_sample*N1);

gt=ones(1,fc*N_sample);

figure

(1)

subplot(221);

d_NRZ=conv(dd,gt);

plot(t,d_NRZ(1:

length(t)));

axis([01001.2]);ylabel('输入信号');

title£¨'ÌÕ¶¬²¨'£©;

subplot(222);

dt=t

(2)-t

(1);

T=t(end);

df

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

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

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

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