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创建和删除目录的方法
Apr 29 Python
全面了解Python环境配置及项目建立
Jun 30 Python
Python如何判断数独是否合法
Sep 08 Python
Python入门必须知道的11个知识点
Mar 21 Python
python读取文件名称生成list的方法
Apr 27 Python
python pands实现execl转csv 并修改csv指定列的方法
Dec 12 Python
python re.sub()替换正则的匹配内容方法
Jul 22 Python
jupyter notebook 使用过程中python莫名崩溃的原因及解决方式
Apr 10 Python
tensorflow使用CNN分析mnist手写体数字数据集
Jun 17 Python
python线性插值解析
Jul 05 Python
Python优秀开源项目Rich源码解析的流程分析
Jul 06 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
PHP用strstr()函数阻止垃圾评论(通过判断a标记)
2013/09/28 PHP
php调整gif动画图片尺寸示例代码分享
2013/12/05 PHP
linux下使用crontab实现定时PHP计划任务失败的原因分析
2014/07/05 PHP
10个超级有用值得收藏的PHP代码片段
2015/01/22 PHP
JavaScript中Array 对象相关的几个方法
2006/12/22 Javascript
javascript获取隐藏dom的宽高 具体实现
2013/07/14 Javascript
JavaScript中圆括号()和方括号[]的特殊用法疑问解答
2013/08/06 Javascript
jquery内置验证(validate)使用方法示例(表单验证)
2013/12/04 Javascript
js/jQuery简单实现选项卡功能
2014/01/02 Javascript
node.js中的fs.rename方法使用说明
2014/12/16 Javascript
基于jQuery实现在线选座之高铁版
2015/08/24 Javascript
分享使用AngularJS创建应用的5个框架
2015/12/05 Javascript
使用three.js 画渐变的直线
2016/06/05 Javascript
JS实现获取当前URL和来源URL的方法
2016/08/24 Javascript
jQuery实现简单日期格式化功能示例
2017/09/19 jQuery
微信小程序签到功能
2018/10/31 Javascript
JavaScript数据结构与算法之检索算法实例分析【顺序查找、最大最小值、自组织查询】
2019/02/22 Javascript
vue+iview/elementUi实现城市多选
2019/03/28 Javascript
原生JS实现无缝轮播图片
2020/06/24 Javascript
在vue中实现某一些路由页面隐藏导航栏的功能操作
2020/09/21 Javascript
如何在Vue项目中添加接口监听遮罩
2021/01/25 Vue.js
Python中time模块与datetime模块在使用中的不同之处
2015/11/24 Python
Python删除Java源文件中全部注释的实现方法
2017/08/30 Python
mac PyCharm添加Python解释器及添加package路径的方法
2018/10/29 Python
线程安全及Python中的GIL原理分析
2019/10/29 Python
Django Haystack 全文检索与关键词高亮的实现
2020/02/17 Python
记录模型训练时loss值的变化情况
2020/06/16 Python
html5 application cache遇到的严重问题
2012/12/26 HTML / CSS
远程Wi-Fi宠物监控相机:Petcube
2017/04/26 全球购物
Etam德国:内衣精品店
2019/08/25 全球购物
医药工作岗位求职信分享
2013/12/31 职场文书
在校生自我鉴定
2014/01/23 职场文书
高中学生自我评价范文
2014/09/23 职场文书
司机个人年终总结
2015/03/03 职场文书
趣味运动会标语口号
2015/12/26 职场文书
JavaScript分页组件使用方法详解
2021/07/26 Javascript