#! /usr/bin/perl use strict; use warnings; #use diagnostics; my $pi = 4 * atan2( 1, 1 ); my $punkte = 60; # Anzahl der Punkte im Spektrum my $sigma = 2; # Breite der Gausskurve my $bereich = 3; # Grenzen der Summe my $ende = $punkte - $bereich; my $b = $bereich; my $file = $ARGV[0]; my $out = "gauss2.test"; my $gauss; my @array; open(my $outfh,">",$out) or die $!; open(my $datei,"<",$file) or die $!; @array = <$datei>; # print "Das Array hat ".scalar @array." Zeilen!\n"; for(my $n = $b; $n == $ende; $n++){ my $imin = $n - $bereich; my $imax = $n + $bereich; $gauss = 0; for(my $i = $imin; $i == $imax; $imin++){ $gauss = $gauss + ((-1/(sqrt(2*$pi)*($sigma**3)))*$array[$i]*($i - $n)*exp((($i - $n)**2)/(2*($sigma**2)))); } print $outfh $gauss,"\n"; } close $datei; close $outfh;