看板 Perl 關於我們 聯絡資訊
以下是我寫的程式!新手請各位大大指教 寫的是離散時候的傅立葉轉換 其中我覺得寫的數值有點不是很正確...但又不知道怎麼配到正確值 還有虛部i值的處理要怎麼解決? 煩請各位大大給點建議^^謝謝您 use Math::Trig; use Math::complex; printf "輸入累加範圍上界:"; $top = <STDIN>; printf "輸入累加範圍下界:"; $low = <STDIN>; print"請輸入x[n]=:"; $Y=<STDIN>; $N =($top)-($low)+1; printf"範圍內個數為(取整數):$N\n"; print"Because x<k>[n]=x[n/k]\n"; print"請輸入<k>=:"; $k=<STDIN>; $M=$Y/$k; for ($t=0; $t<10; $t++) { $w=0.6283*$t; $W=int($w); $sum =cosx(); $sum1=sinx(); $Sum=int($sum*$M); $Sum1=int($sum1*$M); printf "w為%.1f\n", $W; printf "累加cos結果為%.1f\n", $sum; printf "累加sin結果為%.1f\n", $sum1; print"Equal x(e**jkw)=Σxk[n]5*e**-jwn=xk[n]\n"; printf" Answer = %.3f+i(%.3f)\n",$sum,$sum1; $sum =0; $sum1 =0; sub cosx{ for ($i=0; $i<$N; $i++) { $sum =$sum + cos($x) ;#加總 $x =$x + $N; #下一個X座標 } return $sum; } sub sinx{ for ($i=0; $i<$N; $i++) { $sum1 =$sum1 + sin($x) * $N; $x =$x + $N; } return $sum1; } } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.231.230.194
audreytang:http://search.cpan.org/dist/Math-FFT/ 可以參考 :) 10/18 17:32