首页/文章/ 详情

大学毕业设计一席谈之二十三 MSK调制解调器的matlab仿真(4)MSK扩频

11月前浏览216
2025年9月,开始续写本系列文章完全是出于自愿和热心,因为想帮助公众 号的一位铁杆老粉(自信有这个能力)。这位铁粉在公众 号里面看了付费文章的总额已经大几千块钱,我很感谢这位高级工程师对我文章的认可,经常和他交流技术。他说在MSK扩频方面储备的知识有限,于是我就出手想帮助他写一些仿真,按照他提供的论文写仿真程序,然后再和他进行程序上的交流。人到中年如果能够给别人一些帮助,这是非常幸福的事,我在技术层面和经济层面都已经证明了传播的知识确实给网上的朋友带来了帮助,这算是发挥余热吗?这么交流的好处可以让我一直保持思考,不断地学习新知识,这样的生活才会让我老的慢。
MSK扩频的相关知识比较少,之前也没有在公众 号里面涉及过,趁着这个机会好好讲解这方面内容!MSK扩频技术通过结合MSK调制的频谱效率和扩频技术的抗干扰能力,提供了高性能的通信解决方案。MSK调制解调器做过,扩频是我的技术强项,所以我来讲这方面知识似乎挺合适的。
转入正题,直接上示例!这些示例来自网上的论文,第一篇论文来自电子科技大学,来自这所大学的论文质量都很高,与之类似的还有西安电子科技大学。这两所大学的通信类论文值得细看,为学校老师们的负责和严谨点赞,也为学生们的努力点赞。
本文内容超过五千字,历时六个多月才完成,仅仅是写完了发射机的仿真程序,2025年10月底全部调试成功,确保程序可用之后发布了文章。何时能等到关于接收机算法的文章发布呢?至少要两个月以后了,精力不济了!写代码是个熬人的过程,毕竟要考虑理论转化为实际的过程,哪些方式比较合理?这些考虑的过程就是宝贵的经验,在本文中也体现得淋漓尽致!现在AI是进步了,但要让它直接写出正确的通信程序还是很难很难,稍微复杂一点的程序直接错的离谱。
第一篇论文!
5bit码元转换为32bit的CCSK序列,然后还要和32bit的伪随机序列进行异或运算!这是个什么概念?加扰的概念好理解,CCSK倒是第一次见!先留着疑惑,然后慢慢解答!
什么是CCSK扩频?又找了一篇文章进行仔细阅读。

CCSK 是一种编码扩频技术,与传统的 DS(Direct Sequence,直序列)扩频相比,在相同带宽和伪码长度条件下,CCSK 能提供更快的传输速度和更高的信道利用率。CCSK 通过编码降低符号速率使用更长的伪码序列进行扩频,从而在相同带宽和传输速率下,性能优于 DSSS。本人以前做过多进制扩频,CCSK与此类似。

顺带看看论文中涉及的调制和解调的内容!哪里的论文呢?

MSK信号的解调有许多方式,主要分为相干解调和非相干解调两大类。在接收端,相干解调需要采用同频同相的载波信号乘以调制信号解调出基带信号,非相干解调则利用信号的包络解调出基带信号。

这是一比特延迟差分解调原理框图,后面按照框图写个仿真程序看看误码性能。

