自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 循环神经网络

用过去的数据来预测当前或未来的值。例如,预测可以用前面的。但问题是:随着序列变长,输入会越来越多,计算变得困难。

2025-09-19 08:53:52 105

原创 批量规范化-残差网络(ResNet)-稠密连接网络(DenseNet)

摘要:本文介绍了深层神经网络训练中的关键技术——批量归一化(BatchNorm)和残差网络(ResNet)。批量归一化通过规范化中间层输入,加速训练收敛并提高模型稳定性,其实现包括训练时使用mini-batch统计量、预测时使用移动平均。ResNet通过残差连接解决深层网络退化问题,包含基本残差块结构和完整的网络架构。此外还简要提及了DenseNet的稠密连接思想。文中提供了PyTorch实现的详细代码,包括BatchNorm层、残差块和ResNet网络构建方法,涵盖了卷积层、批归一化、激活函数和跳跃连接等

2025-09-17 00:18:07 660

原创 现代卷积神经网络

本文介绍了四种经典卷积神经网络的实现方法:AlexNet采用11×11大卷积核和4步长,通过多层卷积和全连接层实现;VGG使用重复的3×3卷积核和最大池化块构建深度网络;NiN采用1×1卷积替代全连接层,显著减少参数数量;GoogLeNet则创新性地使用Inception模块并行处理不同尺度特征,通过9个Inception块堆叠实现高效特征提取。这些网络在结构设计上各有特色,为后续深度学习模型发展奠定了基础。

2025-09-15 01:50:47 467

原创 卷积神经网络

摘要:本文介绍了卷积神经网络中的核心运算——互相关运算(cross-correlation),阐述了其与数学卷积的区别,并展示了二维互相关运算的PyTorch实现。详细讲解了卷积层的构建方法,包括参数初始化、多通道输入输出处理、1×1卷积的特殊作用,以及汇聚层的最大池化和平均池化操作。最后以LeNet为例,展示了完整的CNN实现流程,包括网络架构定义、训练过程、GPU加速和性能评估。文章通过代码示例直观地展示了卷积核学习、形状计算、填充步幅等关键概念,为理解CNN的工作原理提供了实践指导。

2025-09-14 21:03:48 674

原创 权重衰减与暂退法

本文介绍了两种防止机器学习模型过拟合的技术:权重衰减(L2正则化)和暂退法(Dropout)。权重衰减通过在损失函数中加入参数平方和的惩罚项,使模型保持较小权值,提高泛化能力。暂退法则在训练时随机丢弃部分神经元,破坏神经元间的共适应性。文章详细阐述了两种方法的数学原理,并提供了PyTorch实现代码,包括数据生成、模型构建和训练过程。实验对比显示,使用这些正则化技术能有效控制过拟合,使测试性能更稳健。

2025-09-10 22:33:19 366

原创 动手学深度学习——多层感知机

本文介绍了多层感知机(MLP)的实现原理,重点分析了激活函数的作用和常见类型。文章指出单纯使用线性层只能实现线性变换,需要通过ReLU、sigmoid、tanh等非线性激活函数引入非线性表达能力。文中详细比较了三种常用激活函数的优缺点,并给出了基于PyTorch的Fashion-MNIST分类任务实现代码,包括模型构建、参数初始化、训练流程和评估方法。实验部分展示了训练损失和测试准确率的变化曲线,以及模型在测试集上的预测结果可视化。该实现使用256个隐藏单元的两层网络结构,通过SGD优化器和交叉熵损失函数进

2025-09-10 19:50:52 558

原创 动手学深度学习——softmax回归

本文介绍了Softmax回归在分类问题中的应用及其实现方法。主要内容包括:1) Softmax回归原理,用于多分类问题并能输出类别概率;2) 核心数学推导,包括softmax函数、交叉熵损失函数;3) 使用PyTorch从零实现,包含数据加载、模型构建、训练评估等完整流程;4) 在Fashion-MNIST数据集上的应用,展示了训练过程、损失曲线和预测结果可视化。文章提供了两种实现版本:详细注释版和精简优化版,内容涵盖模型参数初始化、前向传播、损失计算、优化器设置、训练循环和性能评估等关键环节。

2025-09-07 00:55:18 549

原创 动手学深度学习——线性回归 + 基础优化算法

本文介绍了使用PyTorch实现线性回归的完整流程。首先通过synthetic_data()函数生成模拟数据,包括特征矩阵X和标签y,并添加随机噪声。接着定义data_iter()函数实现小批量数据迭代功能。然后初始化模型参数w和b,定义线性回归模型linreg()和均方损失函数squared_loss()。优化算法采用自定义的sgd()函数实现小批量随机梯度下降。训练过程中,通过前向传播计算损失,反向传播更新参数,并输出每个epoch的训练损失和参数估计误差。最后对比了原始实现和PyTorch简化版本,并

