信号类型(通信)——QAM调制信号

系列文章目录

《信号类型(通信)——仿真》


文章目录

前言

一、原理图

二、仿真

2.1、QAM仿真

2.2、不同滚降系数

2.3、不同M下QAM调制对比

总结


前言

       本文主要结合仿真分析了QAM的信号处理过程,并简单分析了成型滤波器中的滚降系数对QAM的影响。


一、原理图

QAM信号调制的原理框图

      QAM信号产生过程:基带码元波形经过QAM映射(串并转换分成I、Q两路,然后再经过电平转换,以16QAM为例,00转换成-0.5,01转换成-1.5,10转换成0.5,11转换成1.5)得到QAM调制信号,再与对应的载波相乘,然后再相加完成QAM的调制。

s(t)=I(t)\cos(2\pi f_c t)-Q(t)\sin(2\pi f_c t)

其中I(t)=\sum_{n=0}^{N-1}p_{n}g\left ( t-nT_b \right ),Q(t)=\sum_{n=0}^{N-1}q_{n}g\left ( t-nT_b \right ),f_c为载频,p_{n},q_{n}为QAM调制码的IQ表示,T_b为码宽,g(t)为码波形,由成型滤波器决定。

       QAM信号解调的原理框图

       QAM信号再分为I、Q两路和对应的载波相乘,然后经过低通滤波器得到基带信号:

I_{lp}(t)=\frac{1}{2}I(t)+w_{I}\left ( t \right )

Q_{lp}(t)=\frac{1}{2}Q(t)+w_{Q}\left ( t \right )

其中r(t)=s(t)+w(t),w(t)表示接收机噪声,w_{I}\left ( t \right ),w_{Q}\left ( t \right )分别表示IQ路噪声。

       对下变频后的基带信号进行匹配滤波,并进行抽样判决,恢复出原始的码元序列。

二、仿真

        参数设置,符号速率60kHz,采样率12 Mz,载频 1.5MHz,码序列随机生成,成型滤波器采用根升余弦滤波器,滚降系数决定码波形,QAM调制,M=4,16,64。部分代码如下:

%% 信号参数
rate = 6e4;                             % 符号速率
sample = 200;                           % 每个符号的采样点数
fc = 1.5e6;                            % 载波频率
fs = rate*sample;                       % 采样频率=比特率*每个符号的采样点数
M = 4;                                 % 4,16,64
num = 100;                              % 帧数
symbol_number = 100;                   % 每帧发送数据符号个数
source_number = symbol_number*log2(M);  % 发送信号的长度,bit数
rollof_factor1 = 0.8;                   % 发射滚降因子,可调整
N1 = 8;
rollof_factor2 = 0.8;                   % 接收滚降因子,可调整
N2 = 8;
rcos_fir1 = rcosdesign(rollof_factor1,N1,sample,'sqrt'); % 默认'sqrt'
rcos_fir2 = rcosdesign(rollof_factor2,N2,sample,'sqrt');%% 随机数据流生成
[frame_bit ,ns]= data_producing(M,source_number,num);%% QAM信号生成
% QAM映射
frame_msg = reshape(frame_bit,2,round(ns*num/2));
[qam_I,qam_Q]=qam1(frame_msg,M);% 成型滤波
[It_rcos,Qt_rcos]=qam2(qam_I,qam_Q,sample,rcos_fir1);% 载波调制
st = qam3(It_rcos,Qt_rcos,fc,fs);figure;
subplot(211)
stem(frame_msg(1,1:200));
xlabel('码序列');
ylabel('I路数据流');
subplot(212);
stem(frame_msg(2,1:200));
xlabel('码序列');
ylabel('Q路数据流');figure;
subplot(211);plot(It_rcos(1:200*sample));
xlabel('时间点数')
title('发射I路通过成型滤波器的时域波形');
subplot(212);plot(Qt_rcos(1:200*sample));
xlabel('时间点数')
title('发射Q路通过成型滤波器的时域波形');figure;
subplot(211);plot(st(1:200*sample));
title('载波调制时域波形');
xlabel('时间点数')
subplot(212);plot(linspace(-fs/2,fs/2,length(st)),abs(fftshift(fft(st))));
xlabel('频率(Hz)')
title('载波调制频域波形');%% 接收信号
% 高斯白噪声信道
snr = 15;
rt = awgn(st,snr,'measured');% IQ下变频
rt1=deqam1(rt,fc,fs);% 匹配滤波
rt2=deqam2(rt1,rcos_fir2);figure;
subplot(211);plot(rt(1:200*sample));
xlabel('时间点数')
title('接收时域波形');
subplot(212);plot(linspace(-fs/2,fs/2,length(st)),abs(fftshift(fft(rt))));
xlabel('频率(Hz)')
title('接收频谱');figure;
subplot(211);plot(real(rt1(1:200*sample)));
xlabel('时间点数')
title('接收解调后I路时域波形');
subplot(212);plot(imag(rt1(1:200*sample)));
xlabel('时间点数')
title('接收解调后Q路时域波形');figure;
subplot(211);plot(real(rt2(1:200*sample)));
xlabel('时间点数')
title('接收I路通过匹配滤波器的时域波形');
subplot(212);plot(imag(rt2(1:200*sample)));
xlabel('时间点数')
title('接收Q路通过匹配滤波器的时域波形');%% 直接解码
Cd1 = deqam3(rt1,1/max(rcos_fir1),sample,M);figure;
plot(frame_msg(:)-Cd1(:));
disp(sum(frame_msg(:)-Cd1(:)~=0)/length(Cd1(:)));
scatterplot(rt1(sample/2:sample:end)/max(rcos_fir1)); %星座图
title('匹配滤波后星座图');%% 匹配滤波后解码
Cd2 = deqam3(rt2,1,sample,M);figure;
plot(frame_msg(:)-Cd2(:));
disp(sum(frame_msg(:)-Cd2(:)~=0)/length(Cd2(:)));
scatterplot(rt2(sample/2:sample:end)); %星座图
title('匹配滤波后星座图');%% 眼图
% 匹配前
figure
plot(reshape(real(rt1(sample/2+1:sample/2+sample*200*2)),sample*2,200));
xlabel('时间点数')
title('匹配滤波前眼图');% 匹配后
figure
plot(reshape(real(rt2(sample/2+1:sample/2+sample*200*2)),sample*2,200));
xlabel('时间点数')
title('匹配滤波后眼图');

