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 相关文章推荐
Python3.X 线程中信号量的使用方法示例
Jul 24 Python
简单了解Django模板的使用
Dec 20 Python
Pandas标记删除重复记录的方法
Apr 08 Python
对Python中数组的几种使用方法总结
Jun 28 Python
win8下python3.4安装和环境配置图文教程
Jul 31 Python
python 列表递归求和、计数、求最大元素的实例
Nov 28 Python
Python3.5迭代器与生成器用法实例分析
Apr 30 Python
python+adb+monkey实现Rom稳定性测试详解
Apr 23 Python
Tensorflow tensor 数学运算和逻辑运算方式
Jun 30 Python
详解Python 3.10 中的新功能和变化
Apr 28 Python
python开发飞机大战游戏
Jul 15 Python
Python编程中内置的NotImplemented类型的用法
Mar 23 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类
2006/11/25 PHP
一步一步学习PHP(7) php 字符串相关应用
2010/03/05 PHP
php中根据某年第几天计算出日期年月日的代码
2011/02/24 PHP
浅谈PHP调用Webservice思路及源码分享
2014/06/04 PHP
php实现图片添加描边字和马赛克的方法
2014/12/10 PHP
PHP二维数组实现去除重复项的方法【保留各个键值】
2017/12/21 PHP
jQuery学习笔记之jQuery的DOM操作
2010/12/22 Javascript
js检测输入内容全为空格的方法
2014/05/03 Javascript
jQuery实现自定义事件的方法
2015/04/17 Javascript
Jquery幻灯片特效代码分享--鼠标点击按钮时切换(1)
2015/08/15 Javascript
javascript实现随机显示星星特效
2016/01/28 Javascript
NodeJS远程代码执行
2016/08/28 NodeJs
微信小程序自定义toast实现方法详解【附demo源码下载】
2017/11/28 Javascript
vue实现样式之间的切换及vue动态样式的实现方法
2017/12/19 Javascript
JS async 函数的含义和用法实例总结
2020/04/08 Javascript
详解 javascript对象创建模式
2020/10/30 Javascript
[01:34]2016国际邀请赛中国区预选赛IG战队教练采访
2016/06/27 DOTA
python同时给两个收件人发送邮件的方法
2015/04/30 Python
Python中绑定与未绑定的类方法用法分析
2016/04/29 Python
Python用zip函数同时遍历多个迭代器示例详解
2016/11/14 Python
Python构建XML树结构的方法示例
2017/06/30 Python
对Python 窗体(tkinter)文本编辑器(Text)详解
2018/10/11 Python
python之拟合的实现
2019/07/19 Python
对Python3中列表乘以某一个数的示例详解
2019/07/20 Python
Python3安装pip工具的详细步骤
2019/10/14 Python
python 解决flask 图片在线浏览或者直接下载的问题
2020/01/09 Python
python 递归相关知识总结
2021/03/03 Python
在网上学习全世界最好的课程:Coursera
2017/11/07 全球购物
材料化学应届生求职信
2013/10/09 职场文书
自荐信怎么写好
2013/11/11 职场文书
大学四年学习的自我评价分享
2013/12/09 职场文书
大一军训感言
2014/01/09 职场文书
十一酒店活动方案
2014/02/20 职场文书
网络优化专员求职信
2014/05/04 职场文书
常务副总经理任命书
2014/06/05 职场文书
竞聘演讲报告:基本写作有哪些?附开头范文
2019/10/16 职场文书