数字信号载波传输的Matlab仿真

摘要:数字信号与信息科学的迅猛发展,计算机和通信系统的迅速发展的理论和实践,通信系统是将信息从信源发送到一个或者多个目的地,用来达到各种信息传输过程的一般技术体系。数字信号调制与解调过程中起着重要的信息传递的作用。为了结合计算机仿真,美国MathWork公司推出的MATLAB软件是一个最优秀的科技应用软件。MATLAB完全可以将理论与实际应用结合在一起,以此激发的学生的学习兴趣,以此提升了学习的效果。

为了学习更方便的数字信号,美国公司将MATLAB特设了学习辅助软件作为学习数字信号基础,数字信号载波传输的分析及仿真完全充分的利用了MATLAB快速操作,文字,图形,声音及交互式人机界面等特点来进行的。MATLAB是一种将强大功用结合为一体的科学计算机语言,它拥有了数值运算、制作图像、图像操作和系统仿真等,它工具箱和功能非常丰富,拥有强大的矩阵运算、图形可视化,因此提供了极大的方便在通信系统的调制和解调过程的分析中。

本论文大概介绍了数字信号系统的概念,接着介绍了调制和解调的方式,继而具体介绍了我们经常使用的几种调制和解调的方式和数字信号载波传输在MATLAB中的仿真。数字信号课程也是我们专业的必修课程。

关键字:数字信号载波传输,MATLAB,仿真


第一章 前言

1.1 课题背景

随着现代数字信号的快速发展,数字调制解调技术主要涉及在所有的工程技术领域中,数字信号处理技术的飞速成长,全球性信息性高速公路建设的浪潮也都正在进行当中。今天的各种传输媒介,有线电视、卫星通信系统和微波中继等将会尽可能更多地选用了数字信号载波传输方式。这些系统当中数字调制技术已经充分的在已经使用到了。现在的人们都意识到:人们的工作方式和生活方式随着数字信号的发展已经慢慢的改变,互联网和数字信号处理技术已经成为了影响上升的重要因素,以及成为了一个国家与地区、科学与文化发展的经济实力。数字信号调制技术采取数字调制解调技术的加密和差错控制为了便于数字信号的整合,所以数字信号拥有了模拟信号不可替代的优势。针对传统数字信号根据比较传统的意思就是信息的传输,在现代高度信息社会中,信息和数字信号俨然成为了当前我国社会的“命脉”。通过社会广泛的传播与交流,信息作为这种需求性的资源,才能使其产生利用价值,增进社会成员之间的团队协作能力,推进社会生产力的急速发展,创造出了强大的经济效益。随着数字通信的迅速发展,出现了许多新问题,对传输频带的限制和对传输质量的要求越来越高。

MATLAB作为一种跨平台的,简单和有效的数学语言的矩阵运算,为用户提供了非常直观和简单的程序开发环境。数字信号载波的传输在仿真软件设计中选择采用了MATLAB 作为仿真工具,使得结果更为直观清楚,对于现在学生的实践学习有很大的帮助。

1.2 本课题主要内容

数字信号载波传输的调制方式有四种,分别是:载波幅度调制(PAM/ASK),载波相位调制(PSK)、正交幅度调制(QAM)和载波频率调制(FSK)。数字信号系统包含了很多内容,它们基本上可以用数字基带信号控制高频载波的三个参数里的振幅、频率和相位,从而获得数字带通载波信号。然而美国的MathWorks公司研究了MATLAB,从而解决了这一问题。本课题主要介绍数字信号载波调制的四种基本方式,并简单介绍数字通信仿真的过程。

第二章 MATLAB介绍

2.1 MATLAB简介

美国The MathWorks公司出品的MATLAB是一款由具备商业价值的数学使用软件,它是MATrix LABoratory的缩写。它已经发展称为一个非常灵活的计算系统,是用来解决数字信号传输中的各种技术问题。它提供的数据分析,算法实现交互式开发环境下的应用于发展。MATLAB具有广泛的功能定义库,适用于MATLAB编程语言。

