通信课程设计报告.docx

上传人:b****5 文档编号:6303933 上传时间:2023-01-05 格式:DOCX 页数:29 大小:714.99KB
下载 相关 举报
通信课程设计报告.docx_第1页
第1页 / 共29页
通信课程设计报告.docx_第2页
第2页 / 共29页
通信课程设计报告.docx_第3页
第3页 / 共29页
通信课程设计报告.docx_第4页
第4页 / 共29页
通信课程设计报告.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

通信课程设计报告.docx

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

通信课程设计报告.docx

通信课程设计报告

课程名称:

 

信号与通信仿真设计

 

班级:

电1004

学号:

2010

姓名:

一、课程设计目的

在本课程设计中使用的软件工具是MATLAB。

目的是希望在以下几方面有所收获:

1.会MATLAB软件的最基本运用。

MATLAB是一种很实用的数学软件,它易学易用。

MATLAB对于许多的通信仿真类问题来说是比较合适的。

2.了解计算机仿真的基本原理及方法,知道怎样通过仿真的方法去研究通信问题。

3.加深对信号与系统和通信原理及其相关课程内容的理解。

二软件实现特点

与硬件实验相比,软件实验具如下一些特点:

1.软件实验具有广泛的实用性和极好的灵活性。

在硬件实验中改变系统参数也许意味着要重做硬件,而在软件实验中这只是该一两个数据,或者只是在屏幕上按几下鼠标。

2.软件实验更有助于我们较为全面地研究通信系统。

有许多问题,通过硬件试验来研究可能非常困难,但在软件实验中却易于解决。

3.硬件实验的精确度取决于元器件及工艺水平,软件实现的精确度取决于CPU的运算速度或者说是程序的运算量。

4.软件实验开发周期短,成本低。

三基本要求

1掌握matlab的基本操作及了解基本的仿真方法,分析运行范例程序。

2按以下要求编制仿真程序并调试运行

(1)基本信号的仿真

(2)模拟调制与解调的仿真

(3)数字基带传输码型的仿真

(4)数字调制与解调的仿真

(5)脉冲编码调制仿真

四课程设计内容

1、编程实现基本信号的仿真

(1)产生并绘出以下信号:

a单位脉冲序列

b单位阶跃序列

c正弦信号及其频谱

d周期锯齿波sawtooth()

e周期方波square()

f实指数序列y(n)=2n

gsin2πf1t*cos2πf2tf1=50Hzf2=2000Hz

(2)产生一条-2到2之间的Sa(200t)曲线。

(3)产生下面信号,并绘出频谱

t0

s(t)=-t+t0/4t0/4

t-t03t0/4

假设t0=0.5s

2、编程实现模拟调制与解调的仿真(DSB必做,SSB\AM\FM选择其中一种)

设消息信号m(t)的表达式为:

10≤t≤t0/3

m(t)=-2t0/3≤t≤2t0/3

0其他

(注:

m(t)也可自己选用其它的信号)

(1)DSB中,已调信号的时域表达式:

u(t)=m(t)c(t)=Ac*m(t)cos(2πfct)

假设用信号m(t)以DSB方式调制载波c(t)=cos(2πfct),所得到的已调信号记为u(t);并假设t0=0.15s和fc=250Hz。

绘制调制信号、已调信号和解调信号等各相关点处的时域波形和频谱。

(2)以上例中提供的信号进行SSB调制,试绘制调制信号、已调信号和解调信号等各相关处的时域波形和频谱。

