perl寫Foueier Transform的問題
以下是我寫的程式!新手請各位大大指教
寫的是離散時候的傅立葉轉換
其中我覺得寫的數值有點不是很正確...但又不知道怎麼配到正確值
還有虛部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
推
10/18 17:32, , 1F
10/18 17:32, 1F
Perl 近期熱門文章
PTT數位生活區 即時熱門文章