biz.source_code.dsp
.math
.complex result = dft.goertzelspectrum(data);
double valuex =dft.synthesizefromspectrum(frequencyx, obb);
(t)
=100si
n(10π
t)+25
sin(
30πt)
x(t)=100sin(10πt)+25sin(30πt)
double time = new double[150];
double valuea = new double[150];
for ( int i = 0; i < 50 * 3; i++ )
double deltatime = 1 / 50.0;
complex result = dft.goertzelspectrum( valuea );
double deltafrequency = 0.5 / deltatime / (result.length - 1);
for ( int i = 0; i < result.length; i++ )
執行結果:
頻率:
4.67hz 幅值:
0.00
頻率:
5.00hz 幅值:
100.00
頻率:
5.33hz 幅值:
0.00
...頻率:
14.67hz 幅值:
0.00
頻率:
15.00hz 幅值:
25.00
頻率:
15.33hz 幅值:
0.00
double time = new
double[150];
double valuea = new
double[150];
for (int i = 0; i < 50 * 3; i++)
double deltatime = 1 / 50.0;
complex result = dft.goertzelspectrum(valuea);
double deltafrequency = 0.5 / deltatime / (result.length - 1);
boolean obb = false;
if (valuea.length % 2 == 1) else
double valuex = dft.synthesizefromspectrum(result, obb);
for (int i = 0; i < valuex.length; i++)
no.0 初始: 0.00 計算得:-0.00
no.1 初始: 82.55 計算得: 82.55
no.2 初始: 80.41 計算得: 80.41
no.3 初始: 80.41 計算得: 80.41
no.4 初始: 82.55 計算得: 82.55
...no.146 初始:-82.55 計算得:-82.55
no.147 初始:-80.41 計算得:-80.41
no.148 初始:-80.41 計算得:-80.41
no.149 初始:-82.55 計算得:-82.55
離散傅利葉變換 快速傅利葉變換C 實現
傅利葉變換是將時域訊號變換為頻域訊號的一種方式,我主要用它來做兩件事情 1 求一段資料的週期性。2 通過傅利葉變換及其逆變換,進行低通濾波 去躁 首先需要做幾點說明 1.快速傅利葉變換是離散傅利葉變換的快速演算法,當資料來源較大時 大於1000 快速傅利葉變換有明顯優勢。2.快速傅利葉變換的訊號源長...
傅利葉變換 FFT cuda實現
參考 無意間看到cuda解決fft有乙個cufft函式庫,大體檢視了有關cufft有關知識,寫了乙個解決一維情況的cuda 據調查知道cufft在解決1d,2d,3d的情況時間複雜度都為o nlogn 附上解決 一維情況的 準備後面找一些詳細的資料去學習一下cuda的函式庫。include stdi...
傅利葉變換與快速傅利葉變換
作為電子資訊專業的學生老說,這個不知道,或者理解不清楚,是十分不應該的,作為乙個學渣,有時候確實是理解不清楚的 1 首先離散傅利葉變換目的 簡單點說 就是將乙個訊號從時域變換到頻域 標準點說 將以時間為自變數的訊號 與 頻率為自變數的頻譜函式之間的某種關係變換 數學描述 對於 n點序列 其中自然對數...