簡體   English   中英

音頻樣本的FFT處理

[英]FFT processing of audio sample

我是具有數學背景的音頻處理的新手,所以我很少(很多,但對於初學者來說)很少有關於用fft處理提取的樣本的問題。

我正在使用http://www.drdobbs.com/cpp/a-simple-and-efficiency-fft-implementatio/199702312?pgno=1中具有固定數組長度的fft實現。

我有一些樣本集(假設說有1024個樣本集)。

Fft算法采用輸入復數值(實數和虛數),虛值設置為0,因為我沒有任何東西,並且剝去了虛數部分的fft輸出。

我還有以下問題:

1)我是否認為樣本是實數是正確的?

2)是否有僅在實數上有效的FFT實現方式? 我的意思是在計算中根本沒有想象的部分。

3)如果我繼續使用所描述的過程,是否正確的假設是:如果在fft的輸入中沒有虛數數據(全零),則fft輸出的虛部對於所有值也為零?

PS:很抱歉,如果問題已經存在,但是我沒有找到令人滿意的答案。

1)我是否認為樣本是實數是正確的?

是。

2)是否有僅在實數上有效的FFT實現方式? 我的意思是在計算中根本沒有想象的部分。

如果有的話,在計算中仍然需要使用虛數。 (當然,它可以對成對的實數進行復雜的數學運算,而只是將第二個數字標記為不是“虛構”的東西,那會有什么好處?)

3)如果我繼續使用所描述的過程,是否正確的假設是:如果在fft的輸入中沒有虛數數據(全零),則fft輸出的虛部對於所有值也為零?

這是不正確的。

FFT輸出中每個數字的絕對值與信號中每個頻率的幅度成正比。

信號中每個頻率的相位也作為復數的參數編碼在輸出中。 也就是說,如果某個頻率與正弦波異相90度,則該bin的參數將為90度-也就是說,實部將為0,而虛部將具有振幅! 對於不是90度倍數的相位,實部和虛部都將為非零。

如果您不關心相位信息,則可以獲取每個輸出數字的絕對值,即sqrt(real*real + imag*imag)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM