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