2025-09-04 23:55:07 824

原创 机器学习笔记-第二周

本文系统介绍了深度学习模型调参和优化的关键技术。主要内容包括:1)手动调参方法,强调基线选择、单参数调整和管理复现;2)AutoML技术,涵盖HPO和NAS的各类搜索算法;3)归一化技术(BN/LN)的作用原理;4)迁移学习的微调策略。文章重点分析了不同调参方法的优缺点,如网格搜索的完备性但效率低,贝叶斯优化的平衡性,以及NAS在架构搜索上的突破。同时指出当前趋势是逐步转向自动化调参,但需权衡计算成本与效果。

2025-09-02 21:50:24 756

原创 机器学习笔记-第一周

本文系统介绍了机器学习中的核心模型与方法,包括决策树(随机森林、GBDT)、线性模型、神经网络(MLP、CNN、RNN)、模型评估指标(准确率、召回率、ROC等)、过拟合与欠拟合问题,以及集成学习方法(Bagging、Boosting、Stacking)。重点分析了不同模型的特点、适用场景及优化策略,如Bagging降低方差、Boosting减少偏差、Stacking融合多模型优势。通过理论解释和代码示例,展示了如何选择、训练和评估机器学习模型,为实际应用提供了系统指导。

2025-08-26 21:47:46 326

原创 FPGA FM信号IQ解调

FPGA FM信号IQ解调。

2025-07-29 12:57:49 224

原创 FPGA AM调制解调

matlab仿真代码如下。

2025-07-28 22:12:01 18

原创 SI5351驱动

当使用同一个PLL想要输出两个不同的频率的时候,会有一个频率输出不准确,因为分频不准确。这个函数可以设置通道,频率,和PLL。这个函数只能设置通道1。

2025-07-25 16:18:22 219

原创 FPGA数字锁相环

总体框图:鉴相器原理:输入信号和输出信号相乘然后经过低通滤波器得到相位差。

2025-07-23 17:30:30 254

原创 FPGA实现FM调制

本文介绍了FM调制的原理及FPGA实现方法。首先解析了FM调制的关键公式,包括调制信号归一化、瞬时角频率计算等核心参数。随后详细展示了一个基于Verilog的FM调制模块设计,包含载波频率、最大频偏等参数设置,以及信号处理流程。文章还提供了改进后的精简代码版本,优化了参数配置。最后介绍了用于计算频率系数的Python工具,该工具可将浮点数转换为定点数格式,并支持频率累加器计算功能。整个方案实现了从理论推导到FPGA实现的完整FM调制系统设计。

2025-07-19 14:15:57 79

原创 FPGA常用模块驱动和引脚约束和常用模块代码

本文介绍了多款ADC/DAC模块的Verilog驱动实现及引脚约束配置,主要包括: ADC模块: AD9248:双通道14位ADC,采用DDR模式采集数据,通过AXI-Stream接口输出 AD9226:双通道12位ADC,处理了数据位序反转问题 DAC模块: AD9764:双通道14位DAC,实现数据偏移处理 AD9767:双通道14位DAC,包含写使能信号控制 辅助模块: 按键消抖(key_debounce) 数据移位(sheftleft/sheftright) 时钟分频(clk_divider) 每个

2025-07-17 23:12:17 196

原创 FPGA实现2019年G题接收端信号分离

本文提出了一种从混合信号中分离A路和B路信号的FPGA实现方案。系统首先通过DDS生成1kHz和6kHz正弦信号相加,经CIC滤波器降采样后,采用跨时钟域处理技术(使用AXI4-StreamClockConverter IP核)分别进行低通和高通滤波。低通输出直接得到A路信号,高通输出需下混频恢复B路信号。最终仿真成功获得两个1kHz信号,验证了该方案的正确性。设计通过优化时钟域转换和滤波处理,有效节省了DSP资源,实现了信号的高效分离。

2025-07-17 19:00:27 276

原创 2023年B题同轴电缆算法总结

首先通过这段代码从1M到400M进行扫频,频率是等比数列递增的。扫频结果大致如图所示,然后要找到一个凹陷点处所对应的频率。然后根据第一次扫频得到粗略的结果进行左右搜索100次。SI5351输出25M精准的时钟给AD9910,Measurement是暴力遍历搜索。Measurement1是左右搜索。ADC采集对数检波后的直流电压。AD9910产生扫频波形,

2025-07-05 16:14:01 209

原创 改进的SI5351驱动AD9910产生任意频率波

