信号处理

python算法对音频信号处理Sonification :Gauss-Seidel迭代算法

↘锁芯ラ 提交于 2019-12-01 07:57:49
原文链接: http://tecdat.cn/?p=7620 可以将44.1kHz单通道.wav文件中的一秒读取到长度为44100的数组(称为b)中。给定矩阵A,我们寻求系统Ax = b的解。通过Gauss-Seidel的迭代,向量如果我们将b记录的录音,则将一些白噪声作为我们的初始猜测,并在每次交替中写出Ax,我们会观察到b中高音调的音符首先变得可听,而同时白噪声的音调分解。 最初的12秒.wav文件的音频(白噪声) initialAx.wav 初始Ax,残差和残差FFT的图: ​ ​ ​ 经过一轮迭代,高音 转化gauss_seidel_out000000.wav 在光谱中可以看到一些结构: ​ ​ ​ 第二次 迭代 : gauss_seidel_out000001.wav ​ ​ ​ 第三次 迭代 : gauss_seidel_out000002.wav ​ ​ ​ 第四次 迭代 : gauss_seidel_out000003.wav ​ ​ ​ 这一切都在python中完成。将.wav文件加载到数组中,在scipy中还不错。为了避免缓存问题,必须使用稀疏矩阵类,因为12秒的.wav文件需要一个大小为12 * 44100的数组。这是我使用的TridiagonalMatrix类代码片段: from numpy import * #a tridiagonal matrix

信号处理-傅里叶变换

删除回忆录丶 提交于 2019-11-30 06:29:35
周期信号可是使用复指数信号的线性组合,对于分析线性时不变系统有很重要的性质。傅里叶最重要的贡献之一就是把周期信号推广到非周期信号,傅里叶曾认为:一个非周期信号能够看成周期无限长的周期信号。 现在考虑一个信号 x(t),它具有有限持续期,急对某个 \(T_1\) 来源: https://www.cnblogs.com/yixingxing/p/11568566.html

频域信号处理

泪湿孤枕 提交于 2019-11-30 03:20:47
代码来源于 http://bigsec.net/b52/scipydoc/frequency_process.html 观察信号的频谱   数据通过FFT转换成频域信号,对频域信号进行分析,再通过IFFT转换成时域信号。 import numpy as np import pylab as pl import matplotlib as mpl mpl.rcParams['font.sans-serif'] = ['KaiTi'] mpl.rcParams['font.serif'] = ['KaiTi'] mpl.rcParams['axes.unicode_minus']=False sampling_rate = 8000 #取样频率 fft_size = 512 #fft长度 t = np.arange(0, 1.0, 1.0/sampling_rate) #假设取样频率为fs, 取波形中的N个数据进行FFT变换。那么这N点数据包含整数个周期的波形时,FFT所计算的结果是精确的。于是能精确计算的波形的周期是: n*fs/N。 #对于8kHz取样,512点FFT来说,8000/512.0 = 15.625Hz,前面的156.25Hz和234.375Hz正好是其10倍和15倍。 #选取整数倍的数据,查看当fft后的数据在频谱中形成整数周期时的情况。 x = np.sin(2

MATLAB之图像与音频信号处理

帅比萌擦擦* 提交于 2019-11-29 14:27:41
原理简介 离散傅立叶、离散余弦和离散小波变换是图像、音频信号常用基础操作,时域信号转换到不同变换域以后,会导致不同程度的能量集中,信息隐藏利用这个原理在变换域选择适当位置系数进行修改,嵌入信息,并确保图像、音频信号经处理后感官质量无明显变化。 变换定义 一维离散傅立叶变换对定义: 一维离散余弦变换对定义: 一维连续小波变换对定义: 二维离散傅立叶变换对定义: 二维离散余弦变换对定义: 用离散傅立叶变换分析合成音频和图像 分析合成音频文件包括以下步骤: l 读取音频文件数据 l 一维离散傅立叶变换 l 一维离散傅立叶逆变换 l 观察结果 第一步:读取音频文件数据 新建一个 m 文件,另存为 example11.m,输入以下命令: clc; clear; len = 40000; [fn, pn] = uigetfile('*.wav', '请选择音频文件'); [x, fs] = wavread(strcat(pn, fn), len); uigetfile 是文件对话框函数,提供图形界面供用户选择所需文件,返回目标的目录名和文件名。 函数原型:y= wavread (FILE) 功能:读取微软音频格式(wav)文件内容 输入参数:file 表示音频文件名,字符串 返回参数:y 表示音频样点,浮点型 第二步:一维离散傅立叶变换 新建一个 m 文件,另存为 example12.m

数字信号处理器

痴心易碎 提交于 2019-11-29 07:26:29
  数字信号处理是将信号以数字方式表示并处理的理论和技术。数字信号处理与模拟信号处理是信号处理的子集。数字信号处理的目的是对真实世界的连续模拟信号进行测量或滤波。因此在进行数字信号处理之前需要将信号从模拟域转换到数字域,这通常通过模数转换器实现。而数字信号处理的输出经常也要变换到模拟域,这是通过数模转换器实现的。   数字信号处理器按其可编程性可分为可编程和不可编程两大类。不可编程的信号处理器以信号处理算法的流程为基本逻辑结构,没有控制程序,一般只能完成一种主要的处理功能,所以又称专用信号处理器。如快速傅里叶变换处理器、数字滤波器等。这类处理器虽然功能局限,但有较高的处理速度。可编程信号处理器则可通过编程改变处理器所要完成的功能,有较大的通用性,所以又称通用信号处理器。随着通用信号处理器性能价格比的不断提高,它在信号处的应用日益普及。   已开发的可编程信号处理器大致上有三类:①位由基本位长为2,4,8位的微处理片为主体,配以程序控制片、中断及DMA控制片、时钟片等构成。采用微程序控制、分组指令格式,可按需要构成所需字长的系统。其优点是处理速度快、效率高。缺点是功耗较大,片子的数量也较多。②单片信号处理器。它将运算器、乘法器、存储器、程序只读存储器(ROM)、输入输出接口,甚至模/数数/模转换等全部集成在单片上。其运算速度快、精度高、功耗低通用性强

