基于MATLAB的8-PSK的调制与仿真报告

更新时间:2023-10-01 06:43:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

摘要

在数字信号的调制方式中8PSK是目前最常用的一种数字信号调制方式,它具有较高的频谱利用率、较强的抗干扰性、在电路上实现也较为简单。调制技术是通信领域里非常重要的环节,一种好的调制技术不仅可以节约频谱资源而且可以提供好的通信性能。8PSK调制是一种具有较高频带利用率和良好的抗噪声性能的制方式,在数字移动通信中已经得到了广泛的应用。次设计在理解8PSK调制解调原理的基础上应用MATLAB语言来完成仿真,仿真8-PSK载波调制信号在AWGN信道下的误码率和误比特率性能,并与理论值相比较。设符号周期为1s,载波频率为10Hz,每个符号周期内采样100个点。在仿真的基础上分析比较了各种调制方法的性能,并通过比较仿真模型与理论计算的性能证明了仿真模型的可行性。

1.设计内容及要求

仿真8-PSK载波调制信号在AWGN信道下的误码率和误比特率性能,并与理论值相比较。假设符号周期为1s,载波频率为10Hz,每个符号周期内采样100个点并利用M文件仿真。

2.相关理论知识的论述分析在八相调相中,把载波相位的一个周期0-2π等分成8种相位,已调波相邻相位之差为2π/8=π/4。二进制信码的三比码组成一个八进制码元,并与一个已调波的相位对应。所以在调制时必须将二进制的基带串行码流经过串/并变换,变为三比特码元,然后进行调相。三比特码元的组合不同,对应的已调波的相位就不同。

3.系统原理及分析 将载波信号经过8-psk调制,根据符号功率算出平均功率,加入白噪声后解调得到误比特率,误符号率,再与理论值进行比较。八进制移相键控(8PSK)调制。由于8PSK将GMSK的信号空间从2扩展到8,因此每个符号可以包括的信息是原来的4倍。8PSK的符号率保持在271kbps,每个时隙可以得到69.2kbps的总速率,并且仍然能够完成GSM频谱屏蔽。对于高速传输,为了提高频带利用率,多采用多进制调制方法,在一个波形周期(0,TS)内发送多个二进制符号。频带利用率能成倍增加。8PSK,载波有(0,?/4,?/2,3?/4,?,5?/4 ,3?/2,7?/4 )八种不同的初相,可以在一个波形周期(0,TS)内发送3个二进制符(000,001,010,011,100,101,110,111)。频带利用率能达到6b/S/HZ。由于8PSK信号幅度不是恒定的,因此,被调制信号将不再保持恒定幅度,它必须能够从任何起点到达任何相位位置。 4.设计与仿真

4.1 MATLAB软件的介绍

MATLAB 软件是美国Math works 公司的产品,MATLAB 是英文MATrix LABoratory(矩阵实验室)的缩写。

MATLAB软件系列产品是一套高效强大的工程技术数值运算和系统仿真软件,广泛应用于当今的航空航天、汽车制造、半导体制造、电子通信、医学研究、财经研究和高等教育等领域,被誉为“巨人肩膀上的工具”。研发人员借MATLAB

软件能迅速测试设想构想,综合评测系统性能,快速设计更好方案来确保更高技术要求。同时MATLAB也是国家教委重点提倡的一种计算工具。MATLAB主要由C语言编写而成,采用LAPACK 为底层支持软件包。MATLAB的编程非常简单,它有着比其他任何计算机高级语言更高的编程效率、更好的代码可读性和移植性,以致被誉为“第四代”计算机语言,MATLAB是所有MathWorks公司产品的数值分析和图形基础环境。此外MATLAB 还拥有强大的2D和3D甚至动态图形的绘制功能,这样用户可以更直观、更迅速的进行多种算法的比较,从中找出最好的方案。从通信系统分析与设计、滤波器设计、信号处理、小波分析、神经网络到控制系统、模糊控制等方面来看,MATLAB提供了大量的面向专业领域的工具箱。通过工具箱,以往需要复杂编程的算法开发任务往往只需一个函数就能实现,而且工具箱是开放的可扩展集,用户可以查看或修改其中的算法,甚至开发自己的算法。

目前,MATLAB已经广泛地应用于工程设计的各个领域,如电子、通信等领域;它已成为国际上最流行的计算机仿真软件设计工具。现在的MATLAB不再仅仅是一个矩阵实验室,而是一种实用的、功能强大的、不断更新的高级计算机编程语言。现在从电子通信、自动控制图形分析处理到航天工业、汽车工业,甚至是财务工程。MATLAB都凭借其强大的功能获得了极大的用武之地。

广大学生可以使用MATLAB来帮助进行信号处理、通信原理、线性系统、自动控制等课程的学习;科研工作者可以使用MATLAB进行理论研究和算法开发;工程师可以使用MATLAB进行系统级的设计与仿真. 4.2 仿真程序 clear all; close all;

n=10000; %每种信噪比下发送符号数, T=1; %符号周期

fs=100; %每个符号的采样点数

ts=1/fs; %采样时间间隔 t=0:ts:T-ts; %时间矢量 fc=10; %载波频率

c=sqrt(2/T)*exp(j*2*pi*fc*t); %载波信号,sqrt平方根计算 subplot(231); plot(c,'b'); title('载波信号')

c1=sqrt(2/T)*cos(2*pi*fc*t); ?=-sqrt(2/T)*sin(2*pi*fc*t); %M=8; %8—PSK

graycode=[0 1 2 3 6 7 4 5 ]; % SNR=0:15; %snr1=10.^(SNR/10); %msg=randint(1,n,M); %subplot(232); plot(msg);

axis([0, 10, 0, 10]); title('基带信号')

msg1=graycode(msg+1); %msgmod=pskmod(msg1,M).'; %subplot(233); plot(msgmod,'y');

同相载波 正交载波 编规则graycode格雷码 信噪比

信噪比转换为线性值 生成消息序列 绝对码表示为相对码,幅值相位表示 基带8—PSK调制

title('基带调制') tx=real(msgmod*c);%载波调制 subplot(234); plot(tx);

axis([0, 10, -4,4]); title('载波调制')

tx1=reshape(tx.',1,length(msgmod)*length(c)); %spow=norm(tx1).^2/n; % for indx=1:length(SNR)

sigma=sqrt(spow/(2*snr1(indx))); %率

rx=tx1+sigma*randn(1,length(tx1)); % rx1=reshape(rx,length(c),length(msgmod));

r1=(c1*rx1)/length(c1); % r2=(c2*rx1)/length(c2); r=r1+j*r2;

y=pskdemod(r,M); %8PSKdecmsg=graycode(y+1);

[err,ber(indx)]=biterr(msg,decmsg,log2(M)); %[err,ser(indx)]=symerr(msg,decmsg); % end subplot(235);

调整矩阵行数列数 求每个符号的平均功率根据符号功率求噪声功加入高斯白噪声 相关运算 解调 误比特率 误符号率

本文来源:https://www.bwwdw.com/article/40vd.html

Top