MATLAB是把矩阵作为基本数据单元的一种计算机程序设计语言,它把具有高性能的数值运算和可视化这两种连接在一起,且提供了强大的内置函数和供数据分析,算法实现交互式开发环境下的应用与发展。 MATLAB能够方便地用于运算,也能够快速完成计算可视化,制作图像,建立和烘托场景,图象处理等分析处理工作。现今已经有超过四十多个的MATLAB工具箱,其基本概括了数据获取,科学计算,控制系统设计与分析,数字信号处理,数字图像处理,财务分析、生物和遗传等专业范畴。

2.2 特点

当前MATLAB作为世界顶级的数学信号载波传输的应用软件,它拥有着巨大的工程运算、算法钻研、工程制图、应用程序的建设和动态仿真等功能,从而为用户供给了十分明了的程序开发环境,MATLAB语言在MATLAB程序当中运行,且提供了一个极为普遍的预定义函数库,如此就使得技术工作变得简单高效。MATLAB还拥有计算机强、很好的人机界面、编程效率极高、绘图功能强大和可扩展性强的特点。丰富的功能应用工具箱给用户提供了大批简易适用的处理工具。MATLAB的功能强大,也便于学生学习,且编程效率高。

2.3 MATLAB界面

当MATLAB6.5.0程序启动的时候, MATLAB的桌面窗口出现。MATLAB桌面结构如图2.3.1所示。


数字信号载波传输的Matlab仿真_第1张图片


图2. 1 MATLAB桌面结构图

2.4 MATLAB语言平台及基本语法

当MATLAB运行时,有许多不同类型的窗口出现在平台上,都有各自功能,即有一些用在接收命令,一些用在显示信息。主要窗口有一个命令窗,工作空间,驱动平台,编辑和调试窗口,工作台窗口和数字编辑器,交互界面窗口,帮助导航浏览器图形窗口。

MATLAB拥有着高级的矩阵/阵列语言,它主要包括了控制语句,函数,数据结构,输入和输出及面向对象等特点。MATLAB的语法结构:M文件、程序流程控制、波形的绘制、数据的表示和运算、矩阵的表示和运算、数据的输入和输出、MATLAB程序编译步骤。过程中需要继续不断运行和调试程序编辑文件。

2.5 数据分析

MATLAB软件可以实现数据的分析和处理,是一种高性能的数值计算和可视化软件。MATLAB是基本单元矩阵的数据操作,而不需要预先指定矩阵的维数(动态定维)。MATLAB数值运算中有变量,数值,矩阵,阵列,符号运算、注释与标点。MATLAB能够从其余的文献、应用程序和外部设备访问数据。

MATLAB中数值运算有以下几个相关概念:

  1. 变量。变量命名原则:
  2. 是以字母开头、后面可以跟字母、数字和下划线
  3. 长度不超过63个字符
  4. 字母区分大小写
  5. 数值。MATLAB的数值选用了十进制数表示法,能够带小数点或符号,也判别复数。MATLAB中的数值默认是双精度实数。
  6. 矩阵。矩阵是MATLAB进行数据处理和运算的根本元素,建立矩阵方式有:利用函数和M文件来建立。
  7. 数组。在MATLAB中,数组是一个非常重要的概念,数组的要求有:图形窗口的掌握、二维和三维绘图的使用等。

5. 符号运算。为用户提供了一个丰富的MATLAB内置函数。有各种各样的MATLAB符号运算方式:符号表达式的运算及复合、化简,符号微分方程求解等等。

第三章 数字信号载波传输

3.1概述

1. 数字信号的载波传输

数字信号的载波传输也被称为数字调制系统,数字基带信号的载波信息的复制处理过程。在数字通信系统中,在数字通信系统中,数字测图需要在信道传输信号的输入序列,输出数字信号的信号映射后,适用于传输数字调制信号。按照数字调制的方法能够分为基带传输和带通传输两种方式。数字调制是用数字基带信号对载波的某些参量进行控制,使载波随基带信号变化;数字调制解调技术是在接收端已经搬到了基带信道铜频谱还原为基带信号的一种过程。对数字信号传性的调制,可以方便于信号到数字信号的传输;信道复用的实现;信号变化占用的带宽;提高了系统的性能。为了使传输信道中的各种元素,最好使用可组合成不同的调制,并能清楚地描述和表达它的数学模型。数字调制技术是2ASK,2FSK,2PSK,QAM,数字通信的传输效率,可以实现且远比模拟通信,数字调制技术的种类也远远大于模拟通信,大大提高了用户按照现实情况使用需求来挑选系统配置的灵活性。

