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启动办公软件进程(word、excel、ppt、以及wps的et、wps、wpp)
Apr 09 Python
python类继承用法实例分析
Oct 10 Python
浅析Python中的多进程与多线程的使用
Apr 07 Python
Fiddler如何抓取手机APP数据包
Jan 22 Python
python中函数默认值使用注意点详解
Jun 01 Python
Python3 Random模块代码详解
Dec 04 Python
Python实现简单生成验证码功能【基于random模块】
Feb 10 Python
下载python中Crypto库报错:ModuleNotFoundError: No module named ‘Crypto’的解决
Apr 23 Python
解决python线程卡死的问题
Feb 18 Python
Python HTMLTestRunner可视化报告实现过程解析
Apr 10 Python
利用OpenCV中对图像数据进行64F和8U转换的方式
Jun 03 Python
jupyter notebook远程访问不了的问题解决方法
Jan 11 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
谈一谈收音机的高放电路
2021/03/02 无线电
谈谈新手如何学习PHP
2006/12/23 PHP
php中的观察者模式
2010/03/24 PHP
实用PHP会员权限控制实现原理分析
2011/05/29 PHP
使用php记录用户通过搜索引擎进网站的关键词
2014/02/13 PHP
PHP CodeIgniter分页实例及多条件查询解决方案(推荐)
2017/05/20 PHP
IE8 chrome中table隔行换色解决办法
2010/07/09 Javascript
nodejs中exports与module.exports的区别详细介绍
2013/01/14 NodeJs
Js(JavaScript)中,弹出是或否的选择框示例(confirm用法的实例分析)
2013/07/09 Javascript
iframe实用操作锦集
2014/04/22 Javascript
js简单实现标签云效果实例
2015/08/06 Javascript
javascript日期操作详解(脚本之家整理)
2015/09/05 Javascript
JS实现合并两个数组并去除重复项只留一个的方法
2015/12/17 Javascript
基于JS实现二维码图片固定在右下角某处并跟随滚动条滚动
2017/02/08 Javascript
vue2.0实战之使用vue-cli搭建项目(2)
2017/03/27 Javascript
基于jquery的on和click的区别详解
2018/01/15 jQuery
微信小程序textarea层级过高的解决方法
2019/03/04 Javascript
深入解读Node.js中的koa源码
2019/06/17 Javascript
layui 实现表单和文件上传一起传到后台的例子
2019/09/16 Javascript
vue接口请求加密实例
2020/08/11 Javascript
js实现滑动进度条效果
2020/08/21 Javascript
Python存取XML的常见方法实例分析
2017/03/21 Python
Python断言assert的用法代码解析
2018/02/03 Python
Python将文本去空格并保存到txt文件中的实例
2018/07/24 Python
Ubuntu18.04中Python2.7与Python3.6环境切换
2019/06/14 Python
如何用Python制作微信好友个性签名词云图
2019/06/28 Python
Python 取numpy数组的某几行某几列方法
2019/10/24 Python
windows、linux下打包Python3程序详细方法
2020/03/17 Python
Css3+Js制作漂亮时钟(附源码)
2013/04/24 HTML / CSS
推荐10个CSS3 制作的创意下拉菜单效果
2014/02/11 HTML / CSS
基层党员对照检查材料
2014/08/25 职场文书
宝葫芦的秘密观后感
2015/06/11 职场文书
北京爱情故事观后感
2015/06/12 职场文书
小学生必读成语故事大全:送给暑假的你们
2019/07/09 职场文书
高效笔记技巧分享:学会这些让你不再困扰
2019/09/04 职场文书
win10以太网连接不上怎么办?Win10连接以太网详细教程
2022/04/08 数码科技