(提示:

上边带调制信号:

ussb=m.*c-imag(hilbert(m)).*b;下边带调制信号:

lssb=m.*c+imag(hilbert(m)).*b。

(3)以上例中提供的信号进行AM调制,给定的调制指数a=0.8,试绘制调制信号、已调信号和解调信号等各相关处点的时域波形和频谱。

AM调制信号的时域表达式为:

u(t)=AC[1+amn(t)]cos(2πfct)

这里a是调制指数,mn(t)是经过归一化处理的消息信号,式中mn(t)=m/max(abs(m))。

(4)以上例中提供的信号进行频率调制,采用载波:

c(t)=cos(2πfct)进行调频,fc=200Hz,t0=0.15s,偏移常数KF=50。

试绘制调制信号、已调信号和解调信号等各相关点处的时域波形和频谱。

调频信号的时域表达式为:

M(t)=Accos

(5)高斯噪声的产生

设高斯噪声限带为(-Bs,Bs),双边带功率谱密度为

,则总功率为

,设高斯噪声幅度为x,则有:

所以高斯噪声可表示成

x=sqrt(Bs*no)*randn(1,M)M为随机码元个数

在模拟调制中加上噪声后波形作对比。

3、编程实现数字基带信号的码型的仿真

(1)试做单极性归零码、双极性非归零码、单极性非归零码、双极性归零码,占空比50%(选择其中2种);

(2)双相码、AMI码、HDB3码等的仿真(选其中2种)。

4、利用SIMULINK实现数字调制与解调的仿真(选择两种调制与解调方式)

(1)根据2FSK、2PSK、2DPSK等的调制和解调的原理框图,利用matlab的SIMULINK功能,建立通信系统模型,观察各点波形及其频谱或功率谱。

加上噪声作对比。

(2)测试上述系统的输出信噪比,并用数字显示器显示(选做)。

(3)用MATLAB语言编程,绘出输出信噪比与输入信噪比之间的关系(选做)。

5、脉冲编码调制仿真(选作)

若输入A律PCM编码器的正弦信号为x(t)=sin(1600πt),抽样序列为x(n)=sin(0.2πn),n=0,1,2…,10,将其进行PCM编码,给出编码器的输出码组序列。

绘出译码后的波形(选作)。

五程序及运行结果

1、编程实现基本信号的仿真

(1)a单位脉冲序列

程序:

n0=[1,2,3,4];

x=zeros(1,10);

x(1,n0)=1;

stem(x);title('单位脉冲序列')

b单位阶跃序列

程序如下:

ns=0;

nf=10;

n0=2;

n=[ns:

nf];

x=[(n-n0)>=0]

c正弦信号及其频谱

t=-1:

0.01:

1;

x=5*sin(2*pi*10*t);

N=length(x);

fx=fft(x);

df=100/N;

n=0:

N/2;

f=n*df;

subplot(211);

plot(t,x);grid;

subplot(212);

plot(f,abs(fx(n+1))*2/N);grid;

d周期锯齿波sawtooth()

Fs=10000;t=0:

1/Fs:

1;

x1=sawtooth(2*pi*50*t,0);

x2=sawtooth(2*pi*50*t,1);

subplot(2,1,1),plot(t,x1),axis([0,0.2,-1,1]);title('锯齿波1');

subplot(2,1,2),plot(t,x2),axis([0,0.2,-1,1]);title('锯齿波2')

e周期方波square()

Fs=10000;

t=0:

1/Fs:

1;

x1=square(2*pi*50*t,20);

subplot(211),plot(t,x1),title('周期方波');

axis([0,0.2,-1.5,1.5]);

f实指数序列y(n)=2n

a=2;

x=a.^n;

stem(n,x);title('实指数序列')

gsin2πf1t*cos2πf2tf1=50Hzf2=2000Hz

f1=50;

f2=2000;

t=0:

0.02:

10;a=sin(2*pi*f1*t);b=cos(2*pi*f2*t);

y=a.*b;

plot(t,y);title('sin2pif1t*cos2pif2t')

(2)产生一条-2到2之间的Sa(200t)曲线。

t=linspace(-2,2);

>>y=sinc(200*t);

>>plot(t,y);title('y=sa(200t)')

(3)产生下面信号,并绘出频谱

t0

s(t)=-t+t0/4t0/4

t-t03t0/4

假设t0=0.5s

源程序:

clearall;

closeall;

clc;

t0=0.5;

t=0:

0.01:

0.5;

s=t.*(t>0&t<=t0/4)+(-t+t0/4).*(t>=t0/4&t<=3*t0/4)+(t-t0).*(t>=3*t0/4&t

plot(t,s)

2.模拟调制与解调的仿真

(1)信号的DSB调制与解调

clearall;

closeall;

clc;

t0=0.15;

dt=0.0001;

t=[0:

dt:

1];

fc=250;

phi0=0;

ct=cos(2*pi*fc*t+phi0);%载波信号

fm=10;

fun=@(t)1.*(t>=0&t<=t0/3)+(-2).*(t>=t0/3&t<=2*t0/3)+0.*(t>=2*t0/3);

mt=fun(t);

ut=1.5*mt.*ct;

figure

(1)

subplot(3,1,1),plot(t,mt),title('mt----调制信号')

subplot(3,1,2),plot(t,ct),title('ct----载波信号')

subplot(3,1,3),plot(t,ut),title('ut----已调信号')

[m,n]=size(ut);

ni=0.05*randn(m,n);

u0=ut+ni;

figure

(2)

subplot(3,1,1),plot(t,ni),title('ni----高斯白噪声')

subplot(3,1,2),plot(t,u0),title('u0=ut+ni----已调信号+高斯白噪声')

w1=2*dt*(fc-2*fm);

w2=2*dt*(fc+2*fm);

[b,a]=butter(4,[w1,w2],'bandpass');

u1=filter(b,a,u0);

subplot(3,1,3),plot(t,u1),title('u1----信号进入带通滤波器')

figure(3)

u2=u1.*ct;

subplot(3,1,1),plot(t,u2),title('u2----与载波相乘后的波形')

B=2*fm;

wn3=2*dt*B;

[b,a]=butter(4,wn3,'low');

u3=filter(b,a,u2);

subplot(3,1,2),plot(t,-u3),title('u3----解调后的信号')

subplot(3,1,3),plot(t,-u3),holdon,title('解调后的信号与原调制信号比较')

plot(t,mt,'r');

dt=t

(2)-t

(1);%采样周期

f=1/dt;%采样频率(Hz)

X=fft(ut);%计算x的快速傅立叶变换X

N=1/dt;

F=X(1:

N/2+1);%F(k)=X(k)(k=1:

N/2+1)

f=f*(0:

N/2)/N;%使频率轴f从零开始

figure(4)

subplot(3,1,1),plot(f,abs(F)),title('dsb调制信号频谱图');xlim([0,fc*2]);

xlabel('Frequency');

ylabel('|F(k)|')

调制与解调的波形,频谱

(2)信号的SSB调制与解调

clearall;

closeall;

clc;

t0=0.15;

dt=0.0001;

t=[0:

dt:

1];

fc=250;

phi0=0;

ct=cos(2*pi*fc*t+phi0);%载波信号

fm=10;

fun=@(t)1.*(t>=0&t<=t0/3)+(-2).*(t>=t0/3&t<=2*t0/3)+0.*(t>=2*t0/3);

mt=fun(t);

mh=imag(hilbert(mt));

b=sin(2*pi*fc.*t)

ussb=mt.*ct-imag(hilbert(mt)).*b;

lssb=mt.*ct+imag(hilbert(mt)).*b;

figure

(1)

subplot(3,1,1),plot(t,mt),title('mt----调制信号')

subplot(3,1,2),plot(t,ussb),title('ussb----载波信号')

subplot(3,1,3),plot(t,lssb),title('lssb----已调信号')

dt=t

(2)-t

(1);%采样周期

f=1/dt;%采样频率(Hz)

X1=fft(ussb);%计算x的快速傅立叶变换X

X2=fft(lssb);

N=1/dt;

F1=X1(1:

N/2+1);%F(k)=X(k)(k=1:

N/2+1)

F2=X2(1:

N/2+1);

f=f*(0:

N/2)/N;%使频率轴f从零开始

figure(4)

subplot(3,1,1),plot(f,abs(F1)),holdon,title('ussb调制信号频谱图');plot(-f,abs(F1));xlim([-fc*2,fc*2]);

subplot(3,1,2),plot(f,abs(F2)),holdon,title('lssb');plot(-f,abs(F2));xlim([-fc*2,fc*2]);

xlabel('Frequency');

ylabel('|F(k)|')

(3)高斯白噪声

n0=30;

fc=250;

t=[0:

0.0005:

0.15];

u=cos(2*pi*fc.*t);

M=length(u);

x=sqrt(4*n0)*randn(1,M);

plot(t,x(1:

length(t)));

3.编程实现数字基带信号的码型的仿真

(1)单极性非归零码

functiony=snrz(x)

%本函数实现将输入的一段二进制代码编为相应的单极性非归零码输出

%输入x为二进制码,输出y为编好的码

%给出计算每一个码元的点数,因为我们只有用离散的点来得出连续的函数表示。

grid=300;

t=0:

1/grid:

length(x);

fori=1:

length(x),%计算码元的值

if(x(i)==1),%如果信息为1

forj=1:

grid,%该码元对应的点值取1

y((i-1)*grid+j)=1;

end

else

forj=1:

grid;%反之,信息为0,该码元对应的点值取0

y((i-1)*grid+j)=0;

end;end;end

y=[y,x(i)];

M=max(y);

m=min(y);

subplot(2,1,1);

plot(t,y);

axis([0,i,m-0.1,M+0.1]);

%采用title命令来实现标记出各码元对应的二进制信息

title('100110000101');

制与解调方式)

实例图

(2)双极性归零码:

源程序:

%双极性归零码

functiony=drz(x)

%本函数实现将输入的一段二进制代码编为相应的双极性归零码输出

%输入x为二进制码,输出y为编好的码

grid=300;

t=0:

1/grid:

length(x)%定义对应时间序列

fori=1:

length(x),%进行编码

if(x(i)==1),%如果信息为1

forj=1:

grid/2,

y(grid/2*(2*i-2)+j)=1;%定义前半时间为1

y(grid/2*(2*i-1)+j)=0;%定义后半时间为0

end

else

forj=1:

grid/2%反之,信息为0,该码元对应的点值取0

y(grid/2*(2*i-2)+j)=-1;%定义前半时间为-1

y(grid/2*(2*i-1)+j)=0;%定义后半时间为0

end;end;end

y=[y,x(i)];

M=max(y);

m=min(y);

plot(t,y);

axis([0,i,m-0.1,M+0.1]);

%采用title命令来实现标记出各码元对应的二进制信息

title('100110000101');

(3).Ami码

源程序

functiony=ami(x)

grid=300;

t=0:

1/grid:

length(x);

k=-1;%定义对应时间序列

fori=1:

length(x),%进行编码

if(x(i)==1),

k=-k;%如果信息为1

forj=1:

grid/2,

y(grid/2*(2*i-2)+j)=k;%定义前半时间为1

y(grid/2*(2*i-1)+j)=k;%定义后半时间为0

end

else

forj=1:

grid/2%反之,信息为0,该码元对应的点值取0

y(grid/2*(2*i-2)+j)=0;%定义前半时间为-1

y(grid/2*(2*i-1)+j)=0;%定义后半时间为0

end;end;end

y=[y,x(i)];

M=max(y);

m=min(y);

plot(t,y);

axis([0,i,m-0.1,M+0.1]);

%采用title命令来实现标记出各码元对应的二进制信息

title('100110000101');

(4).双相码

源程序

%双相码

functiony=mechester(x)

%本函数实现将输入的一段二进制代码编为相应的双相码输出

%输入x为二进制码,输出y为编好的码

grid=300;

t=0:

1/grid:

length(x)%定义对应时间序列

fori=1:

length(x),%进行编码

if(x(i)==1),%如果信息为1

forj=1:

grid/2,

y(grid/2*(2*i-2)+j)=1;%定义前半时间为1

y(grid/2*(2*i-1)+j)=0;%定义后半时间为0

end

else

forj=1:

grid/2%反之,信息为0,该码元对应的点值取0

y(grid/2*(2*i-2)+j)=1;%定义前半时间为1

y(grid/2*(2*i-1)+j)=0;%定义后半时间为0

end;end;end

y=[y,x(i)];

M=max(y);

m=min(y);

plot(t,y);

axis([0,i,m-0.1,M+0.1]);

%采用title命令来实现标记出各码元对应的二进制信息

title('100110000101');

4、利用SIMULINK实现数字调制与解调的仿真(选择两种调制与解调方式)

(1)2PSK调制仿真

1、参数设置:

载波f1(sinewave):

幅度为2,频率为1HZ,相位为0,采样周期为0.002。

载波f2(sinewave):

幅度为2,频率为2HZ,相位为pi,采样周期为0.002。

2、运行结果:

2PSK解调仿真

1、参数设置:

调制载波信号f1(modulator子系统中)频率由1hz改为100hz。

调制载波信号f2(modulator子系统中)频率由1hz改为100hz。

2PSK的抽样判决器参数设置与2FSK相同,低通滤波器和带通滤波器参数设置与2ASK和2FSK也相同,在此不作赘述。

2、运行结果

从图中可以看出,2PSK也是双极性信号系统,2PSK信号通过相干解调后,从噪声中分离出有用信号。

其中信号在通过抽样判决器后,信号延时了一个周期。

2PSK信号源功率谱密度

2PSK解调后信号功率谱密度

2PSK信号源与解调后信号序列比较

(2)2ASK的调制与解调仿真

2ASK调制仿真

正弦信号(sinewave)是载波信号,方波BernoulliBinaryGenerator代表信号源,载波和信号源相乘后就得到键控2ASK信号,Simulink的调制子系统Modulator模型图如下所示:

图3.22ASK信号调制子系统Modulator

1、参数设置:

图3.3正弦信号(载波)参数设置

载波:

幅度为2,频率为1HZ,相位为0,采样周期为0.002。

实际应用中载波信号频率很高,但为了在运行结果的波形图仿真中显示清晰,所以把频率调为1hz。

图3.4信号源的参数设置

信号源:

采样周期为1随机方波信号。

2、运行结果:

用simulink示波器直接观察出来的图是黑色背景,不便于后续应用和处理,特别是打印效果并不清晰,可以通过以下方式解决。

从示波器打开观察出来波形,在matlab中键入以下命令:

set(gcf,'menubar','figure');

set(0,'ShowHiddenHandles','on');

通过一系列波形参数设置后显示如下:

图3.52ASK信号调制各点的时间波形图

调制信号序列为1011011100……

3.1.32ASK解调仿真

2ASK调制后的信号通过信道进行相干解调,相干解调也叫同步解调,就是用已调信号恢复出载波——既同步载波。

再用载波和已调信号相乘,经过低通滤波器和抽样判决器恢复出S(t)信号,Simulink的解调子系统Demodulator模型图如下所示:

图3.62ASK信号解调子系统Demodulator

1、参数设置:

调制载波正弦信号(modulator子系统中)频率由1hz改为100hz.100hz可以看作实际应用中的高频载波。

一些模块比较简单(比如Product),参数设置取系统默认值,所以不再列出。

图3.7信道参数设置

信道:

信噪比(Eb/No)为50(db)。

图3.8100hz带通滤波器参数设置

图3.9低通滤波器参数设置

图3.10延时器参数设置

图3.11继电(采样)器参数设置

延时器与采样器构成抽样判决电器。

图3.12延时器参数设置

计算误码率时,为与解调后信号进行同步比较,需将信号源延时。

2、运行结果:

图3.132ASK信号解调的各点时间波形图

解调后信号序列为101101110……

图3.142ASK信号源功率谱密度

图3.152ASK解调后信号功率谱密度

图3.162ASK信号源与解调后信号序列比较

信号序列为101101110……

六心得体会

由于之前没有很深入的学习matlab,所以在这次的通信原理课程设计中遇到了很多大大小小的问题,在这里要感谢老师的悉心指导和同学的热心帮助。

在两周的课程设计中,我通过去图书馆翻阅资料,上网搜索资料,对matlab语言有了一定的了解,matlab语言的应用范围非常广,包括信号和图像处理,通讯,控制系统设计,测试和测量,财务建模和分析以及计算生物学等众多应用领域。

附加的工具箱扩展了matlab环境,以解决这些应用领域内特定类型的问题。

Matlab自带函数很多,基本上能够满足一般的数据和矩阵的计算,所以基本上不用自己编函数,这一点对程序非常有帮助,可以使程序简单运行效率高,节省很多时间。

编程中最头疼的就是调试程序了,又时候一个很小的错误要检查半天才能查出来,同时有些程序也是可以优化的,这就需要我们的耐心和细心。

在编程过程中,我与身边同学共同讨论,为对方查找错误,提示建议,在这个过程中我收获甚多,也培养了自己的合作精神。

本次通信原理小学期不仅

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

当前位置:首页 > 法律文书 > 调解书

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

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