自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 收藏
  • 关注

原创 ZYNQ通过AXI DMA实现PL发送连续大量数据到PS DDR

PL 和 PS 的通信方式有 AXI GPIO、BRAM、DDR等。对于数据量较少、地址不连续、长度规则的情况,BRAM 比较适用。而对于传输速度要求高、数据量大、地址连续的情况,比如 ADC,可以通过 AXI DMA 来完成。本文介绍如何在 ZYNQ 上使用 AXI DMA 实现从 PL 发送大量连续数据到 PS 的 DDR 存储器,适用于搬运 ADC 连续采样数据。

2023-11-10 11:04:17 5541 30

原创 HLS实现CORDIC算法计算正余弦并上板验证

本文介绍CORDIC算法计算正余弦的HLS代码,并上板验证的代码的可行性。

2023-08-26 18:36:29 1046

原创 HLS实现FIR低通滤波器并上板验证

本文介绍用HLS编写FIR滤波器代码并做相应优化,HLS代码编写好后导入System Generator进行仿真,最后上板验证代码的可行性。

2023-08-13 22:21:34 918

原创 ZYNQ无SD卡配置Linux系统到QSPI Flash和eMMC

本文介绍在ZYNQ上,没有SD卡时,如何用QSPI Flash和eMMC启动Linux系统。QSPI Flash放置BOOT.BIN,eMMC的第一个分区(FAT32格式)放置image.ub和system.dtb,eMMC第二个分区(EXT4格式)放置根文件系统放。eMMC的操作和SD卡一样,难点是如何格式化eMMC,其他步骤和用SD卡时差不多。

2023-05-22 12:04:47 4617 5

原创 Gauss-Seidel迭代法求解线性方程组

介绍Gasuu-Seidel迭代法求解线性方程组的公式,给出实现Gasuu-Seidel迭代法的C语言代码。

2023-05-14 17:00:59 1291 1

原创 Jacobi迭代法求解线性方程组

介绍Jacobi迭代法求解线性方程组的公式,给出实现Jacobi迭代法的C语言代码。

2023-05-14 16:31:11 1210

原创 ZYNQ移植uCOSIII

本文介绍在ZYNQ开发板上移植uCOSIII操作系统,配置BSP,这里记录部分关键步骤,实现串口打印字符串。

2022-07-01 00:55:43 1823

原创 MATLAB生成M序列和Gold序列

本文简要介绍了M序列和Gold序列的特点和MATLAB生成方法,并给出MATLAB代码。

2022-06-16 00:19:49 9656 10

原创 三层BP神经网络公式推导及C语言实现

本文推导了三层BP神经网络的训练公式,并给出C语言代码。

2022-05-02 18:42:35 2682

原创 基于插值算法和Gardner定时误差检测的OOK信号定时同步的FPGA实现

本文介绍如何用FPGA实现基于插值算法的OOK信号定时同步。定时同步的主要模块包括插值滤波器、定时误差检测器、环路滤波器和数控振荡器。我们的目标是用外部提供50MHz时钟的zynq7100芯片实现400MHz采样频率和100Mbps的OOK数字基带信号的定时同步。...

2022-04-30 21:33:54 3110 52

原创 Vivado的DDS IP核实现连续相位2FSK

本文介绍如何使用DDS IP核实现连续相位二进制频移键控。输入比特速率1MHz,1 bit对应的载波为4MHz正弦信号,0 bit对应的载波为6MHz正弦信号,系统时钟频率50MHz。

2022-02-05 01:31:25 4671 6

原创 Vivado的FIR IP核实现低通滤波器

  本文介绍如何使用Vivado的FIR IP核实现低通滤波器。我们将设计一个采样频率为10MHz,通带0~1MHz,阻带高于2MHz的FIR低通滤波器。测试时,滤波器的输入信号为1MHz和3MHz的正弦波的叠加信号,期望滤波器能输出失真较小的1MHz的正弦信号。

2022-01-24 22:47:33 16379 23

原创 Vivado将.v文件作为模块加入Block Design

本文介绍在Vivado中,如何在不封装IP core的情况下将HDL写的模块放入Block Design。

2021-09-13 23:51:18 14470 3

