- 博客(263)
- 资源 (6)
- 收藏
- 关注
原创 C刷题:LeetCode刷题踩坑常见bug总结【持续更新】
C刷题:LeetCode刷题踩坑常见bug总结常见坑点debug经验代码分析Git项目地址:LeetCodeUsingC刷题笔记本文主要记录刷题过程中,经常出现的一些bug错误,便于快速定位排查以及提高正确编码意识,欢迎大家参考并补充。更专业的内容可以查阅书籍《C缺陷和陷阱》。常见坑点数组下标越界,下标改变后用前务必保证在有效范围内,防止越界或为负代码理解错误,特别涉及到对参考的代码自己实现时,对原代码功能理解错误,需要仔细和扎实的基础使用双指针时,经常误用 left - right 作为长度
2021-04-25 20:48:47
2831
原创 VIO框架:港科大VINS算法环境配置与调试总结【已调通,手把手最完整版】
该算法主要用于单目相机和IMU的信息融合,实现更准确实时的定位。仿真测试用的数据集为EuRoc。参考博文:VINS-Mono环境配置与测试笔记港科大VINS-Mono的GitHub源码细节补充说明:2.6. Ceres 安装在参考教程 2.6. ceres安装 中 正常运行第一段代码即可,此命令为打包安装依赖项。如果不顺利,则按第二段代码分步进行。sudo apt-get inst...
2020-04-18 12:17:44
3274
8
转载 在网址前加神秘字母,让你打开新世界
转自:虫部落https://www.chongbuluo.com/forum.php?mod=viewthread&tid=6337
2019-07-27 14:35:16
4747
1
原创 Ubuntu16.04下安装Qt5.9.1和OpenCV3.2.0 总结【亲测】
感谢博主魇餍的教程分享,这里将其教程中的一些问题及解决梳理如下,分对应的三大块:Qt、OpenCV和测试进行补充说明,希望让大家可以少走弯路,预祝使用快乐。
2019-07-04 13:04:01
1137
1
原创 语音处理:滤波器核心FIR与IIR的系数和阶数关系对比
摘要:FIR与IIR滤波器的阶数直接影响系统性能和计算复杂度。FIR滤波器阶数N对应N+1个系数,需较高阶数实现陡峭频响但能保证线性相位;IIR滤波器通过反馈结构用较少系数(约2N+1)即可达到类似效果,但对系数量化误差敏感且相位非线性。关键差异在于:FIR无反馈、系数多、相位优;IIR有反馈、系数少、效率高但稳定性要求严格。两种滤波器各具特点,需根据实际应用需求选择。
2026-03-05 19:09:41
182
原创 语音处理:一个滤波器实例串起核心概念AI版
本文通过一个二阶IIR低通滤波器(Biquad)实例,系统性地串联了数字信号处理的核心概念。从工程需求出发,依次阐述了差分方程实现、冲激响应特性、Z变换与传递函数分析、极点零点对系统行为的影响、稳定性条件、频率响应特征、相位特性、因果性要求、实现结构选择等关键内容,并提供了实际代码实现。最后对比了IIR与FIR滤波器的差异,总结了工程调参经验,完整展现了从理论到实践的滤波器设计过程。这个案例将抽象的数字信号处理理论具象化,揭示了数学表达式与实际工程实现之间的内在联系。
2026-03-05 19:06:51
374
原创 语音处理:滤波器知识整体地图AI版
本文系统梳理了滤波器知识体系的核心概念及其逻辑关系。从系统与冲激响应出发,通过卷积运算描述时域特性,引入Z变换和传递函数进行频域分析。重点阐述了极点零点对滤波器行为的解释作用,以及频率响应的实际意义。在实现层面,对比了FIR和IIR滤波器的特性差异,并介绍了FFT加速的工程实现方法。最后强调了实际系统中稳定性、因果性和可实现性三大约束条件,呈现了从理论到工程应用的完整知识链路。全文以"冲激响应定义系统,Z变换分析行为,频率响应决定功能,FIR/IIR和FFT实现应用"为总结,构建了滤波器
2026-03-05 18:59:26
343
原创 音频算法工程化 checklist(从原型到上线AI版)
本文提供了一份音频算法DSP工程化落地的完整检查清单,覆盖从需求定义到上线部署的全流程。清单分为12个关键环节:需求指标定义、系统建模、算法选型、算法设计、数值稳定性、实时实现、参数控制、测试验证、性能评估、平台集成、上线前检查及上线后监控。重点强调工程化落地的核心要素,包括算法正确性、数值安全性、实时可靠性和听感可控性。该清单可作为项目启动、自检或上线前的核对表,帮助开发者避免常见工程陷阱,确保音频算法从原型到产品的顺利过渡。
2026-03-05 18:56:30
386
原创 语音处理:滤波器筑基知识地图
本文梳理了语音处理中滤波器的基础知识框架。核心概念包括线性时不变系统、因果性、稳定性等基本原理,以及离散/模拟信号、Z变换、傅里叶变换等数学工具。重点分析了FIR和IIR滤波器的特性差异,阐述了零极点与系统稳定性的关系,并介绍了频率响应的分析方法。文章还列举了滤波器的主要应用场景,如各种类型的滤波器设计。作者强调在学习过程中需要交叉验证AI提供的信息,建议通过构建知识地图来系统理解滤波器技术的来龙去脉。
2026-03-02 20:39:34
821
原创 语音处理:滤波器必备知识小结
语音处理滤波器概述 本文介绍了音频处理中常用的滤波器类型及其特性:peak滤波器用于中心频率增益调节,Q值控制带宽;low/high shelf滤波器处理高低频段增益;hp/lp/bp滤波器用于信号截取;EQ调节特定频带增益;biquad作为基础二次型结构可实现多种滤波功能。文章还提及butterworth和bom滤波器有待补充说明。这些滤波器在语音信号处理中具有重要作用,能够实现频率选择、增益调节等关键功能。
2026-02-26 08:10:39
247
原创 通识:机械波和电磁波的区别?
机械波与电磁波的区别 机械波需要介质传播(如固体、液体、气体),本质是介质粒子的振动,例如声波、水波;电磁波无需介质,可在真空中传播,由振荡的电磁场相互激发产生,包括光波、无线电波等。主要区别: 传播条件:机械波依赖介质,电磁波可在真空传播 速度:机械波速度取决于介质,电磁波在真空恒为光速 波型:机械波可纵可横,电磁波均为横波 产生机制:机械波源于粒子振动,电磁波源于电磁场振荡
2025-11-24 20:58:39
507
原创 SVN高频指令小结
本文总结了SVN高频使用指令,并与Git做了核心区别说明:SVN没有本地版本库概念,commit直接提交到远端。介绍了分支操作(创建、查看、切换)、工作区操作(更新、回滚、清理)以及上库到远端的常见命令。重点对比了SVN与Git在版本控制架构上的差异,同时整理了日常开发中最实用的SVN命令集合,为开发者提供便捷的操作指南。
2025-11-18 20:39:07
271
原创 Linux:WSL内存空间管理之清完内存C盘可用空间不增问题解决
以上操作完成后,可见C盘明显减小,搞定。唯一的问题是,尝试指令和方案时,要擦亮眼睛注意判别,高风险操作要谨慎。通过du等指令,删除cache、docker、不需要的大文件目录后,C盘并未实时减小。原来wsl的虚拟磁盘自动增大后,不会自动减小,需要手动管理。在项目开发中,误下载某文件仓导致内存爆炸,C盘爆满后,wsl进程异常中断(最后也没下载完全)。于是,需要清理异常内存,并恢复足够空间大小。建议优先尝试方法1自带命令去压缩,不行再尝试方法2用diskapart方式去压缩。
2025-11-07 18:28:56
654
原创 语音处理:音频移形幻影,为何大振幅信号也无声
本文通过三个音频实验探讨了波形平移对听感的影响。实验显示:1)固定幅度信号(如1s恒定值)无声;2)缓慢变化的尖峰信号(2s单峰)因频率低于20Hz无法感知;3)谐波信号上移后音色相似但响度降低。分析表明,声音感知需要足够频率的振动,缓慢变化信号等效于直流分量无法被听见。研究发现数字信号中不仅全零无声,固定值或极低频变化波形同样无声,揭示了振动频率是声音感知的关键因素。实验深化了对声学振动与数字信号关系的理解。
2025-10-17 18:08:19
647
原创 语音处理:wav头格式非44字节场景处理分析
其次,在补齐结构体里多出来的2字节扩展位后(位置在fmt的末尾,data段前),要注意实现header结构体时,由于44byte能被4整除,结构体设置不会出现内存和数据不对应的问题。而46byte时,由于C代码机制有自动内存对齐,结构体实际内存46byte可能会补成48byte。首先,相关默认44字节头的假设就有问题,需要在C代码里做结构体更换,并对文件移位时按实际字节头处理以便得到正确的pcm数据输入。但在实际使用过程中,可能会遇到少部分非44字节头的wav格式文件,这里需要注意。
2025-10-16 20:18:15
734
原创 C学习:100行C代码简洁实现wav读写并附demo
接口主要设置了wav包头格式定义的结构体,按写入的方式新建并打开wav文件同时自动偏移到data段,写参进入wav包头,将wav包头写入文件。为避免重复造轮子,网上调研了一圈,其实已经有比较好的C代码实现了,但总感觉有些厚重,理解和调试需要耗费些时间。循环读入一个16bit位深的wav序列,对每个样点偏移5000,然后写入到新文件中,并与输入文件相关参数一致。接口主要设置了获取wav包头信息,以及用读的形式打开wav并自动移动到pcm对应的data段。接口主要设置了wav包头格式定义的结构体。
2025-10-15 19:49:10
405
原创 程序员:技术学习进阶页签指南
《技术学习资源精选指南》提供深度学习、音频算法和计算机科学等领域的优质学习资源。主要内容包括:MIT和李宏毅2022机器学习课程链接及作业参考;音频算法推荐deepfilternet等专业博主;以及计算机自学路线图。所有资源坚持"少而精"的筛选原则,定时更新维护,适合技术人员系统化学习。文档还预留数学进阶和机器学习通识等待补充内容板块。
2025-09-25 20:34:24
425
原创 Python世界:高频小技巧总结
iPython清屏指令?类型转换技巧总结?万能的排序函数汇总?如何1条指令快速生成二维数组?如何高效遍历数组及索引?高频高效的小函数有哪些?列表生成有哪些简洁写法?如何通过Python脚本打开运行exe,并传参?# 列表转字符串int(str),字符串到整数float(str),字符串浮点str(num),数到字符串//实现整除实现取余。
2025-01-02 20:59:10
307
原创 Python世界:报错Debug之referenced before assignment
类中函数引用结构体变量,出现报错如下:解决:该变量改为全局变量使用,并在用前声明。
2025-01-02 20:50:44
876
原创 Python世界:函数模块知识点小结
函数式编程,本质是通过调用接口函数,实现过程逻辑,输出目标结果。这种方式有助于提高代码的可读性和可维护性,同时减少错误的发生。在Unix系统编程中该思想运用较广。
2025-01-02 20:43:13
472
原创 Python世界:数据结构易错点小结
map, 一种映射方式, 作用到list的每个元素,映射关系为func,输出到迭代器中,iter = map(func, list), res = list(iter)部分笔记汇总,持续刷新中。区别于其他笔记之处在于,主要记录易错点坑点。列表中的,append与insert有啥差异?典型应用如address book。
2024-12-30 20:44:08
905
原创 Python世界:变量、运算符、表达式
比如两个嵌套函数,一个函数(或类) A 里面又包含了一个函数 B ,那么对于 B 中的名称来说 A 中的作用域就为 nonlocal。变量作用域取决于其定义位置,直接访问一个变量,会从内到外依次访问所有的作用域直到找到,否则会报未定义的错误。定义在函数内部的变量、定义在函数声明中的形式参数,视为局部变量。定义在函数中,嵌套函数外,且被嵌套函数引用的变量,视为自由变量。定义在 .py 文件内的,且函数、类之外的变量,视为全局变量。,若未声明global,在函数内生效使用的是局部变量,
2024-12-30 20:34:03
507
原创 Python世界:人生苦短,我用Python
几句话说清,我们为啥要用Python?Python设计之初心,是为了解决编程门槛,让大家更聚焦业务实现,而非编程细节。当前人工智能火爆,Python更是被广为使用传播。
2024-12-30 20:17:27
1461
1
原创 Python世界:复制粘贴?没那么简单!浅谈深拷贝与浅拷贝
Python由于是自动分配内存,就需要更深入的了解,每个拷贝赋值背后的内存结果,拷贝是引用还是赋值,赋值中又是深拷贝还是浅拷贝,上例看出,列表中的切片仅拷贝了第1层的内存是赋值,改变原始列表,第6行中的[3,4]新变量中值就被修改成了[1,4],但显然改变lst[1]是新变量值就没变的,而第11行中lst原始值并未被改变。此例中,我们可以看出,切片是复制了一片新内存给变量mylist,而第4行变量名字赋值,则只是传递的对象引用,并未申请新内存。深浅拷贝,x, y_res_copy, y_res_deep。
2024-12-02 20:39:31
1093
原创 C学习:移位幻影之左移一个负数,会发生什么?
C语言中,移位是个简单的问题,但又是个高风险的问题。简单在于,大部分场景都可以理解为乘或除2的幂。风险在于,C语言中对有符号数的移位与无符号数的移位异常场景,未定义:- 不同位宽转换时的移位过程如何处理?- 有符号数的左右移动,是逻辑移位,还是带符号移位?- 无符号数的移动中,移动数为负或超过了符号位宽如何处理?
2024-11-30 18:05:51
1429
原创 Python世界:力扣题解1300,转变数组后最接近目标值的数组和,中等
翻译下,转变数组后最接近目标值的数组和,实际需求是:对给定无序数组及目标值,返回一个value值使数组里大于该值的均置换为value,从而使新数组的元素和,最接近target。题意可以转化为找区间内,最小的value生成sum和,满足条件target的值,而且最小到最大值的sum是升序的。本题的关键在于正确理解题意并转化到二分法的框架里,有序+上下界条件,最后是注意边界条件与目标结果的细节处理,要求的是。最后,要注意增补下结果在中间的用例。,最大值是数组的最大元素值。
2024-11-22 17:35:43
1105
原创 Python世界:力扣题解875,珂珂爱吃香蕉,中等
最小速度能保证吃完,但耗时最大,最大速度能一定吃完,耗时最小。可初步判断为线上版本python2.x较老,整数相除模拟的是C实现,而线下版本python3.x较新,整数相除不尽结果是浮点。最小速度,若取数组中的最小值去吃,作为最慢速度吃,假如时间足够长,可能还不够慢。翻译下,需求是:对给定无序数组表示N堆香蕉,找到最小吃香蕉的速度k,且在h小时内吃完。最大速度,可取数组中的最大值,则数组的长度即为耗时,而已知条件数组的长度len<=h。但出现一个神奇的现象是,本地通过,但提交线上通不过,实在奇怪。
2024-11-20 17:57:42
1386
原创 Python世界:力扣题110,平衡二叉树判别,easy
想练手下二叉树的遍历,结果在easy级上踩了坑,容我细细道来。注意本题中前置条件已默认是二叉树输入,不用考虑非二叉的输入场景。于是,我把题意理解为,求该树中最小遍历深度和最大遍历深度,两者之差不应超过1.所以,我们应该求:对每个左右子树求取最大深度,比较左右子树差异。翻译下,需求是:判断给定二叉数是否高度平衡。
2024-11-19 19:28:12
436
原创 Python世界:力扣题633,平方数之和,中等
本题思路很简单,只为重温下二分写法,发现值大的下移上界,发现值小的上移下界,直到上下界重合。要特别注意的是无target时,mid的偏移问题。翻译下,需求是:对给定数字c,确定是否有两个整数满足。
2024-11-11 20:45:51
494
原创 Python世界:力扣题解1712,将数组分成三个子数组的方案数,中等
此题关键点在于二分法左右边界的获取,需要对边界条件有很熟练的处理,同时注意题意处理和特殊用例,如全零大数组处理,可用排列组合Cm2公式来处理,获取理论值。翻译下,需求是:对给定无序数组划分成三组子数组,划分后要求左、中、右数组元素和递增,返回可划分的方法总数,若不可划分,则返回-1.第一个坑,读题失误,不是元素个数和递增,而是元素之和要递增。下面为错误做法,埋坑警戒。,导致[0, 0, 0, 0, 0, …]大数用例一直无法通过。这里也埋了个坑,最开始94行没有注意处理大数取余。
2024-11-11 20:37:43
899
原创 Python世界:力扣题704二分查找
重温下二分写法,思路很简单,发现值大的下移上界,发现值小的上移下界,直到上下界重合。翻译下,需求是:对有序数组进行查找指定数字,若有返回索引,若无返回-1.可进一步思考若有重复值时,如何找到最小重复索引或最大重复索引。要注意的是无target时,mid的偏移问题。二分核心:索引偏移存乎一心。
2024-11-08 19:15:14
599
原创 Python世界:自动化办公Word之批量替换文本生成副本
为提高办公效率,用python试手了一个word任务,要求如下:> 给你一个基础word文档A,格式为docx,名字为:A.docx。A文档中有表格和文字,要求是将里面的字符串`"完成绘画"`分别替换成`完成制作款式x`和`复习制作款式x`,输出相应副本,命名为对应序号增序文档,如:`1、A.docx, 2、A.docx`。>> 要求是输出1000份这样的增序文档。
2024-10-30 08:11:32
1093
原创 Python世界:简易地址簿增删查改算法实践
编写一款你自己的命令行地址簿程序, 你可以用它浏览、 添加、 编辑、 删除或搜索你的联系人, 例如你的朋友、 家人、 同事, 还有他们诸如邮件地址、 电话号码等多种信息。所以,广大码农兄弟在开发中,务必注意这种类型的活儿,能让机器干就让机器干去,赶紧解放自己,聚焦到更有挑战的任务上去。个人测试下来,一句不改,完美实现了预期的Demo功能。这题没啥好总结的了,程序员要多练习逻辑和需求分析思维,然后结构化喂给AI,秒出答案。原本想,简单设计几组数据:从地址簿基础中获取。但这时懒人病突然犯了,于是就把上面的。
2024-09-14 18:08:12
594
原创 Python世界:将两个列表合成字典并排序任务实践
给定下面两个列表attributes和values,要求针对values中每一组子列表value,输出其和attributes中的键对应后的字典,最后返回字典组成的列表。该任务练习了字典的组合及排序,利用两份列表生成了字典键值对,同时对已生成的字典按照键、值分别进行升序、降序排列尝试,并验证了效果。第一问:如果让你对一个字典,根据值进行由高到底的排序,该怎么做呢?任务来源于极客时间专栏中,《Python核心技术与实战》第4章字典、集合,你真的了解吗?你能分别用一行和多行条件循环语句,来实现这个功能吗?
2024-09-14 18:06:57
704
原创 Python世界:力扣29题两数相除算法实践
除法运算本质是减法,从理解原理到真正实现还是有距离,建议初步理解后,不参考任何代码,完全自己复现一遍,体会更深。注意提示:目的就是提醒越界问题:-2^31/-1=2&31,超过了整数表达范围。本问题来自于力扣29题,在做完大数相乘后,顺带也看下两数相除。将两数相除,要求不使用乘法、除法和 mod 运算符。给定两个整数,被除数。
2024-09-13 18:11:35
888
原创 Python世界:基于PESQ的自动化语音打分脚本实践
本案例实现了利用PESQ对指定目录下的wav序列进行批量打分,并输出打分结果。仅支持wav输入,需提前构建in/out目录不支持非8kHz/16kHz音源序列命名条件需满足输入wav名字作为输出名字的前缀比如,输入参考序列test.wav,输出后的可以为test_out_n.wav参考链接Python版PESQ评分实现PESQ语音质量测试link1link2。
2024-09-12 20:51:54
1142
LINGO软件的基本使用方法大全
2015-08-13
DuetDislay Setup1.6.8.1含使用说明.rar
2019-09-23
金耳朵听音训练软件Harman How To Listen (Public).rar
2021-05-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