- 博客(353)
- 资源 (44)
- 收藏
- 关注
原创 【信息论系列1】一文搞定各种奇奇怪怪信道的信道容量C计算(含多角度理解推导)
信息论中,通信信道是一个描述给定信道输入X条件下信道输出Y的条件概率分布,也就是P(Y|X)从定义来看,信道容量即为互信息I(X;Y)I(X;Y)I(X;Y)的最大值
2024-05-15 14:01:11 23
原创 基于CCS5.5的双音多频(DTMF)信号检测仿真实验(①检测型音频文件②输入生成音频并检测)
DTMF根本上仍然是频谱分析,基础还是DFT,但DFT通常需要对一整段数据做变换,而DTMF不同,每输入一个采样点就计算一次,更有利于硬件实现。
2024-05-11 21:56:22 53
原创 C++导出类中工厂函数和虚函数的结合使用
之前在看到dll导出类时,看到这篇文章其中,第三种方式个人感觉非常好,原文如下C++抽象接口(仅包含纯虚函数且不包含数据成员的C++类)同时兼顾以下两个方面:与对象无关的纯净接口,以及方便的的面向对象的调用方式。所需要做的就是为头文件提供接口声明并实现工厂函数,该函数将返回新创建的对象实例。仅工厂函数必须与说明__declspec(dllexport/dllimport)符一起声明。该接口不需要任何其他说明符。在上述代码段中,工厂函数GetObj声明为extern “C”。
2024-03-23 09:49:59 52
原创 【线程同步系列3】基于关键代码段的VC++多线程同步及孙鑫代码在VS2017、多核CPU上的问题
经过分析,笔者认为主要原因是,线程1和线程2中While(TRUE)循环,假设线程1先运行,当保护代码运行完后执行LeaveCriticalSection(&g_cs);如果调用线程没有等待到临界区对象的所有权,该函数一直等待,从而导致线程一直等待!然而,在VC++深入详解第二版中,编译环境为VC++6.0,且可能是单核CPU,程序运行没有问题,线程1和线程2交替售票!孙鑫老师在VC++深入详解一书中,以2个线程售票为例,对基于临界区的线程同步进行了示范,代码如下。释放临界区对象,调用。
2024-03-22 06:51:25 53
原创 Visual Studio单步调试中监视窗口变灰的问题
然而,在调试中,只要一执行while这条语句,监视窗口中的变量全部变为灰色,不能查看,是程序本身并没有报错,能够继续执行,但就是不能查看变量的值!>调试信息格式,改为 程序数据库(/Zi)在网上搜索无果,最后在项目属性中更改。在vs调试中,写了这样一条语句。
2024-03-08 05:00:00 165
原创 SSE指令集学习使用
本篇介绍SSE指令集,SSE是流化SIMD扩展(Streaming SIMD Extension, SSE),提供全新的一组寄存器,处理128位打包数据。SSE提供了xmm寄存器,xmm一组8个128位的寄存器,分别名为xmm0-xmm7,SSE构架提供对打包单精度浮点数的SIMD支持。
2023-12-25 02:56:09 383
原创 SSE指令集学习使用2
在IDA中可以设置启用或禁用SSE intrinsic指令,具体操作为在IDA中反编译代码窗口(Pseudocode)中右键。实际上,函数sub_func1有6个参数,但IDA反编译之后却只有1个 参数,猜测应该是采用了浮点寄存器传递了参数。把源存储器低64位两个双字有符号整数变成两个双精度浮点数,结果送入目的寄存器,内存变量必须对齐内存16字节.将xmm1与xmm0做商,并将结果以双精度浮点数的类型存放到xmm1中。结果:xmm0=edx=sps(整数)结果:xmm1=maxind。
2023-12-25 02:40:59 144
原创 【MATLAB库函数系列】线性调频Z(Chirp-Z,CZT)的MATLAB源码和C语言实现
采用 FFT 算法可以很快计算出全部$N$点 DFT 值,即Z变换 $X(z)$在$z$平面单位圆上的全部等间隔取样值。而实际中也许不需要计算整个单位圆上Z变换的取样值。例如**对于窄带信号,只需要对信号所在的一段频带进行分析,这时希望频谱的取样集中在这一频带内,以获得较高的分辨率,而频带以外的部分可不考虑**。
2023-12-24 12:56:21 366
原创 二进制转十六进制字符串的C语言高效率实现(如“10100011“转为字符串“A3“)
对于一串二进制01比特,有时为了显示或者编辑方便高效,我们需要将二进制比特流转换成十六进制,众所周知,二进制转十六进制是每4比特进行转换,例如将以下二进制流:转换为十六进制应为:A3CD有时候,还可以每字节中间添加一个空格A3 CD下面直接上结果和代码。
2023-12-18 14:44:23 133
原创 【梅西迭代姊妹篇2】BCH码和m序列参数估计(梅西迭代算法求多项式的C语言实现)
伯利坎普迭代算法解决了BCH码译码中求错位多项式σx的问题,即用迭代算法求解方程组,极大地加快了译码速度。求最短线性移存器的迭代算法是梅西(J.Massey)于1969年提出的,而且指出了与BCH码迭代译码算法之间的关系,即求最短线性移存器的迭代算法实质上是伯利坎普提出的BCH码译码的迭代算法。
2023-12-18 08:08:24 94
原创 【Turbo乘积码2】基于EaE(Error-and-Erasure)的TPC码迭代译码的C语言实现及工程详细解析『需要完整工程代码请先私信』
上篇博客讲述了AWGN信道下TPC码迭代译码的原理及CPP实现,此次主要讨论一种改进的译码方式,也就是基于错误和擦除(Error-and-Erasure, EaE)的译码。
2023-12-05 07:21:05 125
原创 一种FSK信号符号同步的思想
FSK利用频率传输信息,即将信息流调制到频率上。以最简单的2FSK通俗来讲,用2个不同的频率f1f2来分别代表0和1,进而传输数字信息;那么对于8FSK,则有8个不同频率f1˜f8用来传输信息,每个频率每符号表示3比特信息。FSK信号的优点很多,比如抗多径效应、发送和接收简单等等,对于接收方来说,只需要判断当前符号内的频率是哪个,即可完成解调,但是如何找到符号的第一个采样点呢,也就是如何完成符号同步呢?
2023-11-01 21:44:53 213
原创 【Turbo乘积码1】AWGN信道下TPC码迭代译码的C语言实现及工程详细解析『需要完整工程代码请先私信』
Turbo 乘积码(TPC),也叫分组 Turbo码(BTC)。该码字是乘积码的一种,其中第一个分量码的参数为n1k1,第个分量码的参数为n2k2。图1中k1×k2的子阵包含了k1k2个数据比特。这个子矩阵中的列被“列码”编码,然后将得到的n1n2矩阵的行进行“行码”编码。或者,先进行行编码再进行列编码。因为码是线性的,所以得到的码字不受编码顺序的影响。特别地,“校验位的校验”这一子矩阵是不变的。乘积码总的码率是RR1。
2023-10-29 23:24:33 475
原创 【BCH码5】AWGN信道下BCH码的BM迭代(Berlekamp译码)C语言实现及工程详细解析『需要完整工程代码请先私信』
BCH码取自 Bose、Ray-Chaudhuri 与 Hocquenghem 的缩写,是编码理论尤其是纠错码中研究得比较多的一种编码方法。BCH码是循环码的一个重要子类,它具有纠多个错误的能力,BCH码有严密的代数理论,是目前研究最透彻的一类码。它的生成多项式与最小码距之间有密切的关系,人们可以根据所要求的纠错能力t很容易构造出BCH码,它们的译码器也容易实现,是线性分组码中应用最普遍的一类码。
2023-10-24 00:42:50 220
原创 Intel 高性能库之IPP信号处理简介及下载(版本5.1、6.1,含32位和64位及注册)
英特尔®集成性能基元(英特尔®IPP)是一款多核就绪的扩展函数库,其中包含众多针对多媒体、数据处理和通信应用高度优化的软件函数。它包括:视频编码:用于 DV25/50/100、MPEG-2、MPEG-4、H.263 和 MPEG-4 Part 10 (H.264) 编解码器的关键算法组件。图像和 2D 信号处理:包含多种可针对图像和图像内区域 (ROI) 执行的算法。计算机视觉:针对多种主要计算机视觉运算进行优化的函数,可用于安全、计算机控制、媒体管理、媒体注释等领域的应用程序。
2023-10-06 23:52:11 918
原创 【线程同步系列4】线程死锁问题及解决办法
线程1拥有了临界区对象A,等待临界区对象B的所有权,线程2拥有了临界区对象B,等待临界区对象A的拥有权,就造成了死锁。对多线程来说,如果线程1拥有了临界区对象A,等待临界区对象B的拥有权,线程2拥有了临界区对象B,等待临界区对象A的拥有权,那么这就造成了死锁。下面通过代码来演示线程死锁的发生。下面,我们来分析上述程序的执行过程。当线程1得到临界区对象g_csA的所有权之后,调用 Sleep函数,让线程1睡眠1ms,这将导致线程1暂停运行,其目的是为了让线程2优先得到临界区对象g_csB的所有权。
2023-06-19 13:06:55 976
原创 【数字信号处理】Goertzl算法详解推导及双音多频(DTMF)信号检测
根据卷积公式ynm−∞∑∞xmhn−mm0∑N−1xmhn−m可以发现,上式中ykN的计算可以看成是xn与ejN2πkn的卷积,因此可以理解为Xk是xn经过滤波器hnejN2πkn之后的输出,根据Z变换的性质ϵn↔z−1zanϵn↔z−az得ejN2πknϵn↔Hzz−ejN2πkz。
2023-05-28 21:29:11 968
原创 【循环自相关和循环谱系列7】OFDM循环自相关推导分析、时间参数估计原理仿真及某无人机实际图传信号验证(含矩形/非矩形、有无循环前缀等情况)
这是循环自相关和循环谱系列的第七篇文章了,前面的6篇讲的都是单载波信号的循环平稳性的理论推导和matlab仿真,之前也有很多读者都私信代码中计算循环谱相关部分代码的原理,均一一进行了回复,并发送了相应的论文,对读者们的支持,在此表示衷心的感谢!OFDM信号调制较为复杂,但是有很多方式引入循环平
2023-05-27 22:01:19 955 8
原创 【数字通信】PAM基带信号的功率谱原理推导详解
PAM信号可以说是最简单的数字通信信号,很多理论最初都是由该信号的表达式推导得到并进行拓展的,纵观各类数字信号的表达式,或多或少都有PAM信号的“影子”,也就是说PAM信号相关的理论知识是最基本的,很有必要搞清楚,本博客主要讨论PAM基带信号的功率谱的原理及推导过程,以教材为主线,对疑难步骤进行补充推导解释。
2023-05-23 19:56:45 792
原创 【循环自相关和循环谱系列6】信号的循环平稳性(循环自相关函数)基本原理及推导
在通信、遥测、雷达和声纳系统中,一些人工信号是一类特殊的非平稳信号,它们的非平稳性表现为周期平稳性。**通信信号**常用待传输信号对周期性信号的某个参数进行调制、如对正弦载波进行调幅、调频和调相,以及对周期性脉冲信号进行脉幅、脉宽和脉位调制,都会产生具有周期平稳性的信号。通常把统计特性呈周期或多周期(各周期不能通约)平稳变化的信号统称为循环平稳或周期平稳(CS:cyclostationary)信号。
2023-05-17 05:00:00 2049
原创 【网格图软判决译码】基于比特级的MAP译码(Bitwise MAP Decoding)算法原理推导和例题详解(intrinsic和extrinsic值)
C表示一个(n,k)码,生成矩阵为G,编码如下Encodinguu1...uk—>vv1...vnvu⋅Gvuv1u...vnu))rr1...rn为接收向量信道转移概率为p,即①Pui0∣rPui1∣r1−Pui0∣r※②Pui0∣r∑uui0Pu∣r③Pu∣rPrPuPr∣u④Pu。
2023-05-13 21:36:21 484
原创 【分组码系列】线性分组码的网格图和维特比译码
由于码字的比特位是统计独立的,所以编码过程可以利用有限状态机来描述,它能精确地确定初始和最终状态。可以利用网格图进一步描述编码过程[36],采用维特比算法进行最大似然译码.在GF(2)上定义线性分组码(n,k)。相应的(n-k)Xn维校验阵可以写成令码字为系统码, 前k位表示信息位, 后n-k位表示校验位,Sj表示深度为j时的状态(线性分组码的深度j最大为n网格图中的状态数由2n−k确定,每个状态以二进制形式可表示为长度n-k的矢量。令mm1m2,⋅⋅⋅mk。
2023-05-10 23:57:55 617
原创 【MFC系列】MFC单文档应用程序要点(一)
那么,当第一个线程到达,信号量为FALSE,线程打开文件进行访问,并将信号量置为TRUE;当人工重置的事件得到通知时,等待该事件的所有线程均变为可调度线程,且在一个线程得到该事件对象后并不会将该对象设置为非信号状态,也就是说人工重置的事件对象,除非显式得调用ResetEvent,否则始终处于有信号状态。可以看出,由于主线程初始化hMutex为有信号状态,所以线程1和线程2刚开始时会发生“争抢”,在hMutex第一次被置为无信号状态的过程中,两个线程的WaitForSingleObject语句同时执行了!
2023-05-03 22:15:11 637
原创 【数字通信】通俗易懂理解正交幅度调制(Quadrature Amplitude Modulation,QAM也叫幅相调制)
数字调制回顾,QAM调制、幅相调制、正交幅度调制
2023-04-30 05:00:00 441
原创 【FPGA笔记系列16】秒表电路之计数模块
对于秒表计数器来讲, 最小的计时单位为 0.1s 信号, 0.1s 的计数值 sec_div 就是一个独立的 10 进制计数器, 且计数时钟周期为 0.1s。因此, 可以将 0.1s 的计数值 sec_div 写在一个单独的 always 语句块内。第二段always 语句块同样以 50MHz 的时钟信号 clk 为驱动信号, 将() 的判断结果作为时钟允许信号, 描述周期为 10 的 0.1s 的秒表计数值。由于 cn_div 的计数周期为 0.1s,每次(
2023-04-11 05:00:00 196
原创 【FPGA笔记系列15】秒表电路之按键消抖模块
按键抖动示意图如图所示(图中的按键信号默认为低电平, 按下为高电平。如按键信号默认为高电平, 按下为低电平, 则按键信号的前沿为下降沿, 后沿为上升沿)。抖动时间的长短由按键的机械特性决定, 一般为 5ms~20ms。这是一个很重要的时间参数, 在很多场合都要用到。根据按键产生的实际信号特性, 可以采用下面的思路实现消抖功能。根据上述设计思路, 每检测到一次按键动作, 前沿计数器和后沿计数器均会有一次从 0持续计数至 20ms 的过程。
2023-04-10 05:00:00 165
原创 【FPGA笔记系列14】秒表电路之数码管显示部分
根据秒表电路的功能需求, 考虑硬件电路原理, 可以将程序分为两个子模块: 秒表计数模块(watch_counter) 及数码管显示模块(seg_disp)。两个模块的连接关系如图 8-2 所示。其中 dec2seg、 keyshape 分别为两个功能相对独立的子模块, dec2seg 用于完成段码的编码,keyshape 用于完成按键消抖功能。
2023-04-09 12:37:47 615
原创 【FPGA笔记系列13】呼吸灯电路设计
常规的 LED 灯只有亮(高电平) 及暗(低电平) 两种状态。如果产生一个周期性的脉冲信号用于驱动 LED 灯, 则 LED 灯会出现闪烁状态。如果脉冲信号的频率足够高(大于人眼的分辨频率 24Hz),则由于人眼的分辨率问题, 看起来 LED 灯仍然是恒亮的。此时, 只要控制脉冲信号的占空比(一个周期内高电平持续的时间占整个周期的比值),相当于控制了通过 LED 灯的平均电流大小, 就可以控制 LED 灯的亮度。
2023-04-08 19:27:22 1257
原创 【线程同步系列2】基于Event的VC++多线程同步
事件对象也属于内核对象,包含一个使用计数一个用于指明该事件是一个自动重置的事件还是一个人工重置的事件的布尔值,另一个用于指明该事件处于已通知状态还是未通知状态的布尔值。有两种不同类型的事件对象。一种是的事件,另一种是的事件。当人工重置的事件得到通知时,等待该事件的所有线程均变为可调度线程,且在一个线程得到该事件对象后并不会将该对象设置为非信号状态,也就是说人工重置的事件对象,除非显式得调用ResetEvent,否则始终处于有信号状态。
2023-03-28 14:16:12 742
《信息论》之信道容量和蜂窝通信课件+讲义+作业+代码.rar
2023-12-06
DGSD1-Qt.rar
2023-10-07
数字通信国外大学纯手写通俗易懂知识点讲解梳理(英文含习题和答案).rar
2023-05-12
intel-ipp-vxworks-users-guide-7.0
2023-04-15
Windows-64位-scikit库(含编译好的lib文件和SuiteSparse工程)
2023-03-11
Solutions Manual Digital Communication
2023-03-06
Solutions Manual Communication Systems Engineering
2023-02-19
基于SDL的魂斗罗VC版源码(可直接编译运行试玩).rar
2022-12-24
论文High-Order Digital Parametric Equalizer Design对应的代码
2022-08-29
VB语言与测量程序设计之水准网平差程序设计完整项目工程(含测试输入数据)
2022-05-21
MATLAB库函数polly2trellis(卷积码生成多项式转网格图描述)的VS2010工程源码.rar
2022-01-19
【BCH码2】BCH码的快速BM迭代译码原理详解及MATLAB实现(不使用MATLAB库函数).rar
2021-11-19
[精品资料]信号与系统习题和答案详解.rar
2021-11-08
Office系列完全干净卸载工具合集(最全).rar
2021-10-01
RF50_开发测试板_DEMO和原理图_V1.1_CN.rar
2021-08-23
U-EC5编程操作指南.rar
2021-08-21
LMMSE、Godard、CMA常模、Sato等算法在信道均衡中的应用理论
2021-08-07
【黑客帝国数字雨屏保】基于Win32的黑客帝国数字雨屏幕保护程序.7z
2021-05-07
【32位win7一键扫雷】32位win7系统自带扫雷游戏逆向分析之一键扫雷.rar
2021-05-06
信号处理和数字滤波课件和试卷.rar
2021-03-13
IDA逆向分析缓冲区溢出攻击漏洞实例.rar
2021-03-12
基带模型下高阶累积量的MFSK的调制识别代码、参考文献和Mind图
2021-03-06
依赖于个体的空间或时间无标度行为的群体混合(Hybrid)搜索算法(课件和C语言代码).rar
2021-02-07
【英文课件】稀疏编码理论(LDPC、Fountain Codes、Turbo Codes).rar
2021-02-05
Pointofix.zip
2021-02-01
考研英语一大作文救命模板.docx
2021-01-14
Windows10+VS2017下GSL1.8_x86配置文件及schneider_et_al_2016_animaldiversity项目编译运行
2020-11-29
FM调制解调音频文件.rar
2020-09-20
FFTW-3.3.5-x86-x64头文件、lib库文件和dll文件
2020-09-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人