音频信号处理(一)语音录制

人工智能231
import pyaudio

CHUNK = 1024
FORMAT = pyaudio.paInt16
CHANNELS = 2
RATE = 16000

p = pyaudio.PyAudio()

stream = p.open(format=FORMAT,
                channels=CHANNELS,
                rate=RATE,
                input=True,
                frames_per_buffer=CHUNK)
p = pyaudio.PyAudio() 创建一个PyAudio的

stream = p.open(format=FORMAT,channels=CHANNELS, rate=RATE,input=True,output=False, frames_per_buffer=CHUNK)

用open函数打开一个音频的输入流

文档中对各参数的说明
def __init__(self,
                 PA_manager,
                 rate,              #Sampling rate 采样率
                 channels,              #Number of channels音轨数
                 format,                #Sampling size and format. See |PaSampleFormat|.采样点的大小和类型,见PaSampleFormat
                 input=False,           #Specifies whether this is an input stream,Defaults to ``False``,是否为输入流,默认为否
                 output=False,          #Specifies whether this is an output stream,Defaults to ``False``.是否为输出流,默认为否
                 input_device_index=None,       #Index of Input Device to use.Unspecified (or ``None``) uses default device.Ignored if `input` is ``False``.

                 output_device_index=None,      #Index of Output Device to use.Unspecified (or ``None``) uses the default device.Ignored if `output` is ``False``.

                 frames_per_buffer=1024,        #Specifies the number of frames per buffer.

                 start=True,            #Start the stream running immediately.

                 input_host_api_specific_stream_info=None,  #Specifies a host API ,specific stream information data structure for input. See :py:class:`PaMacCoreStreamInfo`
                 output_host_api_specific_stream_info=None, #Specifies a host API ,specific stream information data structure for output.See :py:class:`PaMacCoreStreamInfo`.

                 stream_callback=None):         #Specifies a callback function for *non-blocking* (callback) operation,which indicates *blocking* operation (i.e.,:py:func:`Stream.read` and :py:func:`Stream.write`).

简单来说我们要使用的参数就像例子中的:

format采样数据的格式,在文档中有给出定义好的格式变量

PaSampleFormat Sample Formats

paFloat32 #: 32 bit float
paInt32 #: 32 bit int
paInt24 #: 24 bit int
paInt16 #: 16 bit int
paInt8 #: 8 bit int
paUInt8 #: 8 bit unsigned int
paCustomFormat t #: a custom data format

channels音轨数一般取2

rate采样率即每秒采样多少次

input=True,Ture代表这是一条输入流,False代表这不是输入流

frames_per_buffer每个缓冲多少帧

设定好这些参数我们就打开了一条可以用于输入的音频流了

RECORD_SECONDS = 2
print("start recording......")

frames = []

for i in range(0, int(RATE / CHUNK * RECORD_SECONDS) + 1):
    data = stream.read(CHUNK)
    frames.append(data)

print("end!")

stream.stop_stream()
stream.close()
p.terminate()

stream.read(CHUNK)每次读chunk个数据
通过int(RATE / CHUNK * RECORD_SECONDS)计算要读多少次,2秒*每秒的采样率/每次读多少数据=需要读多少次

frames.append(data)将读出的数据保存到列表中

stream.stop_stream() 停止输入流
stream.close() 关闭输入流
p.terminate() 终止portaudio

import wave

WAVE_OUTPUT_FILENAME = "Oldboy.wav"

wf = wave.open(WAVE_OUTPUT_FILENAME, 'wb')
wf.setnchannels(CHANNELS)
wf.setsampwidth(p.get_sample_size(FORMAT))
wf.setframerate(RATE)
wf.writeframes(b''.join(frames))
wf.close()

wave.open(WAVE_OUTPUT_FILENAME, 'wb') 以'wb'二进制流写的方式打开一个文件

wf.setnchannels(CHANNELS) 设置音轨数
wf.setsampwidth(p.get_sample_size(FORMAT)) 设置采样点数据的格式,和FOMART保持一致
wf.setframerate(RATE) 设置采样率与RATE要一致

wf.writeframes(b''.join(frames))将声音数据写入文件
wf.close() 关闭文件流,释放句柄

Original: https://blog.csdn.net/qq_55796594/article/details/120343559
Author: 午夜零时
Title: 音频信号处理(一)语音录制



相关阅读1

Title: 十种常见的图像标注方法 | 数据标注

计算机视觉的飞速发展离不开大量图像标注数据的支撑,随着各类图像检测、识别算法的商业化落地,市场对图像标注精准度愈发严格,同时针对不同的应用场景,也衍生出了不同的图像标注方法。

今天景联文科技给大家介绍10种常见的图像数据标注方法及其应用。

http://www.jinglianwen.com/admin/rest/newsinfo?id=51

1、语义分割

语义分割是指根据物体的属性,对复杂不规则图片进行进行区域划分,并标注对应上属性,以帮助训练图像识别模型,常应用于自动驾驶、人机交互、虚拟现实等领域。

音频信号处理(一)语音录制

2、矩形框标注