原创 GD32F103配置SPI+DMA收发数据

本文介绍如何配置GD32F103系列的SPI和DMA,并贴出相关代码。

2021-08-19 23:54:47 9643 13

原创 基于Qt的.bmp图片转C语言数组或.bin二进制文件方法

用Qt设计了可以将bmp格式的图片转换为C语言的数组和二进制文件的小工具,并贴出了部分转换代码。

2021-08-19 23:13:45 2663

原创 测量RT-Thread线程调度的时间的方法

在实时操作系统中,线程调度花费的时间是一个值得关注的影响系统实时性的因素,尤其是在系统需要处理紧急的任务时,线程调度的时间更是不能忽略。本文给出了一种在GD32单片机上测量RT-Thread系统线程调度时间的方法。

2021-08-15 01:28:48 1386

原创 STM32F4单定时器独立输出四路PWM脉冲

本文以STM32F405单片机为例,介绍如何用一个定时器的四个通道独立地输出四路PWM脉冲。主要使用定时器输出比较的翻转功能和捕获比较中断。

2021-04-05 23:37:57 8439 2

原创 MATLAB的bertool绘制误码率理论值与仿真值对比曲线

MATLAB提供了bertool来分析通信系统的误码率,本文以BPSK(二进制相移键控)为例来说明如何使用bertool绘制误码率理论值与仿真值对比曲线。

2021-03-20 00:06:12 11506 50

原创 证据理论的模态逻辑解释

论文“On Modal Logic Interpretation of Dempster-Shafer Theory of Evidence”的用模态逻辑解释证据理论,本文记录我对该文献的理解。

2021-02-21 03:11:03 581

原创 模态逻辑(4)—— 模态逻辑的系统 T

模态逻辑系统 T,模型中的关系 R 具有反身性,即系统 T中的可能世界都能到达自身。

2021-02-21 00:52:36 700

原创 模态逻辑(3)—— 模态逻辑的系统

本文引入了模态逻辑的模型 M=<W,R,V>,模态逻辑的系统和系统 K。

2021-02-21 00:52:08 1259

原创 模态逻辑(2)—— 模态逻辑基本概念

在命题逻辑中使用的运算符全部是真值函数运算符 (Truth-functional operator),而模态逻辑关心额外的非真值函数的 (non-truth-functional) 概念。

2021-02-21 00:51:46 2201

原创 模态逻辑(1)——从命题逻辑开始

模态逻辑 (Modal logic) 研究的是“必然 (Necessity)”和“可能 (Possibility)”及相关概念。模态逻辑基于命题逻辑 (Propositional calculus, PC) ,在命题逻辑中,我们仅考虑事情在现实情况下的真 (Truth) 假 (Falsity),而模态逻辑还考虑在其他可能情况(或称为可能世界,possible world,这类情况可能存在但现实不处于这类情况)下,事情是真还是假。

2021-02-21 00:51:23 1334

原创 证据理论(3)—— 计算两个证据体的距离

计算两个证据体的距离的主要思想是:定义一个由幂集中的元素作为基底的向量空间,一个证据源的基本概率分配函数 (bpa) 就是该证据源在向量空间上的向量,然后在此基础上定义和计算距离。

2021-02-14 02:26:59 3843 9

原创 证据理论(2)—— 多种合成公式

本文总结了 Yager、孙全、Smets、Dubois and Prade、Discounting and Dempster 和 Murphy 合成公式,并给出计算示例。

2021-02-08 00:03:15 4862 3

原创 证据理论(1)—— DS证据理论基本理论

证据理论 (Theory of Evidence) 是由 Dempster 首先提出,由Shafer进一步发展起来的一种不精确推理理论,也称为 Dempster-Shafer (DS) 证据理论。证据理论可以在没有先验概率的情况下,灵活并有效地对不确定性建模。

2021-02-06 17:58:43 14192 13

原创 OpenGL画太阳系

分享一个OpenGL画太阳系的代码。鼠标左键拖动改变观察点位置,鼠标右键点击点开菜单。

2020-10-24 10:10:26 2039 2

原创 (n,k,N)卷积码的生成矩阵

