python 如何将两个实数矩阵合并为一个复数矩阵


Posted in Python onMay 19, 2021

问题描述:

有时需要把两个实数矩阵,一个作为实部,一个作为虚部,合并为一个复数矩阵,该如何操作?

解决办法:

假如是在第二个维度上进行合并(real: Data[:, 0, :, :] imag: Data[:, 1, :, :]),有两种方法

第一种、

result = Data[:, 0, :, :] + 1j*Data[:, 1, :, :]

第二种、

result = 1j*Data[:, 1, :, :]
result += Data[:, 0, :, :]

第二种方法更节省内存~

补充:python numpy 分离与合并复数矩阵实部虚部的方法

在进行数字信号处理的过程中,我们往往有对短时傅里叶变换频谱(spectrogram)进行分析的需求。

常见的分析手段对应欧拉公式分为两种,要么使用模与相位的形式,要么使用实部虚部。

本文分享一个简单的将复数光谱图分解为实部与虚部以及将两个部分重新合并为一个复数矩阵的过程,以下为python代码。

import numpy as np
import librosa

# load the original wav
test_wave, _ = librosa.load("../RecFile_1_20200617_153719_Sound_Capture_DShow_5_monoOutput1.wav", sr=44100)
# calculate the complex spectrogram stft
spectrogram_test_wav = librosa.stft(test_wave, n_fft=735*2, win_length=735*2, hop_length=735)

# calculate the real part of the spectrogram
real_spectrogram = spectrogram_test_wav.real
# calculate the imaginary part of the spectrogram
imaginary_spectrogram = spectrogram_test_wav.imag

# combine these two parts
reconstruction_spectrogram = real_spectrogram + 1j * imaginary_spectrogram
print(np.array_equal(spectrogram_test_wav, reconstruction_spectrogram))

其中librosa库为常用的音频处理库。

上述代码实现了对wavfile进行短时傅里叶变换,分离出实部虚部并重新合并的过程。

最终的输出为True, 证明了经过这些步骤过后,重构的复数矩阵与初始的光谱图是一致的。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python文件和目录操作方法大全(含实例)
Mar 12 Python
使用Python脚本来控制Windows Azure的简单教程
Apr 16 Python
Python自定义线程类简单示例
Mar 23 Python
Python3爬虫学习之MySQL数据库存储爬取的信息详解
Dec 12 Python
解决Django删除migrations文件夹中的文件后出现的异常问题
Aug 31 Python
Python 给下载文件显示进度条和下载时间的实现
Apr 02 Python
Jupyter Notebook打开任意文件夹操作
Apr 14 Python
Python virtualenv虚拟环境实现过程解析
Apr 18 Python
spyder 在控制台(console)执行python文件,debug python程序方式
Apr 20 Python
Python类的继承super相关原理解析
Oct 22 Python
python 下载文件的几种方法汇总
Jan 06 Python
Python按顺序遍历并读取文件夹中文件
Apr 29 Python
python使用pywinauto驱动微信客户端实现公众号爬虫
python基于tkinter实现gif录屏功能
Python 读写 Matlab Mat 格式数据的操作
May 19 #Python
python3 hdf5文件 遍历代码
May 19 #Python
Python基础之元组与文件知识总结
Python使用protobuf序列化和反序列化的实现
详解分布式系统中如何用python实现Paxos
May 18 #Python
You might like
windows xp下安装pear
2006/12/02 PHP
关于mysql 字段的那个点为是定界符
2007/01/15 PHP
浅谈PHP强制类型转换,慎用!
2013/06/06 PHP
PHP、Java des加密解密实例
2015/04/27 PHP
Laravel框架集成UEditor编辑器的方法图文与实例详解
2019/04/17 PHP
一段效率很高的for循环语句使用方法
2007/08/13 Javascript
很棒的学习jQuery的12个网站推荐
2011/04/28 Javascript
检查输入的是否是数字使用keyCode配合onkeypress事件
2014/01/23 Javascript
jquery中交替点击事件的实现代码
2014/02/14 Javascript
兼容主流浏览器的jQuery+CSS 实现遮罩层的简单代码
2014/10/14 Javascript
js中键盘事件实例简析
2015/01/10 Javascript
javascript中对Date类型的常用操作小结
2016/05/19 Javascript
JavaScript中判断数据类型的方法总结
2016/05/24 Javascript
vue.js入门教程之基础语法小结
2016/09/01 Javascript
JavaScript仿支付宝6位数字密码输入框
2016/12/29 Javascript
JS实现队列的先进先出功能示例
2017/05/10 Javascript
angular中使用Socket.io实例代码
2017/06/03 Javascript
Vue2.0 slot分发内容与props验证的方法
2017/12/12 Javascript
详解用Webpack与Babel配置ES6开发环境
2019/03/12 Javascript
javascript canvas API内容整理
2020/02/16 Javascript
javascript运行机制之执行顺序理解
2020/08/03 Javascript
python实现神经网络感知器算法
2017/12/20 Python
对python中的pop函数和append函数详解
2018/05/04 Python
让IE下支持Html5的placeholder属性的插件
2014/09/02 HTML / CSS
Silk’n激光脱毛器官网:silkn.com
2016/10/06 全球购物
HomeAway澳大利亚:预订你的度假屋,公寓、度假村、别墅等
2019/02/20 全球购物
Viking比利时:购买办公用品
2019/10/30 全球购物
英国领先的在线高尔夫设备零售商:Golfgeardirect
2020/12/11 全球购物
PHP面试题-$message和$$message的区别
2015/12/08 面试题
若通过ObjectOutputStream向一个文件中多次以追加方式写入object,为什么用ObjectInputStream读取这些object时会产生StreamCorruptedException?
2016/10/17 面试题
党校培训自我鉴定
2014/02/01 职场文书
《孔繁森》教学反思
2014/04/17 职场文书
大学理论知识学习自我鉴定
2014/04/28 职场文书
我的1919观后感
2015/06/03 职场文书
结婚十年感言
2015/07/31 职场文书
Go语言空白表示符_的实例用法
2021/07/04 Golang