矩形框标注又叫拉框标注,是目前应用最广泛的一种图像标注方法,能够以一种相对简单、便捷的方式在图像或视频数据中,迅速框定指定目标对象。

音频信号处理(一)语音录制

3、多边形标注

多边形标注是指在静态图片中,使用多边形框,标注出不规则的目标物体,相对于矩形框标注,多边形标注能够更精准地框定目标,同时对于不规则物体,也更具针对性。

音频信号处理(一)语音录制

4、关键点标注

关键点标注是指通过人工的方式,在规定位置标注上关键点,例如人脸特征点、人体骨骼连接点等,常用来训练面部识别模型以及统计模型。

音频信号处理(一)语音录制

5、点云标注

点云是三维数据的一种重要表达方式,通过激光雷达等传感器,能够采集到各类障碍物以及其位置坐标,而标注员则需要将这些密集的点云分类,并标注上不同属性,常应用于自动驾驶领域。

音频信号处理(一)语音录制

6、3D立方体标注

与点云标注不同,3D立方体标注还是基于二维平面图像的标注,标注员通过对立体物体的边缘框定,进而获得灭点,测量出物体之间的相对距离。

音频信号处理(一)语音录制

7、2D/3D融合标注

2D/3D融合标注是指同时对2D和3D传感器所采集到的图像数据进行标注,并建立关联。该方法能够标注出物体在平面和立体中的位置和大小,帮助自动驾驶模型增强视觉和雷达感知。

8、目标追踪

目标追踪是指在动态的图像中,进行抽帧标注,在每一帧图片中将目标物体标注出来,进而描述它们的运动轨迹,这类标注常应用于训练自动驾驶模型以及视频识别模型。

音频信号处理(一)语音录制

9、OCR转写

OCR转写是对图像中的文字内容进行标记与转写,帮助训练和完善图片与文本识别模型。目前,景联文支持简体中文、繁体中文、英语、日语、韩语、法语、德语、西班牙语、阿拉伯语等十余种语言印刷或手写图片的转写。

音频信号处理(一)语音录制

10、属性判别

属性判别是指通过人工或机器配合的方式,识别出图像中的目标物体,并将其标注上对应属性。

音频信号处理(一)语音录制

关于景联文科技

景联文科技(全称杭州景联文科技有限公司)成立于2012年04月24日,主营业务为数据采集标注服务和指纹防伪算法。

在指纹技术领域,景联文持有多项自主知识产权专利及软件著作权,曾在2017年、2019年连续两届拿下LivDet:Fingerprint Liveness Detection Competition(国际活体指纹检测大赛)第一名;参与编撰工信部生物识别行业发展白皮书《生物特征识别白皮书(2019版)》。

2016年,景联文科技基于原指纹采集业务,全面拓展为AI基础数据服务,向科技公司、AI企业、人工智能算法模型提供高质量、场景化数据。

经过数年积累,目前,景联文在全国范围内拥有5个标注基地,220名全职人工智能训练师,文本、语音、图像、视频现有数据库超300TB;并于2020年上线了自有标注平台,涵盖了绝大多数主流标注工具,支持语义分割、拉框标注、多边形标注、关键点标注、3D点云、2D3D融合标注、图片分类、声纹识别、ASR转写、韵律标注、NLP、文本分类、OCR转写、情绪判断等多种标注业务。

截至目前,景联文科技已与阿里巴巴、华为、vivo、美团、字节跳动、滴滴、陌陌、海康威视、大华、宇视、同济大学、中国人民大学、工信部中国电子技术标准化研究院、公安部一所等多家企业、机构达成深入合作。

Original: https://blog.csdn.net/weixin_55551028/article/details/118787564
Author: 景联文科技
Title: 十种常见的图像标注方法 | 数据标注

相关阅读2

Title: 4.8 TextCNN 文本分类、tensorflow实现——python实战

课程目标

(1)采用PyTorch
深度学习

工具进行
实战

操作,掌握PyTorch基本使用;

(2)掌握工业界短
文本

处理解决方案,如:对话系统,智能客服,新闻领域
分类

等;

(3)词向量项目案例应用,掌握
文本

的表示方法;

(4)通过项目案例
实战

,掌握
TextCNN 文本分类

在工业界应用,可以直接应用在如下领域

例如:对话系统意图识别,智能客服问答意图识别,资讯短
文本分类 文本分类

场景。

适用人群

(1)想要从事NLP的在校学生

NLP研发工程师

(2)自然语言处理从业者
深度学习

爱好者

课程简介


文本分类

作为自然语言处理的基础技术之一NLP领域的热门应用,常用在对话语言平台,文章
分类

,智能客服,FAQ智能问答等多个场景。 因此深入掌握短
文本分类

技术,是作为自然语言处理从业者必备技能,本课程以案例驱动出发,结合多个工业级解决方案,了解当下
文本分类

实际工业界的应用。

课程要求:

(1)开发环境:
python

版本:
Python

3.x;PyTorch
深度学习

工具;

(3)学员基础:需要一定的
Python

基础,及
深度学习

基础;

(4)学员收货:掌握
深度学习

PyTorch工具使用;掌握
TextCNN 文本分类

;了解工业流行解决方案;

(5)学员资料:内含完整程序源码和数据集;

(6)课程亮点:专题技术,完整案例,全程
实战

操作,徒手撸代码。

音频信号处理(一)语音录制

音频信号处理(一)语音录制

音频信号处理(一)语音录制

音频信号处理(一)语音录制

音频信号处理(一)语音录制

音频信号处理(一)语音录制

Original: https://blog.csdn.net/qq_43940950/article/details/124113067
Author: 炫云云
Title: 4.8 TextCNN 文本分类、tensorflow实现——python实战

相关阅读3

Title: 矩阵理论基础知识

1 基本信息

​ ​ ​ 矩阵理论是一门研究矩阵在数学上的应用的科目。矩阵理论本来是线性代数的一个小分支,但其后由于陆续在图论、代数、组合数学和统计上得到应用,渐渐发展为一门独立的学科。在矩阵理论的应用过程中,主要涉及到的有各种计算及其方法,其中常用的计算主要有:特征值与特征向量的计算、矩阵的最小多项式的计算、矩阵的Schmidt正交化、向量范数与矩阵范数的计算、矩阵谱半径的计算、矩阵函数的计算、矩阵的微分与积分、矩阵分解以及广义逆矩阵的计算。使用的计算方法主要来自线性代数的基础知识及其推广。

​ ​ ​ 这一小节将说明本专题的叙述思路,首先我们需要明确区分两个概念:函数矩阵和矩阵函数。 函数矩阵指的是一个矩阵,其中的每个元素都是一个已经定义的函数,常用在线性系统的分析过程中;而 矩阵函数则是指一个函数,其自变量与因变量都是一个确定大小的矩阵,实际上是一种映射法则,实现的结果是一种广义上的线性变换。

​ ​ ​ 与高等数学引入函数概念的过程类似,此处引入矩阵函数之前,我们首先介绍 矩阵序列矩阵级数的概念,由此得到极限与收敛在矩阵领域对应的概念,之后可以自然地引入矩阵函数的定义和概念。在本专题中,矩阵函数的求法从根本上来说是基于矩阵函数的幂级数展开,具体的方法主要有以下四种:待定系数法、数项级数求和法、对角型法以及Jordan标准型法。

​ ​ ​ 在本专题中除矩阵函数外,另一个涉及到的重要概念就是 矩阵分解。矩阵分解的一个重要的作用就是减小计算量,通过将复杂矩阵进行分解、进而得到某些确定结构下的矩阵,这种操作使得复杂矩阵以数个较为简单矩阵的乘积形式来呈现,从而在后续的计算中大大减少计算量,这是非常有意义的。矩阵分解从根本上来说是基于一些基本操作与已知结论,具体的分解方法主要有以下四种:矩阵的LU分解、矩阵的QR分解、矩阵的满秩分解、以及矩阵的奇异值分解,其中矩阵的奇异值分解还可以用来求解矩阵的广义逆矩阵,这在实际应用中是非常有意义的。

​ ​ ​ 本专题主要基于《矩阵论》(张凯院、徐仲,西北工业大学出版社2017版),并结合北京邮电大学计算机学院(国家示范性软件学院)的课程《矩阵理论与方法》的课程PPT(2021年秋季)进行叙述。本专题将从矩阵理论的基本概念与方法出发,简要介绍基本概念与方法之后,引入矩阵函数的概念,并对矩阵函数的常见求法进行研究和总结,并在每种求法的理论推导之后给出一个具体的例子加以说明。之后本专题将总结矩阵分解的常见方法,并在每种方法的理论推导之后给出一个具体的例子加以说明。最后总结本专题的全部内容。

2 欧式空间与线性变换

​ ​ ​ 欧氏空间(Euclidean space)是一类特殊的向量空间,一般来说就是我们所熟悉的三维空间,对其中的向量可以讨论长度、夹角等几何性质,并且这里的长度、夹角等是我们熟知的、具有直观印象的概念。但实际上欧氏空间可以拓展到更一般的情况,也就是 线性空间。这里对欧式空间的一般化实际上是将三维空间的维度进行了增加,从而得到更高维度的空间,虽然从几何上难以直观理解这种高维空间的形态,但这种空间在代数上具有很好的一般意义,对于许多问题给出了严格的理论表述。线性空间的具体概念如下:对于给定的数域(K)和一个非空集合(V),用(x),(y),(z)表示(V)中的元素、用(l),(m),(n)表示(K)的元素,并定义此时的加法运算和数乘运算,如果以下性质满足:

[\begin{align} &\text{结合律}~x+(y+z)=(x+y)+z\ &\text{交换律}~x+y=y+x\ &\text{存在零元素}0,\text{使}~x+0=x\ &\text{存在负元素,即对任意向量}~x\in V,\text{存在向量}~y\in V,\text{使}~x+y=0,\text{称}~y~\text{为}~x~\text{的负元素},\text{记为}-x\ &\text{数因子分配律}~k(x+y)=kx+ky\ &\text{分配律}~(k+l)x=kx+lx\ &\text{结合律}~k(lx)=(kl)x\ &1x=x \end{align} ]

