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中decorator使用实例
Apr 14 Python
Python实现队列的方法
May 26 Python
Python 类与元类的深度挖掘 I【经验】
May 06 Python
使用Python通过win32 COM打开Excel并添加Sheet的方法
May 02 Python
多个应用共存的Django配置方法
May 30 Python
教你利用Python玩转histogram直方图的五种方法
Jul 30 Python
python多任务及返回值的处理方法
Jan 22 Python
Python3.7+tkinter实现查询界面功能
Dec 24 Python
pytorch 中pad函数toch.nn.functional.pad()的用法
Jan 08 Python
Python实现Wordcloud生成词云图的示例
Mar 30 Python
Python按照list dict key进行排序过程解析
Apr 04 Python
Python解析m3u8拼接下载mp4视频文件的示例代码
Mar 03 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
mysql_num_rows VS COUNT 效率问题分析
2011/04/23 PHP
详解php中反射的应用
2016/03/15 PHP
PHP文件类型检查及fileinfo模块安装使用详解
2019/05/09 PHP
Laravel5.1 框架Middleware中间件基本用法实例分析
2020/01/04 PHP
PHP使用PDO 连接与连接管理操作实例分析
2020/04/21 PHP
学习YUI.Ext第七日-View&JSONView Part Two-一个画室网站的案例
2007/03/10 Javascript
JS事件Event元素(兼容IE,Firefox,Chorme)
2012/11/01 Javascript
JS画5角星方法介绍
2013/09/17 Javascript
jQuery对象的length属性用法实例
2014/12/27 Javascript
详解JavaScript的另类写法
2016/04/11 Javascript
JavaScript实现九九乘法表的简单实例
2016/06/07 Javascript
js时间查询插件使用详解
2017/04/07 Javascript
AngularJS实现的select二级联动下拉菜单功能示例
2017/10/25 Javascript
微信小程序拼接图片链接无底洞深入探究
2019/09/03 Javascript
javascript的惯性运动实现代码实例
2019/09/07 Javascript
JS实现随机点名器
2020/04/12 Javascript
jQuery实现的移动端图片缩放功能组件示例
2020/05/01 jQuery
Python时间戳与时间字符串互相转换实例代码
2013/11/28 Python
Request的中断和ErrorHandler实例解析
2018/02/12 Python
Python实现通过解析域名获取ip地址的方法分析
2019/05/17 Python
解决Atom安装Hydrogen无法运行python3的问题
2019/08/28 Python
python tornado使用流生成图片的例子
2019/11/18 Python
Python tkinter实现简单加法计算器代码实例
2020/05/13 Python
通过实例简单了解Python sys.argv[]使用方法
2020/08/04 Python
html5跨域通讯之postMessage的用法总结
2013/11/07 HTML / CSS
香港草莓网土耳其网站:Strawberrynet TR
2017/03/02 全球购物
小学教师的自我评价范例
2013/10/31 职场文书
好的自荐信包括什么内容
2013/11/07 职场文书
反腐倡廉警示教育活动心得体会
2014/09/04 职场文书
关于运动会广播稿300字
2014/10/05 职场文书
房屋授权无偿使用证明
2014/11/29 职场文书
学校教师师德师风承诺书
2015/04/28 职场文书
2015年高三毕业班班主任工作总结
2015/10/22 职场文书
社区宣传标语口号
2015/12/26 职场文书
Springboot集成阿里云OSS上传文件系统教程
2021/06/28 Java/Android
python数字图像处理之图像的批量处理
2022/06/28 Python