第二篇论文!
来自于解 放军信息工程大学!中国人民解 放军信息工程大学位于中国河南省郑州市。该校是中国人民解 放军的一所重点院校,主要培养信息技术、网络安全、通信工程等领域的高层次军事人才。本人去过郑州多次,之前一直错过,以后有机会一定要拜访一下。2024年夏天,郑州突然火了,因为大学生夜里骑行去开封,这似乎是青春该有的冲动。
论文介绍了两种基于差分接收结构的基带传输算法,分别是MDBPM-A 和 MDBPM-B!怎么仿真?必须先非常仔细的看完传输体制内容!当年我研究美军的卫星通信体制时,光看资料就不止十遍。一来说明我比较笨,二来说明吃透一个体制需要一个学习和仿真的过程,现在这个过程又要开始啦,那我这次就借着MSK扩频仿真的课题展示给大家。
通信中的传输体制是一个复杂的系统,涵盖了从信号调制到传输介质的多个方面。其主要内容包括:信号调制、信道编码、多路复用、传输介质、同步技术、抗干扰技术、传输协议、功率控制、自适应技术、网络拓扑。这些内容共同构成了通信系统的传输体制,决定了信号的传输效率、可靠性和质量。本人侧重研究信号调制和同步技术。
传输体制!
‍基带每码片四倍采样,即采样速率为 65.536MHz。经过图2的数字基带处理后,两路基带数字信号经数/模(D/A)转换变为基带模拟信号后送入射频调制到载频发射。
MDBPM-A 基带传输算法的发送关键技术主要包括扩频和组帧、MSK 调制以及数据同步发送。‍
第一步:仿真GOLD码!
选取本原多项式系数为 2415(八进制表示)和 3515 的 m 序列优选对,通过选取不同的 m 序列相对位移得到同一 Gold 族下的两个不同 Gold 序列分别作为导频码和扩频码。
产生两个 m 序列的移位寄存器的初始都状态分别设为[0000000001]和[0000010110],令两个 m 序列的相对位移分别为 0 和 23,将其进行模 2 加运算后即可得到导频码和扩频码。
看看最近经常被夸奖的DeepSeek能给出什么程序!
运行出错,不能用!
代码需要修改,不过AI给出的程序总结完全可用借鉴!
程序修改后可用!通过错误提示进行修改即可!看修改后的代码!
有了AI,确实使得仿真可以加速,图中的自相关结果表明了GOLD序列的特性!基于这个难度的程序可以交给AI搞定。
理论基础!
本原多项式(Primitive Polynomial)在m序列生成中起着关键作用。它决定了移位寄存器的反馈连接方式,从而生成最大长度的伪随机序列(即m序列)。以下是关于本原多项式的详细说明:
如果想看本人编写的扩频码生成程序,可以参考下面的文章,这里不再赘述。
大学毕业设计一席谈v2之十一  扩频通信系统(4)GOLD码
在仿真北斗系统测距码的时候,也让AI帮助了,结果也是徒劳,过程都记录在文章中了!
第二步:仿真MSK调制!
MSK调制使用经典的正交MSK调制方法,需要说明的是正交MSK调制的过程包含差分编码,作为MSK调制的一部分该差分编码操作是在扩频后的码片上进行,这样可以保证调制后信号相位的连续性,设第一个MSK码片的差分参考为0。MSK信号的一个重要性质是以载波相位为基准的信号相位在一个码元期间内依据码元信息准确地变化±π/2。
之前框图中的这一部分就是MSK调制!为何要有差分编码?这是为后续差分解调做准备的!先看看AI生成的程序吧!


% 初始化正交调制信号
I = zeros(1, length(t)); % 同相分量(I路)
Q = zeros(1, length(t)); % 正交分量(Q路)
phase = 0;               % 初始相位

% MSK正交调制过程(其实是相位映射法)
for i = 1:N
    % 当前比特对应的时间范围
    t_bit = (i-1)*Tb:T:i*Tb-T;    
    % 计算相位变化
    if diff_bits(i) == 1
        phase_change = pi/2; % 1对应+90度
    else
        phase_change = -pi/2; % 0对应-90度
    end
    % 更新相位
    phase = phase + phase_change;
    
    % 生成I路和Q路信号
    I((i-1)*Fs*Tb+1:i*Fs*Tb) = cos(phase); % I路:余弦分量
    Q((i-1)*Fs*Tb+1:i*Fs*Tb) = sin(phase); % Q路:正弦分量
end
% 合成MSK信号
msk_signal = I .* cos(2*pi*Rb/4*t) - Q .* sin(2*pi*Rb/4*t);
% 载波就是Rb/4,250Hz
请仔细的看程序的结论!程序中的代码其实和框图不一致!还要注意程序中的黄色字体!程序没有体现串并转换和延迟啊!那该怎么写呢?还得是老师傅上场亲自写!先回溯一下本课题的过程。这种信号生成方式其实是相位生成法,根本不是正交调制法!!!


来源:通信工程师专辑
电子MATLAB通信理论控制
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2025-11-09
最近编辑:11月前
算法工匠
博士后 | 高级工程师 诚信做事 认真讲课 传播知识
获赞 428粉丝 2859文章 624课程 40
点赞
收藏
作者推荐
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