有了第一次實現,這便開啟了魔盒(黑客的盒子),dft改進如下(為什麼?因為他不夠快,有人叫快速傅利葉變換,這是什麼鬼?我也想實現它!是否可以快一點呢,應該沒問題!):
int n = 1920;//為什麼是這個數字,因為螢幕只有這麼寬,奇葩的理由!
//x[n]以奇數偶數分開
float x奇數 = new float[n / 2];
float x偶數 = new float[n / 2];
for (int nn = 0; nn < n; nn++)
else
}//偶部所有項求和,奇部所有項求和。 //以下便是出現快速傅利葉變換的端倪
for (int ii = 0; ii < 128; ii++)//針對壹音低頻,高頻無意義
//奇部與wn的乘積
double realx = 0;
realx = realx奇 * wn1920[ii].x - imagy奇 * wn1920[ii].y;//複數相乘x部
double imagy = 0;
imagy = imagy奇 * wn1920[ii].x + wn1920[ii].y * realx奇;//複數相乘y部
//奇部與偶部合併
realx = realx + realx偶;
imagy = imagy + imagy偶;
double resultfft = new double[n];
resultfft[ii] = math.sqrt(realx * realx + imagy * imagy);
int temp = (int)(resultfft[ii] / 10);
if (temp < convert.toint16(textbox門限.text))//設門限
temp = 0;
histfft1920[ii] = (byte)(255 - temp); //resultfft[ii] / 10);
}簡單的東西被自己搞複雜化了,好像速度並沒什麼改觀。(研究之初便是這樣,因為別人說的什麼蝶形變換,自己笨,不懂,只能自己琢磨,從熟悉的地方出發!)
(待續,慢慢來。。。。。。。。。。。)每天一點小改變☺
快速傅利葉(FFT)
快速傅利葉 更加形象的理解傅利葉變換 大概了解之後 從傅利葉級數到傅利葉變換 太大,只能裁剪為兩張 刨根問底的同學 雷德演算法 輸出序列是按自然順序排列的,而輸入序列的順序則是 位元反轉 方式排列的。也就是說,將序號用二進位制表示,然後將二進位制數以相反方向排列,再以這個數作為序號。如011變成11...
FFT快速傅利葉
description 給出兩個n位10進製整數x和y,你需要計算xy。input 第一行乙個正整數n。第二行描述乙個位數為n的正整數x。第三行描述乙個位數為n的正整數y output 輸出一行,即xy的結果。資料範圍 n 60000 乙個整數x a nan 1.a 0x a na a 0 x an...
FFT 快速傅利葉演算法 for java
package com.test.test2 public class fft bitreverse i reve double theta,dt 2 3.14159265358979323846 fft n for i 0 i fft n 1 i 用於頻譜顯示的快速傅利葉變換 param real...