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

手把手复现1G通话:用Python模拟FM调制、FSK信令与FDMA多用户通信

手把手复现1G通话用Python模拟FM调制、FSK信令与FDMA多用户通信在移动通信的演进史中1G系统如同数字时代的罗塞塔石碑用模拟信号承载了人类首次无线对话的自由。今天我们将穿越回1983年摩托罗拉DynaTAC 8000X面世的年代用Python代码拆解那些藏在大哥大厚重机身里的通信奥秘。不同于教科书上的理论框图这里每个步骤都将转化为可执行的代码块——从语音信号的FM调制、控制信令的FSK生成到多用户频分复用的频谱舞蹈最后完成接收端的信号重建。准备好你的Jupyter Notebook我们即将用NumPy和Matplotlib重现那段电磁波里的模拟浪漫。1. 环境准备与基础波形生成1.1 配置Python通信仿真环境现代Python生态为我们提供了堪比专业通信仿真工具的计算能力。建议创建独立的conda环境conda create -n 1g_sim python3.9 conda activate 1g_sim pip install numpy matplotlib scipy ipython核心库版本要求NumPy ≥1.20用于向量化信号处理Matplotlib ≥3.4支持频谱瀑布图等高级可视化SciPy ≥1.7包含FIR滤波器设计工具提示在Jupyter中运行%matplotlib widget可获得交互式频谱探索体验1.2 生成基带语音信号仿真1G系统处理的语音信号带宽通常限制在300-3400Hz。我们通过叠加正弦波模拟典型语音特征import numpy as np import matplotlib.pyplot as plt fs 44100 # 采样率高于奈奎斯特频率 t np.linspace(0, 1, fs) # 1秒时长 # 模拟元音共振峰特征 voice_base (0.5 * np.sin(2*np.pi*800*t) 0.3 * np.sin(2*np.pi*1200*t) 0.2 * np.sin(2*np.pi*2500*t)) # 添加幅度波动模拟自然语音 envelope 0.5*(1 np.sin(2*np.pi*5*t)) voice_signal voice_base * envelope2. FM调制实现与频偏控制2.1 调频原理的数学表达频率调制的本质是让载波频率随基带信号变化瞬时频率 载波频率 Δf * m(t)其中Δf称为最大频偏m(t)是归一化的调制信号。关键参数对照表参数典型值物理意义fc900MHz载波中心频率Δf12kHzFCC规定的最大频偏β1.5-5调制指数(Δf/fm)2.2 Python实现FM调制通过相位积分实现真正的频率调制def fm_modulate(carrier_freq, mod_signal, fs, delta_f): # 归一化调制信号 mod_signal mod_signal / np.max(np.abs(mod_signal)) # 相位积分 phase 2*np.pi*carrier_freq*t 2*np.pi*delta_f*np.cumsum(mod_signal)/fs return np.cos(phase) # 调制示例 carrier_freq 100e3 # 为演示降低频率 fm_signal fm_modulate(carrier_freq, voice_signal, fs, delta_f12e3)3. 控制信令的FSK调制实现3.1 1G系统的信令机制早期系统使用**双音多频(DTMF)**作为控制信令例如拨号数字5770Hz 1336Hz组合信道分配信令通常采用2-FSK调制3.2 FSK调制核心代码用频率变化表示二进制数据def generate_fsk(data_bits, bit_rate, f0, f1, fs): t_bit np.arange(0, 1/bit_rate, 1/fs) signal [] for bit in data_bits: freq f0 if bit 0 else f1 signal.extend(np.cos(2*np.pi*freq*t_bit)) return np.array(signal) # 示例生成号码911的FSK信令 dtmf_map {9: (852, 1477)} # 简化的DTMF映射 fsk_signal generate_fsk([1,0,1,1,0,0,0,1], 1200, 1200, 1800, fs)注意实际系统会添加CRC校验和前导码4. FDMA多用户系统仿真4.1 频分复用架构设计模拟三个用户共享频谱资源用户中心频率占用带宽A890MHz30kHzB890.03MHz30kHzC890.06MHz30kHz4.2 频谱合成与信道效应使用频移实现多路信号合成def apply_frequency_shift(signal, shift, fs): t np.arange(len(signal))/fs return signal * np.exp(1j*2*np.pi*shift*t) # 合成三个用户信号 user_a apply_frequency_shift(fm_signal, 890e6, fs) user_b apply_frequency_shift(fm_signal, 890.03e6, fs) user_c apply_frequency_shift(fm_signal, 890.06e6, fs) composite_signal user_a user_b user_c5. 接收端解调实战5.1 超外差接收机仿真典型的接收链路包含RF带通滤波模拟LC调谐电路混频降频使用10.7MHz中频限幅放大与鉴频from scipy import signal # 设计88-108MHz带通滤波器 bpf signal.firwin(101, [88e6, 108e6], fsfs, pass_zeroFalse) # 混频降频 local_osc np.cos(2*np.pi*(890e6-10.7e6)*t) if_signal composite_signal * local_osc5.2 FM解调技巧采用相位差分法实现鉴频def fm_demod(signal, fs): analytic_signal signal.hilbert(signal) phase np.unwrap(np.angle(analytic_signal)) return np.diff(phase) * fs / (2*np.pi) demodulated fm_demod(if_signal, fs)在完成这些代码实验后对比原始语音与解调信号的频谱相似度你会发现1G系统虽然简单但已经蕴含了现代通信的诸多核心思想。那些看似笨重的模拟电路实则是工程师们用硬件实现的实时傅里叶变换器——这或许就是通信技术的永恒魅力无论技术如何演进电磁波承载人类情感的本质从未改变。

