matlabfft變換後幅值不對

2021-03-11 01:42:17 字數 3136 閱讀 7917

1樓:

fft後的頻域幅值不是訊號在時域的幅值,倆相等才是不正常的。

2樓:愚笨的小寶

已經有bai網友解答在用dumatlab過程中使用fft()函式求zhi

解訊號頻譜過程dao中,相應的幅值要做版修正的問題,即參權加fft運算的點數為n時,最後幅值要除以n乘以2(直流分量時除以n即可),那麼關於最後計算的結果為何比我們預期的要小,這個問題有兩個方面原因,第一個原因是離散訊號的點數,一般我們要求是2的冪指數例如l個,若不滿足要求我們會補充零值,可以從能量守恆的角度考慮補充了資訊點數使得訊號長度增加,但因為是零值所以能量不變,但fft()作用後我們頻點數往往也是這個l,而且我們補充的零值是要參與其中計算的,所以這種能量不變卻是頻點數增加的做法,最後的結果比理論值小,這個是主要原因。第二個因素不是回答這個問題的,但往往初次使用matlab的fft()函式會人為的設定參加的運算點數,這個點數設定的過大比如剛好比訊號離散點數大了一倍,那麼最後的頻譜幅值剛好為理論的一半,特別要注意這個問題。

3樓:科技數碼答疑

fft取樣太小,改大些,比如fft256

4樓:匿名使用者

第一個和你的nfft的選取有關,如果nfft>取樣資料n的話,會需要補零點,導致整體的幅值下降回了;第二個就是和

答你設定的取樣頻率有關,理論上取樣頻率設定地越大,fft之後的幅值越接近時域的真實幅值,以上都已試過,歡迎提問!

matlab中fft後的頻譜幅度為什麼要乘以2/n? 20

5樓:匿名使用者

不知你弄懂沒有,這裡我回答一下為

什麼要乘以2吧,至於為什麼要除以n,我比內較贊同上一個回容答中使用者dukinkin從積分角度來進行的理解。

以下是我對為什麼要乘以2的理解,如果不對,請批評指正:

你所見到的乘以2的情景,大概是在matlab中fft函式的示例中,其中用到的訊號是sin,比如我這裡用a1=0.7, f1=50; a2=1, f2=200:x(t)=0.

7sin(100*pi*t) + sin(400 * pi * t)。

不過,其實x(t)還可以表示為:

x(t)的另一種表示方法

這個表示方法看起來比較繞,但是其實它在頻域是比較直觀的,由此可以理解:y=fft(x);  p2 = abs(y/l);【這裡的字母含義跟fft函式的說明檔案中一樣】得到的雙側振幅譜(如下圖,我在運算中用到的基本引數為:取樣頻率1000,取樣點數100)中,那幾個尖脈衝就是0.

35和0.5,即a1/2和a2/2

因此,在表示單側振幅譜時,matlab示例想要弄成尖脈衝直接等於sin訊號的幅值a1、a2的那種直觀的形式,就乘2了

6樓:匿名使用者

其實除bai以n或除以n/2

**於將連du續的運算化為離散的運算

積分的zhi

時候dao一般積分符號後面的表示式版是f(x)dx,就是某個權函式f(x)和自變數微分dx的乘積而寫成離散求和的時候通常只寫f[n]的求和,略去了與dn相乘可以遇見的是,某個函式f(x),如果我們用離散的辦法去求其積分隨著取樣點的則加,離散的和就會增大

實際上正確的辦法是求和時要乘上取樣的間隔,就是積分割槽間/n對於很多離散的積分演算法,例如卷積,最後結果都要除以取樣點數n才能得到正確結果

而傅立葉變化也是一種積分變換,所以得到的結果就要除以n,才是正確的而變換後的頻譜通常將0頻移到中間,分為對稱的為正負頻率(模對稱,幅角反對稱)

有時表示頻譜的時候只需要用其一半正頻率部分就夠了所以除以n之後還要乘以2,表示把正負頻率的加在一起而0頻的直流分量,本身在對稱點,已經是正負相加過的,所以只用除以n

7樓:無畏無懼

其實除以

copyn或除以n/2

**於將連續的運算化為離散的運算