(n,k,N)卷积码是将每k个信息比特作为一组,编码成n个编码比特输出。卷积码的生成矩阵就是在描述 kN位输入移位寄存器的每一位与每个模2和加法器的连接关系。本文按”子生成元→生成元→子生成矩阵→生成矩阵”的顺序叙述。

2020-06-01 18:12:20 10548

原创 VHDL的GENERATE语句实现四位全加器

1位全加器接口有:A被加数输入端,为加数输入端,C进位输入端,CO进位输出端,S和数输出端。1位全加器表达式如下:S=A xor B xor C, CO=(AB)+(AC)+(BC)。本文用VHDL语言的GENERATE语句用四个一位全加器实现一个四位全加器。

2020-05-24 00:27:34 5402 2

原创 C语言实现HDB3编码与译码

AMI码存在出现长的连0串的缺点,为了克服AMI码的缺点,人们设计了HDB3码。

2020-05-23 20:22:30 5161 11

原创 C语言实现AMI码

AMI码全称是传号交替翻转码。AMI码把单极性非归零NRZ码中的0码与零电平对应,1码对应极性正、负交替变换的电平。例如:原二进制序列:0 0 1 0  1 1 0    AMI码:0 0 1 0 -1 1 0

2020-05-23 12:24:59 3159

原创 单极性非归零NRZ码、双极性非归零NRZ码、2ASK、2FSK、2PSK、2DPSK及MATLAB仿真

单极性非归零NRZ码  在表示一个码元时,二进制符号1和0分别对应基带信号的正电平和零电平,在整个码元持续时间,电平保持不变。发1和发0等概率时,单极性非归零NRZ信号的功率谱密度为Ps(f)=14TbSa2(πfTb)+14δ(f)P_s(f)=\frac{1}{4}T_{b}Sa^{2}(\pi fT_{b})+\frac{1}{4}\delta (f)Ps​(f)=41​Tb​Sa2(πfTb​)+41​δ(f), TbT_bTb​ 是码元宽度。双极性非归零NRZ码  二进制符号1和0分别对应基

2020-05-22 00:23:18 12122

原创 STM32上μC/Shell移植与应用

本着“停课不停学”的原则,在家也不能闲着,最近在进一步探索μC/OS时发现了μC/Shell,果断决定尝试一下。Silicon Labs收购Micrium后,将其产品开源了,GitHub上可以下载代码。https://github.com/SiliconLabs下面先介绍μC/Shell的文件结构,再介绍移植方法和实际应用。μC/Shell文件结构\Cfg\Template\she...

2020-03-22 15:43:42 2188 1

原创 Cortex-M3寄存器组、汇编语言与C语言的接口介绍

学uCOS的任务切换时涉及到汇编代码。为了能理解汇编代码,我在网上了解了Cortex-M3寄存器组、C与汇编的接口的知识,在这里分享给大家。先来介绍Cortex-M3寄存器组:Cortex-M3拥有16个通用寄存器R0-R15。R0-R12都是32位通用寄存器,用于数据操作。R13是堆栈指针。在CM3处理器内核中共有两个堆栈指针,于是也就支持两个堆栈。当引用R13(SP)时,你...

2020-02-02 17:43:55 1219 1

原创 STM32F4单片机ADC采样及ARM-DSP库的FFT

模拟信号经过ADC采样后变成数字信号,数字信号可以进行FFT运算,在频域中更容易分析信号的特征。本文将介绍如何用STM32F4的进行ADC采样,并利用ARMDSP库里的FFT算法对ADC采样值进行快速傅里叶变换。

2019-07-29 12:31:00 11667 21

原创 VHDL语言实现32位二进制数转BCD码

使用FPGA开发板上的数码管显示数值,需要将数值转换成对应的BCD码,再通过七段译码器将数值显示在数码管上。我用除十取余的方法,用VHDL写了32位二进制数转BCD码代码。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTI...

2019-06-09 10:51:30 4741 6

原创 单片机串口数据处理(2)——uCOSIII+循环队列接收数据

