您好,登錄后才能下訂單哦!
這篇文章主要介紹python怎么將兩個實(shí)數(shù)矩陣合并為一個復(fù)數(shù)矩陣,文中介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們一定要看完!
有時需要把兩個實(shí)數(shù)矩陣,一個作為實(shí)部,一個作為虛部,合并為一個復(fù)數(shù)矩陣,該如何操作?
假如是在第二個維度上進(jìn)行合并(real: Data[:, 0, :, :] imag: Data[:, 1, :, :]),有兩種方法
result = Data[:, 0, :, :] + 1j*Data[:, 1, :, :]
result = 1j*Data[:, 1, :, :] result += Data[:, 0, :, :]
第二種方法更節(jié)省內(nèi)存~
補(bǔ)充:python numpy 分離與合并復(fù)數(shù)矩陣實(shí)部虛部的方法
在進(jìn)行數(shù)字信號處理的過程中,我們往往有對短時傅里葉變換頻譜(spectrogram)進(jìn)行分析的需求。
常見的分析手段對應(yīng)歐拉公式分為兩種,要么使用模與相位的形式,要么使用實(shí)部虛部。
本文分享一個簡單的將復(fù)數(shù)光譜圖分解為實(shí)部與虛部以及將兩個部分重新合并為一個復(fù)數(shù)矩陣的過程,以下為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))
其中l(wèi)ibrosa庫為常用的音頻處理庫。
上述代碼實(shí)現(xiàn)了對wavfile進(jìn)行短時傅里葉變換,分離出實(shí)部虛部并重新合并的過程。
最終的輸出為True, 證明了經(jīng)過這些步驟過后,重構(gòu)的復(fù)數(shù)矩陣與初始的光譜圖是一致的。
Python是一種編程語言,內(nèi)置了許多有效的工具,Python幾乎無所不能,該語言通俗易懂、容易入門、功能強(qiáng)大,在許多領(lǐng)域中都有廣泛的應(yīng)用,例如最熱門的大數(shù)據(jù)分析,人工智能,Web開發(fā)等。
以上是“python怎么將兩個實(shí)數(shù)矩陣合并為一個復(fù)數(shù)矩陣”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。