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 2 Next »

Digital Signal Processing

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.

Hier einige Beispiele von Signalen:

 

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;
}