相关文章:

手把手复现1G通话:用Python模拟FM调制、FSK信令与FDMA多用户通信

手把手复现1G通话:用Python模拟FM调制、FSK信令与FDMA多用户通信 在移动通信的演进史中,1G系统如同数字时代的罗塞塔石碑,用模拟信号承载了人类首次无线对话的自由。今天我们将穿越回1983年摩托罗拉DynaTAC 8000X面世的年代,用Py…...

高级技巧:利用SharpShooter实现COM Staging和应用程序白名单绕过

高级技巧:利用SharpShooter实现COM Staging和应用程序白名单绕过 【免费下载链接】SharpShooter Payload Generation Framework 项目地址: https://gitcode.com/gh_mirrors/sh/SharpShooter SharpShooter 是一款功能强大的Payload生成框架,专为安…...

告别激活烦恼:KMS_VL_ALL_AIO智能激活脚本的终极解决方案

告别激活烦恼:KMS_VL_ALL_AIO智能激活脚本的终极解决方案 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 你是否曾经为Windows系统激活而烦恼?或者为Office办公软件的激活…...

Gridfinity Rebuilt OpenSCAD优化技巧:节省材料、提升打印质量的7个方法

Gridfinity Rebuilt OpenSCAD优化技巧:节省材料、提升打印质量的7个方法 【免费下载链接】gridfinity-rebuilt-openscad A ground-up rebuild of the stock gridfinity bins in OpenSCAD 项目地址: https://gitcode.com/gh_mirrors/gr/gridfinity-rebuilt-opensca…...

如何轻松解密Widevine加密视频:完整免费指南

如何轻松解密Widevine加密视频:完整免费指南 【免费下载链接】video_decrypter Decrypt video from a streaming site with MPEG-DASH Widevine DRM encryption. 项目地址: https://gitcode.com/gh_mirrors/vi/video_decrypter 还在为付费视频无法离线保存而…...

如何3步解决网页数学公式复制到Word的世纪难题?

如何3步解决网页数学公式复制到Word的世纪难题? 【免费下载链接】LaTeX2Word-Equation Copy LaTeX Equations as Word Equations, a Chrome Extension 项目地址: https://gitcode.com/gh_mirrors/la/LaTeX2Word-Equation 你是否曾为了将维基百科、学术论文或…...

Verilog分频器进阶:从6分频到1.5分频的实战设计与波形分析

1. 分频器基础与设计思路 在数字电路设计中,时钟信号就像人的心跳一样重要。分频器的作用,就是把这个"心跳"调整到我们需要的节奏。简单来说,分频器就是把输入时钟的频率降低N倍,得到一个新的时钟信号。比如6分频&#…...

MTCNN级联网络设计精讲:从P-Net到O-Net,看作者如何用‘奇数特征图’和‘重叠池化’提升召回率