積分的時候一般積分符號後面的表示式是f(x)dx,就是某個函式f(x)和自變數微分dx的乘積而寫成離散求和的時候通常只寫f[n]的求和,略去了與dn相乘可以遇見的是,某個函式f(x),如果我們用離散的辦法去求其積分隨著取樣點的則加,離散的和就會增大

實際上正確的辦法是求和時要乘上取樣的間隔,就是積分割槽間/n對於很多離散的積分演算法,例如卷積,最後結果都要除以取樣點數n才能得到正確結果

而傅立葉變化也是一種積分變換,所以得到的結果就要除以n,才是正確的而變換後的頻譜通常將0頻移到中間,分為對稱的為正負頻率(模對稱,幅角反對稱)

有時表示頻譜的時候只需要用其一半正頻率部分就夠了所以除以n之後還要乘以2,表示把正負頻率的加在一起而0頻的直流分量,本身在對稱點,已經是正負相加過的,所以只用除以n.

8樓:射日金錐

不知道你現在弄明白沒。

matlab裡面的

fft函式,用的是複數形式的fourier公式計算方法,返回的值是版**。但是注意,這權

個**跟三角函式形式的fourier公式裡的**意義不一樣。前者中的**表示的直接就是振幅,即an與bn的平方和開平方,後者與模(an與bn的平方和開平方)相差2/n倍數。所以你如果用三角形式的fourier公式直接程式設計,返回**,能直接得到振幅,而用matlab自帶函式fft得到的要*2/n。。。

可能幾句話也講不明白,就這樣給你個思路,如果非要弄明白,你自己可以仔細看看高數裡面兩個**與an、bn的關係,自己試著推導一下。

如果有什麼看法,可以再交流。

matlab怎麼讓fft變換結果不是複數?

9樓:_愛成繞指柔

樓上的回答用real是可以得到實數,但是也失去了變換後的虛數部分,這樣變化後包含的信版息在real後也就權

丟失了。傅立葉變換的本質是從時域到頻域的一個變換,而頻域的資訊是在實部與虛部兩者之間的,丟掉了一部分不如不變換,無法達到最終變換的目的。。

正確的處理方法是弄懂實部與虛部所代表的含義,可以看看尤拉公式,如果看實用的話,這個復指數的[(實部)^2+(虛部)^2]^(1/2)位該頻率點對應的頻譜幅值,該點所對應的頻率為f=(k-1)fs/n,其中n為取樣點數,fs為取樣頻率,這在你的程式中應該是有的,否則你怎麼變換呢?

10樓:我行我素

把fft的結果real一下就行了,如:

y=[1 zeros(1,500)];

yf=fft(y);

yreal=real(yf);

電路分析,a圖等效變換為b圖後,Us Uoc R2i Us

把a圖裁成bai下圖就清楚了 du 因為a b端懸zhi空沒有電流不需要考慮,dao剩下部分就是內 us1與us2反向串聯,總電容壓為us1 us2 迴路中兩個電阻也是串聯,總電阻為r1 r2。所以 i us1 us2 r1 r2 圖中參考電流方向已經確定,是順時針,電阻上的電壓方向與電流方向相同,...

美的空調櫃機開機後變換模式是怎麼回事

我怒知道你所說的 變換模式 是什麼意思.你不會變換模式?變換模式後是不是不能運轉?還是它自己就在那不停地這個模式變那個模式?就這幾種情況簡單說說。1 你看見遙控板上有個模式鍵了嗎?那就是調模式的。制熱就調在向天陽的符號就行了,製冷就是雪花,自動就是三角形符號。2 變換模式後等一會兒才運轉,這是正常的...

聯想顯示器開機後螢幕就老是變換顏色怎麼回事

你先檢bai查一下看 看是不是顯示器du資料線鬆動 如zhi果有鬆動dao你重插試試看看好內不好。你是不是獨容顯,如果是你接在集顯上看看那沒有集顯那你就換一個顯示卡試試看 如果不是先看的問題那你就換一個顯示器看看。顯示器變換顏色就和這幾樣有關係,你先試試看。謝謝 1 顯示卡問題 2 顯示卡與顯示器接...