【MATLAB源码-第11期】基于matlab的2FSK的误码率BER仿真以及原信号调制信号解调信号波形展示。

1 、算法描述

2FSK(Frequency Shift Keying)为二进制数字频率调制(二进制频移键控),用载波的频率来传送数字信息,即用所传送的数字信息控制载波的频率。2FSK信号便是符号"0"对应于载频 f1,而符号"1"对应于载频 f2(与 f1 不同的另一载频)的已调波形,而且 f1 与 f2 之间的改变是瞬间的。传"0"信号时,发送频率为 f1 的载波; 传"1"信号时,发送频率为 f2的载波。可见,FSK 是用不同频率的载波来传递数字消息的。

二进制频移键控(2FSK)是通过对两个不同载波信号进行变换使其成为数字信号来完成信息传输的。是用载波频率的变化来表征被传信息的状态的,被调载波的频率随二进制序列 0、1 状态而变化。

一般来说,其信号产生有两种方法,即频率键控法和直接调频法。频率键控法:两个分别产生正弦振荡的独立振荡器经由数字基带信号控制的电子开关后,选出的高频振荡信号就是FSK 调制信号。直接调频法是利用数字基带信号直接控制载频振荡器的振荡频率。与键控法调频相比较,它产生的信号频率稳定性比键控法产生的信号差,且存在过渡频率。

在接收端,信号的解调方法有两种,一种为相干解调法,另一种叫非相干解调法也叫包络检波法。如图1所示为相干解调和非相干解调的原理框图。非相干解调首先将得到的信号进行带通滤波后滤除载波频率以外的噪声以及干扰,使得信号可以完整的通过,再经过全波整流器输出正极端的包络曲线,然后经过低通滤波器或者整流模块输出基带包络信号,再经过抽样判决器输出基带二进制信号。其中的抽样判决模块用到的抽样定时脉冲信号与每一个码元的周期相同,并且在码元的中间位置进行抽样。包络检波各个部分的输出时间波形图, 最终输出的波形在时间上相对于原基带二进制信号有一定的延时,这是硬件部分进行信号处理时无法避免的,在信号速率不大的情况下这种延时可以忽略。

2 、仿真结果演示

3 、关键代码展示

4 、MATLAB 源码获取

点击下方原文链接获取

【MATLAB源码-第11期】基于matlab的2FSK的误码率BER仿真以及原信号调制信号解调信号波形展示。_基于matlab的2fsk仿真-CSDN博客https://blog.csdn.net/Koukesuki/article/details/132312096?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522171245824516800185813140%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=171245824516800185813140&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-1-132312096-null-null.nonecase&utm_term=%E7%AC%AC11%E6%9C%9F&spm=1018.2226.3001.4450

相关推荐
Go Dgg20 分钟前
【Go + Gin 实现「双 Token」管理员登录】
开发语言·golang·gin
十五年专注C++开发1 小时前
hiredis: 一个轻量级、高性能的 C 语言 Redis 客户端库
开发语言·数据库·c++·redis·缓存
WJ.Polar1 小时前
Python数据容器-集合set
开发语言·python
晓13131 小时前
JavaScript加强篇——第七章 浏览器对象与存储要点
开发语言·javascript·ecmascript
nbsaas-boot1 小时前
Go语言生态成熟度分析:为何Go还无法像Java那样实现注解式框架?
java·开发语言·golang
xiaocainiao8811 小时前
Python 实战:构建可扩展的命令行插件引擎
开发语言·python
碧海蓝天20222 小时前
C++法则21:避免将#include放在命名空间内部。
开发语言·c++
兮动人2 小时前
Java应用全链路故障排查实战指南:从系统资源到JVM深度诊断
java·开发语言·jvm
R-sz2 小时前
导出word并且插入图片
开发语言·c#·word
CodeWithMe2 小时前
【读书笔记】《C++ Software Design》第一章《The Art of Software Design》
开发语言·c++