进程间通信

Deadly 提交于 2019-11-28 21:54:45
进程间通信 文章目录 进程间通信 1 概述 2 管道 2.1 概述 2.2 管道系统调用 2.3 标准流管道 3 FIFO 3.1 概述 3.2 mkfifo函数 4 信号 4.1 概述 4.2 信号发送与捕捉 4.3 信号的处理 4.4 信号集函数组 5 信号量 5.1 概述 5.2 信号量的应用 6 共享内存 6.1 概述 6.2 共享内存的应用 7 消息队列 7.1 概述 7.2 应用 进程捕捉到信号并对其进行处理时,正在执行的指令序列被信号处理程序临时中断,先执行信号处理程序中的指令,若从信号处理程序返回,则继续执行捕捉到信号时正在执行的指令序列。但在信号处理程序中,不能判断捕捉到信号时进程执行到何处,故信号处理程序中应保证调用安全的函数(是可重入的并是异步信号安全的)。若在信号处理程序中调用不可重入函数,其结果是不可预测的。 不可重入信号: (1)使用静态数据结构。 (2)调用malloc或free。 (3)是标准I/O函数。 1 概述 进程间通信(InterProcess Communication, IPC)方式主要有以下几种: 管道 (Pipe)及 有名管道 (named pipe):管道可用于具有亲缘关系进程间的通信,有名管道具有管道所具有的功能且允许无亲缘关系进程间的通信。 信号 (Signal):信号是在软件层次上对中断机制的一种模拟,用于通知进程有某事件发生

图信号处理-入门

一个人想着一个人 提交于 2019-11-28 21:18:28
图信号初步 无向图可定义为: G=(V,E) 节点,边 定义邻接矩阵A ,则一个带有N 个节点的图可以用大小为N∗N 的A 表示,其中A(i,j)=wij . 在简单图中,A 的元素只由0和1构成。1表示该边存在,反之则为0 . 若给定一个简单图(simple graph)的邻接矩阵A 和维度矩阵D 。则这个图的Laplacian Matrix也可定义为: L=D−A 图信号傅里叶变换(Graph Fourier Transform,GFT) 傅里叶变换的本质是内积运算 三角函数是完备的正交函数集,不同频率的三角函数的之间的内积为0,只有频率相等的三角函数做内积时,才不为0。 正交是垂直这一直观概念的推广。若内积空间中两向量的内积为0,则称它们是正交的。 n维向量空间中的所有向量,都可以用一组正交基来表示。 函数的正交是向量正交的推广。 GFT的变换将图信号线性映射到某一组正交基,但不同于DFT的将不同角频率的三角函数作为正交基,GFT的正交基取决于其Graph的结构,或者更确切地说,是取决于其描述Graph的各种上述提到的矩阵。 和DFT类似,GFT的目标也是通过线性映射来获取图信号所包含的不同的频率成分。 The Fourier transform of a discrete function f on a graph, evaluated at an eigenvalue

Linux信号(signal) 机制分析

一个人想着一个人 提交于 2019-11-28 13:02:24
from: https://www.cnblogs.com/subo_peng/p/5325326.html 【摘要】本文分析了Linux内核对于信号的实现机制和应用层 的相关处理。首先介绍了软中断信号的本质及信号的两种不同分类方法尤其是不可靠信号的原理。接着分析了内核对于信号的处理流程包括信号的触发/注册/执行 及注销等。最后介绍了应用层的相关处理,主要包括信号处理函数的安装、信号的发送、屏蔽阻塞等,最后给了几个简单的应用实例。 【关键字】软中断信号,signal,sigaction,kill,sigqueue,settimer,sigmask,sigprocmask,sigset_t 1 信号本质 软中断信号(signal,又简称为信号)用来通知进程发生了异步事件。在软件层次上是对中断机制的一种模拟,在原理上,一个进程收到一个信号与处理器收到一个中断请求可以说是一样的。信号是进程间通信机制中唯一的异步通信机制,一个进程不必通过任何操作来等待信号的到达,事实上,进程也不知道信号到底什么时候到达。进程之间可以互相通过系统调用kill发送软中断信号。内核也可以因为内部事件而给进程发送信号,通知进程发生了某个事件。信号机制除了基本通知功能外,还可以传递附加信息。 收到信号的进程对各种信号有不同的处理方法。处理方法可以分为三类: 第一种是类似中断的处理程序,对于需要处理的信号

声信号处理基础

眉间皱痕 提交于 2019-11-26 20:45:36
1、采样与量化 采样与量化的基本概念、采样定理二分之一采样频率的由来。 2、频域、时域、傅立叶变换的引入 3、再谈采样定理之采样混叠 混叠是如何产生的? 4、格物致知新方法——卷积 卷积的引入、卷积计算方法思考、梳状滤波器、时域差分方程与滤波器的联系 5、测试的基本原理 声学测试测的是什么?原理是啥? 第二部分完结。 来源: https://blog.csdn.net/weixin_38260878/article/details/99109193