数字调制解调—MSK

  • 1 MSK时域特征
  • 2 MSK产生方法
  • 3 MSK调制仿真
  • 4 MSK解调仿真

1 MSK时域特征

  二进制最小频移键控(Minimum Shift Keying , MSK)信号的表示式可写为:

SSSMSK(t)=cos(w(t)=cos(w(t)=cos(wct+π2Tat+\frac{π}{2T}at+2Tπ​akt+t+t+φk)))

  式中,wc是载波频率,T是码元宽度,ak是第k个码元的数据(取值为±1),φk是第k个码元中的相位常数,他在kT≤t≤(k+1)T中保持不变。

  当ak从+1变化到-1,传信频率从f1变化到f2,角频率Δw=πT\frac{π}{T}Tπ​,由w=2πf,则Δf=12T\frac{1}{2T}2T1​,调制指数h=Δf·T=0.5.

  MSK其实就是一种FSK,只是传信频率f1和f2在一个码元周期内严格保证相位差180°,这是因为Δθ=Δw·T=2πΔf·T。

  根据SMSK(t)的表达式,将其拆开可得:

SSSMSK(t)=cosφ(t)=cosφ(t)=cosφkcos(πt/2T)coswcos(πt/2T)coswcos(πt/2T)coswct−at-at−akcos(φcos(φcos(φk)sin(πt/2T)sinw)sin(πt/2T)sinw)sin(πt/2T)sinwcttt

  上式即为MSK的正交表示形式,设I支路和Q支路分别为xI(t)和xQ(t)。

xxxI(t)=cosφ(t)=cosφ(t)=cosφkcos(πt/2T)coswcos(πt/2T)coswcos(πt/2T)coswcttt
xxxQ(t)=a(t)=a(t)=akcos(φcos(φcos(φk)sin(πt/2T)sinw)sin(πt/2T)sinw)sin(πt/2T)sinwcttt

  令I=cosφk,Q=akcosφk,显然I、Q、ak之间存在某种转化关系,通常以差分编码的形式对ak进行处理,奇数元素给I支路,偶数元素给Q支路,这样上下支路便错开了一个码元周期T,满足传信频率要求的相位差。

2 MSK产生方法

  1. 对输入数据序列进行差分编码。
  2. 把差分编码器输出数据用串并转换器分成两路,并且相互交错一个码元宽度T。
  3. 用加权函数cos(πt2T\frac{πt}{2T}2Tπt​)和sin(πt2T\frac{πt}{2T}2Tπt​)分别对两路数据进行加权。
  4. 用两路加权后的数据分别对正交载波coswct和sinwct进行调制
  5. 将两路输出信号进行叠加

3 MSK调制仿真

ps=1*10^6;  %码速率为1MHz
Fs=16*10^6; %采样速率为16MHz
fc=3*10^6;  %载波频率为3MHzN=100;        %数据码元个数
Len=N*Fs/ps;  %仿真数据的长度
x = randint(N,1,2)'; % 产生随机数据做为数据码元
%x=ones(1,N);
dx=ones(1,N);
for i=1:Nif x(i)==0x(i)=-1;end
end
%求原码的相对码dx
for i=2:Nif x(i)==1dx(i)=-dx(i-1);elsedx(i)=dx(i-1);end
end%将相对码按奇偶序号分成两路数据,形成Ik\Qk
di=ones(1,N);
dq=ones(1,N);
%取dx的偶数位,并列两位为di
for i=2:2:Ndi(i:i+1)=dx(i);
end
%取dx的奇数位,并列两位为dq
for i=1:2:N-1dq(i:i+1)=dx(i);
end%对原始BIT数据进行Fs/ps倍重采样
udi=ones(1,N*Fs/ps);
udq=ones(1,N*Fs/ps);
for i=1:Nudi(Fs/ps*(i-1)+1:Fs/ps*i)=di(i);udq(Fs/ps*(i-1)+1:Fs/ps*i)=dq(i);
end%产生MSK信号所需的载波信号
t=0:1/Fs:(Len-1)/Fs;
cf0c=cos(2*pi*fc.*t);
sf0c=sin(2*pi*fc.*t);
cfps=cos(pi*ps/2.*t);
sfps=sin(pi*ps/2.*t);%正交调制法产生msk信号
msk=udi.*cfps.*cf0c-udq.*sfps.*sf0c;%绘制MSK信号的频谱及时域波形
figure(2);
%求MSK信号的FFT变换
m_msk=20*log10(abs(fft(msk,2048)));
m_msk=m_msk-max(m_msk);
%设置幅频响应的横坐标单位为MHz
x_f=1:length(m_msk);
x_f=x_f*Fs/length(m_msk)/10^6;
%绘制MSK信号的频谱
subplot(211);
plot(x_f,m_msk);axis([0 Fs/2/10^6 -80 0]);
legend('MSK信号频谱');
xlabel('频率(MHz)');ylabel('幅度(dB)');grid on;%绘制MSK信号的时域波形
subplot(212);
%设置横坐标单位为us
LT=100;
x_t=0:1/Fs:(LT-1)/Fs;
x_t=x_t*10^6;
plot(x_t,msk(100:100+LT-1))
legend('MSK信号时域波形');
xlabel('时间(us)');ylabel('幅度(V)');

  仿真结果如图所示:

  可以看出,0dB点大约在3MHz处,正是载波频率。

