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 不同对象比较大小示例探讨
Aug 21 Python
再谈Python中的字符串与字符编码(推荐)
Dec 14 Python
python中numpy包使用教程之数组和相关操作详解
Jul 30 Python
python通过zabbix api获取主机
Sep 17 Python
3个用于数据科学的顶级Python库
Sep 29 Python
Python正则表达式和re库知识点总结
Feb 11 Python
Python操作Excel工作簿的示例代码(\*.xlsx)
Mar 23 Python
在服务器上安装python3.8.2环境的教程详解
Apr 26 Python
python初步实现word2vec操作
Jun 09 Python
Python爬虫防封ip的一些技巧
Aug 06 Python
python性能测试工具locust的使用
Dec 28 Python
Python实现简单的2048小游戏
Mar 01 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
Cappuccino 卡布其诺咖啡之制作
2021/03/03 冲泡冲煮
又一个php 分页类实现代码
2009/12/03 PHP
php数组函数序列之array_flip() 将数组键名与值对调
2011/11/07 PHP
php设计模式之观察者模式定义与用法经典示例
2019/09/19 PHP
解决Laravel5.5下的toArray问题
2019/10/15 PHP
PHP超级全局变量【$GLOBALS,$_SERVER,$_REQUEST等】用法实例分析
2019/12/11 PHP
js类中获取外部函数名的方法
2007/08/19 Javascript
基于JQuery的asp.net树实现代码
2010/11/30 Javascript
使用jquery读取html5 localstorage的值的方法
2013/01/04 Javascript
下载文件个别浏览器文件名乱码解决办法
2013/03/19 Javascript
让JavaScript和其它资源并发下载的方法
2014/10/16 Javascript
JavaScript生成随机字符串的方法
2015/03/19 Javascript
javascript实现网页背景烟花效果的方法
2015/08/06 Javascript
实例剖析AngularJS框架中数据的双向绑定运用
2016/03/04 Javascript
解析微信JS-SDK配置授权,实现分享接口
2016/12/09 Javascript
微信小程序 简单教程实例详解
2017/01/13 Javascript
jquery实现图片平滑滚动详解
2017/03/22 jQuery
jquery中each循环的简单回滚操作
2017/05/05 jQuery
使用Require.js封装原生js轮播图的实现代码
2017/06/15 Javascript
如何编写一个完整的Angular4 FormText 组件
2017/11/18 Javascript
详解jQuery中的isPlainObject()使用方法
2018/02/27 jQuery
echarts整合多个类似option的方法实例
2018/07/10 Javascript
JS实现带阴历的日历功能详解
2019/01/24 Javascript
对Python3使运行暂停的方法详解
2019/02/18 Python
python中多个装饰器的调用顺序详解
2019/07/16 Python
Python list与NumPy array 区分详解
2019/11/06 Python
使用tensorflow进行音乐类型的分类
2020/08/14 Python
Pycharm github配置实现过程图解
2020/10/13 Python
党员活动日总结
2014/05/05 职场文书
建筑专业毕业生自荐信
2014/05/25 职场文书
物业品质提升方案
2014/06/08 职场文书
企业文化标语口号
2014/06/09 职场文书
大学生就业求职信
2014/06/12 职场文书
2015年新学期寄语
2015/02/26 职场文书
2015年店长工作总结范文
2015/04/08 职场文书
导游词之西安骊山
2019/12/20 职场文书