I would like to compute spectrum using awk or shell scripting. I have a data, e.g.,
ifile.txt
1
2
3
4
1
3
2
2
3
99
Where 99 is an undefined value.
Formula to compute spectrum is
for k=1,2,3,4,...
I was doing it in the following way.
for i in {1..10};do
awk '{if($1 != 99) printf "%f %f\n",
$1*sin(2*3.14*'$i'*NR/10),
$1*cos(2*3.14*'$i'*NR/10)}' ifile.txt > ifile1.txt
sum_1=$(awk '{sum += $1} END {print sum}' ifile1.txt)
sum_2=$(awk '{sum += $2} END {print sum}' ifile1.txt)
awk '{printf "%f\n", (1/2)*(((1/5)*('$sum_1')^2)+((1/5)*('$sum_2')^2))}'
>> ofile.txt
done
Would please suggest where I am doing mistake. The computation is neither printing anything nor ending. However I am getting values in ifile1.txt