![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
音频
谢娘蓝桥
绿水青山境长静,花落虽频意自闲。
展开
-
python 实现wav 左右通道内容一致
实际项目中,需要左右通道一致的音源,通过audition 验证,仍发现 有bit 位会细微不一致,原创 2023-12-25 18:19:16 · 419 阅读 · 0 评论 -
DC cut 滤直流滤波器实现
在音频处理中,会无意中产生直流偏置,这个偏置如果通过功放去推喇叭,会对喇叭造成不可逆转的损坏,所以在实际应用中,会通过硬件(添加直流检测模块,如果有 使用继电器切断输出) 、软件(软件直流滤波算法),这里讲下软件滤波器的实现。某些不对称波形整形、级联滤波器或者输入引入dc ,会导致信号信噪比降低,这里实现算法如下。此处参考CCRMA 的说明。原创 2023-11-26 22:32:12 · 624 阅读 · 0 评论 -
单极点低通平滑滤波器实现
这里实现一个单极点的平滑滤波器,通过调节a(0,1) 可以调整慢到快的响应。当涉及到采样率和 相应速度时,使用下面版本 ,相应速度对应单位ms。smoothingTimeInMs 平滑时间。samplingRate 采样率。原创 2023-11-26 22:00:33 · 550 阅读 · 0 评论 -
声音响度、声压级计权(A B C)实现
A、B、C三种计权网络特性,分别对应于倒置的40、70、100Phon等响曲线(1000Hz归一化到0dB),其作用是分别反应人耳对低、中、高声压级的响度感觉。的余压,它相当于在大气压强上的叠加一个声波扰动引起的压强变化。由于声压的测量比较容易实现,通过声压的测量也可以间接求得质点速度等其它。如下实现 A B C 计权的实现,计权的实现参考标准,用于逼近实际的等响度曲线。70Phon等响曲线的翻转,模拟55~85dB中等强度噪声特性。40Phon等响曲线的翻转,模拟55dB以下低强度噪声特性。原创 2023-11-26 21:19:28 · 1458 阅读 · 0 评论 -
混响(Reverb)/空间音效(Panning)
可以理解为声音从右边喇叭经过n time step 移动到 左边的扬声器。我们假定LR 扬声器的夹角为2*,我们通过控制L R 扬声器的增益()进行具体的声像控制对应扫描角度X 为单声道的声音片段单声道转立体声音方法。原创 2022-11-12 09:31:36 · 1885 阅读 · 0 评论 -
Biquad 滤波器计算
基础iir 滤波器框图如上x h (n) = x(n) − a 1 x h (n − 1) − a 2 x h (n − 2) y(n) = b 0 x h (n) + b 1 x h (n − 1) + b 2 x h (n − 2) 1.第一种采用Robert Bristow-Johnson 的方法biquad的 传递函数定义为 b0 + b1*z^-1 + b2*z^-2 H(z) = ------------------------...原创 2022-03-14 23:19:00 · 4217 阅读 · 6 评论 -
常用音效处理实现
原创 2022-02-21 20:45:51 · 325 阅读 · 0 评论 -
python 版biquad 实现
class Biquad(object): def __init__(self, b0, b1, b2, a0, a1, a2): self.b0 = b0 / a0 self.b1 = b1 / a0 self.b2 = b2 / a0 self.a1 = a1 / a0 self.a2 = a2 / a0 @property def coefs(self): return (self.b0, self.b1, self.b2, -self.a1, -self.a2) ..原创 2021-09-01 19:41:03 · 372 阅读 · 0 评论 -
正弦波低mips低存储产生的方法
import numpy as npimport matplotlib.pyplot as pltimport pandas as pd%matplotlib inlineplt.rcParams['font.sans-serif']= ['SimHei']plt.rcParams['axes.unicode_minus'] = Falsedef xSin(x): #x is scaled 0<=x<4096 A=-0.40319426317E-08 B=.原创 2021-07-06 19:40:16 · 80 阅读 · 0 评论 -
python wav 转c 数组 、bin功能实现
import waveimport argparseimport os.pathimport struct#prepare an argument parserparser = argparse.ArgumentParser(description='Convert .wav to .bin or C-style Array.')parser.add_argument('input')parser.add_argument('-o',metavar = '<output>').原创 2021-06-15 20:29:59 · 997 阅读 · 2 评论 -
IIR DC去除滤波器
参见https://www.dsprelated.com/showabstract/3947.php原创 2021-05-17 22:37:12 · 1048 阅读 · 2 评论 -
CIC梳状滤波器
简介 CIC (Cascade-Integrator-Comb)级联梳状滤波器经常用于定点的差值与抽取过程中。此滤波器的参数均为1,没有乘法器。 CIC 插值 如上图 a b c 均为M(M位整数)插值器,他们有相同的脉冲响应4阶 40插值器实现---matlab实现M= 40; % interpolation ratioNstages= 4; % number of CIC stagesx= [1 0 0 0]; % impulse inputy= boxcar_inter..原创 2021-03-22 22:25:27 · 1197 阅读 · 0 评论 -
compressor 理解
https://www.uaudio.com/blog/audio-compression-basics/压缩器 是是原来的声音听起来更加自然、清晰,而增加失真,使歌曲听起来更舒服。通常压缩器有硬件、软件之分,它可以将奇妙的声音、音调、色彩注入到原本毫无生气的音轨中,但是使用的不恰当,会使效果适得其反。下面将下压缩器的基本原理及参数Threshold(阈值、阀值)只有当音频信号达到threshold或超过时,compressor 才会起作用Knee 控制 compressor...原创 2021-03-09 18:24:08 · 1455 阅读 · 1 评论 -
delay的实现
static float DelayBuf[2*4096];int m_Rd[2];int m_Wr[2];int m_SamplesPerChannel = 4096;int Delay2(float* inputs , float*outputs){ for (int i = 0; i < 2; i++) { float* m = DelayBuf + i * m_SamplesPerChannel; float* in = inputs + i * 32;.原创 2021-03-08 15:10:57 · 276 阅读 · 0 评论 -
VST channelmix 实现
#include "channlmix.h"#include <stdio.h>ChannelMix::ChannelMix(audioMasterCallback audioMaster) :AudioEffectXX(audioMaster,0,5){ setEffectName("CHmix"); showtext[0] = "lineGain";//最大支持8个字节 showtext[1] = "%"; showtext[2] = "%"; showtext[3] =.原创 2020-11-09 17:16:53 · 237 阅读 · 2 评论 -
matlab实现音频瀑布图
function waterfallspect(s, fs, spectsize, spectnum)%WATERFALLSPECT Display spectrum of signal s as a 3-D plot.% s - input signal, use wavload to load a WAV file% fs - Sampling frequency (Hz).% spectsize - FFT window size% spectnum - number of.原创 2020-10-10 15:33:30 · 2371 阅读 · 0 评论 -
PID float版本功能实现
/*! \details This structure holds the data to run a * floating point PID loop. */typedef struct{ float max /*! \brief Max manipulated value */; float min /*! \brief Miniumum manipulated value */; float e /*! \brief Error value */; float i /*! \brief原创 2020-08-20 14:46:17 · 160 阅读 · 0 评论 -
加性高斯白噪声产生
#include <stdio.h>#include <stdlib.h>#include <math.h>#define PI 3.1415926536double AWGN_generator(){/* Generates additive white Gaussian Noise samples with zero mean and a standard deviation of 1. */ double temp1; double tem原创 2020-08-20 14:41:04 · 1182 阅读 · 0 评论 -
matlab音频频谱实现
function plot_amp_spectrum(Fs, y, varargin)%PLOT_AMP_SPECTRUM Plot amplitude spectrum of a one dimensional signal% PLOT_AMP_SPECTRUM(FS, Y, COLOR, SEMILOG_SCALE, TITLE_STRING) plots the% amplitude spectrum of y which has sampling frency Fs. Specific原创 2020-08-15 14:18:17 · 1269 阅读 · 0 评论 -
ARM 定点fir 汇编实现
/* ********************************************************************** * * Fixed Point Filtering Library * * ********************************************************************** * * lowpass_fir.S * * Jordan Rhee * rhee.jordan@gmail.com * *原创 2020-08-15 14:12:05 · 338 阅读 · 0 评论 -
小数延时的实现
小数延迟的实现/****************DELAY.C*******************************/#include "delay.h"#include "math.h"#define MAX_BUF_SIZE 64000/****************************************************************************** Fractional delay line implementation i原创 2020-08-15 14:03:11 · 781 阅读 · 3 评论 -
A/C加权的matlab实现
A加权%Sampling RateFs = 48000;%Analog A-weighting filter according to IEC/CD 1672.f1 = 20.598997; f2 = 107.65265;f3 = 737.86223;f4 = 12194.217;A1000 = 1.9997;pi = 3.14159265358979;NUM = [ (2*pi*f4)^2*(10^(A1000/20)) 0 0 0 0 ];DEN = conv([1 +4*p原创 2020-08-10 15:52:50 · 1581 阅读 · 0 评论 -
粉红噪声matlab产生
function out = create_pink_noise(Fs, Sec, Amp)% Creates a pink noise signal and saves it as a wav file%% Usage: create_noise(Fs, Sec, Amp);%% Fs is the desired sampling rate% Sec is the duration of the signal in seconds% Amp i.原创 2020-08-10 15:50:47 · 6884 阅读 · 11 评论 -
Qt 获取音频设备名称(输入输出)
/*! *@file QtAudioDevices.cpp *@brief 获取音频设备信息*/#include "QtAudioDevices.h"#include <QAudioDeviceInfo>QtAudioDevices::QtAudioDevices(QWidget *parent) : QDialog(parent), ui(new Ui::QtAudioDevices){ ui->setupUi(this); //获取输入音频.原创 2020-07-27 15:50:44 · 1773 阅读 · 0 评论 -
NMLS 自适应滤波器matlab实现
%Normalized Least Mean Square Adaptive Filter%for Echo Cancellationfunction [e,h,t] = adapt_filt_nlms(x,B,h,delta,l,l1)%x = the signal from the speaker %B = signal through echo path%h = impulse response of adaptive filter%l = length of the signal x.原创 2020-07-24 16:22:33 · 826 阅读 · 0 评论 -
拉格朗日多项式--重采样
% Lagrange interpolation for resampling% References:% [1] A digital signal processing approach to Interpolation% Ronald W. Schafer and Lawrence R. Rabiner% Proc. IEEE vol 61, pp.692-702, June 1973% [2] https://ccrma.stanford.edu/~jos/Interpol.原创 2020-07-24 15:15:51 · 710 阅读 · 0 评论 -
FARROW 重采样 matlab 实现
% **************************************************************% Vectorized Farrow resampler% M. Nentwig, 2011% Note: Uses cyclic signals (wraps around)% **************************************************************close all; clear all;% inData c.原创 2020-07-24 15:14:00 · 1956 阅读 · 11 评论 -
arm fir 滤波器定点 汇编实现
/* ********************************************************************** * * Fixed Point Filtering Library * * ********************************************************************** * * lowpass_fir.S * * Jordan Rhee * rhee.jordan@gmail.com * *.原创 2020-07-24 14:56:27 · 547 阅读 · 0 评论 -
shelving filter matlab 实现
function [b, a] = shelving(G, fc, fs, Q, type)%% Derive coefficients for a shelving filter with a given amplitude and% cutoff frequency. All coefficients are calculated as described in % Zolzer's DAFX book (p. 50 -55). %% Usage: [B,A] = shel.原创 2020-07-24 14:46:49 · 878 阅读 · 2 评论 -
移相器的C语言实现
/*Phaser audio effect:Xin Yout-------------------------------[dir_mix]--------------------->[+]---------> | ^ .原创 2020-07-24 14:41:10 · 628 阅读 · 0 评论 -
VolumIo 烧写注意事项
玩树莓派的 HIFI Dac 烧写volume 的img镜像 发现怎么都不启动,经过多次折腾终于知道咋回事了,这个好坑呀,关键HDMi 上也没个提示 差屏 具体参考官网的UShttps://volumio.github.io/docs/User_Manual/Quick_Start_Guide界面很骚气,音量不能调整,整体不错...原创 2020-01-06 16:57:46 · 3155 阅读 · 4 评论 -
音频常用协议说明 IIS TDM PDM PCM SPDIF协议解析
音频常用协议说明 IIS协议I2S(Inter-IC Sound Bus)是飞利浦公司为数字音频设备之间的音频数据传输而制定的一种总线标准。在飞利浦公司的I2S标准中,既规定了硬件接口规范,也规定了数字音频数据的格式。特点 效率高主要传输音乐先传高位再传低位。 数据的MSB从LRCLK边沿起延迟1 BCLK 主要有...原创 2019-01-18 11:25:13 · 27564 阅读 · 1 评论 -
调音台 三段EQ调音
调音台最主要的作用之一就是对音色进行修饰,而现在的调音台(高档除外)音调部分几乎无一例外都是三段式均衡器:高频、低频再加一个中频参量均衡器,即高音频率lOkHz或是2kHz,低音80Hz或是100Hz,有些则标个英文的HI和LO让你去猜,但你猜以上参数也会八九不离十。中频则是参数可调式的,对于中频参量均衡器一般人都会用了,知道用频率钮对准某个频率,然后用上面的那个钮去增强或衰减就是了。但是对高...原创 2019-04-16 15:08:30 · 8461 阅读 · 0 评论 -
噪声
1.风噪主要能量集中在低频段一般在500HZ以下男声基音频率在60到150HZ 女声200Hz到400Hz头影效应 ---双耳时差双耳强度差语音增强算法分类:1.谱减法 (spectral-subtracetive)认为噪声是加性的。没有语音时候可估计出噪声谱,然后从带噪信号中将噪声去除2.基于统计模型的算法给定带噪信号的一系列测试参数3.子空间(su...原创 2019-04-19 09:50:04 · 854 阅读 · 0 评论 -
窗函数
1.任何函数与窗函数的乘积 仍为窗函数2.所有窗函数都会对待测频谱产生影响,不是人为产生的3.低动态范围不要使用高动态范围的窗4.冲击测试模型、脉冲 冲击响应、正弦丛发,连续变频丛发,噪声丛发、一个周期的虚拟随机噪声PRN激发信号、锁定采样频率的重复信号 OFDM(正交分频多工)接收 都不需要加窗操作矩形窗优点是主瓣比较集中,缺点是旁瓣较高,并有负旁瓣,导致变换中带进了高频干...转载 2019-04-19 10:35:36 · 1986 阅读 · 0 评论 -
滤波器
1阶 2阶粉红噪声滤波器参数These have approximately equiripple error in decibels from 20hz to 20khz at a 44.1khzsampling rate.1st order, ~ +/- 3 dB error (not recommended!)num = [0.05338071119116 -0.037524...翻译 2019-06-04 12:57:39 · 676 阅读 · 1 评论 -
Biquard 参数的计算
双线性变换传递函数上面的公式提取公因式:同时乘以用低通滤波器进行测试原创 2019-06-25 18:00:55 · 597 阅读 · 0 评论 -
减少滤波器群延迟(2阶 IIR 滤波器)
1.a 为标准的滤波器结构,b为改进的滤波器结构 两个等价2.为了减少延迟,将分子部分(feedforward 参数部分)整体上移发现此模型可以减少通带的群延迟,但是更有意思的是,通常群延迟是由滤波器原型有关1.通常会放缓滤波器的边缘2.这个滤波器只是减少了一个sample3.对于阻带来说 ,群延迟有明显的下降几种滤波器的比较...原创 2019-07-15 09:53:38 · 4854 阅读 · 4 评论 -
滤波器实现
1.缓冲器 低输入阻抗转高输入阻抗2.- 12 dB/oct Linkwitz-Riley crossoverLinkwitz-Riley 输出全频带 相位反转180度 crossover frequency 输出有6db 下降,可以修正一些系统的相位偏移所有的 Linkwitz-Riley 滤波器 都可以分...翻译 2019-07-12 21:05:10 · 1989 阅读 · 0 评论 -
前端语音信号处理
1、语音活动检测语音活动检测(Voice Activity Detection, VAD)用于检测出语音信号的起始位置,分离出语音段和非语音(静音或噪声)段。VAD算法大致分为三类:基于阈值的VAD、基于分类器的VAD和基于模型的VAD。基于阈值的VAD是通过提取时域(短时能量、短时过零率等)或频域(MFCC、谱熵等)特征,通过合理的设置门限,达到区分语音和非语音的目的;基于分类...原创 2019-07-30 11:28:18 · 3451 阅读 · 0 评论