2.1、QAM仿真

码序列                        成型滤波后基带信号

       帧信号由帧头,帧体和帧尾构成,帧头和帧尾固定,帧体数据随机生成,生成的码序列如左上图所示。成型滤波器滚降系数0.8,码长8,对码脉冲信号进行成型滤波,得到右上图所示的基带信号。最后载频调制得到最终发射信号,如下图所示。

发射的射频信号波形以及频谱

只考虑接收机的热噪声影响,得到如下所示接收信号。与发射信号相比,信号波形存在随机波动。

接收的射频信号波形以及频谱

       对接收的信号进行下变频至基带得到左下1图的基带信号,通过对信号进行截断得到左下2图所示的眼图,并基于最佳点得到左下3图所示的眼图。

下变频后基带信号的波形,眼图以及基于最佳点的星座图

        对下变频后的基带信号进行匹配滤波得到左下1图的基带信号,通过对信号进行截断得到左下2图所示的眼图,并基于最佳点得到左下3图所示的眼图。与匹配滤波前相比,信号的眼图以及星座图得到明显改善。

匹配滤波后基带信号的波形,眼图以及基于最佳点的星座图

2.2、不同滚降系数

0.05                                          0.5                                  0.8

发射的射频信号波形以及频谱

       上图分别不同滚降系数下的发射信号波形以及对应的单边谱,可以看出随着滚降系数增加,信号波形越窄。

0.05                                          0.5                                  0.8

匹配滤波后基于最佳点的星座图

       在不知道发射端的成型滤波器时,直接对下变频的接收信号进行检测,得到上图所示星座图,可以看出,滚降系数增加,对应的星座图逐渐恶化。

0.05                                          0.5                                  0.8

匹配滤波后基于最佳点的星座图

      在发射端的成型滤波器已知情况时,可以对接收的基带信号进行匹配滤波,由此可以得到上图所示星座图,可以看出,滚降系数很小时,匹配滤波并没有改善星座图,但随着滚降系数的增肌,匹配滤波的效果也逐渐显现。

2.3、不同M下QAM调制对比

M=4                                          M=16                                  M=64

发射的射频信号波形以及频谱

       上图分别维4QAM,16QAM以及64QAM调制的发射信号波形以及对应的单边谱,可以看出随着M增加,信号包络越加复杂,这种复杂的包络也意味着有着更多的信息被传递。

M=4                                          M=16                                  M=64