则称(V)为数域(K)上的线性空间。

​ ​ ​ 线性空间的意义在于给出了一个关于向量以及其他诸多数学概念的抽象的代数系统,使得许多问题均可以在线性空间的讨论下进行求解,这种一般性的方法作为一种处理问题的手段在数学的许多领域有着重要的应用,比如,为了更好、更严格地讨论相应问题,数学家发展出了多项式空间和矩阵空间。视非空集合(V)中的元素为向量,则与线性代数的概念类似,此时也可以引出线性组合、线性相关与线性无关、基与维数、坐标、子空间与子空间的交与和、同构、商空间、线性变换等概念,对于这些概念的详细数学讨论不是本专题的主要目的,故此处略去,详细信息可以参考《矩阵论》一书。下面讨论 线性变换的概念。

​ ​ ​ 线性空间中的任意元素都可以看作是基底的线性组合。对于给定的映射法则(T),如果(T)满足:

[T(kx+ly)=k(Tx)+l(Ty),\quad\forall x,y\in V ]

则称(T)为(V)的一个线性变换或线性算子。这个式子的实质是映射法则(T)对向量的线性运算是封闭的,也就是如果该式子对所有的基底成立,那么就容易证明对任意向量都是成立的。又,容易证明:线性相关的向量组经线性变换后仍为线性相关。

​ ​ ​ 线性变换也具有可运算性。线性变换的两个最基本的变换是单位变换和恒等变换,单位变换(T_e)满足(T_ex=x),恒等变换(T_0)满足(T_0x=0),接下来定义线性变换的运算如下:

[\begin{align} \text{加法}&\quad (T_1+T_2)x=T_1x+T_2x\ \text{数乘}&\quad (kT)x=k(Tx)\ \text{乘法}&\quad (T_1T_2)x=T_1(T_2x)\ \text{逆变换}&\quad (ST)x=(TS)x=x\ \text{多项式}&\quad f(T)=a_0T^m+a_1T^{m-1}+\cdots+a_{m-1}T+a_mT_e\ &\quad\quad(\text{其中}T^{m+n}=T^mT^n,(T^m)^n=T^{mn}) \end{align} ]

通过坐标,可以将线性变换用矩阵表示出来,从而可将抽象的线性变换转化为具体的矩阵来处理。由于线性空间中的任意元素都可以视为基向量的线性组合,因此只要能够确定基向量在线性变换下的象,就能够确定线性空间中任意元素在线性变换下的象。对于基向量(x_1,x_2,\dots,x_n),线性变换(T)有:

[ \left. \begin{cases} Tx_1=a_{11}x_1+a_{21}x_2+\cdots+a_{n1}x_n\ Tx_2=a_{12}x_1+a_{22}x_2+\cdots+a_{n2}x_n\ \quad\cdots\ Tx_n=a_{1n}x_1+a_{2n}x_2+\cdots+a_{nn}x_n \end{cases} \right. ]

采用矩阵乘法形式,可将上述方程组表示为:

[ T(x_1,x_2,\cdots,x_n)=(x_1,x_2,\cdots,x_n)A ]

[ A= \begin{bmatrix} a_{11} & a_{12} & \cdots & a_{1n}\ a_{21} & a_{22} & \cdots & a_{2n}\ \vdots & \vdots & & \vdots\ a_{n1} & a_{n2} & \cdots & a_{nn}\ \end{bmatrix} ]

这时就将矩阵(A)称为线性变换(T)在(V^n)的基((x_1,x_2,\dots,x_n))下的矩阵,简称 (A) 为(T) 的矩阵。一些常见的线性变换的矩阵在形式上是简单的,如零变换(T_0)的矩阵是零矩阵(O)、单位变换的矩阵是单位矩阵(I)、数乘变换的矩阵是数量矩阵(mI)等。

​ ​ ​ 将一个矩阵转化为其Jordan标准型,意义在于选择适当的线性空间的基或坐标系,从而优化矩阵的结构、使得后续的计算过程变得简单,Jordan标准型的求解和之后的矩阵函数与矩阵分解两个内容有很强的关联性。在线性代数课程中已经学过特征值与特征向量的概念和求解方法,下面将以此为基础讨论线性变换对应矩阵的Jordan标准型的求解。

​ ​ ​ 首先在理论上可以证明,线性变换对应的矩阵的特征多项式与基的选择无关,它直接被线性变换所决定,这保证了线性变换矩阵特征多项式的唯一性。先定义 最小多项式:首项系数是(1),次数最小,且以矩阵(A)为根的(\lambda)的多项式称为(A)的最小多项式。借助Hamilton-Cayley定理可以得到如下结论:(A)的最小多项式是其特征多项式的因式,也就是:矩阵(A)的最小多项式(m(\lambda))可整除以(A)为根的任意首(1)多项式(\psi(\lambda)),且(m(\lambda))在形式上是唯一的。

​ ​ ​ Jordan标准型从结构上来说是一个准对角矩阵:

[J= \begin{bmatrix} J_1(\lambda_1) & &\ & J_2(\lambda_2) &\ & & \ddots &\ & & & J_s(\lambda_s)\ \end{bmatrix} ]

[J_i(\lambda_i)= \begin{bmatrix} \lambda_i & 1 & & &\ & \lambda_i & 1 & &\ & & \lambda_i & \ddots &\ & & & \ddots &1\ & & & & \lambda_i\ \end{bmatrix} \qquad(i=1,2,\dots,s) ]

称为一个 Jordan块

​ ​ ​ 为计算矩阵的Jordan标准型,需要先用初等变换将矩阵化为标准形,其中 初等变换指的是要把矩阵的某一行(列)的乘以数域(K)上的(\lambda)多项式的结果加到另一行(列)对应元素上去, 标准形是指一个对角矩阵(对角线上的元素是首(1)多项式且前面的元素可以整除后面的元素)。可以证明标准形对角线上的非零元素(d_i(\lambda))不随矩阵的初等变换而改变,因此称(d_i(\lambda))为矩阵的 不变因子或不变因式。若将每个次数大于零的不变因子(d_i(\lambda))分解为不可约因式的乘积,那么这样的不可约因式(连同它们的幂指数)称为矩阵的一个 初等因子,初等因子的全体称为 初等因子组。下面给出求解Jordan标准型的具体步骤:

[\begin{align} \text{第一步}&\quad\text{求特征矩阵}\lambda I-A\text{的初等因子组}\ \text{第二步}&\quad\text{写出每个初等因子}(\lambda-\lambda_i)^{m_i}\text{对应的Jordan块:}\ &\quad J_i(\lambda_i)= \begin{bmatrix} \lambda_i & 1 & & &\ & \lambda_i & 1 & &\ & & \lambda_i & \ddots &\ & & & \ddots &1\ & & & & \lambda_i\ \end{bmatrix}_{m_i\times m_i}\ \text{第三步}&\quad\text{写出所有Jordan块构成的Jordan标准型:}\ &\quad J= \begin{bmatrix} J_1(\lambda_1) & &\ & J_2(\lambda_2) &\ & & \ddots &\ & & & J_s(\lambda_s)\ \end{bmatrix} \end{align} ]

​ ​ ​ 在实际应用中,常见的问题涉及到线性变换的一些性质,下面以《矩阵论》书例1.36为例说明常见问题的处理方法。

例1.36 在欧氏空间(R^{2\times2})中,矩阵(A)与(B)的内积定义为((A,B)=\text{tr}(A^TB)),子空间

[V={X= \begin{bmatrix} x_1 & x_2\ x_3 & x_4 \end{bmatrix}|x_3-x_4=0} ]

(V)中的线性变换为

[T(X)=XB_0\quad(\forall X\in V),\quad B_0= \begin{bmatrix} 1 & 2\ 2 & 1 \end{bmatrix} ]

(1)求非空集合(V)的一组标准正交基
(2)验证(T)是(V)中的对称变换
(3)求(V)的一个标准正交基,使(T)在该基下的矩阵为对角矩阵

​ ​ ​ (1)要求非空集合(V)的一组标准正交基,思路是先求一组基,再进行正交化(如有需要再进行单位化)。对于本题:

[X= \begin{bmatrix} x_1 & x_2\ x_3 & x_4 \end{bmatrix} =x_1 \begin{bmatrix} 1 & 0\ 0 & 0 \end{bmatrix} +x_2 \begin{bmatrix} 0 & 1\ 0 & 0 \end{bmatrix}+ x_3 \begin{bmatrix} 0 & 0\ 1 & 1 \end{bmatrix} ]

所以(V)的一个(单位)标准正交基为(正交性容易验证):

[X_1=\begin{bmatrix} 1 & 0\ 0 & 0 \end{bmatrix}\quad X_2=\begin{bmatrix} 0 & 1\ 0 & 0 \end{bmatrix}\quad X_3=\frac{1}{\sqrt2} \begin{bmatrix} 0 & 0\ 1 & 1 \end{bmatrix} ]

​ ​ ​ (2)对称变换的判定方法是看相应的矩阵是否是对称矩阵,本题(1)问中已经求得了一组标准正交基,现在的问题就是如何用这组标准正交基求出线性变换对应的矩阵。通过计算基向组就可以得到这个矩阵,也就是通过等式(T(X_1,X_2,X_3)=(X_1,X_2,X_3)A)计算得到线性变换对应的矩阵(A)为:

[A= \begin{bmatrix} 1 & 2 & 0\ 2 & 1 & 0\ 0 & 0 & 3 \end{bmatrix} ]

这样就可以证明,这个线性变换确实是对称变换。

​ ​ ​ (3)要求(V)的一个标准正交基,使(T)在该基下的矩阵为对角矩阵。题目的要求实际上就是求一组新的标准正交基((Y_1,Y_2,Y_3))使得等式(T(Y_1,Y_2,Y_3)=(Y_1,Y_2,Y_3)\Lambda)成立,其中(\Lambda)为对角矩阵。根据线性代数的知识可以知道,线性变换对应的矩阵(A)可以通过左乘和右乘某矩阵从而化为仅由特征值构成的对角矩阵,因此容易得到

