Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

Unter DSP versteht man die digitale Verarbeitung von Signalen am Computer. Durch die Hilfe von Algorithmen werden Signale so verarbeitet, dass Informationen besser aus dem Signal ausgelesen werden kann.

 

 

Der nachfolgende Code ist ein einfacher Low Pass Filter wie oben gezeigt:

Low Pass Filter
float[] rawData;

void setup() {
  size(1400, 800);
  
  rawData = randomData(128);
}

void draw() {
  float interval = map(mouseX, 0, width, 0, 1);
  float timeConstant = map(mouseY, 0, height, 0, 1);
  
  float[] lowPassed = lowPass(rawData, interval, timeConstant);
  
  background(0);
  
  drawLine(rawData, color(127));
  drawLine(lowPassed, color(255, 255, 0));
}

float[] randomData(int size) {
  float[] data = new float[size];
  
  for(int i=0; i < data.length; i++) {
    data[i] = noise(i);
  }
  
  return data;
}

void drawLine(float[] data, color c) {
  noFill();
  stroke(c);
  
  beginShape();
  
  for (int i=0; i < data.length; i++) {
    vertex(map(i, 0, data.length, 0, width), map(data[i], 0, 1, 0, height));
  }
  
  endShape();
}

float[] lowPass(float[] in, float interval, float timeConstant) {
  float[] out = new float[in.length];
  
  float alpha = interval / (timeConstant + interval);
  
  out[0] = in[0];
  for (int i=1; i < in.length; i++) { 
    out[i] = alpha * in[i] + (1 - alpha) * out[i-1];
  }
  
  return out;
}