語音識別中快速傅利葉(FFT)的實現(補充二)

2021-09-24 17:07:06 字數 1080 閱讀 1031

有了第一次實現,這便開啟了魔盒(黑客的盒子),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...