理論上沃爾什 哈達瑪運算的運算複雜度遠小於快速傅利葉變換,但為何Matlab中的FFT比FWHT快呢?

時間 2021-06-01 02:02:26

1樓:

同意falccm的回答。MATLAB的for迴圈跟c語言的for迴圈是不一樣的,每一次for迴圈都有很複雜的壓棧之類的操作,所以在MATLAB的程式設計時要盡量用矩陣操作代替for迴圈以提高效率。

2樓:

寫fwht的人比較任性,你可以看下其中一段:

簡而言之,strcmpi這行高費運算的結果是不變的(迴圈中ordering沒有發生變化),但是被寫在了乙個三重迴圈之中,也就是說乙個不變的結果被無意義的重複計算了好多遍

修改起來很簡單,你可以把這個判斷寫在最外層迴圈之外,當然這樣的話整個三重迴圈要在該判斷的else分支中複製一遍,並且保留原本內層else的部分,這樣的話strcmpi只需要在最外層迴圈開始之前判斷一次即可

fwht當然有其他改進的地方,但是和這乙個點一比簡直不值一提另一方面fft那麼快也是由於它呼叫的是內建的fftw庫(FFTW Home Page),這個庫的優化程度非常高,想用純MATLAB語言(不用GPU並行之類的)寫出比其更快的實現有點難

理論上埃爾隆德和瑟蘭迪爾誰更厲害?

明擺著埃爾隆德。瑟蘭迪爾說好聽點是密林的國王,說難聽點是土大王 雖然我也挺喜歡瑟爹的。條條族譜通領主,那族譜可不是用來看的,領主作為血統集大成者,至高王的傳令官,武力值槓槓的,更別提人家還擁有氣之戒。 路WUWU 埃爾隆德吧 露西恩和貝倫的曾孫,身具諾多精靈和人類最優秀的血脈,甚至還有邁雅的血脈,手...

理論上存在負熱容嗎

當然存在啊!負熱容量是正常存在的物理學現象!熱容量是過程量,不是狀態量 同一物質在不同的熱力學過程中會有不同的熱容量。我們只考慮準靜態的熱力學過程,這樣壓強 溫度 熱容量有著較好的定義。熱容量定義為 從任意一本熱學教科書中都可以查到多方過程,我就不推導了,即如下的公式 上式是多方過程滿足的方程式,其...

超距通訊理論上可行嗎?

目前來說的話,肯定是不可行的.但如果在未來,我們或許可以通過四維空間,讓空間中的2個座標點相黏,然後讓每個地方都有這種相黏點,或許可以實現超距通訊吧 JJFreeman 如果愛因斯坦的狹義相對論沒錯,那麼資訊的傳遞是不能超光速的,所以目前超距通訊理論上是不可能。要可能,只能期待愛因斯坦的理論是錯的,...