QPSK调制原理及matlab程序实现
QPSK已调信号生成
一、QPSK介绍
QPSK是英文Quadrature Phase Shift Keying 的缩写,意为正交相移键
控,是一种数字调制方式。其有抗干扰性强、误码性能好、频谱利用率高等
优点,广泛应用于数字微波通信系统、数字卫星通信系统、宽带接入、移动
通信及有线电视系统之中。
二、实验平台和实验内容
1、实验平台
本实验是MATLAB环境中生成基本QPSK已调信号,只需要。
|
2、实验内容
1.基带信号为周期127bits伪随机序列,信息比特速率:20kbps,载波频率:
20kHz(速率及频率参数现场可调整);
2.在MATLAB环境中编写M代码搭建QPSK调制系统模型;
3.观测基带时域波形、已调信号时域波形;
4.观测基带发射星座图;
5.观测已调信号的功率谱(优先)或频谱;
三、实现框图及其原理分析
1、原理分析及其结构
\
QPSK与二进制PSK一样,传输信号包含的信息都存在于相位中。载波相位取
四个等间隔值之一,如л/4, 3л/4,5л/4,和7л/4。相应的E为发射信号的每
个符号的能量,T为符号持续时间,载波频率f等于nc/T,nc为固定整数。每
一个可能的相位值对应于一个特定的二位组。例如,可用前述的一组相位值来表
示格雷码的一组二位组:10,00,01,11。
Sin(t)=2E/tcos[2]4/)12(fti] 0<=t<=T
其中,i=1,2,3,4。
2、框图
四、实验结果与分析
]
图一
基带信号为周期为127bits的伪随机序列。
图二:已调信号时域波形
带宽为7104Hz
@
B点信号的星座图映射,00、01、10、11组合分别映射成-1-j,-1+j,1-j,1+j。
五、实验源码
clc;
clear all;
Num=127;
data=randi([0 1],1,Num);
figure(1)
plot(data)
【
title('基带时域波形');
f=20000; %载波频率20kHz
Rb=20000; %码元速率20kHz
Ts=1/f;
Ns=8000;
sample=1*Ns; %每个码元采点数为8000,采样频率为8000*20kHz
N=sample*length(data)/2; %总采样点数
data1=2*data-1; %正/负极性变换,产生二进制不归零双极性码元
!
%-------------------------将信息源分成两路 ,分别对信号进行抽样-------------
data_1=zeros(1,N); %定义一个长度为N的空数据data_1
for i1=1:Num/2
data_1(sample*(i1-1)+1:sample*i1)=data1(2*i1-1); %对奇数码元进行采样
end
}
data_2=zeros(1,N);
for i2=1:Num/2
data_2(sample*(i2-1)+1:sample*i2)=data1(2*i2); %对偶数码元进行采样
end
a=zeros(1,N);
`
b=zeros(1,N);
for j1=1:N
a(j1)=cos(2*pi*f*(j1-1)*Ts/Ns); %对余弦载波抽样每个周期采N个点
b(j1)=-sin(2*pi*f*(j1-1)*Ts/Ns); %对正弦载波抽样每个周期采N个点
end
%---------------------------调制---------------------------
》
data_a=data_1.*a; %a路用余弦调制
data_b=data_2.*b; %b路用正弦调制
data_c=data_a+data_b;
figure(2)
subplot(3,1,1)
plot(data_a)
title('QPSK已调实部时域信号');
subplot(3,1,2)
^
plot(data_b)
title('QPSK已调虚部时域信号');
subplot(3,1,3)
plot(data_c);
title('QPSK已调信号时域波形');
%---------------------绘制调制后波形的频谱图-------------------
data_modul1= data_1(1:502000)+1i*data_2(1:502000);
data_modul=data_a+1i*data_b;%调制后总的信号
!
figure(3)
plot(data_modul1,'o');
axis([-2 2 -2 2]);
title('星座图');
figure(4)
QPSK=10*log10(abs(fftshift(fft(data_modul,2048))).^2); %信号的频率值
SFreq=linspace(-Rb*sample/2,Rb*sample/2,length(QPSK)); %信号的频率谱范围
plot(SFreq,QPSK);
title('QPSK已调信号频谱图');
xlabel('Frequency');
ylabel('Amplitude');
hold on;
QPSK通信系统性能分析与MATLAB仿真讲解
QPSK通信系统性能分析与MATLAB仿真讲解QPSK(Quadrature Phase Shift Keying)是一种调制方式,常用于数字通信中的短波通信和卫星通信等场景。
在QPSK通信系统中,将每个二进制位编码为相位不同的信号,通常使用正交载波来实现。
为了分析和评估QPSK通信系统的性能,可以使用MATLAB进行仿真。
下面将具体讲解如何进行QPSK通信系统性能分析和MATLAB仿真。
首先,我们需要定义一些基本参数。
QPSK调制是基于二进制编码的,因此将要发送的数据转换为二进制比特流。
可以使用MATLAB中的函数来生成二进制比特流,如`randi([0,1],1,N)`,其中N是比特流的长度。
在这里,可以自行选择比特流的长度。
接下来,需要将二进制比特流分组为2比特一组,以便编码为相位信息。
可以使用MATLAB中的函数来进行分组,如`reshape(bit_stream,2,length(bit_stream)/2)'`,其中bit_stream是二进制比特流。
这里的重点是要确保二进制比特流的长度为2的倍数。
然后,将每组2比特编码为相位信息。
QPSK调制使用4个相位点来表示4种可能的组合,通常用0、π/2、π和3π/2来表示这些相位点。
可以使用MATLAB中的函数生成这些相位信息,如`phase_data =[0,pi/2,pi,3*pi/2]`。
接下来,通过幅度和相位信息生成QPSK信号。
可以使用MATLAB中的函数来生成QPSK信号,如`qpsk_signal = cos(2*pi*f*t+phase)`,其中f是载波频率,t是时间,phase是相位信息。
然后,添加噪声到QPSK信号中以模拟实际通信环境。
可以使用MATLAB中的函数来添加噪声,如`noisy_signal =awgn(qpsk_signal,SNR)`,其中SNR是信噪比。
最后,解调接收到的信号以恢复原始数据。
可以使用MATLAB中的函数来解调信号,如`received_bits = reshape(received_signal,[],2) > 0`。
QPSK调制解调实验
实验一QPSK 调制实验一、实验目的1、掌握QPSK 的调制解调原理。
2、掌握QPSK 的软件仿真方法。
3、掌握QPSK 的硬件设计方法。
二、预习要求1、掌握QPSK 的编解码原理和方法。
2、熟悉matlab 的应用和仿真方法。
3、熟悉DSP 和FPGA 的开发方法。
三、实验原理1、QPSK 调制的工作原理多相相移键控(MPSK ),特别是四相相移键控(QPSK )是目前移动通信、微波通信和卫星通信中最常用的载波传输方式。
四相相移键控(QPSK )信号的正弦载波有4个可能的离散相位状态,每个载波相位携带2个二进制符号,其信号表达式为:)cos()(i c i t A t S θω+= i =1,2,3,4 0≤t ≤TsTs 为四进制符号间隔,{i θ:i=1,2,3,4}为正弦波载波的相位,有四种可能状态。
如以下矢量图所示:如图为QPSK 的相位图,QPSK 的相位为(-3π/4,-π/4,π/4,3π/4)。
对于QPSK :)sin cos cos (sin )sin()(i c i c i c i t t A t A t S θωθωθω+=+= 0≤t ≤Ts由于21cos ±=i θ 21s i n ±=i θ所以:)cos )(sin )((2)(t t Q t t I A t S c c i ωω+=21cos )(±==i t I θ21s i n )(±==i t Q θQPSK 正交调制器方框图如图所示:I图QPSK 正交调制器方框图在kTs ≤t ≤(k+1) Ts(Ts=2Tb)的区间,QPSK 产生器的输出为:⎪⎪⎪⎪⎩⎪⎪⎪⎪⎨⎧--=-+-=--+=+++=+=----11),43cos(11),4cos(11),43cos(11),4cos()(1111n n c n n c n n c n n c a a t A a a t A a a t A a a t A t s πωπωπωπω2、QPSK 的相干解调的基本工作原理 QPSK 的相干解调方框图如图所示:图QPSK 的相干解调方框图当调制信号为I =1,Q =1时,由调制原理,调制输出信号为t t t S c c i ωωcos sin )(+=,在没有噪声和延时的理想状态时,解调器的输入t t t S t r c c i ωωcos sin )()(+==,则I 检测器的输出为:t t t t t t r c c c c c ωωωωωsin cos sin sin sin )(+=t t t t c c c c ωωωω2sin 212cos 21212sin 21)2cos 1(21+-=+-=则Q 检测器的输出为:t t t t t t r c c c c c ωωωωωcos cos cos sin cos )(+=t t t t c c c c ωωωω2sin 212cos 21212sin 21)2cos 1(21++=++=用截止频率小于2c ω的低通滤波器对I 检测器的输出滤波后得到1/2,即为逻辑1;对Q 检测器的输出滤波后得到1/2,即为逻辑1。
基于MATLAB的QPSK系统仿真设计实现分析范文
通信系统仿真设计实训报告1.课题名称:基于MATLAB 的QPSK系统仿真设计与实现学生学号:学生姓名:所在班级:任课教师:2016年10月25日目录1.1QPSK系统的应用背景简介 (3)1.2 QPSK实验仿真的意义 (3)1.3 实验平台和实验内容 (3)1.3.1实验平台 (3)1.3.2实验内容 (3)二、系统实现框图和分析 (4)2.1、QPSK调制部分, (4)2.2、QPSK解调部分 (5)三、实验结果及分析 (6)3.1、理想信道下的仿真 (6)3.2、高斯信道下的仿真 (7)3.3、先通过瑞利衰落信道再通过高斯信道的仿真 (8)总结: (10)参考文献: (11)附录 (12)1.1QPSK系统的应用背景简介QPSK是英文Quadrature Phase Shift Keying的缩略语简称,意为正交相移键控,是一种数字调制方式。
在19世纪80年代初期,人们选用恒定包络数字调制。
这类数字调制技术的优点是已调信号具有相对窄的功率谱和对放大设备没有线性要求,不足之处是其频谱利用率低于线性调制技术。
19世纪80年代中期以后,四相绝对移相键控(QPSK)技术以其抗干扰性能强、误码性能好、频谱利用率高等优点,广泛应用于数字微波通信系统、数字卫星通信系统、宽带接入、移动通信及有线电视系统之中。
1.2 QPSK实验仿真的意义通过完成设计内容,复习QPSK调制解调的基本原理,同时也要复习通信系统的主要组成部分,了解调制解调方式中最基础的方法。
了解QPSK的实现方法及数学原理。
并对“通信”这个概念有个整体的理解,学习数字调制中误码率测试的标准及计算方法。
同时还要复习随机信号中时域用自相关函数,频域用功率谱密度来描述平稳随机过程的特性等基础知识,来理解高斯信道中噪声的表示方法,以便在编程中使用。
理解QPSK调制解调的基本原理,并使用MATLAB编程实现QPSK信号在高斯信道和瑞利衰落信道下传输,以及该方式的误码率测试。
基于Matlab的QPSK调制解调仿真设计与研究设计说明书
天津理工大学计算机与通信工程学院通信工程专业设计说明书基于Matlab/Simulink的QPSK调制解调仿真设计与研究目录摘要 (2)第一章前言 (2)1.1 专业设计任务及要求 (2)1.2 Matlab简介 (2)1.3 Matlab下的simulink简介 (3)1.4 通信系统模型 (3)第二章QPSK调制 (4)2.1 QPSK介绍 (4)2.2 QPSK调制原理 (4)2.2.1 相乘法 (4)2.2.2 选择法 (5)2.3 QPSK调制原理框图 (6)2.4 QPSK调制方式的Matlab仿真 (6)2.5 QPSK调制方式Matlab-simulink仿真 (7)2.5.1 simulink调制建模 (7)2.5.2 simulink调制仿真结果 (8)第三章QPSK解调 (14)3.1 QPSK解调原理 (14)3.2 QPSK解调原理框图 (14)3.3 QPSK解调方式Matlab仿真 (14)3.4 QPSK解调方式的Matlab-simulink仿真 (15)3.4.1 QPSK解调建模 (15)3.4.2 传输信道 (17)3.4.3仿真结果 (17)3.5 仿真结果分析 (20)第四章QPSK通信系统性能分析 (20)第五章结论 (20)参考文献 (21)附录 (21)摘要正交相移键控(QPSK),是一种数字调制方式。
QPSK技术具有抗干扰能力好、误码率低、频谱利用效率高等一系列优点。
论文主要介绍了正交相移键控(QPSK)的概况,以及正交相移键控QPSK的调制解调概念和原理,利用Matlab中M文件和Simulink模块对QPSK的调制解调系统进行了仿真,对QPSK在高斯白噪声信道中的性能进行了,分析了解Simulink中涉及到QPSK的各种模块的功能。
【关键词】Matlab QPSK Simulnk 仿真第一章前言1.1专业设计任务及要求1了解并掌握QPSK调制与解调的基本原理;2在通信原理课程的基础上设计与分析简单的通信系统;3学会利用MATLAB7.0编写程序进行仿真,根据实验结果能分析所设计系统的性能。
正交相位偏移键控(QPSK)调制解调系统Simulink(Matlab)建模分析
在现今新技术革命的高速推动下,在信息高速公路建设和全球网络化发展浪潮的推动下,通信技术得到迅猛发展,载波通信、卫星通信和移动通信技术正在向数字化、智能化、宽带化发展。
信息的数字转换处理技术走向成熟,为大规模、多领域的信息产品制造和信息服务创造了条件。
高新技术层出不穷。
随着通信技术的发展,通信系统方面的设计也会越来越复杂,利用计算机软件的仿真,可以大大地降低通信过程中的实验成本。
本文设计出一个QPSK仿真模型,以分析QPSK在高斯信道中的性能,通过此次实验,可以更好地了解QPSK系统的工作原理。
正交相移键控,是一种数字调制方式。
四相绝对移相键控(QPSK)技术具有抗干扰能力好、误码率低、频谱利用效率高等一系列优点。
现正广泛地应用于数字微波通信系统、数字卫星通信系统、宽带接入、移动通信和有线电视系统之中。
论文主要介绍了正交相移键控(QPSK)的概况,以及正交相移键控(QPSK)的调制解调概念和原理,传输比特错误率和符号错误率的计算,了解Simulink中涉及到QPSK的各种模块的功能,利用Matlab中的Simulink模块对QPSK的调制解调系统进行了仿真,对QPSK在高斯白噪声信道中的性能进行分析。
其中解调器使用相关器接收机。
通过多次运行仿真得到比特错误率与信噪比之间的关系。
【关键词】MatlabQPSKSimulnk仿真ABSTRACTDriven by the high-speed revolution of new technology, the information highway construction and global network development, communication technology has rapidly developed. Carrier communication, satellite communications and mobile communication technology are also developed in digital, intelligent, broadband way. The technology of information digital conversion became mature which can create a better circumstance for information products manufacturing an information service. Advanced technology are to emerge in an endless stream. As the development of the communication technology, communication system design also will be more and more complicated, the use of computer software of the simulation, can greatly reduce the cost in the process of communication. This paper designed a QPSK simulation model to analyze the performance of the Gaussian channel QPSK. Through this experiment, we can better understand QPSK system principle of work. QPSK is a kind of digital modulation mode which has a series of advantages, such as the anti-interference ability, low BER (Bit Error Rate), spectrum efficiency. QPSK is widely used in digital microwave communication system, digital satellite communication system, broadband access, mobile communication and cable TV system now. This paper mainly introduced is the situation of QPSK, and the concept and principle of demodulation. To know the transmission error rate and symbols calculation, then understand the function of the various modules in simulink using QPSK module of the simulink in demodulation system. It can also analysis the QPSK Gaussian white noise in the channel performance. Using of modem correlator receiver through the run multiple times it can get bit error rate simulation and the relationship between the signal-to-noise ratio.【Key words】MatlabQPSK Simulink Simulation目录前言 (1)第一章正交相移键控(QPSK)系统概述 (2)第一节QPSK的系统简介 (2)第二节论文的仿真意义 (3)第三节论文的主要内容和任务 (3)一、研究主要内容 (3)二、论文需要完成的任务 (4)第四节本章小结 (4)第二章基带数字信号传输 (6)第一节二进制信号的传输 (6)一、基带信号 (6)二、加性高斯白噪声(AGWN)下的最佳接收机 (7)三、双极性矩形波的最佳接收机 (7)第二节多维信号的传输与最佳接受机 (9)一、多维正交信号 (9)二、AGWN下的多进制信号传输 (9)三、检测器 (10)第三节本章小结 (11)第三章QPSK的调制与解调 (12)第一节数字调相的介绍 (12)第二节QPSK的产生方法 (12)一、相乘法 (12)二、选择法 (12)第三节QPSK的调制与解调原理 (13)第四节本章小结 (15)第四章基于Simulink的QPSK系统仿真分析 (17)第一节Simulink平台简介 (17)一、MATLAB简介 (17)二、Simulink简介 (17)三、Simulink的特点 (18)四、Simulink常用模块库 (19)第二节使用Simulink搭建QPSK调制解调系统 (20)一、产生需要的信号源 (20)二、QPSK的系统平台建模 (21)三、仿真结果分析 (25)四、举例分析 (25)第三节仿真总结及遇到的问题 (29)一、仿真结果 (29)二、遇到的问题及解决情况 (29)三、未解决的问题 (30)第四节本章小结 (31)结论 (33)致谢 (34)参考文献 (35)附录 (36)一、英文原文: (36)Bandwidth Efficient QPSK in Cochannel Interference and Fading (36)二、英文翻译: (42)在共信道干扰和衰落下的QPSK的带宽效率 (42)前言在当今高度信息化的社会,信息和通信已成为现代社会的“命脉”。
(完整word版)QPSK仿真实现要点
基于MATLAB的QPSK仿真设计与实现一、摘要本次方向设计根据当今现代通信技术的发展,对QPSK信号的工作原理进行了仿真分析。
并结合调制解调的基本性能和通信原理的基础知识,利用MATLAB 仿真工具设计出一个QPSK 仿真程序,以衡量QPSK在理想信道、高斯白噪声信道和先通过瑞利衰落信道再通过高斯信道三种方式的调制解调得到的功率谱密度、噪声曲线、星座图及误码性能,并对仿真结果进行了分析。
关键字:MATLAB仿真;QPSK调制;QPSK解调;误码率;信噪比Based on the modern communication technology, design of oriented major has implemented a simulated analysis in regard to the principle of QPSK signal. Associating with the performance of design of oriented major and underpinning communication knowledge, a QPSK simulate program was implemented and analysed in the aim of measuring its power spectral density,curve of noise,constellation and bit error performance under ideal channel,white Gaussian noise channel and via Rayleigh fading channel and white Gaussian noise channel respectively。
Key words:MATLAB Simulate; QPSK Modulation; QPSK Demodulation; Error Rate; Signal to Noise Ratio二、设计目的和意义近年来,软件无线电作为解决通信体制兼容性问题的重要方法受到各方面的注意。
基于Matlab的QPSK调制解调仿真设计与研究设计说明书
理工大学计算机与通信工程学院通信工程专业设计说明书基于Matlab/Simulink的QPSK调制解调仿真设计与研究目录摘要 (2)第一章前言 (2)1.1 专业设计任务及要求 (2)1.2 Matlab简介 (2)1.3 Matlab下的simulink简介 (3)1.4 通信系统模型 (3)第二章 QPSK调制 (4)2.1 QPSK介绍 (4)2.2 QPSK调制原理 (4)2.2.1 相乘法 (4)2.2.2 选择法 (5)2.3 QPSK调制原理框图 (6)2.4 QPSK调制方式的Matlab仿真 (6)2.5 QPSK调制方式Matlab-simulink仿真 (7)2.5.1 simulink调制建模 (7)2.5.2 simulink调制仿真结果 (8)第三章 QPSK解调 (13)3.1QPSK解调原理 (13)3.2 QPSK解调原理框图 (13)3.3QPSK解调方式Matlab仿真 (13)3.4QPSK解调方式的Matlab-simulink仿真 (14)3.4.1 QPSK解调建模 (14)3.4.2 传输信道 (16)3.4.3 仿真结果 (16)3.5 仿真结果分析 (18)第四章 QPSK通信系统性能分析 (19)第五章结论 (19)参考文献 (20)附录 (20)摘要正交相移键控(QPSK),是一种数字调制方式。
QPSK技术具有抗干扰能力好、误码率低、频谱利用效率高等一系列优点。
论文主要介绍了正交相移键控(QPSK)的概况,以及正交相移键控QPSK的调制解调概念和原理,利用Matlab中M文件和Simulink模块对QPSK的调制解调系统进行了仿真,对QPSK在高斯白噪声信道中的性能进行了,分析了解Simulink中涉及到QPSK的各种模块的功能。
【关键词】Matlab QPSK Simulnk 仿真第一章前言1.1 专业设计任务及要求1了解并掌握QPSK调制与解调的基本原理;2在通信原理课程的基础上设计与分析简单的通信系统;3学会利用MATLAB7.0编写程序进行仿真,根据实验结果能分析所设计系统的性能。
MATLAB-QPSK调制与解调
MATLAB仿真QPSK调制与解调2011-06-22 20:16:45| 分类:学习| 标签:qpsk matlab |字号大中小订阅注意B方式的4PSK用的比较多。
I 路信号是用余弦载波,由2进制数据流的奇数序列组成;Q路信号用正弦载波,由2进制数据流的偶数序列组成。
下面的a是Idata,b就是Qdata,它们分布与各自的载波相乘分别输出I 路信号和Q 路信号。
I 路信号加上Q路信号就是QPSK输出信号。
当I 路载波信号是0相位时为1,是180°相位时为0;当Q路载波信号是0相位时为1,是180°相位时为0。
比如下图的‘11’数据cos(theta) + sin(theta) =sqrt(2)*sin(theta + 45°)是相位超前sin(theta) 45°QPSK即四进制移向键控(Quaternary Phase Shift Keying),它利用载波的四种不同相位来表示数字信息,由于每一种载波相位代表两个比特信息,因此每个四进制码元可以用两个二进制码元的组合来表示。
两个二进制码元中的前一个码元用a表示,后一个码元用b表示。
% QPSK调相法基本原理解释clear allclose all% x1是类似[1 1 -1 -1 -1 -1 1 1]的分布,作用是控制相位的180°反转。
%由于仿真中载波的频率是f=1Hz,所以1s的间隔内有一个完整周期的正弦波t=[-1:0.01:7-0.01]; % t共800个数据,-1~7st1 = [0:0.01:8-0.01]; %t1也是800个数据点,0 ~8stt=length(t); % tt=800x1=ones(1,800);for i=1:ttif (t(i)>=-1 & t(i)<=1) | (t(i)>=5& t(i)<=7);x1(i)=1;else x1(i)=-1;endendt2 = 0:0.01:7-0.01; %t2是700个数据点,是QPSK_rc绘图的下标t3 = -1:0.01:7.1-0.01; %t3有810个数据点,是i_rc的时间变量t4 = 0:0.01:8.1-0.01; %t4有810个数据点,是q_rc的时间变量%x2是类似于[1 1 -1 -1 1 1 1 1]的分布,作用是控制相位的180°反转tt1=length(t1);x2=ones(1,800);for i=1:tt1if (t1(i)>=0 & t1(i)<=2) | (t1(i)>=4& t1(i)<=8);x2(i)=1;else x2(i)=-1;endendf=0:0.1:1;xrc=0.5+0.5*cos(pi*f); %xrc是一个低通特性的传输函数y1=conv(x1,xrc)/5.5; %y1和x1 实际上没什么区别,仅仅是上升沿、下降沿有点过渡带y2=conv(x2,xrc)/5.5; % y2和x2 实际上没什么区别,仅仅是上升沿、下降沿有点过渡带n0=randn(size(t2));f1=1;i=x1.*cos(2*pi*f1*t); % x1就是I dataq=x2.*sin(2*pi*f1*t1); %x2就是Q dataI=i(101:800);Q=q(1:700);QPSK=sqrt(1/2).*I+sqrt(1/2).*Q;QPSK_n=(sqrt(1/2).*I+sqrt(1/2).*Q)+n0;n1=randn(size(t2));i_rc=y1.*cos(2*pi*f1*t3); % y1就是I data,i_rc可能是贴近实际的波形,i则是理想波形q_rc=y2.*sin(2*pi*f1*t4); %y2就是Q data,q_rc可能是贴近实际的波形,q则是理想波形I_rc=i_rc(101:800);Q_rc=q_rc(1:700);QPSK_rc=(sqrt(1/2).*I_rc+sqrt(1/2).*Q_rc);QPSK_rc_n1=QPSK_rc+n1;figure(1)subplot(4,1,1);plot(t3,i_rc);axis([-1 8 -1 1]);ylabel('a序列');subplot(4,1,2);plot(t4,q_rc);axis([-1 8 -1 1]);ylabel('b序列');subplot(4,1,3);plot(t2,QPSK_rc);axis([-1 8 -1 1]);ylabel('合成序列');subplot(4,1,4);plot(t2,QPSK_rc_n1);axis([-1 8 -1 1]);ylabel('加入噪声');上图解释:合成序列表示的数据:11 01 00 00 01 11 11相对于sin(theta)合成序列相位: Pi/4, 3/4Pi[即sin(theta-45)=sin(theta-45+180)], -3/4Pi[即-sin(theta+45)], -3/4Pi[即-sin(theta+45)] , 3/4Pi, Pi/4, Pi/4。
通信原理课程设计――QPSK信号的调制解调.
一、QPSK信号的调制解调一、题目要求利用matlab软件设计并仿真下面的无线通信系统要求:1、输入信号为比特流形式,比特速率通常为100kbps数量级。
2、载波频率自定。
通常为MHz数量级。
3、信道为多径信道(仿真中2径即可,信道中噪声为加性高斯白噪声。
4、信噪比自行设定。
5、画出图中各点波形。
6、画出系统误码率与接收端信噪比SNR的关系(蒙特卡洛仿真。
7、在给定信噪比的情况下,分析多径延时大小对系统性能有没有影响?画出系统误码率与多径时延大小之间的关系。
二、设计思路1、利用matlab随机函数产生随机0、1的数字信号,频率为100kbps,变成极性码,把得到的数字信号分成两路进行正交调制。
2、载波频率选择为1Mhz,进行调制,即每个码元由10个正弦波调制,每个码元选取100个点表示,即抽样频率为10Mhz。
3、相乘调制后得到的两路信号相加得到的信号,通过天线发送出去。
4、在无线信道中会有高斯白噪声和信号的多径(仿真中2径时延产生影响。
5、接收端接收到信号后,进行带通滤波,采用巴特沃斯滤波器,将带外噪声滤掉。
6、对信号进行解调,分别乘以cos和sin两路本地载波,得到的结果用低通滤波器滤波,得到解调的信号。
7、对解调得到的信号判决,大于零为+1,小于零为-1,传给信宿。
8、对比判决后的信号和原始极性码,求出误码率。
9、改变在无线信道中加入的高斯白噪声和信号的信噪比,从-19dB到10Db,分别对应的误码率,画出曲线。
10、改变多径(二径时延,从一个dt到20dt,分别对应的误码率,画出曲线。
三、模块设计1、发送端产生1000个随机0、1数字信号,并按照奇偶分成两路,a 点波形%%%%%%%%%%%%%%%%%% 朱尤祥 09通信三班090610131 %%%%%%%%%%%%%%%%%%%%f=100000,信号频率100kbps;fc=1000000 ;载频1Mhzclear allnum=1000 ;%取num个抽样点n=100 ;%每个间隔取n个点,来恢复波形和延时f=100000 ;fc=1000000 ;dt=1/f/n ;%时间间隔即为每个码元宽度除以n t=0 :dt (1/f*num-dt ;%总码元时间N=length(t ;%长度t1=0 :dt (1/f*num/2-dt ;%串并转换,时间减半m=1 ;%延时t2=0 :dt (1/f*num/2+(m-1*dt ;%串并之后,延时m for recycle=1 :10data=randint(1,num,2 ;%num个抽样点datanrz=data.*2-1 ;%变成极性码%串并转换,将奇偶位分开idata=datanrz(1:2(num-1;%奇qdata=datanrz(2:2:num;%偶ich=zeros(1,num*n/2; %初始化波形信号for i=1:num/2ich((i-1*n+1:i*n=idata(i;endfigure(1subplot(121plot(t1,ich;axis([0,1/f*num/2,-1.5,1.5];title(‘数字信源的一路信号,奇数’;for ii=1:N/2a(ii=cos(2*pi*fc*t(ii;endidata1=ich.*a; %奇数位的抽样值与cos函数相乘得到其中的一路信号qch=zeros(1,num*n/2; for j=1:num/2qch((j-1*n+1:j*n=qdata(j; endsubplot(122plot(t1,qch;axis([0,1/f*num/2,-1.5,1.5];title(‘数字信源的另一路信号,偶数’; for jj=1:N/2b(jj=sin(2*pi*fc*t(jj ; endqdata1=qch.*b ;%偶数位的抽样值与sin 函数相乘得到其中的另一路信号1012345x 10-3数字信源的一路信号,奇数012345x 10-3数字信源的另一路信号,偶数2、载波频率为1Mhz ,为b 点的波形(放大后figure(2carrier=cos(2*pi*fc*t1 ;plo t(t1,carrier ;title(‘fc=1Mhz 的载波’ ;2fc=1Mhz的载波x 10-43、将两路信号相加,得到发送端发送的信号,即c点波形(放大后s=idata1+qdata1 ;%将奇偶相加figure(3plot(t1,s,title(‘调制信号,即是两路合并发送的信号’3调制信号,即是两路合并发送的信号x 10-44、在信道中加入了高斯白噪声和由于二径时延信号的合成,直射波的幅度取0.7,反射波的幅度取0.3。
QPSK调制与解调(Matlab仿真)
QPSK调制与解调(Matlab仿真)1. 一般在仿真的时候,大家都喜欢直接做等效基带仿真(类似于星座点的仿真)。
但实际要传,还是要传频带的波形信号。
2. 为了模拟真实的环境,先把基带信号经过一个自定义的信道,然后再做脉冲成型,上变频,加一点噪声AWGN进去。
3. 为了模拟同步,应该用专用的同步算法。
但是这里的重点不在同步。
所以用了很简单粗暴的办法。
假装直接同步上了。
4. 为了造出不同步的结果,可以这样写 x_未同步 = [x(300:end); x; x]; 相当于循环发送,循环接收。
这是仿真。
Main%%% 单载波QPSK 接收端% 2017年5月17日18:02:56clear;close all;clcrand_seed = 0;rand('seed',rand_seed);randn('seed',rand_seed);%%% Set up parameters and signals.M = 4; % Alphabet size for modulationbaud_rate = 100; % Baud ratef_carrier1 = 75; % Carrier frequencyNsym = 10000; % Number of symbolsmsg = randi([0 M-1],Nsym,1); % Random messagehMod = comm.RectangularQAMModulator(M);modmsg = step(hMod,msg); % Modulate using QAM. % 映射后的基带信号trainlen = 1000; % Length of training sequencerolloff = .3; % 滚降因子span = 20 ; % 截断长度sps = 10; % Samples per symbolrrcFilter=rcosdesign(rolloff,span,sps,'sqrt'); %根升余弦滚降滤波器,‘sqrt’均方根升余弦;‘normal’升余弦fs = baud_rate*sps; % 时间采样率,时间采样间隔为1/fs 秒Tsymbol=1/baud_rate;% 2. 脉冲成型% txSig = upfirdn(modmsg, rrcFilter, sps); % 发送端的基带复波形信号% chan = [1; .001];chan = [.986; .845; .237; .123+.31i]; % Channel coefficients% chan = [1 0.45 0.3+0.2i]; % Channel coefficientsfiltmsg = filter(chan,1,modmsg); % Introduce channel distortion.(已经经过信道的畸变的基带复信号,星座点)txSig = upfirdn(filtmsg, rrcFilter, sps); % 发送端的基带复波形信号txSig = awgn(txSig,20,'measured'); % Add AWGNt = (0:1/fs:((length(txSig)-1)/fs)).';T = t(end)+1/fs;df = 1/T;freq = -fs/2:df:fs/2-df;cos1 = cos(2*pi*f_carrier1 * t);sin1 = sin(2*pi*f_carrier1 * t);x_upconv = real(txSig).* cos1 + imag(txSig) .* sin1;%% === 接收端x_training_wave = x_upconv;x_training_msg = msg;rxSig = [x_upconv(300:end) ; x_upconv];% 1. 同步x_resampled = resample(rxSig,1,1);x_sync = sync_two_signals( x_resampled,x_training_wave,0);figure(2);plot(freq,20*log10(abs(fftshift(fft(x_sync))/max(abs(fftshift(fft(x_sync)))))));ylim([-100,10])xlim([0,freq(end)])grid on;xlabel('频率(Hz)');title('接收信号');% 2. 下变频+ 匹配滤波xi_dnconv = x_sync .* cos1;xq_dnconv = x_sync .* sin1;x_filtered = xi_dnconv + 1j * xq_dnconv;rxFilt = upfirdn(x_filtered, rrcFilter, 1, sps);rxFilt = rxFilt(span+1:end-span); % 这是接收端匹配滤波后的信号% 3. 均衡% eq1 = lineareq(6, lms(0.01)); % LMSeq1 = lineareq(30, rls(0.99,0.01)); % Create an equalizer object. % 40 taps,RLS算法,步长0.99,自相关矩阵逆矩阵的初值InvCorrInit对角线上的元素eq1.SigConst = step(hMod,(0:M-1)')'; % Set signal constellation. % 标准星座图[symbolest,~] = equalize(eq1,rxFilt,x_training_msg(1:trainlen)); % Equalize. % 均衡器obj,需要均衡的信号,训练序列symbolest = symbolest ./ mean(abs(symbolest)) .* mean(abs(eq1.SigConst));% Plot signals.h = scatterplot(rxFilt,1,trainlen,'bx'); hold on;scatterplot(symbolest,1,trainlen,'r.',h);scatterplot(eq1.SigConst,1,0,'k*',h);legend('Filtered signal','Equalized signal',...'Ideal signal constellation');hold off;% Compute error rates with equalization.hDemod = comm.RectangularQAMDemodulator(M);demodmsg = step(hDemod,symbolest); % Demodulate detected signal from equalizer.% Create ErrorRate Calculator System objectserVec = step(comm.ErrorRate,msg(trainlen+1:end),demodmsg(trainlen+1:end));srate = serVec(1)snum = serVec(2)% Convert integers to bitshIntToBit = comm.IntegerToBit(log2(M));Tx_bit = step(hIntToBit, msg(trainlen+1:end));Rx_bit = step(hIntToBit, demodmsg(trainlen+1:end));% Calculate BERberVec = step(comm.ErrorRate,Rx_bit,Tx_bit);brate = berVec(1)bnum = berVec(2)同步的代码function x_sync = sync_two_signals( x_resampled,x_training_wave,idx )% sync_two_signals( x_resampled,x_training_wave,idx )% x_resampled:收到的信号% x_training_wave:用发送的信号% idx:要找同步上的第几段。