数字调制系统结构图如图3.1所示,它主要包括发送滤波器,调制器,信道,解调器和抽样判决器等部分组成。


图3.1 数字调制系统结构图

2. 为什进行频带调制?

首先,由于有限的频率资源有限,导致了我们不能在开放信道使用传输信息;基带传输损耗大、易误码,且方便使用不同类型的模拟信道资源传输数字信号;它不仅用于低速数据传输,但也为高速数据传输;在理论上来讲,无论是哪种线性载波传输系统都能够即是基带传输系统。调制来实现多路复用,完成频率偏移和减少噪声的干扰等。

3. 怎样进行频带调制?

数字调制的特点是信息传递的一些离散的载波信号。在通信系统中,当一个正弦载波的振幅,频率和相位3参数,相应的也有3种基本类型的振幅调制,频率调制和相位调制。频带调制的基本的四种方法有:载波幅度调制(PAM)、载波相位调制(PSK)、正交幅度调制(QAM)及载波频率调制(FSK)。

第四章 数字信号载波传输的几种方式

4.1 载波幅度调制(ASK)

数字信号载波传输的Matlab仿真_第2张图片

4.1.1 ASK调制原理

数字信号载波传输的Matlab仿真_第3张图片

4.1.2 数字ASK相干解调方式

2ASK有相干解调法(同步检测法)和非相干解调法(包络检波法)这两种基本解调方法,它是将搬移到高频段的频谱再搬回到原点。本次设计采用相干解调法。相干解调就是同步检测法,同步检测器用于对载波抑制的双边带或单边带进行调制。

数字信号载波传输的Matlab仿真_第4张图片

图4.4 2ASK相干解调法(同步检测法)

程序

