在进行数字信号处理的过程中,我们往往有对短时傅里叶变换频谱(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 numpy 分离与合并复数矩阵实部虚部的方法相关推荐

  1. 复数的实部虚部与幅值相角之间的转换及python代码实现

    一.复数定义 复数 z=a+biz=a+biz=a+bi 的实部为 aaa,虚部为 bbb.复数的模长 ∣z∣|z|∣z∣ 定义为 ∣z∣=a2+b2|z|=\sqrt{a^2+b^2}∣z∣=a2+ ...

  2. C语言抽象数据类型实现复数的加减乘运算、输入实部虚部输出复数,输入复数输出实部虚部

    运行结果 #include<stdio.h> #include<stdlib.h> //头文件 typedef struct Complex //定义结构体类型Complex ...

  3. Python/Numpy 合并复数的实部和虚部

    最近需要使用 FFT 分析图像的频谱.我想在图像FFT后,分别对其实部和虚部进行操作,之后进行合并,再重建回原始图像. 话不多说,直接上代码: img = cv2.imread("./dat ...

  4. python的复数的实部虚部都是浮点数吗_python中复数的共轭复数知识点总结

    理科学生应该都了解过共轭吧,经常在数学或者物理还有化学中出现,在坐标轴上去描述共轭函数还是比较清晰的,py语言里也经常会出现关于共轭函数的使用,操作也非常有趣, 在计算机课上,经常被当做考试的试题,了 ...

  5. python/numpy中数组array和矩阵matrix的区别

    在numpy中,array(实际上是ndarray,表示多维数组)是可以有多维度的,而matrix只有两个维度,即行和列.所以matrix是array的一种特例,因而它继承了array的所有函数,同时 ...

  6. Python | Numpy:详解计算矩阵的均值和标准差

    一.前言 CRITIC权重法是一种比熵权法和标准离差法更好的客观赋权法: 它是基于评价指标的对比强度和指标之间的冲突性来综合衡量指标的客观权重.考虑指标变异性大小的同时兼顾指标之间的相关性,并非数字越 ...

  7. 如何用matlab读取npz文件,Python Numpy中数据的常用的保存与读取方法

    在经常性读取大量的数值文件时(比如深度学习训练数据),可以考虑现将数据存储为Numpy格式,然后直接使用Numpy去读取,速度相比为转化前快很多. 下面就常用的保存数据到二进制文件和保存数据到文本文件 ...

  8. python怎么读取txt文件数据保存数组中-Python Numpy中数据的常用的保存与读取方法...

    在经常性读取大量的数值文件时(比如深度学习训练数据),可以考虑现将数据存储为Numpy格式,然后直接使用Numpy去读取,速度相比为转化前快很多. 下面就常用的保存数据到二进制文件和保存数据到文本文件 ...

  9. python numpy 获得数组的行和列(三种方法)

    通过shape属性获得 首先是用 shape 这个属性,学numpy的时候,知道,ndarray有shape这个属性,返回一个元组,里面放了每个维度的大小,所以直接就能想到,对于二维数组 print( ...

最新文章

  1. 《Adobe Illustrator CC 2014中文版经典教程(彩色版)》—第1课0.15节创建剪切蒙版...
  2. [EXP]windows全版本SMB溢出工具加强版
  3. android 计算执行时间
  4. SpringMVC响应的方式,无数据跳转页面,带数据跳转页面.Json数据返回
  5. Java中BigDecimal的一个除法异常
  6. SQL登录 18470 18452 错误
  7. 可以通过发声把玻璃震碎吗?
  8. 亚马逊卖家培训返校季爆单技巧
  9. centos 安装apache2.4
  10. 批量生成条形码并写入到excel文件
  11. php 页码,php页码怎么实现
  12. JAVA图形编程Swing之——JPanel绘图
  13. 从事java的年龄_请教前辈们:JAVA的职业有年龄限制吗
  14. 【华为昇腾社区、鹏城实验室】中国软件开源创新大赛·赛道二:任务挑战赛(模型王者挑战赛黄金赛段)
  15. 方文室随记12柳永13秦朝
  16. 1.4 爬虫-笔趣阁获取小说例子
  17. ELK+Filebeat 部署安装
  18. oracle集群安装ogg,在RAC下安装配置OGG
  19. eclipse workspace设置
  20. 跨境物流市场现状研究分析报告 -

热门文章

  1. 高内聚低耦合通俗解释
  2. Hmac概念与实现(js和go实现)
  3. Linux系统不支持网上银行吗,Linux下如何使用网银
  4. postgresql 批量插入
  5. Flash编程入门笔记
  6. 3ds文件格式转openGL
  7. 计算机辅助药物设计在新药研发中的应用,计算机辅助药物设计在抗耐药菌药物研发中的应用进展...
  8. 计算机毕业设计Javaweb家教信息服务平台设计与实现(源码+系统+mysql数据库+lw文档)
  9. 【网络流量识别】【深度学习】【二】RNN和ANN—深度学习入侵检测方法:ANN和RNN在NSL-KDD上的新性能
  10. realsense R200在Ubuntu16.04上的安装