当前位置: 首页 > news >正文

16QAM通信系统设计与实现(上篇)——信号生成与调制技术(python版本)

本文详细介绍16QAM调制系统的核心实现,包括格雷编码映射、能量归一化、根升余弦滤波器设计和载波调制技术,并通过Python代码实现关键模块。

一、系统架构与技术指标

系统参数配置体现典型通信系统设计要求:

fb = 1e6       # 符号速率1MHz
fs = 8*fb      # 采样率8MHz (满足采样定理)
alpha = 0.35   # 滚降系数
Es = 10        # 符号能量
N_symbols=1e4  # 传输符号数

确保系统满足符号速率与带宽的平衡,采样率设置为符号速率的8倍以实现精细的波形采样

二、格雷编码映射原理

采用4比特到16QAM符号的格雷编码映射,有效减少相邻星座点误码扩散:

gray_map = {(0,0,0,0): (-3+3j), (0,0,0,1): (-3+1j), ..., (1,0,1,0): (3-3j)
}  # I/Q路高2位分别使用2bit格雷码

映射规则特点:

  1. I/Q正交分解:将4比特分为高2位控制I路电平,低2位控制Q路电平 

    23

  2. 幅度分层:星座点坐标集合为{±1,±3}×{±1,±3},通过能量归一化调整实际幅度
  3. 相邻点编码差1bit:如(0,0,0,0)→(-3+3j)与(0,0,0,1)→(-3+1j)仅最低位不同

三、信号生成与能量归一化

3.1 比特到符号转换

def generate_16qam(N):bits = np.random.randint(0,2,4*N)  # 生成4N随机比特symbols = [gray_map[tuple(bits[i:i+4])] for i in range(0,4*N,4)]avg_power = np.mean(np.abs(symbols)**2)return symbols * np.sqrt(Es/avg_power)  # 能量归一化

关键步骤解析:

  • 比特分组:每4比特为一组映射到复数符号
  • 能量校准:通过系数将平均符号能量精确调整

3.2 星座图验证

通过可视化验证映射正确性:

constellation = np.array(list(gray_map.values())) * np.sqrt(Es/10)
plt.scatter(np.real(constellation), np.imag(constellation), c='r',marker='x')
for bits, point in gray_map.items():plt.text(point.real,point.imag+0.3,''.join(map(str,bits)),ha='center')

图示:标注比特组合的16QAM星座图,可见相邻点仅1bit差异

四、根升余弦滤波器设计

def design_rrc_filter(alpha, span, sps):t = np.linspace(-span//2*Tb, span//2*Tb, span*sps+1)h = np.zeros_like(t)for i,ti in enumerate(t):# 处理特殊点ti=0和ti=±T/(4α)if ti == 0:h[i] = 1 - alpha + 4*alpha/np.pielif alpha!=0 and abs(ti)==Tb/(4*alpha):h[i] = alpha/np.sqrt(2)*((1+2/np.pi)*sin(π/4α)+...)else:# 常规点计算num = sin(πt/T*(1-alpha)) + 4αt/T*cos(πt/T*(1+alpha))den = πt/T*(1-(4αt/T)^2)h[i] = num/denreturn h/np.linalg.norm(h)  # 归一化

设计要点:

  • 滤波器跨度:span=16符号周期,确保时域衰减充分
  • 采样密度:sps=8点/符号,匹配系统采样率
  • 归一化处理:保证滤波器能量为1

五、载波调制实现

def apply_carrier(signal, fc, phase):t = np.arange(len(signal)) * Tsreturn signal * np.exp(1j*(2*np.pi*fc*t + phase))

5.2 调制过程

  1. 成型滤波upfirdn(rrc_filter, symbols, up=8)完成8倍上采样和脉冲成型
  2. 载波搬移:通过复指数乘法实现正交上变频
  3. 相位偏移:模拟实际系统中的载波相位不同步现象 

下篇预告:信道传输与解调技术——瑞利衰落建模、Gardner定时同步、最小距离解调算法实现。完整代码可以评论私信联系我

http://www.xdnf.cn/news/657667.html

相关文章:

  • leetcode 525. 连续数组
  • CertiK联创顾荣辉做客纽交所,剖析Bybit与Coinbase事件暴露的Web3安全新挑战
  • 原子操作(C++)
  • 深度体验:海螺 AI,开启智能创作新时代
  • liunx、ubantu22.04安装neo4j数据库并设置开机自启
  • AI工程师跑路了-SpringAi来帮忙
  • 学习路之PHP--easyswoole安装入门
  • LINUX安装运行jeelowcode前端项目
  • SC89171的介绍和使用
  • 炫云云渲染,构筑虚实交融的3D数字新视界
  • AI的“软肋”:架构设计与业务分析的壁垒
  • OpenCV CUDA模块图像过滤------创建一个行方向的一维积分(Sum)滤波器函数createRowSumFilter()
  • 爬虫IP代理效率优化:策略解析与实战案例
  • Neo4j(三) - 使用Java操作Neo4j详解
  • 第12次05: 用户中心-用户基本信息
  • 如何用ChatGPT提升学术长文质量
  • Golang Gin框架基础与实践指南
  • 【学习笔记】GitLab 下载安装与配置
  • 算力服务器的应用场景都有哪些
  • 学习python day8
  • 超临界机组协调控制系统建模项目开发笔记
  • git 删除某个远程库的分支
  • 【Redis】第1节|Redis服务搭建
  • 【freertos-kernel】queue(创建)
  • 企业网络综合实训
  • Zephyr OS: periodic_adv_rsp代码架构和实现
  • GPT-4o 风格提示词案例大全(持续更新 ing...)
  • 小白成长之路-计算机网络(二)
  • 前后端分离项目之新增编辑功能
  • 4800H 低负载黑屏或者蓝屏