Yeni öğrenmeye başlayan bir D dili meraklısı olarak küçük bir kod ile merhaba demek istedim. 5 seneye yakındır C++ kodu yazıyorum. Son 1 senedir çokta aktif olmayarak, Ali Çehreli'nin çevirdiği "Neden D dili" kitabını okuyarak D dilini öğrenmeye çalışıyorum.
Herkese başarılar diliyorum.
Kadir Erdem
import std.stdio;
import std.random;
import std.math;
double calcFractionalDelay ( int[] slice, double delay )
{
int filterLength = slice.length; // Number of FIR filter taps (should be odd)
int centreTap = filterLength / 2; // Position of centre FIR tap
double result = 0;
for (int t=0 ; t<filterLength ; t++)
{
// Calculated shifted x position
double x = t - delay;
// Calculate sinc function value
double sinc = sin( PI * (x-centreTap)) / (PI * (x-centreTap));
// Calculate (Hamming) windowing function value
double window = 0.54 - 0.46 * cos(2.0 * PI * (x+0.5) / filterLength);
// Calculate tap weight
double tapWeight = window * sinc;
result += tapWeight*slice[t];
}
return result;
}
void main() {
int[1000] abc;
foreach (ref i; abc)
i = uniform(1, 100);
foreach (int index, int data; abc)
writeln(index, " ", data);
auto filterResult = calcFractionalDelay(abc[0..10], 0.25);
writeln("Filter Result is : ", filterResult);
}
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]
Permalink
Reply