利用软件仿真完整的通信系统

本文通过哈夫曼编码实现信源编码,使用汉明码进行信道编码以抵抗信道干扰。在模拟过程中,引入随机位跳变模拟实际通信中可能遇到的问题,然后利用汉明码进行纠错,最后通过哈夫曼译码输出结果。详细算法思路参考了之前关于哈夫曼编码和汉明码的博客,并提供了具体代码和实验结果。
摘要由CSDN通过智能技术生成

一、简述
这里写图片描述
1.通过哈夫曼编码,模拟信源编码
2.通过汉明码编码,模拟信道编码。
3.通过随机产生一位跳变,模拟信道干扰
4.通过汉明码纠错,模拟信道译码
5.哈夫曼译码,完成输出
二、算法思想
详见之前哈夫曼编码,汉明码两篇博客。
三、具体代码

#include<iostream>
#include<math.h>
#include<cstdlib>
#include<ctime> 
using namespace std;
typedef unsigned int uint;
uint len(uint n)//返回n位数据的汉明编码长度 
{
    for(int i=0;i<15;i++)
    {
        int temp=1;
        for(int j=0;j<i;j++)
            temp=2*temp;
        if(n+i<temp)
            return n+i;
    }
}  
void han(bool *hanming ,int n,int lenn)
{   
    for(int i=n-1;i>=0;i--)//空出校验位,把数据位向后移动到合适位置 
        hanming[len(i+1)-1]=hanming[i];//哪怕i取0,也是hanming[2]=hanming[0]; 
    for(uint i=1;i<=lenn;i=i*2)//校验位的得出,是和0001,0010,0100,1000异或后得出的 
    {
        bool jiaoyan=0;
        for(uint j=i+1;j<=lenn;j++)//比校验位高一位开始到最高位 
        {
            if(j&i)
                jiaoyan^=hanming[j-1];
        }
        hanming[i-1]=jiaoyan;
    }
}
void hanback(bool *hanming,int n,int lenn)
{
    bool *temp=new bool[n];
    int count=0;int r=0;
    for(int i=0;i<lenn;i++)
    {
        if(i==pow(2,r)-1)
            {r=r+1;}
        else temp[count++]=hanming[i];
    }
    for(int i=0;i<n;i++)
        hanming[i]=temp[i];
} 
本书是作者从事大型现代通信系统仿真工作20余年的经验总结,利用C++语言系统地讲解了复杂无线通信系统中各类模块的仿真原理与方法,并给出了大量实用的模型源代码。作者在本书编写过程中开发了工具包PracSim,这是一个仿真模型和可互连的仿真结构组成的模块集,可以为用户提供一个可修改及开发的基础模型,以便能更接近用户所需仿真系统。书中仿真结构和模型的源代码均可在Prentice Hall的网站上获得。通过本书的学习可使读者掌握无线通信系统仿真的基本方法,从而加深对无线通信和面向对象编程的理解,为从事通信领域的相关研究工作打下坚实的基础。. 本书内容丰富、实用性强,非常适合国内目前的需求。可作为高等院校信息类专业高年级本科生和研究生的通信系统仿真课程的教材,也可供相关工程技术人员参考使用。... 第1章 仿真:背景及回顾 1.1 通信系统 1.2 仿真过程 1.3 仿真程序 第2章 仿真基础结构 2.1 参数输入 2.1.1 各参数值 2.1.2 参数数组 2.1.3 枚举类型参数 2.1.4 系统参数 2.1.5 信号绘图参数 2.2 信号 2.2.1 信号管理策略 2.2.2 信号管理系统的实现 2.3 控制信号 2.4 结果报告 附录2A 源代码实例 第3章 信号发生器 3.1 基本信号发生器 3.1.1 单位阶跃函数 3.1.2 矩形脉冲 3.1.3 单位冲激 3.1.4 软件实现 3.2 音频信号发生器 3.2.1 软件实现 3.3 基带信号采样 3.3.1 采样的频域特性 3.4 基带数据波形发生器 3.4.1 非归零NRZ基带信号 3.4.2 双相位基带信号 3.4.3 延迟调制 3.4.4 应用中的问题 3.5 为带通信号建模 附录3A 源代码实例 第4章 随机过程模型 4.1 随机序列 4.1.1 离散分布 4.1.2 离散随机过程 4.2 随机过程发生器 4.2.1 线性同余序列 4.2.2 软件实现 4.2.3 随机数发生器的评价 4.3 连续时间噪声过程 4.3.1 连续随机变量 4.3.2 随机过程 4.4 加性高斯噪声发生器 4.4.1 高斯分布 4.4.2 误差函数 4.4.3 谱特性 4.4.4 噪声功率 4.4.5 高斯随机数发生器 4.5 通带噪声 4.5.1 包络和相角 4.5.2 瑞利随机数发生器 4.6 随机过程的参数模型 4.6.1 自回归噪声模型 附录4A 源代码实例 第5章 离散变换 5.1 离散傅里叶变换 5.1.1 参数选择 5.1.2 离散傅里叶变换的性质 5.2 时域抽取算法 5.2.1 软件注释 5.3 频域抽取算法 5.4 小采样数N的离散傅里叶变换 5.5 素因数算法 5.5.1 软件注释 附录 5A 源代码实例 第6章 谱估计 6.1 采样频谱 6.1.1 软件实现 6.2 Daniell 周期图 6.2.1 软件实现 6.3 Bartlett 周期图 6.3.1 软件实现 6.4 加窗和其他问题 6.4.1 三角窗 6.4.2 软件考虑 6.4.3 von Hann 窗 6.4.4 汉明窗 6.4.5 软件实现 6.5 Welch周期图 6.5.1 软件实现 6.6 Yule-Walker方法 6.6.1 软件实现 附录6A 源代码实例 第7章 系统表征工具 7.1 线性系统 7.1.1 线性系统的特性 7.1.2 传递函数 7.1.3 传递函数的计算机表示方法 7.1.4 幅频响应、相频响应和时延响应 7.2 星座图 7.2.1 眼图 附录7A 源代码实例 第8章 滤波器模型 8.1 建模方法 8.1.1 数值积分 8.1.2 频率响应采样 8.1.3 数字滤波器 8.2 模拟滤波器响应 8.2.1 低通滤波器幅频响应特性 8.2.2 滤波器转换 8.3 经典模拟滤波器 8.3.1 巴特沃斯滤波器 8.3.2 切比雪夫滤波器 8.3.3 椭圆滤波器 8.3.4 贝塞尔滤波器 8.4 由数值积分来仿真滤波器 8.4.1 双二次型 8.4.2 软件设计 8.5 用IIR数字滤波器仿真模拟滤波器 8.5.1 IIR滤波器的性质 8.5.2 模拟滤波器映射为IIR数字滤波器 8.5.3 软件设计 8.6 频域内滤波 8.6.1 快速卷积 8.6.2 软件设计 附录 8A 源代码实例 第9章 调制与解调 9.1 仿真的要点 9.1.1 利用恢复的载波 9.2 正交相移键控 9.2.1 非理想特性 9.2.2 正交调制器模型 9.2.3 QPSK相关解调器模型 9.2.4 正交解调器模型 9.2.5 QPSK仿真 9.2.6 QPSK信号的性质 9.2.7 偏移 QPSK 9.3 二进制相移键控 9.3.1 BPSK调制器模型 9.3.2 BPSK解调 9.3.3 BPS
基于MATLAB的移动通信系统仿真-基于matlab的移动通信系统仿真.rar 希望对大家有用! 基于TCH/FS的GSM系统仿真实现 摘 要从第一代模拟移动通信系统到目前的第三代数字移动通信系统,蜂窝移动通信已经历了20余年的发展历程。作为欧洲一个数字蜂窝移动通信标准的GSM系统于1991年正式在欧洲面世,由于其公开的规范标准以及强大的漫游能力,从而获得了空前的发展。 本课题主要任务是用C语言对基于TCH/FS信道的GSM系统进行仿真,由于移动无线信道受到各种干扰、多径衰落和阴影衰落等影响,对于数字和数据信号的传输,会造成突发性误码和随机性错误。为了解决无线信道传输带来的问题,从原始的用户数据到无线电波所携带的信息,再还原成用户数据,需要进行一系列的变换和反变换,实现对所传输信号的必要保护。这些变换大致包括:信源编码与解码、信道编码与解码、交织与解交织、调制以及均衡等模块。本课题在对上述各模块依次进行仿真时,依据协议GSM05.03的编码方案对数据进行编码,除采用新型的信源编码技术外,还采用检、纠错信息编码以及信道编码保护的交织重排等手段,以提高传输效果和通信质量。同时采用GMSK调制、信道均衡和Viterbi译码等处理方法,来获得在不同信道模型下(AWGN、GSM HTx和GSM EQx模型)的不同信噪比Eb/N0的编码性能。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值