匹配滤波后基于最佳点的星座图

       在不知道发射端的成型滤波器时,直接对下变频的接收信号进行检测,得到上图所示星座图,可以看出,随着M增加,对应的星座图逐渐恶化。

M=4                                          M=16                                  M=64

匹配滤波后基于最佳点的星座图

      在发射端的成型滤波器已知情况时,可以对接收的基带信号进行匹配滤波,由此可以得到上图所示星座图,可以看出,匹配滤波能够明显改善星座图。

代码链接《通信+数字通信+QAM调制解调分析》;


总结

 本文主要从仿真的角度简单分析了QAM调制解调过程,实际环境中的多普勒效应以及多径效应等并没有考虑。有更好的内容欢迎在评论区放置链接,另外有问题也欢迎评论区留言。转载请附链接【杨(_> <_)】的博客_CSDN博客-信号处理,SAR,代码实现领域博主。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/125361.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于深度学习的中文情感分类 - 卷积神经网络 情感分类 情感分析 情感识别 评论情感分类 计算机竞赛

文章目录 1 前言2 情感文本分类2.1 参考论文2.2 输入层2.3 第一层卷积层&#xff1a;2.4 池化层&#xff1a;2.5 全连接softmax层&#xff1a;2.6 训练方案 3 实现3.1 sentence部分3.2 filters部分3.3 featuremaps部分3.4 1max部分3.5 concat1max部分3.6 关键代码 4 实现效果4.…

【Proteus仿真】【Arduino单片机】简易电子琴

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真Arduino单片机控制器&#xff0c;使用无源蜂鸣器、按键等。 主要功能&#xff1a; 系统运行后&#xff0c;按下K1-K7键发出不同音调。 二、软件设计 /* 作者&#xff1a;嗨小易&a…

基于 Center 的 3D 目标检测和跟踪

论文地址&#xff1a;https://arxiv.org/abs/2006.11275 论文代码&#xff1a;https://github.com/tianweiy/CenterPoint 3D 目标通常表示为点云中的 3D Boxes。 CenterPoint 在第一阶段&#xff0c;使用关键点检测器检测对象的中心&#xff0c;然后回归到其他属性&#xff0…

CSAPP BOMB LAB

BOMB LAB lab phase1 bomb.c phase1 code: bomb.s phase1 code: 401338 对应 string_not_equal函数: 工具介绍 objdump 使用 objdump是一个用于分析可执行文件、目标文件和共享库的工具。它可以显示这些文件的二进制指令、符号表、段信息、重定位表等内容&#xff0c;帮…

C++的拷贝构造函数

目录 拷贝构造函数一、为什么用拷贝构造二、拷贝构造函数1、概念2、特征1. 拷贝构造函数是构造函数的一个重载形式。2. 拷贝构造函数的参数3. 若未显式定义&#xff0c;编译器会生成默认的拷贝构造函数。4. 拷贝构造函数典型调用场景 拷贝构造函数 一、为什么用拷贝构造 日期…

赛宁网安多领域创新成果亮相第五届“纵横”论坛

10月27日&#xff0c;第五届“纵横”网络空间安全创新论坛在安徽合肥举办&#xff0c;来自中央国家机关、地方政府、军队有关单位、高校、科研院所和部分高新技术企业的领导、专家和代表500余人参加。 本届论坛由军事科学院和国防科技大学等单位共同主办&#xff0c;国防科技大…

【原创】java+swing+mysql个人理财管理系统设计与实现

摘要&#xff1a; 个人理财管理系统是一款帮助用户有效管理个人财务的软件&#xff0c;本文将详细介绍该系统的设计过程&#xff0c;包括功能模块、数据库设计、界面设计等&#xff0c;系统采用javaswingmysql技术组合。 功能分析&#xff1a; 系统主要提供给管理员、用户使…

金蝶云星空创建自动下推并保存公共服务

文章目录 金蝶云星空创建自动下推并保存公共服务创建公共方法按单下推数据按明细行下推数据调用下推操作 调用公共方法 金蝶云星空创建自动下推并保存公共服务 创建公共方法 按单下推数据 /// <summary>/// 获取单据转换数据包/// </summary>public DynamicObjec…

M3重磅来袭 苹果多款新品上架

10月31日早上8点&#xff0c;苹果举行了新品发布会&#xff0c;正式发布了M3、M3 Pro、 M3 Max芯片&#xff0c;以及基于新款芯片打造的14英寸和16英寸MacBook Pro、新款iMac。 我们现在花一分钟&#xff0c;简单了解一下这次的新品。 M3、M3 Pro、M3 Max M3系列芯片就是M2系…