4 MSK解调仿真

  本文采用平方环载波提取的MSK相干解调。已知MSK调制指数h=0.5,经过平方后,即频域相加,角频偏为0.5+0.5=1,故调制指数h=1。另一方面,MSK也属于CPFSK,而调制指数为1的CPFSK功率谱中存在离散分量,分别为二倍传号频率fH和fL。因此,可以用两个锁相环电路分别提取处这两个频率。根据MSK信号特征,可以得到载波fc和时钟fR与两个离散频率分量之间的关系为:

  在电路中将两个锁相环锁定的2fH和2fL两个信号相乘,可得到差频分量,然后用低通滤波提取出来,就可得到时钟频率fR信号,它经脉冲形成后得到所需的时钟脉冲,再由此产生各种定时信号。

  将二分频后的fH和fL相乘,并经过低通滤波可获得fR/2,其速率与正交两路的速率相同,可用于正交两路数据的判决,信号如下:
  SSS1(t)=cos(2πf(t)=cos(2πf(t)=cos(2πfHt)=cos(2πft)=cos(2πft)=cos(2πfct+πt/2T)t+πt/2T)t+πt/2T)
  SSS2(t)=cos(2πf(t)=cos(2πf(t)=cos(2πfLt)=cos(2πft)=cos(2πft)=cos(2πfct−πt/2T)t-πt/2T)t−πt/2T)

  具体代码如下

%MSK 解调
%第一种相干解调,需要同时获取fc,fb的载波频率
% demod_i=msk.*cf0c.*cfps;
% demod_q=msk.*sf0c.*sfps;
%平方环相干解调,只需获取fL、fH的载波频率
fL=cos(2*pi*fc.*t-2*pi*ps/4.*t);
fH=cos(2*pi*fc.*t+2*pi*ps/4.*t);demod_i=msk.*(fH+fL);
demod_q=msk.*(fH-fL);
%低通滤波后,获取I、Q支路基带波形
b=fir1(30,0.5*ps*2/Fs);%设计低通滤波器
f_i=filter(b,1,demod_i);
f_q=filter(b,1,demod_q);fb=fL.*fH;
rb=filter(b,1,fb);%绘制解后的I、Q支路基带波形及时钟信号波形
figure(1);
num=800;
x_t=0:1/Fs:(num-1)/Fs;
x_t=x_t*10^6;
subplot(411);plot(x_t,udi(1:num));axis([0 25 -1.2 1.2]);
legend('I支路原始数据时域波形');
xlabel('时间(us)');ylabel('幅度(V)');
subplot(412);plot(x_t,f_i(1:num),'-',x_t,rb(1:num),'--');
legend('I支路解调数据','时钟信号');
xlabel('时间(us)');ylabel('幅度(V)');
subplot(413);plot(x_t,udq(1:num));axis([0 25 -1.2 1.2]);
legend('Q支路原始数据时域波形');
xlabel('时间(us)');ylabel('幅度(V)');
subplot(414);plot(x_t,f_q(1:num),'-',x_t,rb(1:num),'--');
legend('Q支路解调数据','时钟信号');
xlabel('时间(us)');ylabel('幅度(V)');

  仿真结果如图所示:

  从图中可以看出,对于I支路而言,1/2倍码速率时钟信号与解调后的I支路完全同步,最佳判决时刻为时钟波峰处;对于Q支路而言,1/2倍码速率时钟信号与解调后的Q支路数据完全正交,最佳判决时刻在时钟波谷处。