[\Lambda= \begin{bmatrix} 3 & &\ & 3 &\ & & -1 \end{bmatrix}\qquad Q= \begin{bmatrix} 0 & \frac1{\sqrt2} & -\frac1{\sqrt2}\ 0 & \frac1{\sqrt2} & -\frac1{\sqrt2}\ 1 & 0 & 0 \end{bmatrix} ]

下面的问题就在于求出新的标准正交基((Y_1,Y_2,Y_3)),下面先进行线性变换的推导,然后得到答案:

[\begin{align} T(X_1,X_2,X_3)&=(X_1,X_2,X_3)A\ T(X_1,X_2,X_3)&=(X_1,X_2,X_3)Q\Lambda Q^{-1}\ T(X_1,X_2,X_3)Q&=(X_1,X_2,X_3)Q\Lambda\ T(Y_1,Y_2,Y_3)&=(Y_1,Y_2,Y_3)\Lambda \end{align} ]

[(Y_1,Y_2,Y_3)=(X_1,X_2,X_3)Q ]

由此便可以求得符合题意的新的标准正交基((Y_1,Y_2,Y_3)):

[Y_1=\frac{1}{\sqrt2} \begin{bmatrix} 0 & 0\ 1 & 1 \end{bmatrix}\quad Y_2=\frac{1}{\sqrt2} \begin{bmatrix} 1 & 1\ 0 & 0 \end{bmatrix}\quad Y_3=\frac{1}{\sqrt2} \begin{bmatrix} -1 & 1\ 0 & 0 \end{bmatrix} ]

3 向量范数与矩阵范数

​ ​ ​ 在向量空间中,长度的度量是向量的模,对于一般的线性空间,起到长度度量的概念是 范数概念,范数是比长度更为一般的概念。对于数域(K)上的线性空间(V),对任意的(x\in V),定义一个实值函数(||x||),如果该实值函数满足

[\begin{align} \text{非负性}&\quad\text{当}x\neq0\text{时},||x||>0;\text{当}x=0时,||x||=0\ \text{齐次性}&\quad||ax||=|a|~||x||~(a\in K,x\in V)\ \text{三角不等式}&\quad||x+y||\leq||x||+||y||~(x,y\in V) \end{align} ]

则称(||x||)为(V)上的向量(x)的范数,简称 向量范数。下面给出一些常见的向量范数:

[\begin{align} 2-\text{范数}&\quad ||x||2=\sqrt{|\xi_2|^2+|\xi_2|^2+\cdots+|\xi_n|^2}\ \infty-\text{范数}&\quad ||x||{\infty}=\max_{i}|\xi_i|\ 1-\text{范数}&\quad ||x||1=\sum^n{i=1}|\xi_i|\ p-\text{范数}&\quad ||x||p=(\sum^n{i=1}|\xi_i|^p)^{1/p}\ \text{椭圆范数}&\quad ||x||_A=(x^TAx)^{1/2} \end{align} ]

需要指出的是,向量范数通常和向量空间中基的选取有关,但是有定理保证线性空间上向量范数的等价性,也就是说,如果存在有限维线性空间(V)上的任意两种向量范数(||x||\alpha)和(||x||\beta),且满足:

[c_1||x||\beta\leq||x||\alpha\leq c_2||x||_\beta\quad(\forall x\in V) ]

那么就称这两种向量范数是等价的。

​ ​ ​ 在以矩阵为元素的线性空间中,起到长度度量作用的概念是范数概念,也就是矩阵范数。和向量范数类似,设(A\in C^{n\times n}),定义一个实值函数(||A||),对于下面的四条性质

[\begin{align} \text{非负性}&\quad\text{当}A\neq0\text{时},||A||>0;\text{当}A=0\text{时},||A||=0\ \text{齐次性}&\quad||\alpha A||=|\alpha|~||A||~(\alpha\in C)\ \text{三角不等式}&\quad||A+B||\leq||A||+||B||~(B\in C^{n\times n})\ \text{相容性}&\quad||AB||\leq||A||~||B|| \end{align} ]

如果该实值函数满足前三条性质,则称(||A||)为(A)的 广义矩阵范数;如果该实值函数满足全部的四条性质,则称(||A||)为(A)的 矩阵范数。下面给出一些常见的矩阵范数:

[\begin{align} \text{列和范数}&\quad ||A||1=\max{j}|a_{ij}|\ \text{谱范数}&\quad ||A||2=\sqrt{\lambda_1},\quad\lambda_1\text{为}A^HA\text{的最大特征值}\ \text{行和范数}&\quad ||A||{\infty}=\max_{i}|a_{ij}| \end{align} ]

实际上,矩阵范数和向量范数是紧密相关的,有什么样的向量范数就有什么样的矩阵范数,由向量范数导出的矩阵范数简称为从属范数,上述三种常见矩阵范数就是对应的向量范数的从属范数。

​ ​ ​ 在有了矩阵范数的概念之后,下面介绍范数的某些应用场合和一些新的概念。

​ ​ ​ 在判断矩阵的可逆性时,可以根据范数(||A||)的大小来判断矩阵(I-A)是否为可逆矩阵。对于(A\in C^{n\times n})以及相应的某种矩阵范数(||\cdot||),如果有(||A||

[||(I-A)^{-1}||\leq\frac{||I||}{1-||A||} ]

这条定理给出了矩阵可逆性的判断方法。

​ ​ ​ 谱半径在诸多理论中都有着重要的应用,称(\rho(A)=\max_{i}|\lambda_i|)为矩阵(A)的谱半径,其中(\lambda_i)为矩阵(A)的特征值。就方阵而言,矩阵范数就是矩阵谱半径的上界,对于任意给定的矩阵都可以构造出一种矩阵范数使得该范数与谱半径充分接近,这在科学计算中应用广泛。

​ ​ ​ 条件数是求矩阵逆的摄动的一个重要量。设(\text{cond}(A)=||A||~||A^{-1}||),则当(||A^{-1}~||\delta A||

4 矩阵函数介绍

​ ​ ​ 同数学分析一样,矩阵分析理论的建立也是基于极限理论的,因此此处先介绍 矩阵序列的相关概念。按照正整数(k)的顺序,将(C^{m\times n})中的矩阵排成一列,(A_1,A_2,\cdots,A_k,\cdots),称这列有序的矩阵为矩阵序列,称(A_k)为矩阵序列的一般项。下面给出矩阵序列收敛的定义:设有矩阵序列({A^{(k)}}),其中(A^{(k)}=(a_{ij}^{(k)}){m\times n}\in C^{m\times n}),当(a{ij}^{(k)}\rightarrow a_{ij})时,称({A^{(k)}})收敛,或称矩阵(A=(a_{ij})_{m\times n})为({A^{(k)}})的极限,或称({A^{(k)}})收敛于(A),记为

[\lim_{k\rightarrow\infty}A^{(k)}\rightarrow A\quad或\quad A^{(k)}\rightarrow A ]

且不收敛的矩阵序列称为发散。和数列收敛的性质类似,矩阵序列收敛也有一些有用的性质:

[\begin{align} &\text{设}A^{(k)}\rightarrow A_{m\times n}\text{以及}B^{(k)}\rightarrow B_{m\times n}\text{则有}\ &\text{性质1}\quad \lim_{k\rightarrow\infty}(\alpha A^{(k)}+\beta B^{(k)})=\alpha A+\beta B\ &\text{性质2}\quad \lim_{k\rightarrow\infty}A^{(k)}B^{(k)}=AB\ &\text{性质3}\quad (A^{(k)})^{-1}\rightarrow A^{-1} \end{align} ]

​ ​ ​ 在判断矩阵序列的收敛性的时候,有一些常用的结论,比如:(A^{(k)}\rightarrow O)的充分必要条件是(||A^{(k)}||\rightarrow0)、(A^{(k)}\rightarrow A)的充分必要条件是(||A^{(k)}-A||\rightarrow0),其中(||\cdot||)为任意一种矩阵范数。在实际应用中,一种常见的矩阵序列是由方阵构成的矩阵序列,如果有(A^{(k)}\rightarrow O),则称(A)为收敛矩阵,且(A)为收敛矩阵的两个充分必要条件是(\rho(A)

​ ​ ​ 矩阵级数是建立矩阵函数理论的基础,称矩阵序列形成的无穷项和(A^{(0)}+A^{(1)}+\cdots+A^{(k)}+\cdots)为矩阵级数,记为(\sum^{\infty}{k=0}A^{(k)}),可称为矩阵级数式。记(S^{(N)}=\sum^{N}{k=0}A^{(k)})为矩阵级数式的部分和,如果矩阵序列({S^{(N)}})收敛,且有极限(S),则有(\lim_{N\rightarrow\infty}S^{(N)}=S),那么就称矩阵级数式 收敛,且有和(S)​。不收敛的矩阵级数称为是 发散的。最后给出矩阵级数 绝对收敛的概念,矩阵级数绝对收敛指的是其中的每个数项级数都是绝对收敛的。下面给出矩阵级数收敛性的一些性质:

[\begin{align} \text{性质1}&\quad \text{若矩阵级数式绝对收敛,则它也一定收敛,且任意调换其项顺序所得级数仍收敛,且其和不变}\ \text{性质2}&\quad \text{矩阵级数}\sum^{\infty}{k=0}A^{(k)}\text{为绝对收敛的充要条件是正项级数}\sum^{\infty}{k=0}||A^{(k)}||\text{收敛}\ \text{性质3}&\quad \text{如果}\sum^{\infty}{k=0}A^{(k)}\text{是收敛(或绝对收敛)的,那么}\sum^{\infty}{k=0}PA^{(k)}Q\text{也是收敛(或绝对收敛)的}\ \text{性质4}&\quad \text{设级数}S_1\text{和}S_2\text{绝对收敛,其和为}A\text{和}B,\text{则}S_1\text{和}S_2\text{按项相乘所得矩阵级数收敛,且有和}AB \end{align} ]

对于矩阵级数而言,有一种常见的矩阵级数,即 矩阵幂级数。对于方阵幂级数(Neumann级数)而言,方阵(A)的幂级数(\sum^{\infty}{k=0}A^{k}=I+A+A^2+\cdots+A^k+\cdots)收敛的充分必要条件是(A)为收敛矩阵,并且在收敛时,其和为((I-A)^{-1})。对于矩阵幂级数(\sum^{\infty}{k=0}c_kA^{k})而言,其对应的纯量幂级数(f(z)=\sum^{\infty}_{k=0}c_kz^k)的收敛半径为(r),则如果方阵(A)满足(\rho(A)

​ ​ ​ 矩阵函数是以(n)阶矩阵为自变量和因变量的一种函数。如果一元函数(f(z))能展开为(z)的幂级数(f(z)=\sum^{\infty}_{k=0}c_kz^k\quad(|z|

[f(A)=\sum^{\infty}_{k=0}c_kA^{k} ]

​ ​ ​ 在数学分析课程中,建立起函数概念之后便开始讨论函数的导数概念,在矩阵分析领域也是如此。函数矩阵是指以变量(t)的函数(a_{ij}(t))为元素的矩阵,在形式上可以认为是由函数作为元素所构成的一个矩阵。函数矩阵的微分和积分就是指作为其中每个元素的函数各自的微分和积分,运算所得的结果仍是一个函数矩阵。除了函数矩阵的导数以外,还有纯量对向量、向量对向量、矩阵对向量、矩阵对矩阵的导数问题,此处略去更加深入的讨论。

​ ​ ​ 函数对矩阵的导数:设(X=(\xi_{ij}){m\times n}),(mn)元函数(f(X)=f(\xi{11},\xi_{12},\cdots,\xi_{1n},\xi_{21},\cdots,\xi_{mn})),则:

[\frac{df}{dX}=(\frac{\partial f}{\partial \xi_{ij}}){m\times n}= \begin{bmatrix} \frac{\partial f}{\partial \xi{11}} & \cdots & \frac{\partial f}{\partial \xi_{1n}}\ \vdots & & \vdots\ \frac{\partial f}{\partial \xi_{m1}} & \cdots & \frac{\partial f}{\partial \xi_{mn}} \end{bmatrix} ]

如上所示,函数对矩阵的导数所得到的结果是一个矩阵,该矩阵的行数和列数与矩阵(X)一样,其中的每个元素都是函数对矩阵(X)相应位置上的元素的偏导数。

​ ​ ​ 函数矩阵对矩阵的导数:设(X=(\xi_{ij}){m\times n}),(mn)元函数(f{ij}(X)=f_{ij}(\xi_{11},\xi_{12},\cdots,\xi_{1n},\xi_{21},\cdots,\xi_{mn})),其中(i=1,2,\cdots,r;j=1,2,\cdots,s),则:

[F(X)= \begin{bmatrix} f_{11}(X) & \cdots & f_{1s}(X)\ \vdots & & \vdots\ f_{r1}(X) & \cdots & f_{rs}(X) \end{bmatrix} \qquad \frac{dF}{dX}= \begin{bmatrix} \frac{\partial F}{\partial \xi_{11}} & \frac{\partial F}{\partial \xi_{12}} & \cdots & \frac{\partial F}{\partial \xi_{1n}}\ \frac{\partial F}{\partial \xi_{21}} & \frac{\partial F}{\partial \xi_{22}} & \cdots & \frac{\partial F}{\partial \xi_{2n}}\ \vdots & \vdots & & \vdots\ \frac{\partial F}{\partial \xi_{m1}} & \frac{\partial F}{\partial \xi_{m2}} & \cdots & \frac{\partial F}{\partial \xi_{mn}} \end{bmatrix} ]

[\frac{\partial F}{\partial\xi_{ij}}= \begin{bmatrix} \frac{\partial f_{11}}{\partial \xi_{ij}} & \frac{\partial f_{12}}{\partial \xi_{ij}} & \cdots & \frac{\partial f_{1s}}{\partial \xi_{ij}}\ \frac{\partial f_{21}}{\partial \xi_{ij}} & \frac{\partial f_{22}}{\partial \xi_{ij}} & \cdots & \frac{\partial f_{2s}}{\partial \xi_{ij}}\ \vdots & \vdots & & \vdots\ \frac{\partial f_{r1}}{\partial \xi_{ij}} & \frac{\partial f_{r2}}{\partial \xi_{ij}} & \cdots & \frac{\partial f_{rs}}{\partial \xi_{ij}} \end{bmatrix} ]

可以认为函数矩阵对矩阵的导数是基于函数对矩阵的导数的:函数矩阵中的每个元素对矩阵进行导数,就是函数对矩阵的导数。

5 参考资料

  • 《矩阵论》,张凯院,徐仲,西北工业大学出版社
    音频信号处理(一)语音录制

Original: https://www.cnblogs.com/faranten/p/15845928.html
Author: faranten
Title: 矩阵理论基础知识