自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 易灵思FPGA的RISC-V核操作函数

本文介绍了在FPGA实验中针对易灵思T20F256开发板实现的GPIO控制函数集,主要包括:1)单个GPIO引脚电平设置函数,采用"读-改-写"操作保证不影响其他引脚;2)连续4个/8个GPIO引脚批量设置函数,通过位掩码和位移实现精准控制;3)共阴极数码管驱动函数,包含段选数字显示和位选动态扫描功能;4)GPIO引脚电平读取函数。这些函数为RISC-V开发提供了基础硬件操作接口,适用于西安电子科技大学电子工程学院的FPGA实验教学需求。

2025-10-28 12:48:47 457

原创 优化算法和深度学习

摘要 深度学习中的优化核心在于最小化损失函数,目标是找到最优模型参数以最小化训练数据上的平均损失。经验风险作为优化目标,通过样本平均损失近似真实风险(泛化能力)。深度学习优化面临非凸函数带来的局部最小值和鞍点挑战。凸函数性质(如局部最小即全局最小)简化了优化问题。常用优化方法包括: 梯度下降:批量梯度下降计算准确但效率低;随机梯度下降(SGD)高效但波动大;小批量SGD平衡效率与稳定性。 动量法:引入历史梯度信息,通过动量项平滑更新方向,加速收敛并减少振荡。 AdaGrad:自适应调整参数学习率,对稀疏特征

2025-09-30 13:59:50 782

原创 注意力机制2

本文介绍了注意力机制中的评分函数及其应用。重点阐述了加性注意力和缩放点积注意力两种评分函数,解释了它们如何计算查询与键之间的相关性并生成注意力权重。加性注意力适用于查询和键长度不同的情况,通过多层感知机计算评分;缩放点积注意力则通过点积运算提高效率,并引入缩放因子解决高维向量点积方差过大的问题。文章还讨论了掩蔽softmax操作以处理变长序列,并简要提及Bahdanau注意力在机器翻译中的应用。这些注意力评分函数为构建更复杂的注意力机制奠定了基础。

2025-09-28 19:10:37 981

原创 注意力机制1

本文介绍了注意力机制的基本概念及其在机器学习中的应用。首先从生物学角度阐述了灵长类视觉系统的注意力机制,包括非自主性和自主性提示。然后提出了注意力机制的查询-键-值框架,解释了注意力汇聚的工作原理。通过Nadaraya-Watson核回归实例,展示了如何利用注意力权重进行预测,并与简单平均汇聚进行对比。实验结果表明,基于注意力机制的预测更接近真实值,且权重分配能反映查询与键的相似程度。最后给出了注意力权重的可视化方法,直观展示了查询与键的关系。

2025-09-27 10:22:38 1301

原创 离散时间信号和系统的频域分析

本文系统介绍了离散时间傅里叶变换(DTFT)及其关键性质。DTFT将离散时域信号映射为连续的周期频谱函数,具有2π周期性。重点阐述了12个核心性质:包括周期性、线性、时/频移特性、频域微分、共轭对称性、卷积定理(时域卷积对应频域相乘)、调制定理(时域相乘对应频域周期卷积)以及帕塞瓦尔能量守恒定理。特别强调了实信号频谱的共轭对称特性及其幅度、相位特性。这些性质为离散信号处理提供了理论基础,在滤波器设计、频谱分析和调制解调等应用中具有重要作用。

2025-09-25 21:59:01 1039

原创 目标的散射截面积(RCS)

雷达散射截面(RCS)是衡量目标二次散射功率的关键参数,其定义式为σ=4πR²·S_r/S_i,其中S_r为接收功率密度,S_i为入射功率密度。RCS与目标特性密切相关,对简单形状目标(如球体)可精确计算:在光学区(目标远大于波长)RCS稳定为几何投影面积πr²;瑞利区(目标远小于波长)RCS与r⁶/λ⁴成正比;谐振区则因爬行波干涉产生振荡峰值。雷达分辨单元体积V=ΩR²·cτ/2,与距离平方成正比,点目标的判定取决于目标尺寸与分辨单元的对比。实际应用中,RCS特性对雷达探测和隐身技术具有重要意义。

2025-09-24 16:10:57 380

原创 雷达方程笔记整理