关于测试组件junit切换testng的示例以及切换方式分享

文章目录 概要首先看看junit和testng的区别实践篇摸拟业务逻辑代码简单对象数据层摸拟类业务逻辑层摸拟类后台任务摸拟类 基于springmockjunit基于springmocktestng 示例的差异点junit与testng的主要变动不大,有以下几个点需要注意注解部分在before,after中testng多出按配置执行…

Spring 事务不生效的几种场景

Spring 事务不生效的几种场景 详细内容参考以下链接&#xff0c;这个链接是原文&#xff1a; spring 事务不生效的15中场景 非原创。 以下内容只是为了学习&#xff0c;加深印象&#xff0c;仅作为个人学习笔记&#xff0c; 请支持原创&#xff0c;内容请点击 spring 事务不生效…

链动2+1模式:白酒产品的营销新策略

链动21模式是一种创新的营销模式&#xff0c;结合白酒产品更能发挥其优势。该模式通过独特的身份晋升和奖励机制&#xff0c;快速建立销售渠道&#xff0c;提高用户粘性。 一、核心机制 身份晋升机制&#xff1a;用户购买指定499白酒产品后成为代理&#xff0c;再邀请两位用户…

新风机如何联动?

数据中心的运行会产生大量的热量&#xff0c;因为其中包含了大量的服务器、存储设备以及网络设备等&#xff0c;它们需要消耗大量的电力来进行计算和数据处理。为了保证这些设备运行的稳定性和性能&#xff0c;数据中心必须维持适宜的温度和湿度。 新风系统可以在数据中心中起到…

小米澎湃OS发布,雷军小米的“统一”大棋局

千呼万唤始出来。2023年10月26日&#xff0c;小米澎湃OS终于揭开面纱。 雷军在主题为“跨越时刻”的发布会上&#xff0c;正式发布了小米澎湃OS。面对这款历时七年打造的全新操作系统&#xff0c;雷军难掩兴奋&#xff0c;他感慨道&#xff1a;“我心澎湃”。 小米新操作系统取…

微信小程序项目案例之导游证考试刷题小程序

前言 很多计算机专业的同学在做毕设选题时不知道该如何选题&#xff0c;有的同学是已经选择了要开发一款小程序&#xff0c;但是又不知道开发哪类小程序。本篇将为大家介绍一个小程序的开发方向&#xff0c;考试刷题类小程序是目前比较火的小程序项目之一&#xff0c;在小程序…

CB2-2CARD的openSUSE远程SSH登录提示优化

CB2-2CARD的openSUSE远程SSH登录提示优化 1. 源由2. 优化内容2.1 去掉Password/banner前后的prompts提示语句2.2 增加logo登录界面2.3 增加系统运行情况简单汇报2.4 增加banner 3. 优化效果 1. 源由 之前运行的CB2-2CARD的openSUSE安装&NAS环境配置服务器已经运行也有段时…

(c语言进阶)字符串函数、字符分类函数和字符转换函数

一.求字符串长度 1.strlen() (1)基本概念 头文件&#xff1a;<string.h> (2)易错点&#xff1a;strlen()的返回值为无符号整形 #include<stdio.h> #include<string.h> int main() {const char* str1 "abcdef";const char* str2 "bbb&q…

审核 Microsoft SQL Server 日志

手动审核数据库活动是一项艰巨的任务&#xff0c;有效完成审计的最佳方法是使用简化和自动化数据库监控的综合解决方案&#xff0c;该解决方案还应使数据库管理员能够监控、跟踪和即时识别任何操作问题的根本原因&#xff0c;并实时检测对机密数据的未经授权的访问。 什么是 S…

前端面试 面试多起来了

就在昨天 10.17 号,同时收到了三个同学面试的消息。他们的基本情况都是双非院校本科、没有实习经历、不会消息中间件和 Spring Cloud 微服务,做的都是单体项目。但他们投递简历还算积极,从今年 9 月初就开始投递简历了,到现在也有一个多月了。 来看看,这些消息。 为…

中文编程工具免费版下载,中文开发语言工具免费版下载

中文编程工具免费版下载&#xff0c;中文开发语言工具免费版下载 中文编程工具开发的实际部分案例如下图 编程系统化课程总目录及明细&#xff0c;点击进入了解详情。 https://blog.csdn.net/qq_29129627/article/details/134073098?spm1001.2014.3001.5502