我是靠谱客的博主 平常小馒头,最近开发中收集的这篇文章主要介绍基于MATLAB的QPSK在瑞利、高斯和莱斯信道下仿真,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

基于MATLAB的QPSK在瑞利、高斯和莱斯信道下仿真。

介绍
QPSK是一种四进制相位调制,具有良好的抗噪特性和频带利用率,广泛应用于卫星链路、数字集群等通信业务。
产生
QPSK信号的正弦载波有4个可能的离散相位状态,每个载波相位携带2个二进制符号,其信号表示式为:

解调
QPSK数字解调包括:模数转换、抽取或插值、匹配滤波、时钟和载波恢复等。

代码
下面代码基于matlab实现了QPSK系统的仿真,系统框图如下。考虑到部分功能需要多次重复使用,设计了一个子程序。主程序负责实现GUI,具体的仿真过程全都在子程序中实现。

文件:590m.com/f/25127180-498774298-818db2(访问密码:551685)

以下内容无关:

-------------------------------------------分割线---------------------------------------------

1.1 函数接口定义
  轮询法与中断法函数接口保持一致,详见 《串口(UART)自动波特率识别程序设计与实现(中断)》 1.1 小节,两者共享头文件:autobaud.h,这样方便项目设计时自由切换自动波特率识别方法。

1.2 识别设计思想
  关于识别的思路,轮询法与中断法也是一致的,详见 《串口(UART)自动波特率识别程序设计与实现(中断)》 1.2 小节,但是轮询法里多了手动检测 RXD 引脚电平下降沿跳变的过程。

引脚电平跳变检测其实也很简单,就是不断读取引脚输入电平值,并比较相邻两次输入电平值,如果发现不一致,则是跳变发生之时。如果前一次电平值是高,那么此时便是下降沿。

1.3 主代码实现
  根据上一小节描述的设计思想,我们很容易写出下面的主代码(autobaud_poll_v2.1.c),代码里痞子衡都做了详细注释。相比中断法源代码,我们其实只需要修改 autobaud_get_rate() 函数实现如下:

//! @brief 读取GPIO管脚输入电平
extern uint32_t read_autobaud_pin(void);

bool autobaud_get_rate(uint32_t *rate)
{
// 仅当电平为低(非空闲态)时才开始识别
uint32_t currentEdge = read_autobaud_pin();
if (currentEdge != 1)
{
pin_transition_callback();
uint32_t previousEdge = currentEdge;
while (s_transitionCount < kFirstByteRequiredFallingEdges + kSecondByteRequiredFallingEdges)
{
// 检查是否有电平翻转
currentEdge = read_autobaud_pin();
if (currentEdge != previousEdge)
{
// 仅当电平翻转是下降沿时
if (previousEdge == 1)
{
pin_transition_callback();
}
previousEdge = currentEdge;
}
}


// 计算出实际检测到的波特率值
uint32_t calculatedBaud =
(microseconds_get_clock() * (kNumberOfBitsForFirstByteMeasured + kNumberOfBitsForSecondByteMeasured)) /
(uint32_t)(s_firstByteTotalTicks + s_secondByteTotalTicks);
// 对实际检测出的波特率值做对齐处理
// 公式:rounded = stepSize * (value/stepSize + .5)
*rate = ((((calculatedBaud * 10) / kAutobaudStepSize) + 5) / 10) * kAutobaudStepSize;
return true;
}
else
{
return false;
}

}

最后

以上就是平常小馒头为你收集整理的基于MATLAB的QPSK在瑞利、高斯和莱斯信道下仿真的全部内容,希望文章能够帮你解决基于MATLAB的QPSK在瑞利、高斯和莱斯信道下仿真所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(83)

评论列表共有 0 条评论

立即
投稿
返回
顶部