clear
n=1:8192;
m=1:128;x(n)=randint(1,8192,2);x=x(n)';
y(n)=zeros(1,8192);z(m)=zeros(1,128);
for n=1:8192
  for m=1:128
    if n==64*m-63
        z(m)=x(n);
        if m==ceil(n/64)
        y(((64*m-63):(64*m))')=z(m);
        end
    end
  end
end
n=1:8192;rm2=y(n);
x2=rm2; %产生基带信号
n=1:(2^13);
x1=cos(n.*1e9*2*pi/4e9); %载频1GHz
x=x1.*x2; % ASK 频带调制
b=blackman(2^13); % 窗函数
X= b'.*x; % ASK 频带调制加窗
x3=[ones(1,64) zeros(1,8128)]; % 独个基带信号码元
y1=X(1:(2^13));y4=x1.*x3;
Y1=fft(y1,(2^13));magY1=abs(Y1(1:1:(2^12)+1))/(200); % 求FFT
Y4=fft(y4,(2^13));magY4=abs(Y4(1:1:(2^12)+1))/(37); % 求FFT
k1=0:(2^12);w1=(2*pi/(2^13))*k1;
u=(2*w1/pi)*1e9;
figure(1)
subplot(2,1,1);
plot(u,magY1,'b',u,magY4,'r');grid
title('ASKr');axis([4e8,1.6e9,0,1.1])
X2=b'.*x2; %基带信号加窗
y2=X2(1:(2^13));
Y2=fft(y2,(2^13));magY2=abs(Y2(1:1:(2^12)+1))/(200)+eps; % 求FFT
k1=0:(2^12);w1=(2*pi/(2^13))*k1;
u=(2*w1/pi)*1e9;
Y3=fft(x3,(2^13));magY3=abs(Y3(1:1:(2^12)+1))/(35)+eps;
subplot(2,1,2);semilogy(u,magY2,'b',u,magY3,'r');grid
title('ASKr-modulation');axis([0,1.2e9,3e-2,3])
figure(2)
subplot(2,1,1);plot(n,x2);title('ASKr');
axis([0,640,-0.2,1.2]); grid
subplot(2,1,2);plot(n,x);
axis([0,640,-1.2,1.2]);grid

4.2 基带移相键控(PSK)

基带移相键控(PSK)是利用载波的相位变化来传递数字信息,而振幅和频率保持稳定。2PSK流程图:


数字信号载波传输的Matlab仿真_第5张图片
图4.5 2PSK调制解调框图



4.2.1 PSK调制原理

二进制移相键控(2PSK)信号的产生是在二进制数字调制中,当正弦载波的相位随着二进制数字基带信号离散的变化而变化的过程。2PSK信号调制方式有模拟调制法和键控法这两种方法。在PSK中,一般用初始相位0或者∏分别代表二进制1或者0。载波相位变化的信号是以2PSK作为参考的基准,当基带信号为0时相位相对于初始相位为0°,当基带信号为1时相对于初始相位为180°。键控法,是以载波的相位进行二进制信息的调制方式。

4.2.2 数字PSK的相干解调法

数字信号载波传输的Matlab仿真_第6张图片
图4.6 2PSK的相干解调原理图

位和相干载波。通过带通滤波的信号在相乘器中和本地载波相乘,而后用低通滤波器滤除掉了高频分量,再进行抽样判决。判决器根据极性的基础上来进行判决的。这是正抽样值判为1,负抽样值判为0。


4.2.3 二进制差分相移键控(DPSK)

2DPSK流程图:

数字信号载波传输的Matlab仿真_第7张图片

(1) DPSK调制原理

达到二进制差分相移键控的最通常的方式有:首先对二进制数字基带信号进行差分编码,继而对变换出的差分码进行绝对调相便可。

(2) DPSK解调原理

2DPSK信号解调有相干解调方法和差分相干解调。相干解调码转换法和相

干解调法的解调原理是:首先对2DPSK信号进行了相干解调,恢复出相对应的码,之后通过码反变换器转换成为绝对码,以此来恢复出了发送出去的二进制数字信息。

数字信号载波传输的Matlab仿真_第8张图片



由于DPSK系统的差分相干解调电路简单的多,因此2DPSK系统中大都采用差分相干解调。

PSK调制举例:

MATLAB实现如下(函数bpskdigital.m)
function bpskdigital(s,f)
% 本程序实现BPSK调制
%s-输出二进制序列,f-载波信号的频率
%调用举例:(f0和f1必须是整数)bpskdigital([1 0 1 1 0],2)
t=0:2*pi/99:2*pi;%初始定义
cp=[ ];mod=[ ];mod1=[ ];bit=[ ];
for n=1:length(s);%调制过程
    if s(n)==0;
        cp1=-ones(1,100);
        bit1=zeros(1,100);
    else  s(n)==1;
        cp1=ones(1,100);
        bit1=ones(1,100);
    end
    c=sin(f*t);
    cp=[cp cp1];
    mod=[mod c];
    bit=[bit bit1];
end
bpsk=cp.*mod;
subplot(2,1,1);
plot(bit,'LineWidth',1.5);grid on;%分别画出原信号,已调信号示意
ylabel('Binary Signal');
axis([0 100*length(s) -2.5 2.5]);
subplot(2,1,2);
plot(bpsk,'LineWidth',1.5);grid on;
ylabel('BPSK modulation');
axis([0 100*length(s) -2.5 2.5]);


数字信号载波传输的Matlab仿真_第9张图片


图4.10 BPSK波形

DPSK举例程序:

其仿真MATLAB程序实现如下。

NRindB1=0:2:12;
SNRindB2=0:0.1:12;
for i=1:length(SNRindB1),
    simu_err_prb(i)=snr2ps(SNRindB1(i));
end;
for i=1:length(SNRindB2),
    SNR=exp(SNRindB2(i)*log(10)/10);
    theo_err_prb(i)=2*Qfunct(sqrt(SNR));
end;
semilogy(SNRindB1,smld_err_prb,'*');
hold
semilogy(SNRindB2,theo_err_prb);
xlabel('Eb/No(dB)');
ylabel('误码率');
legend('仿真符号误码率','理论符号误码率');
function[p]=snr2ps(snr_in_dB)
N=10000;
Es=1;
snr=10^(snr_in_dB/10);
sgma=sqrt(Es/(4*snr));
for i=1:2*N,
    temp=rand;
    if(temp<0.5),dsource(i)=0;
    else
        dsource(i)=1;
    end;
end;
mapping=[0 1 3 2];
M=4;
[diff_enc_output]=cm_dpske(E,M,mapping,dsource);
for i=1:N,[n(1) n(2)]=gausamp(sgma);
    r(i,:)=diff_enc_output(i,:)+n;
end;
numoferr=0;
prev_theta=0;
for i=1:N,theta=angle(r(i,1)+j*r(i,2));
    if ((delta_theta7*pi/4)),decis=[0 0];
    elseif(delta_theta<3*pi/4)
        decis=[0 1];
    elseif(delta_theta<5*pi/4)
        decis=[1 1];
    else
        decis=[1 0];
    end;
    prev_theta=theta;
    if((decis(1)~=dsource(2*i-1)|(decis(2)~=dsource(2*i))),numoferr+1;
    end;
end;
p=numoferr/N;
function[enc_comp]=cm_dpske(E,M,mapping,sequence);
k=log2(M);
N=length(sequence);
remainder=rem(N,k);
if(remainder~=0),for i=N+1:N+k-remainder,sequence(i)=0;
    end;
    N=N+k-remainder;
end;
theta=0;
for i=1:k:N,index=0;
    for j=i:i+k-1,index=2*index+sequence(j);
    end;
    index=index+1;
    theta=mod(2*pi*mapping(index)/M+theta,2*pi);
    enc_comp((i+k-1)/k,1)=sqrt(E)*cos(theta);
    enc_comp((i+k-1)/k,2)=sqrt(E)*sin(theta);
end;

4.3 正交幅度调制(QAM)

正交幅度调制QAM (Quadrature Amplitude Modulation)是用两路彼此独立的基带信号来对两个相互正交的载波进行抑制载波双边带调制的一种节约频带的数字调幅方式。同其它的调制方法差不多,QAM也是经过载波某些参数的变化来传输信息。在QAM中是数据信号由彼此正交的两个载波的幅度变化来表示。正交幅度调制(QAM)改动了正弦载波的相位和幅度。正交幅度调制(QAM)和其他的数字调制方式相同,正交幅度调制(QAM)发射的信号集能够用星座图简便地表示,信号的星座图上每一个星座点相对应着发射信号集中的那一点。和另外的调制技术相比,QAM编码拥有着充分利用带宽,抗噪声能力强等优点。

(1)QAM调制的原理:

数字信号载波传输的Matlab仿真_第10张图片

4.4 载波频率调制(FSK)

用二进制数字基带信号控制载频的频率完成的调制称为载波频率调制FSK。二进制基带信号的两个频率点间的变化带着FSK中载波的频率的变化。数字载波频率调制是一个载波频率的传输数字信息,即控制载波数字消息的发送频率。从原理上来讲,数字载波频率调频是可以用模拟调频法来实现的,也可以用键控法来实现的。

4.4.1 FSK的产生

FSK的信号产生方法能够采用键控法来完成。2FSK信号的频谱是由2ASK频谱的f1和f2这两个的组合来形成的,二进制基带信号的f1 和f2 的这两个频率点之间的变化带动着2FSK 中的载波频率的变化。所用流程图:


数字信号载波传输的Matlab仿真_第11张图片


4.4.2 FSK调制解调原理

FSK信号可以被视为两个不同的载波调制信号的叠加。2FSK调制有模拟调制方法和关键的控制方法这两种方法。本次设计主要选用了键控法,数字频移键控主要是用载波的频率来进行传送数字消息的,也就是用所传送的数字信息来控制载波了的频率。

2FSK的解调方式有两种:相干解调方式和非相干解调方式

数字信号载波传输的Matlab仿真_第12张图片


图4.13 2FSK相干解调原理图

在这里的数字FSK选用了相干解调这种方式,解调的原理是将FSK信号对上下两路ASK信号依次进行解调后再进行判决的一个过程。按照已调信号由两个载波f1、f2调制而成,则先用两个分别对f1、f2带通的滤波器对已调信号进行滤波,而后再依次对滤波后的信号和相对应的载波f1、f2相乘进行相干解调,再依次对低通滤波用抽样信号进行抽样判决便可。

举例程序:

MATLAB实现如图(函数文件fskdigital.m)

% 本程序实现FSK调制
%s-输出二进制序列,f0,f1-两个载波信号的频率
%调用举例:(f0和f1必须是整数)fskdigital([1 0 1 1 0],1,2)
t=0:2*pi/99:2*pi;%初始定义
cp=[ ];mod=[ ];bit=[ ];
for n=1:length(s);%调制过程
    if s(n)==0;
        cp1=ones(1,100);
        c=sin(f0*t);
        bit1=zeros(1,100);
    else  s(n)==1;
        cp1=ones(1,100);
        c=sin(f1*t);
        bit1=ones(1,100);
    end
    cp=[cp cp1];
    mod=[mod c];
    bit=[bit bit1];
end
fsk=cp.*mod;
subplot(2,1,1);
plot(bit,'LineWidth',1.5);grid on;%分别画出原信号,已调信号示意
ylabel('Binary Signal');
axis([0 100*length(s) -2.5 2.5]);
subplot(2,1,2);
plot(fsk,'LineWidth',1.5);grid on;
ylabel('FSK modulation');
axis([0 100*length(s) -2.5 2.5]);

仿真图:


数字信号载波传输的Matlab仿真_第13张图片
图4.14 2FSK仿真图





第五章 结束语

这次的课题主要研究了数字信号载波传输的MATLAB仿真,文章中介绍了MATLAB的基本背景知识和发展,MATLAB对计算机发展的重要性及在数字信号载波传输中的作用;也介绍了数字信号调制与解调的过程及四种方式及在MATLAB中的仿真。

跟着计算机技术的飞快成长与发展,数字信号处理技术在各种工程技术领域广泛地流行,尤其是在新兴高科技术工业内取得了愈来愈普遍的使用中。通过本次课程设计,对于数字信号的载波传输更加了解了,也加倍懂得了数字信号载波调制的载波幅度调制(PAM/ASK),载波相位调制(PSK)、正交幅度调制(QAM)和载波频率调制(FSK)这四种调制方式。MATLAB是数字信号载波传输处理技术实现的重要技术措施,在科研部门,MATLAB仿真技术更是极其广泛地得到应用,现在已经成为全世界科学家和工程师们举行学术交流会当中首选的共同语言。它被大量的用于计算机、通信、数字信号处理等方面,MATLAB仿真对信号的研究已经在人们的日常生活中占有了无法代替的位置。



参考文献

[1] 薛鹏骞.电子与通信电路计算机仿真[M].北京:煤炭工业出版社,2003:113~144.

[2] 陈怀琛.MATLAB及其在理工课程中的应用指南[M].西安:西安电子科技大学出版社,2002:146~180.

[3] 孙亮.MATLAB语言与控制系统仿真[M].北京:北京工业大学出版社,2001:64~83.

[4] 丁玉美,高西全. 数字信号处理[M]. 西安:西安电子科技大学出版社,2000,12.

[5] 苏金明,刘波等.MATLAB工具箱应用[M].北京:电子工业出版社,2004

[6] 清源计算机工作室.MATLAB 基础及其应用[M].北京:机械工业出版社,2000.

[7] 孙亮. MATLAB语言与控制系统仿真[M].北京工业大学出版社,2001.



附录

这篇论文主要简述了数字信号载波传输的过程,以及简述了数字信号载波传输的几种方式有:载波幅度调制PAM(ASK)、载波相位调制PSK、正交幅度调制QAM及载波频率调制FSK这四种调制方式,通过这几种调制方式,使数字信号载波传输的过程变得清楚明了;还主要介绍了MATLAB的发展、使用范围以及强大的各种功能,使得我们的科技发展的重要性;之后主要简述了数字信号载波传输在MATLAB中的仿真过程及结果。

你可能感兴趣的:(大数据,编程语言,python,人工智能,java)