- 博客(19)
- 收藏
- 关注
原创 嵌入式audio软件工程师的自我修养
本人自2012年开始从事音频软件相关的开发工作,如今也有十多年的时间,假如你现在准备投身音频软件这个领域,或者是想面试音频软件相关的岗位,或许这篇文章有你想要的东西。
2024-04-07 15:09:33
342
1
原创 阵列信号处理基础
前言阵列信号处理利用多个麦克风的的空间信息对接受信号做空域滤波和信号合成,是除时域和频域外的一种新的信号处理手段。常用的多麦克风波束形成技术有:DSB(delay-sum beamforming), MVDR(minimum variance distortionless response), GSC(generalized sidelobe canceller).阵列流形矢量 任意阵列 在一个三维直角坐标系中,假设麦克风的位置为P坐标,当语音信号a从某个方位传递到位于各个P坐
2022-02-08 15:28:19
5782
原创 linux 锁机制
1. 锁的种类Name 函数api 特点 原子操作 atomic_read atomic_set 只能针对单变量 信号量/互斥锁 down down_interruptible down_uninterruptible up 一般当获取不到当前的锁变量时会进入睡眠,不能在中断上下文中使用 自旋锁 spin_lock spin_unlock 捕获
2021-12-02 12:03:44
1514
原创 基于MCRA的语音噪音估计
Minima Controlled Recursive Averaging (MCRA)MCRA是由Israel Cohen在论文中提出的最小值追踪递归平均法,本文根据此论文总结如何来评估带噪语音中噪音部分,从而可以来做噪音消除任务。输入信号的时域表示带噪输入信号公式y(n)=x(n)+d(n)y(n) = x(n) + d(n)y(n)=x(n)+d(n)x(n):语音d(n):噪音y(n):语音+噪音输入信号频域表示STFTk:频域的频率indexl:时域信号的帧indexM:时域
2021-04-29 19:46:53
877
原创 Eclipse单步调试技巧
作为一名复制粘贴工程师,快速上手一个开源项目,利用eclipse来调试是不可缺少的一项技能。本文将介绍如何基于makefile来单步调试一个项目。前期准备下载某一个开源项目,这里以https://github.com/musiclvme/debug_bf为例。这个项目是基于cmake来编译的,最后会生成一个bin。 设置编译选项,需要加上编译选项: -g -O0 编译,mkdir build; cd build; cmake ..; make -j4 工程导入新建...
2021-04-24 13:40:37
827
原创 数字信号处理基础1
数字信号处理基础图片摘之网络,如有侵权,请联系删除信号处理数字化过程带来的问题时域采样---------> 频谱混叠 (当采样频率小于模拟信号的最高频率的2倍的时候,)时域截断--------->频谱泄露 (不可消除,只能减小)频域采样--------->栅栏效应 (不可消除,只能减小)数字信号基本...
2021-01-21 23:49:22
186
原创 android刷机教程基础篇
前言参考连接:https://source.android.com/这篇文章将教你如何从google的网站获取官方image, 刷到google出品的手机pixel。(如果你有google原生的其他手机,也是相通的)适合喜欢折腾的朋友! 本文为刷机基础篇,后期高级篇会讲通过获取aosp源码来编译生成image来刷pixel手机。android基础知识android版本android一般是每年推出一个大版本, 从2015年的android5一直发展到了2020年的andro...
2020-09-21 23:24:23
2187
原创 CMAKE编写指南
CMAKE介绍CMAKE 是一种跨平台的编译系统, 本文主要是简述cmake中一些常用的技巧, 将会以tips的形式来总结各个技术点.参考文档:https://cmake.org/cmake/help/v3.18/guide/tutorial/index.html // 官方英文文档https://chenxiaowei.gitbook.io/cmake-cookbook/ // 中文文档https://cgold.readthedo...
2020-08-17 17:50:34
580
原创 ubuntu18.04 升级linux kernel的几种方式
ubuntu作为很多程序员的开发系统,讲究的就是拓展性和自主性,可以自动升级或者降级linux kernel就是其拓展性的一种表现。本文将描述两种升级ubuntu linux kernel的方式,以供大家参考。前期准备确认当前的ubuntu系统的kernel版本:uname -r, 这个很重要以防升级linux kernel后产生问题,导致系统无法启动;这个时候就可以通过升级前的版本来恢复系统。 确认系统当中已经安装的linux kernel:dpkg -l | grep linu...
2020-07-20 23:59:35
9851
1
原创 linux系统audio dma框架刨析
DMA 系统总体框架 1. 分析linux audio dma的框架之前, 首先我们需要从物理层面来看linux dma通用的框架。DMA controller: 用来描述系统中总的DMA硬件的基本信息, 软件层面对应dma controller driverDMA device:隶属于DMA controller, 表示挂在DMA controller下物理硬件, 一般和slave device通过DMA 物理总线相连。DMA channel:隶属于DMA devcie, 每个...
2020-06-10 00:03:10
1324
原创 C函数返回指针位数错误,截断问题
问题描述在C工程中,一个64位系统中如果一个文件中的某个函数A调用另外一个文件中的函数B,但是A文件中没有包含B的声明,gcc可以编译通过,但是如果B函数的返回类型为指针,在64位系统应该返回64bit地址,实际上函数A调用B得到的B的返回指针却是32bit,高32bit被截断。代码示例https://github.com/musiclvme/ToolsPackages/t...
2020-03-31 21:00:37
2112
2
原创 ubuntu18.04 配置softether client
1.softether vpn client源码包https://github.com/musiclvme/ToolsPackages2. 解压后编译sudo apt-get install build-essential // 安装编译基本包make3. 启动和配置编译生成的客户端sudo ./vpnclient start sudo ./vp...
2020-02-15 11:25:27
4874
13
原创 Audio之ALSA框架基础
前言Audio系统中ALSA是在开源系统中使用最多的框架,本文介绍下这方面的基础知识点便于未来的拓展和深入挖掘。1. ALSA系统架构 系统架构图 系统层次介绍 ALSA从系统的角度可以分为三个层次,自上而下分别为 alsa-utils,alsa-lib和asoc driver;alsa-utils:提供了一些基于alsa-lib之上的bin可执行文件...
2019-11-28 01:08:20
1066
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人