viewof v1 = Inputs.number({label: "Sound 1", min: 0.00001, max: 100000, step: .1})
viewof v2 = Inputs.number({label: "Sound 2", min: 0.00001, max: 100000, step: .1})
viewof v3 = Inputs.number({label: "Sound 3", min: 0.00001, max: 100000, step: .1})
viewof v4 = Inputs.number({label: "Sound 4", min: 0.00001, max: 100000, step: .1})
viewof v5 = Inputs.number({label: "Sound 5", min: 0.00001, max: 100000, step: .1})
viewof v6 = Inputs.number({label: "Sound 6", min: 0.00001, max: 100000, step: .1})
viewof v7 = Inputs.number({label: "Sound 7", min: 0.00001, max: 100000, step: .1})
viewof v8 = Inputs.number({label: "Sound 8", min: 0.00001, max: 100000, step: .1})
viewof v9 = Inputs.number({label: "Sound 9", min: 0.00001, max: 100000, step: .1})
viewof v10 = Inputs.number({label: "Sound 10", min: 0.00001, max: 100000, step: .1})
viewof v11 = Inputs.number({label: "Sound 11", min: 0.00001, max: 100000, step: .1})
viewof v12 = Inputs.number({label: "Sound 12", min: 0.00001, max: 100000, step: .1})
viewof v13 = Inputs.number({label: "Sound 13", min: 0.00001, max: 100000, step: .1})
viewof v14 = Inputs.number({label: "Sound 14", min: 0.00001, max: 100000, step: .1})
viewof v15 = Inputs.number({label: "Sound 15", min: 0.00001, max: 100000, step: .1})
viewof v16 = Inputs.number({label: "Sound 16", min: 0.00001, max: 100000, step: .1})
viewof v17 = Inputs.number({label: "Sound 17", min: 0.00001, max: 100000, step: .1})
viewof v18 = Inputs.number({label: "Sound 18", min: 0.00001, max: 100000, step: .1})
viewof v19 = Inputs.number({label: "Sound 19", min: 0.00001, max: 100000, step: .1})
viewof v20 = Inputs.number({label: "Sound 20", min: 0.00001, max: 100000, step: .1})
data = [
{x: 15, y: v1},
{x: -5, y: v2},
{x:-20, y: v3},
{x: 0, y: v4},
{x: -10, y: v5},
{x: 20, y: v6},
{x: 5, y: v7},
{x: 10, y: v8},
{x: -15, y: v9},
{x: 0, y: v10},
{x: -10, y: v11},
{x: 15, y: v12},
{x: 20, y: v13},
{x: -5, y: v14},
{x: 10, y: v15},
{x: -15, y: v16},
{x: -5, y: v17},
{x: -20, y: v18},
{x: 5, y: v19},
{x: 15, y: v20}
]
// download button
csv = data.map(d => `${d.x};${d.y}`).join("\n")
header = "Pegelunterschied;Urteil\n"
viewof download = Inputs.button("Download CSV", {
reduce: () => {
const blob = new Blob([header + csv], {type: "text/csv"})
const url = URL.createObjectURL(blob)
const a = document.createElement("a")
a.href = url
a.download = "magnitude_estimation.csv"
a.click()
}
})Interaktive Demo zur direkten Skalierung
Modul Allgemeine Psychologie I
Nehmen Sie am Demo-Experiment zur Lautheitsskalierung teil und tragen Sie Ihre 20 Lautheitsurteile hier ein:
Zur Erinnerung:
- Standard = 10
- ‘doppelt so laut’ = 20
- ‘halb so laut’ = 5
Wenn Sie alle Urteile eingetragen haben, dann klicken Sie bitte auf “Download CSV” und schicken Sie die heruntergeladene Datei einmal für die Auswertung an florian.kattner@hmu-potsdam.de
Optional: Psychophysische Funktion selbst bestimmen
Wenn Sie wollen, können Sie die psychophysische Funktion auch selbst erstellen.
Öffnen Sie die heruntergeladene csv-Datei mit Ihren Lautheitsurteilen. In der ersten Spalte sehen Sie die tatsächlichen Pegelunterschiede zwischen Standard und Vergleichsreiz.
Wir wollen nun für jede einzelne Pegeldifferenz den Mittelwert Ihrer Lautheitsurteile berechnen. Verwenden Sie dazu die Funktion =Mittelwertwenn(), die Sie in eine der Zellen weiter Rechts in der Tabelle eingeben. Tragen Sie als Kriteriumsbereich (erstes Argument in Klammern) die tatsächlichen Pegelstufen in den 20 Durchgängen ein (aus Spalte A). Als Kriterium (zweites Argument in Klammern) wählen Sie die jeweilige eine Pegelstufe aus (z.B. -20). Und als Mittelwertsbereich (drittes Argument in Klammern) wählen Sie Ihre eigenen 20 Lautheitsurteile aus (Spalte B). Die erste Formel könnte also so aussehen:
=MITTELWERTWENN(A$2:A$21; -20; B$2:B$21)
Berechen Sie so alle neun Mittelwerte für die Pegelunterschiede zwischen -20 und +20 dB (-20, -15, -10, -5, 0, 5, 10, 15, 20). Anschließend können Sie ein Diagramm mit der psychophysischen Funktion erstellen, wobei die Pegelunterschiede auf der x-Achse und die mittleren Lautheitsurteile auf der y-Achse abgetragen sind. Diese direkt skalierte Lautheitfunktion könnte dann ungefähr so aussehen: