基于matlab实现MSK的调制与解调

  • 1.MSK
  • 2.matlab代码实现MSK调制与解调
    • filter的创建
  • 3.实验结果

1.MSK

最小频移键控MSK (Minimum Shift Keying)是一种改变波载频率来传输信息的调制技术,即特殊的连续相位的频移键控 (CPFSK)。其最大频移为比特速率的1/4,即MSK是调制系数为0.5的连续相位的FSK。
介绍:
在数字调制中,最小频移键控(Minimum-Shift Keying,缩写:MSK)是一种连续相位的频移键控方式,在1950年代末和1960年代产生。与偏移四相相移键控(OQPSK)类似,MSK同样将正交路基带信号相对于同相路基带信号延时符号间隔的一半,从而消除了已调信号中180°相位突变的现象。与OQPSK不同的是, MSK采用正弦型脉冲代替了OQPSK基带信号的矩形波形,因此得到恒定包络的调制信号,这有助于减少非线性失真带来的解调问题
调制方式:
在FSK方式中,相邻码元的频率不变或者跳变一个固定值。在两个相邻的频率跳变的码元之间,其相位通常是不连续的。MSK是对FSK信号作某种改进,使其相位始终保持连续不变的一种调制。
MSK又称快速移频键控(FFSK)。这里“最小”指的是能以最小的调制指数(即0.5)获得正交信号;而“快速”指的是对于给定的频带,它能比PSK传送更高的比特速率。
MSK是一种在无线移动通信中很有吸引力的数字调制方式,它具有以下两种主要的特点:
信号能量的99.5%被限制在数据传输速率的1.5倍的带宽内。谱密度随频率(远离信号带宽中心)倒数的四次幂而下降,而通常的离散相位FSK信号的谱密度却随频率倒数的平方下降。因此,MSK信号在带外产生的干扰非常小。这正是限带工作情况下所希望有的宝贵特点。
信号包络是恒定的,系统可以使用廉价高效的非线性器件。
MSK调制方式是数字调制技术的一种。数字调制是数字信号转换为与信道特性相匹配的波形的过程。调制过程就是输入数据控制(键控)载波的幅度、频率和相位。
MSK属于恒包络数字调制技术。现代数字调制技术的研究,主要是围绕着充分的节省频谱和高效率地利用可用频带这个中心而展开的。随着通信容量的迅速增加,致使射频频谱非常拥挤,这就要求必须控制射频输出信号的频谱。但是由于现代通信系统中非线性器件的存在,引入了频谱扩展,抵消了发送端中频或基带滤波器对减小带外衰减所做的贡献。这是因为器件的非线性具有幅相转换(AM/PM)效应,会使己经滤除的带外分量几乎又都被恢复出来了。为了适应这类信道的特点,必须设法寻找一些新的调制方式,要求它所产生的己调信号,经过发端带限后,虽然仍旧通过非线性器件,但是,非线性器件输出信号只产生很小的频谱扩展。

2.matlab代码实现MSK调制与解调

首先给出代码:

clear all;clc;
N=20;  % The number of bits
T=1;   % The bit period
fc=10; % The carrier frequency
Fs=100;   % the sample frequency
bitstream=randi([0,1],1,N);  % randomly generate the bitstream
bitstream1=2*bitstream-1;  % 0 to -1; 1 to 1
% encode
b0=1;
for i=1:Nencode_output(i)=b0*bitstream1(i);b0=encode_output(i);
end
I=[];Q=[];
for i=1:Nif mod(i,2)~=0I=[I,encode_output(i)];elseQ=[Q,encode_output(i)];end
end
% using plot to compare bitsteam, I, Q
bit_data=[];
for i=1:Nbit_data=[bit_data,encode_output(i)*ones(1,T*Fs)];
endI_data=[];Q_data=[];base_wave=-T:1/Fs:T-1/Fs;
for i=1:N/2I_data=[I_data,I(i)*cos(pi*base_wave/(2*T))];Q_data=[Q_data,Q(i)*cos(pi*base_wave/(2*T))];
end
% Q delay
number_delay=length(base_wave)/2;
Q_data1=[zeros(1,number_delay),Q_data(1:length(Q_data)-number_delay)];
% plot
figure();
t=0:1/Fs:N*T-1/Fs;
subplot(3,1,1)
plot(t,bit_data);legend('Bitstream')
subplot(3,1,2)
plot(t,I_data);legend('I Bitstream')
subplot(3,1,3)
plot(t,Q_data1);legend('Q Bitstream')
% carrier signal
bit_t=0:1/Fs:N*T-1/Fs;
I_carrier=cos(2*pi*fc*bit_t);
Q_carrier=cos(2*pi*fc*bit_t+pi/2);
% transmit signal
MSK_signal=I_data.*I_carrier+Q_data1.*Q_carrier;snr=1;  % signal to noise rate
% Receive singal
MSK_receive=awgn(MSK_signal,snr);
% demodulate
I_output=MSK_receive.*I_carrier;Hd=filter;
I_filter_ouput=filter(Hd,I_output);
Q_output=MSK_receive.*Q_carrier;
Q_filter_ouput=filter(Hd,Q_output);for i=1:N/2if I_filter_ouput((2*i-1)*number_delay)>0I_recover(i)=1;elseI_recover(i)=-1;endif Q_filter_ouput(2*i*number_delay)>0Q_recover(i)=1;elseQ_recover(i)=-1;end
end
bit_recover=[];
for i=1:Nif mod(i,2)~=0bit_recover=[bit_recover,I_recover((i-1)/2+1)];elsebit_recover=[bit_recover,Q_recover(i/2)];end
end% decode
for i=1:Nif i==1bit_recover1(i)=bit_recover(i);elsebit_recover1(i)=bit_recover(i)*bit_recover(i-1);end
end
% using plot to compare bitsteam, I, Q
recover_data=[];
for i=1:Nrecover_data=[recover_data,bit_recover1(i)*ones(1,T*Fs)];
end% plot
figure();
t=0:1/Fs:N*T-1/Fs;
bit_stream=[];
for i=1:Nbit_stream=[bit_stream,bitstream1(i)*ones(1,T*Fs)];
end
subplot(2,1,2)
plot(t,bit_stream);legend('original Bitstream')
subplot(2,1,1)
plot(t,recover_data);legend('recover Bitstream')

其中filter是需要自己创建的低通滤波器

filter的创建

1.首先在matlab命令行输入

2.自己设置参数然后点击file创建函数
点击file
点击generate matlab code
点击filter designer function
文件命令filter(自己随意命令)


执行代码

3.实验结果



对于实验结果我也不太了解,只是为了记录一下学习内容,所以这里就不过多解释误人子弟啦
对MSK感兴趣的小伙伴可自己去查询相关资料

