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之wxPython菜单使用详解
Sep 28 Python
Python实现单词拼写检查
Apr 25 Python
Python中字典的基本知识初步介绍
May 21 Python
python3实现读取chrome浏览器cookie
Jun 19 Python
Python实现针对中文排序的方法
May 09 Python
python实现八大排序算法(1)
Sep 14 Python
Tornado 多进程实现分析详解
Jan 12 Python
Python使用Opencv实现图像特征检测与匹配的方法
Oct 30 Python
python对数组进行排序,并输出排序后对应的索引值方式
Feb 28 Python
pytorch 实现L2和L1正则化regularization的操作
Mar 03 Python
Python+Matplotlib图像上指定坐标的位置添加文本标签与注释
Apr 11 Python
Python中的socket网络模块介绍
Jul 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使用mysql与mysqli连接Mysql数据库用法示例
2016/07/07 PHP
PHP使用imagick扩展实现合并图像的方法
2017/04/25 PHP
对laravel的session获取与存取方法详解
2019/10/08 PHP
在 Laravel 6 中缓存数据库查询结果的方法
2019/12/11 PHP
js parsefloat parseint 转换函数
2010/01/21 Javascript
IE event.srcElement和FF event.target 功能比较
2010/03/01 Javascript
页面只有一个text的时候,回车自动submit的解决方法
2010/08/12 Javascript
jQuery ajax在GBK编码下表单提交终极解决方案(非二次编码方法)
2010/10/20 Javascript
JavaScript显示当然日期和时间即年月日星期和时间
2013/10/29 Javascript
js select option对象小结
2013/12/20 Javascript
javascript移动设备Web开发中对touch事件的封装实例
2014/06/05 Javascript
jQuery中unbind()方法用法实例
2015/01/19 Javascript
jquery利用命名空间移除绑定事件的方法
2015/03/11 Javascript
关注jquery技巧提高jquery技能(前端开发必学)
2015/11/02 Javascript
字符串反转_JavaScript
2016/04/28 Javascript
在javascript中创建对象的各种模式解析
2016/05/16 Javascript
浅析jQuery 遍历函数,javascript中的each遍历
2016/05/25 Javascript
JS中mouseup事件丢失的原因与解决办法
2017/06/14 Javascript
vuex的简单使用教程
2018/02/02 Javascript
Vue 全家桶实现移动端酷狗音乐功能
2018/11/16 Javascript
vue-router命名路由和编程式路由传参讲解
2019/01/19 Javascript
json字符串对象转换代码实例
2019/09/28 Javascript
原生JavaScript实现的无缝滚动功能详解
2020/01/17 Javascript
[00:31]DOTA2荣耀之路7:Miracle-空血无敌斩
2018/05/31 DOTA
python函数参数*args**kwargs用法实例
2013/12/04 Python
python中ConfigParse模块的用法
2014/09/29 Python
Python装饰器限制函数运行时间超时则退出执行
2019/04/09 Python
python3.7+selenium模拟淘宝登录功能的实现
2020/05/26 Python
全面解析CSS Media媒体查询使用操作(推荐)
2017/08/15 HTML / CSS
美国顶级品牌男士大码服装店:DXL
2017/08/30 全球购物
爱普生美国官网:Epson美国
2018/11/05 全球购物
获取邓白氏信用报告:Dun & Bradstreet
2019/01/22 全球购物
销售人员自我评价
2014/02/01 职场文书
硕士学位论文评语
2014/12/31 职场文书
遇事可以测出您的见识与格局
2019/09/16 职场文书
销区经理年终述职报告模板
2019/11/28 职场文书