数字调制解调—MSK相关推荐

  1. 4fsk调制matlab_数字调制解调技术的MATLAB与FPGA实现

    <数字调制解调技术的MATLAB与FPGA实现>包含2个版本.Xilinx/VHDL版的设计平台为ISE14.7/VHDL,配套开发板为CXD301:Altera/Verilog版的设计平 ...

  2. 2fsk调制解调原理框图_数字调制解调输出什么 数字调制解调输出特点介绍【图文】...

    数字调制解调输出什么意思 数字信号也可以用改变载波的幅度.频率和相位的方法来传输,分别称为幅度键控(ASK).频移键控(FSK)和相移键控(PSK).与模拟调制的区别在于它们的幅度.频率和相位只有离散 ...

  3. 【通信原理】【实验】实验三: 数字调制解调实验2ASK--2FSK--2PSK思路(GZHU)

    文章目录 一. 总体思路: 二. 内容 2.1 第一个实验部分:2ASK (二进制幅度调制) 2.1.1 2ASK 2.1.2 信道 2.1.3 符号解释 2.1.4 问题思考 3.1 第二个实验部分 ...

  4. ASK数字调制解调实现

    ASK数字调制解调实现 调制解调原理 Matlab仿真 Verilog仿真 调制解调原理 对于为什么全波整流+低通能够还原包络,我的理解是这样的 首先整流将电路转化为右图所示, 然后对于黑圈中变化较为 ...

  5. 基于MATLAB的基本数字调制解调系统的设计

    基于MATLAB的基本数字调制解调系统的设计 一.摘要 现代通信系统要求通信距离远.通信容量大.传输质量好,作为其关键技术之一的调制解调技术一直是人们研究的一个重要方向.本文以MATLAB为软件平台, ...

  6. 数字调制解调—2ASK

    目录: 2ASK(2 Amptitude Shift Keying , 幅度键控)二进制调制解调原理 1 2ASK调制信号的产生 2 2ASK解调 2.1 相干解调 2.2 非相干解调 3 MATLA ...

  7. 全数字OQPSK调制解调的基本算法,包括成形滤波器、NCO模型、载波恢复

    目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 OQPSK调制技术是一种恒包络调制技术,受系统非线性影响小,具有较高的带宽利用率和功率利用率,在卫星 ...

  8. matlab调制解调开题报告,基于MATLB的数字调制与解调设计与仿真开题报告.doc

    基于MATLB的数字调制与解调设计与仿真开题报告 毕业(设计)论文 开 题 报 告 系 别 电子信息工程系 专 业 电子信息工程专业 班 级 122102 学生姓名 朱椰子 学 号 111861 指导 ...

  9. 超级干货:BPSK/QPSK数字调制系统误码率MATLAB仿真

    本文旨在通过简单实例来对基于MATLAB的数字调制解调系统仿真进行一个较为全面的介绍,并加深对一些基础知识的理解.且有详细解释大多数人在进行数字调制MATLAB仿真时遇到的大部分问题. 数字调制的概念 ...

最新文章

  1. Pandas 基础 (5) —— 处理缺失数据及层次化索引
  2. CenterFusion: 基于Radar和Camera融合的3D检测算法
  3. mysqil操作数据库
  4. css 竖行进度图_css实现横向与竖向进度条效果的方法
  5. java实现简单的文字pk的小游戏
  6. Coverity代码静态检测工具导出Excel文件
  7. 硬盘分区文件系统成raw格式,无法打开访问
  8. 举个栗子~Tableau 技巧(225):制作事件节点时间轴
  9. Win11小键盘无法使用怎么办?
  10. P1606 [USACO07FEB]白银莲花池 P1979 华容道(bfs预处理+状态连边建图+最短路算法求解,最短路计数)
  11. 数据库里存放的是什么?
  12. HBuilder 详细使用教程
  13. 电影数据库开发设计——基于jsp(使用eclipse-jee,mysql-front)
  14. 5G的工业应用场景梳理
  15. 批量把大量图片名称批量导入记事本或excel表格里(生成图片名目录)
  16. bert中文文本情感分类 微博评论挖掘之Bert实战应用案例-文本情感分类
  17. 车载测试就业薪资分析
  18. 图书管理系统图书信息界面
  19. 斐讯K3 在openwrt上如何手动安装阿里云盘aliyun-dav
  20. MySQL百万数据优化一

热门文章

  1. [图解]PDF 格式概述(pdf structure)
  2. AtCoder Contest 229-C-Cheese
  3. 8月至10月学习总结——从我决定考教资讲起
  4. 程序员笔记软件 CherryTree 安装(ubantu系统)
  5. 手把手教你设计SNS社区【6】
  6. python基础教程书在线阅读_python基础教程第四版
  7. ThingJS粒子特效一键实现雨雪效果
  8. 计算机要学安装系统吗,新手学电脑系统安装,新手电脑系统安装的几种方法
  9. Linux系统管理员应该了解的一些I/O统计工具
  10. Moore and Mealy