基于matlab实现MSK的调制与解调相关推荐

  1. matlab进行fm调制与解调,基于matlab的fm信号调制与解调.doc

    基于matlab的fm信号调制与解调.doc 调制就是将基带信号的频谱搬移到信道通带中或者其中的某个频段上的过程,而解调是将信道中来的频带信号恢复为基带信号的反过程.调制的目的是把要传输的模拟信号或数 ...

  2. 基于MATLAB的AM的调制与解调

    基于MATLAB的AM的调制与解调 然后是解调,解调分两步,一步是将调制好的信号与本地载波相乘(与载波同频),然后在通过一个低通滤波器,最后就把信号恢复了. 上面就直接是调制好的信号与本地载波相乘.至 ...

  3. fsk调制matlab 仿真,基于MATLAB对FSK信号调制与解调的仿真

    基于MATLAB对FSK信号调制与解调的仿真 基于 MATLAB 对 FSK 信号调制与解调的仿真摘要 Matlab 平台的著名仿真环境 Simulink 作为一种种专业和功能强大且操作简单的仿真工具 ...

  4. 基于Matlab的SSB信号调制和解调(内附源码)

    详细原理可参考课设报告:基于matlab的SSB信号调制.传输.解调的仿真-行业报告文档类资源-CSDN下载 调制采用了滤波法和相移法. 代码中有注释,无子函数,可以直接运行. 压缩包中包含了具体的课 ...

  5. 【通信原理】实验1 基于Matlab的模拟信号的调制和解调

    基于Matlab的模拟调制系统仿真 目录 基于Matlab的模拟调制系统仿真 一.实验类型 二. 实验目的 三.实验原理 四. 实验内容 一. AM: DSB: SSB: 更多相关文章如下: 一.实验 ...

  6. 基于matlab仿真的数字调制与解调设计

    随着通信系统复杂性的增加,传统的手工分析与电路板试验等分析设计方法已经不能适应发展的需要,通信系统计算机模拟仿真技术日益显示出其巨大的优越性.计算机仿真是根据被研究的真实系统的模型,利用计算机进行实验 ...

  7. m基于matlab的连续相位调制(CPM)解调系统仿真,包括解调,同步等模块

    目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 随着数字通信技术的飞速发展,数字通信的调制技术也得到了快速发展,其中连续相位调制(Continuou ...

  8. 基于matlab的ldpc编码的构造,基于LDPC编码的GMSK调制与解调及matlab仿真实现(含录像)...

    基于LDPC编码的GMSK调制与解调及matlab仿真实现(含录像)(开题报告,论文10700字,程序代码,录像) 摘 要 随着无线通信技术的不断发展与进步,数字电视广播.移动视频点播等对数据吞吐量要 ...

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

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

最新文章

  1. python打开网页存图_python 获取网页图片 保存在本地
  2. Just another Robbery LightOJ - 1079[背包形状的概率dp]
  3. Linux-PAM PAM-MySQL的总结
  4. 【转载】Few-shot learning(少样本学习)和 Meta-learning(元学习)概述
  5. 进程间通信——POSIX 有名信号量与无名信号量
  6. good things will come late
  7. 电脑屏幕保护怎么取消_怎么监控员工电脑?老板如何知道员工上班在干什么?...
  8. aspmysql发布_ASP如何使用MYSQL数据库
  9. 最短路——迪杰斯特拉算法
  10. linux 节点互信,Linux 集群节点互信ssh配置
  11. java utc时间_Java获得UTC时间
  12. html5新年网页做给父母的,给父母的感谢信5篇模板
  13. window系统安装msysgit(Git客户端软件)教程
  14. 大数据和传统数据的区别
  15. c++cmath函数库
  16. oracle ssh 连接工具,使用免费的Oracle云服务-通过console连接云主机
  17. 计算机二进制表示小数,小数用二进制如何表示
  18. 学习学习再学习(一):学习意识
  19. c语言强制转换是四舍五入,c语言强制转换四舍五入.docx
  20. 图像处理技术之三:降噪处理(中值、均值、最大值、最小值滤波、图像噪声)

热门文章

  1. 自然语言处理NLP(3)——神经网络语言模型、词向量
  2. 阿里云mysql目录_mysql数据库目录存放位置更改-阿里云开发者社区
  3. 使用 chkdsk 命令修复 SD 卡
  4. 八、【服务器】服务器硬件名称中英文汇总1
  5. 达梦单机到DSC集群DMHS部署
  6. data fastboot 擦除_Fastboot的使用简单教程
  7. 【百度飞桨黄埔学院】CTO案头必备|AI技术产业落地的42章经
  8. Android学习笔记-常用的一些源码,防止忘记了
  9. 反射feign接口,调用feign的方法
  10. Ceph 进阶系列(四):Ceph的纠删码特性 EC(Erasure Code)