第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

python librosa.core.stft() 和 matlab spectrogram(x)

python librosa.core.stft() 和 matlab spectrogram(x)

江戶川亂折騰 2021-12-26 10:25:32
我正在將 Python 代碼轉(zhuǎn)換為 MATLAB。Python 代碼,使用以下命令:stft_ch = librosa.core.stft(audio_input[:, ch_cnt], n_fft=self._nfft,                              hop_length=self._hop_len, win_length=self._win_len,                              window='hann')其中audio_input.shape=(2880000, 4), self._nfft=2048,self._hop_len=960和self._win_len=1920。轉(zhuǎn)換為 MATLAB 時(shí),我使用了:stft_ch = spectrogram(audio_input(:, ch_cnt), hann(win_len), win_len-hop_len, nfft);在那里我核實(shí)size(audio_input)=2880000, 4,win_len=1920,win_len-hop_len=960和nfft=2048。我從 MATLAB 得到一個(gè)輸出,size(stft_ch)=1025, 2999其中 Python 顯示stft_ch.shape=(1025, 3001)。2999MATLAB 輸出中的大小很清楚,并且在if window 是向量的文檔中表現(xiàn)出色k = ?(Nx – noverlap)/(length(window) – noverlap)?。但是,我在Python 文檔中找不到tset的長(zhǎng)度。為什么尺寸之間存在差異?我的轉(zhuǎn)換好嗎?是否有一個(gè) Python 函數(shù)可以產(chǎn)生更類似于 MATLAB 的spectrogram()輸出,以便我可以獲得相同大小的復(fù)數(shù)輸出?
查看完整描述

1 回答

?
萬(wàn)千封印

TA貢獻(xiàn)1891條經(jīng)驗(yàn) 獲得超3個(gè)贊

很長(zhǎng)一段時(shí)間后,并沒(méi)有得到滿意的賞金,我自己找到了答案。

MATLAB 函數(shù)spectrogram()輸出一個(gè)時(shí)間向量,該向量對(duì)應(yīng)于每個(gè)窗口的中間,同時(shí)省略最后一個(gè)窗口。例如,具有 3 個(gè)樣本窗口和 1 個(gè)樣本重疊的 10 個(gè)樣本長(zhǎng)度的信號(hào)將產(chǎn)生以下 4 個(gè)窗口:

1:33:55:77:9, 其中m:n表示一個(gè)窗口,包括從mn包括第nth 個(gè)樣本的樣本。

因此,窗戶的中心將是:2,4,6,8。請(qǐng)注意,不包括第 10 個(gè)樣本。

似乎 MATLAB 需要number_of_windows對(duì)(number_of_windows-1)*hop_length+window_size<=number_of_samples.

另一方面,在 python 版本liberosa.core.stft()上,t 是每個(gè)幀的第一個(gè)樣本的時(shí)間,幀覆蓋的比輸入信號(hào)多。例如,具有 3 個(gè)樣本窗口和 2 個(gè)樣本跳(跳和不重疊)的 10 個(gè)樣本長(zhǎng)度的信號(hào)將產(chǎn)生以下 4 個(gè)窗口:

1:3, , 3:55:77:99:11, 其中m:n表示一個(gè)窗口,包括從mn包括第nth 個(gè)樣本的樣本。

因此,窗口的開(kāi)頭將是:1,3,5,7,9。請(qǐng)注意,包括第 11 個(gè)不存在的樣本。

似乎 liberosa 需要最小number_of_windows化到number_of_windows*hop_length>number_of_samples.

就我而言:

(2999-1)*960+1920=2880000<=2880000 對(duì)于 MATLAB。3001*960=2880960>2880000 而 30000*960=2880000 !> 2880000 在 python 中。

請(qǐng)注意,時(shí)間可以通過(guò)設(shè)置center=True標(biāo)志以 python 為中心。

這是我能找到的最好的解釋。歡迎任何其他解釋作為答案。


查看完整回答
反對(duì) 回復(fù) 2021-12-26
  • 1 回答
  • 0 關(guān)注
  • 307 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)