文章摘要:本文系统阐述了雷达方程及其相关参数关系。首先分析功率密度与天线增益的关系,包括全向辐射和方向性天线的特性;其次探讨天线增益与等效面积、波束宽度的数学关系;然后建立目标散射与回波功率模型,推导最大作用距离方程;最后引入噪声、损耗等实际因素,给出考虑接收机噪声系数和系统损耗的完整雷达方程,并扩展到能量形式的现代雷达方程,包括单脉冲和多脉冲相干积累情况。全文构建了从基础理论到实际应用的完整雷达距离分析框架。

2025-09-22 14:07:48 301

原创 离散时间信号和系统的时域分析

摘要:本文介绍了离散时间信号的基本概念与运算。主要内容包括:1)典型序列类型(单位脉冲、阶跃、矩形、指数、正弦、复指数序列);2)序列的基本运算(加、乘、移位、翻转等);3)离散时间系统的特性,重点分析了LTI系统的时域特性,包括单位脉冲响应、因果性与稳定性条件;4)数字滤波器分类,区分了IIR(无限脉冲响应)与FIR(有限脉冲响应)滤波器。文章系统阐述了离散时间信号处理的基础理论与分析方法。

2025-09-22 09:42:07 300

原创 现代循环神经网络

摘要:本文详细介绍了门控循环单元(GRU)和长短期记忆网络(LSTM)的原理与实现。针对RNN在梯度计算中存在的梯度消失/爆炸问题,GRU通过重置门和更新门机制控制信息流动,LSTM则采用输入门、遗忘门和输出门管理记忆单元。文章提供了从零实现两种模型的完整代码,包括参数初始化、门控计算和状态更新过程,并对比了手工实现与PyTorch内置API的性能差异。实验结果表明,这两种门控结构能有效解决长期依赖问题,在字符级语言建模任务上取得了较低的困惑度。

2025-09-21 20:54:19 941 1

原创 循环神经网络

本文介绍了序列建模中的自回归模型、马尔可夫模型和潜变量模型的基本思想,重点阐述了循环神经网络(RNN)的原理与实现。主要内容包括:1)序列建模方法对比,从n元语法到引入隐状态的RNN;2)RNN的隐状态更新机制和前向计算过程;3)语言模型评估指标困惑度的定义;4)基于PyTorch的RNN实现细节,包括数据预处理、模型构建和训练流程。文章通过理论分析和代码示例,展现了RNN如何利用隐状态记忆历史信息来处理序列数据,为语言建模等任务提供了有效解决方案。

2025-09-19 08:53:52 226

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

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

2025-09-17 00:18:07 754

原创 现代卷积神经网络

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

2025-09-15 01:50:47 498

原创 卷积神经网络

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

2025-09-14 21:03:48 777

原创 权重衰减与暂退法

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

2025-09-10 22:33:19 431

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

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

2025-09-10 19:50:52 628

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

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

2025-09-07 00:55:18 747

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

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

2025-09-04 23:55:07 947

原创 机器学习笔记二

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

2025-09-02 21:50:24 906

原创 机器学习笔记一

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

2025-08-26 21:47:46 392

原创 FPGA FM信号IQ解调

FPGA FM信号IQ解调。

2025-07-29 12:57:49 319

原创 FPGA AM调制解调

matlab仿真代码如下。

2025-07-28 22:12:01 49

原创 SI5351驱动

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

2025-07-25 16:18:22 279

原创 FPGA数字锁相环

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

2025-07-23 17:30:30 450 1

原创 FPGA实现FM调制

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

2025-07-19 14:15:57 199

原创 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 254

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

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

2025-07-17 19:00:27 314

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

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

2025-07-05 16:14:01 230

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

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

2025-07-05 10:49:01 230

原创 AD9248——FIFO

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

2025-07-03 20:39:55 62

原创 MSPM0G3507-硬件IIC驱动OLED

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

2025-06-22 19:01:37 317

原创 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 156

原创 2025年电赛校赛总结

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

2025-05-11 10:48:46 51

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

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

2025-03-31 21:15:43 52

原创 重新改写的AD9910驱动

AD9910驱动

2025-03-29 08:49:41 52

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

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

2025-03-27 11:53:59 110

原创 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 262

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

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

2025-03-12 11:44:16 250

原创 Turing Complete-逻辑引擎

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

2025-02-05 10:24:44 325

原创 Turing Complete-小盒子

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

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

原创 Turing Complete-3位解码器

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

2025-02-04 15:56:21 568

备战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关注的人

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