代码中加入了下图中的函数,是一个寻找可以实现AD9910输出超级精准频率的相关参数的函数,通过找到的参数配置AD9910和SI5351。可以实现小数点后数位的频率精准度。

2025-07-05 10:49:01 153

原创 AD9248——FIFO

该Verilog模块实现了一个基于AD9248 ADC芯片的数据采集系统。系统通过PLL生成65MHz时钟驱动ADC,采用双通道FIFO(深度4096)存储采样数据。主要功能包括: 时钟管理:生成相位差为180°的两个65MHz时钟分别用于ADC驱动和数据锁存 数据采集:在时钟上升沿和下降沿分别锁存双通道ADC数据 采样率控制:通过32位计数器实现可编程采样间隔 状态控制:采用两状态(空闲/采集)FSM,在FIFO空时启动采集,满时停止 跨时钟域同步:对控制信号和状态信号进行两级同步处理 FIFO接口:提供

2025-07-03 20:39:55 9

原创 MSPM0G3507-硬件IIC驱动OLED

硬件IIC驱动OLED首先添加这几个驱动文件。

2025-06-22 19:01:37 222

原创 HC-05相互通信

8.设置两模块的连接模式,默认是:0(指定蓝牙地址连接模式,这样主机模块才能自动连接绑定的地址)->设置为模式0:AT+CMODE=0 [查询指令:AT+CMODE?7.设置两模块的通信波特率,此次设置为115200,AT+UART=115200,0,0。将第二个模块设置为从机模式,发送:AT+ROLE=0。将第一个模块设置为主机模式,发送:AT+ROLE=1。发送绑定蓝牙地址指令,AT+BIND=5856:00:00BC69。3.设置配对码,如设置为0214,AT+PSWD=“0214”,

2025-05-23 17:47:22 126

原创 2025年电赛校赛总结

该系统通过1秒定时器中断实现频率测量,采用两个级联定时器提高计数精度。在中断中,系统停止计数并计算频率,随后根据频率调整采样率并启动ADC采集。采集到的信号通过中值滤波和均值滤波进行平滑处理,随后进行波形类型判断(方波、正弦波、三角波)。根据波形类型,系统采用不同方法测量峰峰值,并通过OLED显示频率、峰峰值和波形类型。此外,系统支持音频识别功能,能够通过按键切换信号测量和音频识别模式。整体设计通过定时器中断和滤波算法实现了高精度的信号处理和显示功能。

2025-05-11 10:48:46 19

原创 像STM32一样优雅的使用MSPM0G3507的ADC

像STM32一样优雅的使用MSPM0G3507的ADC

2025-03-31 21:15:43 26

原创 重新改写的AD9910驱动

AD9910驱动

2025-03-29 08:49:41 17

原创 凌智电子AD9910功能详细解析

首先放上我修改之后的HAL库.c.h文件。

2025-03-27 11:53:59 19

原创 STM32H723ZGT6使用ADC+DMA时数组大小问题导致的卡死

我们再看一眼CubeMX,默认把Stack Size设置为了0x400,也就是1024比特,正好对应512个uint16_t数据,所以我们把这个Stack Size调大,直接加一个0,增大16倍。在我尝试旧版本CubeMX,新版本CubeMX都无果之后,终于意识到这个是跟数组大小有关的,因为我一开始直接设置的数组大小是1024,后来才想到改小一点试试。当设置数组长度大于512时,哪怕设置为513,在调试的时候程序就会卡死在。这下子,把数组长度设置为8192=512*16,还是可以正常采集。

2025-03-19 16:54:33 186

原创 STM32HAL-定时器输入捕获与定时器ETR测量方波频率、占空比

结合定时器输入捕获和定时器ETR功能来实现方波的频率、占空比的测量。

2025-03-12 11:44:16 53

原创 Turing Complete-逻辑引擎

第一步:解析指令,指令是一个八位的操作码,八位操作码中只有低二位起作用,需要2-4译码器解析操作码。解决办法:观察真值表可知,只需要将或门的输出镜像就可以得到与非门,镜像的操作是在输入前加非门。解决办法:用一个八位分线器得到低二位,将第二位接到3-8译码器,就能得到2-4译码器了。第二步:分别实现按位或、按位与非、按位或非、按位与。2.按位与非则需要通过或门和非门搭建与非门。把之前搭建的与非门再接一个非门即可。1.按位或直接使用八位或即可。3.使用或门和非门搭建或非门。4.使用或门和非门搭建与门。

2025-02-05 10:24:44 274

原创 Turing Complete-小盒子

第一步:我们要判断要读取哪个地址,通过一位解码器和4个与门就可以把两个地址位转化为4个与门的输出。第二步,通过开关和8位存储器,组成4个8位存储器,将开关的启用端和第一步与门的输出相连。开关的输入端连接读取或者写入,再将8位存储器的输入输出分别连接即可。搭建4个8位存储器,这个存储器可以随意读写,有2个地址位。

2025-02-05 08:47:28 479 1

原创 Turing Complete-3位解码器

判断二:3个输入中是否有1个绿色,并确定是输入1、输入2还是输入3。判断三:3个输入中是否有两个绿色,并确定是输入1、输入2还是输入3。解决办法:通过两个并联的与门,一个或门,一个异或门来判断。解决办法:通过两个并联的与门,一个异或门来判断。解决办法:三个输入通过三输入或门再取反。解决办法:通过一个三输入与门来判断。穷举法,通过与门和非门穷举所有情况。判断一:3个输入中是否有0个绿色。判断四:3个输入中是否有三个绿色。就是搭建一个3-8译码器。使用四种判断来解决问题。

2025-02-04 15:56:21 434

原创 Turing complete-相反数

2.补码求相反数的方法是“按位取反再加一”。1.计算机中负数的表示方法是补码表示法。

2025-02-04 13:46:47 270

原创 Turing Complete-总线

首先通过一个非门两个开关,来控制输入口。要注意的是将两个开关的输出口连接起来。再用一个非门两个开关来控制输出口。

2025-02-04 09:50:41 188

原创 Turing Complete-优雅存储

通过一个非门和一个开关,在不写入的情况下,将延时线输出的值反馈到延时线的输入,就可以实现“寄存”。通过写入位控制开关,使待写入的值写入延时线中,可以实现控制写入的一拍延时。接下来要解决的问题是,在不写入的情况下,待写入的值如何“寄存”。

2025-02-04 09:25:14 315

原创 Turing Complete-1位开关

把输入1当作控制信号,把输入2当作输出信号。通过非门和开关使输入2形成双通道输出,通过输入1来控制两个通道的开闭。通道一为输出输入2取反。通道二为输出输入2本身。

2025-02-03 22:53:39 556

原创 Turing Complete-加倍

2对应4......

2025-02-03 22:30:01 124

原创 Turing Complete-全加器

其次考虑car位,当输入中1的个数大于等于2的时候,car位为1,那么就要判断输入中1的个数是否大于等于2。首先先考虑sum位,当输入中1的个数为奇数的时候,sum位为1,那么就要判断输入中1的个数。个与门和一个三输入或门来判断,当输入中1的个数大于等于2时,或门的输出为1。判断二:输入中1的个数是否大于等于2。就是三路求和,二进制表示结果。判断一:输入中1的个数。判断方法:二级异或门。

2025-02-03 22:23:02 374

原创 Turing Complete-奇变偶不变

首先用非门产生一个恒为1的源,将1接到异或门,将异或门的输出接一个延时,再将延时的输出接到异或门的另一个输入形成负反馈。要求:奇数时刻输出0,偶数时刻输出1。

2025-02-03 17:31:39 486

原创 Turing Complete-信号计数

所以接下来要解决的问题是,保证输入端有2或3个1时,输出端第二位为1的情况下使输入端有4个1时输出端第二位为0。但是这个方法的问题是当4个输入均为1时,依然会使输出端第二位为1,实际上这时输出端第二位应该为0。接下来考虑输出端的第二位,第二位是2,当输入信号中有2个或者3个1的时候,输出端第二位为1。那么还是使用6个与门来判断4个输入中的1是否大于等于2,然后使用2级或门得到判断的结果。首先考虑输出端的最低位,最低为是1,当输入信号中有奇数个1的时候,最低位为1。判断三:输入端1的个数是否为4。

2025-02-03 17:02:17 440

原创 Turing Complete-半加器

两个输入,当只有1个为1时,sum位为1,car位为0。当两个都为1时,sum位为0,car位为1。那么异或门的输出为连接sum,与门的输出连接car即可。

2025-02-03 16:12:23 270

备战2025电赛03-驱动1.8寸TFT-LCD屏幕

1.8寸TFT-LCD屏幕

2024-11-25

数模学习-matlab神经网络的设计和应用

数模学习-matlab神经网络的设计和应用

2024-07-24

MSPM0G3507-插值函数

MSPM0G3507-插值函数

2024-07-21

STM32H723ZGT6-AD9910-SI5351使用

STM32H723ZGT6-AD9910-SI5351使用

2024-07-14

STM32H723ZGT6-使用方波调制法测量信号的幅值,相位

STM32H723ZGT6-使用方波调制法测量信号的幅值,相位

2024-07-14

STM32H723ZGT6-实用信号源的设计和制作-HAL

STM32H723ZGT6-实用信号源的设计和制作-HAL

2024-04-04

空空如也

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

TA关注的人

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