上一篇文章介绍了串口发送数据的优化方法,使用中断的方式发送数据可以提高系统实时性。这次介绍串口接收数据的方法。新的数据接收方法结合了uCOS-III和循环队列,有较好的实时性。同时,使用STM32的总线空闲中断判断数据包接收完毕,使用状态机检查数据包正误。配置USART时要使能总线空闲中断,当MCU检测到串口总线上有一个字节的时间没有接收数据时便触发中断。在中断处理函数中必须软件清除中断标志位...

2019-02-15 14:44:03 5682 1

原创 单片机串口数据处理(1)——串口中断发送数据

实时性在嵌入式开发中的非常重要,优化MCU串口传输处理方式可以提高嵌入式系统的实时性。在互联网上学习并亲自实验(基于STM32单片机)后,我将分两次介绍优化MCU串口收发数据的方法,参考资料将在第二篇博客中列出。第一次先介绍串口发送数据的优化。发送方式一:方式一采用“死等”的方式发送数据,即在while循环中等待字发送完成标志位置位。void usartsend(void){ ...

2019-02-13 12:27:49 9731

原创 STM32单片机ADC规则组多通道转换-DMA模式

模数转换器(Analog To Digital Converter)简称ADC(也可以写成A/D),是指将连续变化的模拟信号转换为离散的数字信号的器件。 直接存储器存取技术(Direct Memory Access)简称DMA。DMA用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。无须CPU干预,数据可以通过DMA快速地移动,这就节省CPU的资源可以做...

2018-11-11 16:49:33 7798

原创 C语言常用字符串处理函数

C语言常用字符串输入函数

2018-02-09 13:03:46 1359

HLS设计CORDIC算法计算正余弦

HLS设计CORDIC算法计算正余弦,包括HLS工程和vivado工程。详细内容见博客:https://blog.csdn.net/QDchenxr/article/details/132514284?spm=1001.2014.3001.5501

2023-08-26

HLS设计FIR滤波器工程

HLS设计FIR滤波器工程,包括HLS工程,HLS导入System Generator后的simulink模型,上板验证的vivado工程。详细内容见博客:https://blog.csdn.net/QDchenxr/article/details/132263210?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22132263210%22%2C%22source%22%3A%22QDchenxr%22%7D

2023-08-13

ZYNQ7010的uCOSIII模板

ZYNQ7010的uCOSIII模板,Vivado版本2017.4,芯片选择ZYNQ7010。PS配置了一个UART和一个以太网接口,SDK工程包括一个串口通信示例、tcp示例、dns示例。

2022-06-27

三层BP神经网络C语言代码

C语言写的三层BP神经网络代码,用fisheriris数据集训练和测试网络,也可以用于其他分类问题。 一个输入层,一个隐藏层,一个输出层,各层的节点数都可以设置。属性数据归一化采用Z-score算法,标签数据归一化采用Min-Max算法。激活函数采用Sigmoid函数。 BPNN.c和BPNN.h中包含BP神经网络代码: bpnn_Train函数训练网络; bpnn_predict函数预测测试数据; bpnn_FileOutput函数输出网络参数和模型至文件; bpnn_LoadModel函数加载网络模型。 main.c中有两个测试函数: 测试读取训练数据"train.data",训练网络,输出网络参数"bpnn_out.txt"和模型"bpnn.bin",读取测试数据"test.data",输出测试结果"test_out.txt"。 相关公式推导请看我的博客:https://blog.csdn.net/QDchenxr/article/details/124543772

2022-05-02

FPGA实现2FSK调制、包络检波解调、位同步的Vivado工程

FPGA实现2FSK调制、包络检波解调、位同步的Vivado工程,包括完整的Vivado工程文件和MATLAB的仿真与设计文件; 输入比特速率1Mbps,采样频率50MHz,FskMod.v模块实现2FSK, FskDemod.v模块实现2FSK的解调,采样频率25MHz,包络检波由低通滤波器完成,位同步采用数字锁相环技术,采样频率为10MHz; 经过行为仿真,位同步后能解调模块能正确还原调制模块的输入数据。

2022-02-07

FPGA实现ASK幅度键控调制、包络检波解调、位同步的Vivado工程

FPGA实现ASK幅度键控调制、包络检波解调、位同步的Vivado工程,包括完整工程文件和MATLAB的仿真与设计文件; 输入比特速率1Mbps,采样频率10MHz,AskMod.v模块实现幅度键控调制,AskMod_Beamform.v模块实现基带波束成形和幅度键控,二者在顶层文件中例化一个就可以; AskDemod.v模块实现2ASK的解调,采样频率10MHz,包络检波由低通滤波器完成,位同步采用数字锁相环技术; 经过行为仿真,位同步后能解调模块能正确还原调制模块的输入数据。

2022-01-31

Vivado的FIR IP核实现低通滤波器工程

Vivado的FIR IP核实现低通滤波器工程,包括完整工程文件和MATLAB设计FIR的.m文件; 采样频率10MHz,输入信号为1MHz和3MHz的正弦波的叠加信号; FIR滤波器为低通滤波器,通带0~1MHz,阻带高于2MHz; 经过行为仿真,滤波器能够有效滤除3MHz正弦信号,保留1MHz正弦信号。

2022-01-23

vivado工程block_led.rar

Vivado向Block Design添加.v文件模块示例工程,在Block Design的Diagram中添加了一个闪LED灯的模块。

2021-09-15

Micrium-uC-Probe

uC/Probe4.8.0.0免费版本,安装即可使用。uC/Probe是micrium公司推出的嵌入式系统调试工具。

2021-01-28

texstudio3.0.4+《一份(不太)简短的LATEX介绍》

本资源包括texstudio最新版本3.0.4安装包和一份学习LaTeX学习资料

2021-01-28

C语言AMI编码,HDB3编、译码,Matlab绘制波形代码.rar

C语言实现AMI编码,HDB3编码及译码,MATLAB绘制波形。 运行hdb3_test.c,编/译码结果输出在test_out.txt文件里。 HDB3_Encoding.c和HDB3_Dncoding.c是用来编译成MATLAB的.mexw文件的。 hdb3_encoding_decoding.m文件是用MATLAB绘制波形的文件。

2020-05-23

STM32F4-uCOSIII-uCShell模板.rar

μC/Shell工程模板(亲测可用)。 μC/Shell是一个独立的模块,能够解析和执行一个包含一个命令字符串及其参数进行。

2020-03-22

STM32F4 ADC采样FFT运算测试代码

模拟信号经过ADC采样后变成数字信号,数字信号可以进行FFT运算,在频域中更容易分析信号的特征。此代码用STM32F407的ADC-DMA模式采集4096个点的数据,利用DSP库里的FFT算法进行快速傅里叶变换,经实测可以使用。

2019-07-29

STM32F405的uCOSIII模板

在STM32F405单片机上移植好的uCOSIII操作系统,已将SYSTICK、PendSV等异常的服务函数名称修改为STM32使用的名称,针对cortex-m4的浮点运算单元做了修改。此模板已编译通过并在实际项目中验证过可以使用

2019-02-22

STM32F103的uCOSIII模板

在STM32F103单片机上移植好的uCOSIII操作系统,已将SYSTICK、PendSV等异常的服务函数名称修改为STM32使用的名称,此模板已编译通过并在实际项目中验证过可以使用

2019-02-22

uCOS-III及循环队列串口收发示例

结合uCOS-III和循环队列的串口数据收发方式,实时性好。接收方面,使用STM32的总线空闲中断判断数据包接收完毕并发布消息,使用状态机检查数据包正误。发送方面,采用中断的方式发送数据,避免程序死等数据发送完毕。

2019-02-15

C与汇编语言实现流水灯

用C和汇编写的流水灯的程序,以此演示C语言调用汇编函数,其中LED亮灭的切换由汇编代码实现。

2018-12-31

STM32F1系列单片机多通道ADC-DMA模式配置方法

ADC规则组多通道转换时,只能读取到最后一个通道的数据,因此ADC的多通道转换天生适合DMA模式,当每个通达转换完毕后,发送DMA请求,通过DMA直接传输到设定的内存缓存区中,从而解决了ADC多通道转换数据被覆盖的问题,同时CPU不需要频繁读取ADC的数据,大幅提高执行效率。本资源以4通道为例,配置ADC和DMA,希望对读者有帮助。

2018-11-11

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除