MTCNN级联网络架构解密:奇数特征图与重叠池化的工程智慧 人脸检测领域的技术演进始终围绕着两个核心命题:如何在有限计算资源下实现实时检测,以及如何在小目标场景中保持高召回率。2016年问世的MTCNN(Multi-task Cascaded Convol…...

vue3-vant-mobile项目部署指南:Netlify零配置发布终极教程

vue3-vant-mobile项目部署指南:Netlify零配置发布终极教程 【免费下载链接】vue3-vant-mobile An mobile web apps template based on the Vue 3 ecosystem。一个基于 Vue 3 生态系统的移动 web 应用模板,帮助你快速完成业务开发。 项目地址: https://…...

对比 Codex 和 Claude Code

要在使用千问或 DeepSeek 等国产模型的前提下,对比 Codex 和 Claude Code,这已经不是一个简单的“二选一”问题,而是一个关于聪明“组合”的选题。虽然它们的设计理念差别很大,但在国产大模型强大的适配能力和高性价比面前&#x…...

告别杂乱地图标注!Arcgis中标注位置与多边形中心点提取的‘黄金搭档’技巧

告别杂乱地图标注!Arcgis中标注位置与多边形中心点提取的‘黄金搭档’技巧 当你在制作行政区划图或设施分布图时,是否曾被密密麻麻的标注搞得焦头烂额?标注重叠、位置不当、中心点偏移——这些问题不仅影响地图美观,更会降低信息的…...

从零开始:sherpa-onnx跨平台语音识别终极指南

从零开始:sherpa-onnx跨平台语音识别终极指南 【免费下载链接】sherpa-onnx Speech-to-text, text-to-speech, speaker diarization, speech enhancement, source separation, and VAD using next-gen Kaldi with onnxruntime without Internet connection. Support…...

小白程序员也能抓住的AI高薪机遇:大模型时代的机会与挑战

某书成立AI一级部门,预示着AI成为大厂核心战略。AI已从噱头渗透到工作和生活中,带来高薪机遇。AI大模型应用开发工程师年薪可达70万,薪资高源于需求大、供给少。无论技术岗还是非技术岗,AI都将创造更多机会。普通人应主动学习AI工…...

CANN/asc-devkit bfloat16转half API

__bfloat162half_ru 【免费下载链接】asc-devkit 本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言,原生支持C和C标准规范,主要由类库和语言扩展层构成,提供多层级API,满足多维场景算子开发诉求。 项目地址: https://git…...

MySQL 基础:SELECT、WHERE、JOIN 的第一次使用

不用怕数据库,跟着这三个单词,你就能查到你想要的一切。欢迎来到 《大一突围》 专栏。很多大一同学第一次接触 MySQL,看到“数据库”三个字就觉得很难。其实,你日常生活中每天都在“查数据”——查成绩、翻通讯录、筛选淘宝商品……...

HEIF Utility:Windows平台HEIF格式兼容性完整解决方案实战

HEIF Utility:Windows平台HEIF格式兼容性完整解决方案实战 【免费下载链接】HEIF-Utility HEIF Utility - View/Convert Apple HEIF images on Windows. 项目地址: https://gitcode.com/gh_mirrors/he/HEIF-Utility 对于使用iPhone或iPad的Windows用户而言&a…...

Notero:终极Zotero与Notion同步插件,简单快速实现文献管理一体化

Notero:终极Zotero与Notion同步插件,简单快速实现文献管理一体化 【免费下载链接】notero A Zotero plugin for syncing items and notes into Notion 项目地址: https://gitcode.com/gh_mirrors/no/notero 你是否正在为文献管理与笔记整理之间的…...

别再死记硬背了!用这三个等效模型,轻松搞定二极管电路分析(附典型例题)

二极管电路分析的三大等效模型实战指南 在电子工程和嵌入式开发领域,二极管作为基础元件却常常成为初学者的"拦路虎"。面对复杂的二极管电路,很多人陷入死记硬背的困境——记住各种电路的输出结果,却无法理解背后的分析逻辑。这种学…...

Pixelle-Video深度解析:AI全自动短视频引擎,一句话生成专业级短视频

https://github.com/AIDC-AI/Pixelle-Videohttps://github.com/AIDC-AI/Pixelle-Video 引言 刷到一条短视频,画面精美、配乐到位、解说流畅——你以为这至少得花两小时剪出来?其实可能只花了一句话的时间。今天我们要深入介绍的,就是GitHub…...

5分钟解锁浏览器Markdown阅读新体验:告别文档查看烦恼

5分钟解锁浏览器Markdown阅读新体验:告别文档查看烦恼 【免费下载链接】markdown-viewer Markdown Viewer / Browser Extension 项目地址: https://gitcode.com/gh_mirrors/ma/markdown-viewer 你是否经常需要查看技术文档、API说明或学习笔记,却…...

从无人机到平衡车:MPU6050姿态融合(互补滤波)的实战调参指南与避坑心得

从无人机到平衡车:MPU6050姿态融合实战调参与避坑指南 姿态解算在无人机飞控、平衡车和机器人系统中扮演着核心角色。MPU6050作为一款集成了三轴陀螺仪和三轴加速度计的惯性测量单元(IMU),其数据融合质量直接决定了系统稳定性。许多开发者虽然理解了互补…...

轻量级内存清理神器Mem Reduct:如何让旧电脑重获新生?[特殊字符]

轻量级内存清理神器Mem Reduct:如何让旧电脑重获新生?😊 【免费下载链接】memreduct Lightweight real-time memory management application to monitor and clean system memory on your computer. 项目地址: https://gitcode.com/gh_mirr…...

从通信原理到Verilog:一个约束长度7的卷积码编码器是如何炼成的?

从通信原理到Verilog:一个约束长度7的卷积码编码器是如何炼成的? 在数字通信系统的设计中,纠错编码技术如同隐形的守护者,确保数据在嘈杂信道中可靠传输。卷积码因其优异的纠错性能和简洁的编码结构,成为卫星通信、深空…...

【Gemini赋能Google Maps路线优化实战指南】:20年导航算法专家亲授5大降本增效核心策略

更多请点击: https://intelliparadigm.com 第一章:Gemini赋能Google Maps路线优化的底层逻辑与演进脉络 Google Maps 路线规划正经历从传统图算法向多模态智能推理的范式迁移。Gemini 模型并非简单替代 Dijkstra 或 A*,而是作为实时决策中枢…...

Obsidian-Templates:卡片盒笔记法的终极模板库,构建你的第二大脑

Obsidian-Templates:卡片盒笔记法的终极模板库,构建你的第二大脑 【免费下载链接】Obsidian-Templates A repository containing templates and scripts for #Obsidian to support the #Zettelkasten method for note-taking. 项目地址: https://gitco…...

Wat完整使用教程:从基础语法到高级修饰符

Wat完整使用教程:从基础语法到高级修饰符 【免费下载链接】wat Deep inspection of Python objects 项目地址: https://gitcode.com/gh_mirrors/wat2/wat Wat是一款强大的Python对象深度检查工具,能帮助开发者快速获取任何Python对象的详细信息&a…...

保姆级教程:在银河麒麟Normal模式下,用kysec_set给第三方软件‘开绿灯’

银河麒麟系统下第三方软件安全授权全流程指南 在国产操作系统逐步普及的今天,银河麒麟作为主流选择之一,其安全机制设计严谨但有时也会给日常运维带来挑战。最近连续三个项目部署中,我都遇到了相同的问题——开发团队提供的工具包在测试环境运…...

TQVaultAE:泰坦之旅终极仓库管理与装备锻造指南

TQVaultAE:泰坦之旅终极仓库管理与装备锻造指南 【免费下载链接】TQVaultAE Extra bank space for Titan Quest Anniversary Edition 项目地址: https://gitcode.com/gh_mirrors/tq/TQVaultAE 你是否曾经在《泰坦之旅》中因为背包爆满而不得不丢弃心爱的传奇…...

CSS Zen Garden设计趋势分析:过去20年的网页设计演变完全指南

CSS Zen Garden设计趋势分析:过去20年的网页设计演变完全指南 【免费下载链接】csszengarden.com The source of csszengarden.com 项目地址: https://gitcode.com/gh_mirrors/cs/csszengarden.com CSS Zen Garden作为网页设计领域的标志性项目,展…...

AI应用开发工程师(Agent方向):AI Agent开发工程师高薪入行指南,掌握核心技能,成为企业AI大脑!

在 AI 领域,AI Agent(智能体) 正在成为最热门的方向之一。从 智能客服 到 自动化办公助手,再到 企业知识管理,AI Agent 正在改变人与机器的交互方式。那么,AI 应用开发工程师(Agent方向&#xf…...