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实现网络测试的脚本分享
May 26 Python
Python实现将MySQL数据库表中的数据导出生成csv格式文件的方法
Jan 11 Python
python计算日期之间的放假日期
Jun 05 Python
python 3.7.0 下pillow安装方法
Aug 27 Python
Python告诉你木马程序的键盘记录原理
Feb 02 Python
Python3中编码与解码之Unicode与bytes的讲解
Feb 28 Python
用Python从0开始实现一个中文拼音输入法的思路详解
Jul 20 Python
浅析Python 引号、注释、字符串
Jul 25 Python
python 进程的几种创建方式详解
Aug 29 Python
Django框架model模型对象验证实现方法分析
Oct 02 Python
pyspark 随机森林的实现
Apr 24 Python
python 两种方法删除空文件夹
Sep 29 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正则表达式替换站点关键字链接后空白的解决方法
2014/09/16 PHP
PHP解析目录路径的3个函数总结
2014/11/18 PHP
php实现XSS安全过滤的方法
2015/07/29 PHP
Yii2针对游客、用户防范规则和限制的解决方法分析
2016/10/08 PHP
Laravel程序架构设计思路之使用动作类
2018/06/07 PHP
你需要知道的10个最佳javascript开发实践小结
2012/04/15 Javascript
Javascript中自动切换焦点实现代码
2012/12/15 Javascript
php显示当前文件所在的文件以及文件夹所有文件以树形展开
2013/12/13 Javascript
jquery使用正则表达式验证email地址的方法
2015/01/22 Javascript
Bootstrap3学习笔记(三)之表格
2016/05/20 Javascript
jquery+html仿翻页相册功能
2016/12/20 Javascript
使用requirejs模块化开发多页面一个入口js的使用方式
2017/06/14 Javascript
JavaScript之Date_动力节点Java学院整理
2017/06/28 Javascript
小程序云开发部署攻略(图文教程)
2018/10/30 Javascript
Angular8路由守卫原理和使用方法
2019/08/29 Javascript
JS实现简单日历特效
2020/01/03 Javascript
利用原生JS实现欢乐水果机小游戏
2020/04/23 Javascript
python中字符串类型json操作的注意事项
2017/05/02 Python
浅谈python中str字符串和unicode对象字符串的拼接问题
2018/12/04 Python
完美解决Python matplotlib绘图时汉字显示不正常的问题
2019/01/29 Python
python实现扑克牌交互式界面发牌程序
2020/04/22 Python
python 生成器需注意的小问题
2020/09/29 Python
【HTML5】Canvas绘制简单图片教程
2016/05/13 HTML / CSS
英国婴儿产品专家:Samuel Johnston
2020/04/20 全球购物
荣耀商城:HIHONOR
2020/11/03 全球购物
制衣厂各岗位职责
2013/12/02 职场文书
实习生单位鉴定意见
2013/12/04 职场文书
2014小学植树节活动总结
2014/03/10 职场文书
消防安全责任书
2014/04/14 职场文书
祖国在我心中演讲稿500字
2014/05/04 职场文书
英语教师自荐信
2014/05/26 职场文书
优秀班主任经验交流材料
2014/06/02 职场文书
党员四风自我剖析材料思想汇报
2014/09/13 职场文书
幼儿园教师师德承诺书
2015/04/28 职场文书
离婚纠纷代理词
2015/05/23 职场文书
使用Djongo模块在Django中使用MongoDB数据库
2021/06/20 Python