Wat is DSP nu eigenlijk precies?

Um. Het is wiskunde, daar is per definitie niks speculatiefs aan:P

Laat Roger Penrose dat maar niet horen...
Lees bijv. alleen al het eerste hoofdstuk van Road to Reality over the roots of science, met paragrafen als Is Plato's mathematical world "real"? en Three worlds and three deep mysteries. Om nog maar te zwijgen over de vele hoofdstukken met beschouwingen over complexe getallen.
 
Differentiaal- en integraalvergelijkingen zijn helemaal niet zo verschillend van differenties en differentievergelijkingen: (voorkomens van) de laatste kun je vaak prima zien als gediscretiseerde versies van (voorkomens van) de eerste. Soms is de gediscretiseerde versie makkelijker om mee te werken, m.n. als je moet gaan rekenen, maar soms is de continue versie makkelijker om mee te werken en dat zal meestal de reden zijn dat ze in die DSP-boeken voorkomen.

Die diepe kloof is dus helemaal niet zo diep en wordt overbrugd door bijv. fouttermanalyse die ook nog 'ns heel mooi uitlegt waarom zaken in het discrete domein anders werken dan in het continue. Hoe je het ook went of keert: je begint met een continue signaal, dat vervolgens gesampled wordt (discretisatie-slag) en waar vervolgens een DSP-algorithme overheen gehaald wordt, voordat het weer een continu signaal van gemaakt wordt. Je hele doel is dus een continu signaal en die discretisatie doe je vooral om hele praktische redenen. Het is dus handig om het continue karakter in de gaten te houden.

Dat er grote gelijkenissen bestaan tussen differentiaal- en differentievergelijkingen ben ik met je eens. Maar er zijn ook afgrondelijke verschillen. Het is niet voor niets dat sampling-theorie in vakopleidingen binnen het hoger onderwijs pas in het tweede semester echt grondig wordt behandeld, als studenten vertrouwd zijn met zowel de continue als de verschillende discrete gestalten van de Fouriertransformatie en dus een frequentiedomeinbeschrijving goed kunnen volgen.
En dat is eigenlijk nog niet eens wat ik bedoel met die diepe kloof. Als je je immers uitsluitend binnen de perken van het discrete domein blijft, dan kun je al heel veel doen op basis van een paar simpele afspraken (bijv. over samplingfrequentie, aliasing), zoals te zien in de vwo-module Sound Design .

De kloof wordt pas goed zichtbaar als je continue systemen (dus niet zozeer signalen, maar signaalverwerkende systemen zoals mechanische, akoestische en electrische filters) gaat discretiseren. Dat is een heel relevant synthesizer-onderwerp, niet alleen voor wat betreft de digitalisering van de oude, vertrouwde analoge filters, maar vooral ook voor Physical Modeling . Voor die transformatie van continu naar discreet vind je in de DSP-literatuur drie verschillende methodes, met verschillende resultaten. Slechts één van die methodes is geschikt om bijv. een hoogdoorlaatfilter te realiseren; met de andere twee is dat onmogelijk. Dit terwijl je puur binnen het discrete domein zelf (dus als er geen sprake is van die transformatie van continu naar discreet) heel simpel en heel direct een hoogdoorlaatfilter kunt realiseren. (Je hoeft in zmooc's 1ste -orde FIR-filtertje output = 0.5*input + 0.5*vorige_input slechts één teken te veranderen om van een laagdoorlaat- een hoogdoorlaatfilter te maken (zie Sound Design opdracht 3.8.

Deze discretisering van analoge systemen wordt, voor zover ik weet, op geen enkele universiteit al in het eerste jaar behandeld, omdat je echt wat routine moet hebben met de Laplace- en Z-transformatie, en ook al redelijk thuis moet zijn in complexe functies (bijv. conformal mappings t.b.v. de bilineaire transformatie). Vandaar dat ik daar in een inleidende synthforumdiscussie over DSP niet over begin. En dan nog iets anders. Bij het schrijven van het lesmateriaal Sound Design kreeg ik van de adviserende docenten regelmatig op mijn donder, omdat ik in de eerste versie veel te vaak woorden gebruikte als "simpel", "natuurlijk", of "je snapt nu wel dat..." Dus wat mij betreft voorlopig toch maar die diepe, diepe kloof...
 
 
Laatst gewijzigd:
... En dan nog iets anders. Bij het schrijven van het lesmateriaal Sound Design kreeg ik van de adviserende docenten regelmatig op mijn donder, omdat ik in de eerste versie veel te vaak woorden gebruikte als "simpel", "natuurlijk", of "je snapt nu wel dat..." Dus wat mij betreft voorlopig toch maar die diepe, diepe kloof...
Dat advies heb je nog steeds niet aanvaard en n.m.i. slaag je daardoor dan ook niet in je opzet : 'de kloof dichten'. Je lijkt eerder te willen bluffen met je kennis, reclame maken voor je software en publicaties dan mensen iets bij brengen ... (maar ja, daar gebruiken wel velen het forum voor, blijkbaar). Als je specifiekere commentaar had gewild kon je mijn en andere reakties lezen en interpreteren i.p.v. negeren. Nu, de kloof is gemaakt, het is aan jou om ze te dichten.
 
In DSP praat je met dubbele tong

In DSP praat je met dubbele tong

Eerder kondigde ik nog een tweede commentaar aan op zmooc's DSP-in-vogelvlucht , nl over de rol van de FFT voor de analyse van filters.

zmooc:
(https://www.synthforum.nl/forums/showpost.php?p=1220181&postcount=52)
DSP heeft nog een ander aspect; in plaats van frequenties te manipuleren, kun je ze ook analyseren. De formule die daarvoor wordt gebruikt is ook weer erg complex, maar je komt hem nogal eens tegen: de (Fast) Fourier Analyse (FFT). Die gebruik je bijvoorbeeld in een digitale spectrum analyser, maar het wordt bijvoorbeeld ook in een mp3-encoder gedaan. Voor synthesizers is dat echter wat minder interessant, hoewel het waarschijnlijk wel toegepast wordt bij timestretchen van samples e.d.

tijd en frequentie
Als je effectief wilt praten over geluid (en trouwens alle andere trillingsverschijnselen) dan doe je dat altijd met "dubbele tong": je spreekt zowel in termen van tijd als in termen van frequentie. Waarom dit zo is, wordt uitgelegd in (o jee daar ga ik weer) de gratis te downloaden NLT-module Sound Design, hoofdstuk 1 en 2.
Kort samengevat: als je het hebt over een synth-filter-effect, dan praat je in termen van frequenties en klankkleur. Je zegt bijvoorbeeld dat een filter laagdoorlatend is, d.w.z. dat de lage frequenties worden doorgelaten. Daardoor klinkt het gefilterde geluid doffer - en met dat laatste bedoel je dan een klankkleur-verandering.
Maar als je het hebt over een echo, dan bedoel je duidelijk een tijd-effect, want de echo begint iets later dan het directe geluid. Je spreekt dus bij verschillende geluids-effecten de ene keer in termen van frequenties en de andere keer in termen van tijd.

differentievergelijking is: praten in termen van tijd
Als je nu gaat kijken naar de wiskundige beschrijvingen van een laagdoorlaatfilter en een echo-effect, dan doe je een nogal bizarre ontdekking: beiden kun je realiseren door exact dezelfde soort formules. Die zijn we hierboven al tegengekomen: differentievergelijkingen.
In DSP-jargon noemen ze zo'n differentievergelijking de tijd-domeinbeschrijving van een filter. Dat kun je ook direct aan de formules zien.

Twee voorbeelden:
zmooc:
output = 0.33*inputsample + 0.33*vorige_inputsample + 0.33*inputsample_daarvoor

Woorden als vorige_inputsample en inputsample_daarvoor duiden op de tijd.

In de vergelijking:
S2[n] = C*S1[n] + A*S2[n-1] + B*S2[n-2]

gebeurt precies hetzelfde. Hier staat n voor het sample-rangnummer (zie plaatje https://www.synthforum.nl/forums/showpost.php?p=1215608&postcount=12)
Dus met n-1 wordt exact hetzelfde bedoeld als met vorige_inputsample. En dan is n-2 hetzelfde als inputsample_daarvoor. (Pas op: er is ook een groot verschil tussen filters: de eerste is FIR en de laatste is IIR, zie hier ).
 
amplitudekarakteristiek: praten in termen van frequentie
Nu maken we even een sprong en zoeken op Synthwiki naar de term filter. Je vindt het (op dit moment) zelfs op de voorpagina van wiki in "uitgelicht". Terecht, want of je nou praat over "analoog" of "digitaal", het filter is zonder meer de belangrijkste, interessantste, krachtigste, en meest expressieve en universele signaalbewerking!!!

attachment.php


Het plaatje dat er bij staat, kent elke synth-bezitter. Het laat zien wat voor effect het filter heeft op de klank. Wat je hier ziet is een typisch laagdoorlaatfilter: vanaf een zekere frequentie (Cut-off frequency) begint het filter het signaal meer en meer af te zwakken. Merk op dat dit plaatje een "frequentie-plaatje" is; het praat in termen van frequenties. We noemen zo'n afbeelding de amplitudekarakteristiek van het filter
We hebben nu twee verschillende manieren om de werking van een filter mee aan te geven. De differentievergelijking praat in termen van tijd en geeft een "recept" waarmee je de computer een filterbewerking kunt laten uitvoeren. Maar hoe die bewerking gaat klinken, daarover vertelt de differentievergelijking niet veel. Is bijvoorbeeld zmooc's filter nu een laagdoorlatend of een hoogdoorlaten filter? Of misschien iets anders?
Aan de andere kant heb je dat plaatje van het klinkend effect van een filter, maar dat zegt weer niks over de berekening die je met samples moet uitvoeren om dit laagdoorlatend effect te krijgen.
Hoe kunnen we nu bijvoorbeeld van zmooc's filter een soortgelijke afbeelding maken als dat filterplaatje op Synthwiki en in beeld brengen hoe de amplitudekarakteristiek eruit ziet?

(I'll be back)
 

Attachments

  • Cutoff.jpg
    Cutoff.jpg
    13,8 KB · Bekeken: 165
Laatst gewijzigd:
De "hoofdwet" van DSP

De "hoofdwet" van DSP

DFT en FFT
Er bestaat in de DSP-theorie een soort centrale stelling die gaat over de vertaalslag, over en weer, tussen die twee verschillende "talen" waarin je meestal over geluid praat: de talen van tijd en frequentie. Zo'n vertaalslag noemen we een transformatie. De transformatie van tijd naar frequentie staat centraal in de signaalverwerking en wordt de Fouriertransformatie genoemd. Bij discrete (gesampelde) signalen spreken we van de Discrete Fourier Transformatie (DFT).
Er bestaat een razendsnelle methode om de DFT uit te rekenen, nl. de Fast Fourier Transform (FFT). De FFT is het werkpaard van alle DSP-programmatuur, want heel vaak is het nodig om een tijdsignaal om te rekenen naar een "frequentie-signaal": het spectrum. Zoals hier:

Gegeven: een filter zoals dat van zmooc, waarvan het "tijd-recept" luidt:
out = 0.33*in + 0.33*vorige_in + 0.33*in_daarvoor


Gevraagd: maak een plaatje van de amplitudekarakteristiek van dat filter.
We gaan te werk in drie stappen:

stap 1: maak een puls-vormig signaal
Een puls-vormig signaal, dat wil zeggen: een geluid dat slechts uit één enkele sample bestaat waarvan de waarde groter is dan nul, gevolgd door heel veel samples waarvan de waarde gelijk is aan nul. Dus een felle, ultra-korte tik, gevolgd door stilte (zie figuur). In WaveWizard doe ik dat door bv. spoor S1 leeg te maken (= alle samples op 0 zetten) en dan één sample een zekere waarde te geven, bijv. 20000.

Code:
[B][FONT=Courier New][SIZE=2][FONT=Courier New][SIZE=2]Wis buffers[/SIZE][/FONT][/SIZE][/FONT][/B]
[SIZE=2][FONT=Courier New][B][SIZE=2][FONT=Courier New] Wis buffer (F1...F32, S1, S2, S3) S1[/FONT][/SIZE][/B]
 
[B][SIZE=2][FONT=Courier New]S1[2] = 20000[/FONT][/SIZE][/B]
[/FONT][/SIZE]
 
stap 2: filter het puls-vormig signaal
Haal het puls-vormige signaal door het filter. Dit filterproces kun je op verschillende manieren uitvoeren, bijv: met de volgende code. Er worden 2000 output-samples berekend, dat is voor ons doel meer dan genoeg:

Code:
[B][FONT=Courier New][SIZE=2][FONT=Courier New][SIZE=2]FOR n = 2 TO 2000[/SIZE][/FONT][/SIZE][/FONT][/B]
[SIZE=2][FONT=Courier New][B][SIZE=2][FONT=Courier New] S2[n] = 0,33 * S1[n] + 0,33 * S1[n-1] +0,33 * S1[n-2][/FONT][/SIZE][/B]
[B][SIZE=2][FONT=Courier New]NEXT n[/FONT][/SIZE][/B]
[/FONT][/SIZE]

puls en de impulsresponsie van een filter
In de figuur hieronder zie je het resultaat. Het bestaat uit slechts drie samples die groter dan nul zijn. Dit is het "antwoord" van het filter op de enkelvoudige puls. Het heeft er twee samples aan toegevoegd, dat wil zeggen een ultra-kort "galmpje". We noemen dit de zg. impulsresponsie, het "eigengeluid", van het filter.
Achteraf gezien had je helemaal geen computer nodig gehad om dit filterproces uit te voeren: ook met de hand had je die drie samples snel kunnen uitrekenen op basis van bovenstaande filterformule. Je ziet dan ook eerder waarom dit signaaltje van slechts drie samples gelijkvormig is aan die drie filtergetallen 0,33 (de zg. filtercoëfficiënten) in de filterformule! Dit is een belangrijke eigenschap die alle FIR filters hebben!
De impulsresponsie van een filter bevat alle klankeigenschappen van het filter. Beschouw het als de "klank-handtekening" van het filter, geschreven in termen van tijd. Als je de enkelvoudige input-puls van spoor S1 in klank vergelijkt met de drievoudige "galm-"puls van spoor S2 (moet je wel een goede geluidskaart hebben!) dan hoor je echt een klein verschil in klank. Die van spoor S2, dus de output van het filter, klinkt ietsje doffer dan die enkelvoudige inputpuls. Daardoor krijg je het vermoeden dat dit filter een heel primitief laagdoorlaat filter is. Is dat inderdaad zo? Dat zal het plaatje van de amplitudekarakteristiek moeten uitwijzen.
Nu komen we op de "hoofdstelling" van DSP (we zullen die hier niet bewijzen) en die luidt:

De amplitudekarakteristiek van een filter = de FFT van de impulsresponsie van dat filter.
 
 
Stap 3: FFT
Passen we die hoofdwet toe, dan hoeven we alleen nog maar de FFT te gebruiken om de impulsresponsie direct om te rekenen naar de amplitidekarakteristiek. In WaveWizard gaat dat als volgt:

Code:
[B][FONT=Courier New][SIZE=2][FONT=Courier New][SIZE=2]FFT[/SIZE][/FONT][/SIZE][/FONT][/B]
[SIZE=2][FONT=Courier New][B][SIZE=2][FONT=Courier New] Input Buffer (ook 16-bits bufs)       S2[0][/FONT][/SIZE][/B]
[B][SIZE=2][FONT=Courier New] Output Buffer reele deel              F4[0][/FONT][/SIZE][/B]
[B][SIZE=2][FONT=Courier New] Output Buffer imaginaire deel         F5[0][/FONT][/SIZE][/B]
[B][SIZE=2][FONT=Courier New] Output Buffer Amplitude spectrum      F2[0][/FONT][/SIZE][/B]
[B][SIZE=2][FONT=Courier New] Output Buffer Fase spectrum           F3[0][/FONT][/SIZE][/B]
[B][SIZE=2][FONT=Courier New] Venstergrootte (in bits)              10[/FONT][/SIZE][/B]
[B][SIZE=2][FONT=Courier New] Hann window? ('j' of 'n')             n[/FONT][/SIZE][/B]
[B][SIZE=2][FONT=Courier New] Grafiek aanpassen? ('j' of 'n')       j[/FONT][/SIZE][/B]
[B][SIZE=2][FONT=Courier New] Grafiek Hoogste Freq                  22050 [/FONT][/SIZE][/B]
[B][SIZE=2][FONT=Courier New] Grafiek Laagste Freq                  0[/FONT][/SIZE][/B]
[B][SIZE=2][FONT=Courier New] Log-weergave ('j' of 'n')             n[/FONT][/SIZE][/B]
[/FONT][/SIZE]


attachment.php



Je ziet dat de FFT als uitkomst verschillende rijen getallen (outputbuffers) produceert. Daarvan is voor ons op dit moment alleen van belang: Output Buffer Amplitude spectrum.In buffer F2 vanaf sample-rangnummer [0] is die rij getallen te vinden. Je kunt ze als grafiek weergeven zoals te zien in de figuur hieronder (daar zijn wel een paar extra commando's voor nodig).
Wat de FFT nu eigenlijk doet is: de samples van een geluidsfragment omrekenen naar een aantal frequentiecomponenten die zeer regelmatig verspreid liggen over het hoorbare spectrum (dus tot de halve sampling frequentie, de zg. Nyquist frequentie).

Dat de FFT zo flitsend snel heeft, daar hangt wel een prijskaartje aan: het aantal samples van het geluidsfragment moet altijd een macht van 2 zijn, dus 2, 4, 8, 16.... Vandaar dat je fragmentgrootte (Venstergrootte) opgeeft in aantal bits. Hier is ingesteld 10 bits, dus 1024 geluidssamples. Daarvoor krijg je dan ook precies 1024 frequentiecomponenten voor terug, waarvan de helft in het frequentiegebied tot aan de Nyquist frequentie.

De grafiek van buffer F2 geeft nu direct de amplitudekarakteristiek van het filter. Inderdaad is het laagdoorlatend, de hogere frequenties worden meer en meer afgezwakt, maar, merkwaardig genoeg, vanaf ongeveer 14.000 Hz worden frequenties weer steeds sterker doorgelaten. Erg effectief voor klanksynthese is dit filter daarom niet en je komt in synthesizers dan ook niet tegen. (Maar dat wil niet zeggen dat het daarom een waardeloos filter is! Het heeft allerlei toepassingen "achter de schermen".)

Merk op dat de amplitudekarakteristiek een dip ("anti-resonantie") heeft bij ongeveer 14.000 Hz. Zulke dips zijn, zoals al eerder opgemerkt, een eigenschap van alleen FIR-filters. IIR-filters vertonen juist pieken (resonanties, formanten) in de amplitudekarakteristiek. Daarom zijn IIR-filters ook veel belangrijker in synth's, want resonanties in een trillingssysteem zijn veel opvallender dan anti-resonanties.









Nog een paar dingen om over na te denken:
(1)
Als je weet dat de sampling frequentie hier 44,1 kHz is, kun je dan aantonen dat de dip van dit filter precies moet liggen bij 14.700 Hz?

(2)
Wat zal er gebeuren als je het filter van zmooc uitbreidt met nog meer termen, bijv
S2[n] = 0,2*(S1[n] + S1[n-1] + S1[n-2] + S1[n-3] + S1[n-4])?

(3)
Waarom kun je de amplitudekarakteristiek van een IIR-filter per definitie met de FFT nooit exact uitrekenen en alleen maar (prima) benaderen? (dat wil niet zeggen dat je met de computer geen exacte amplitude-karakteristiek van een IIR-amp.karakteristiek zou kunnen maken, alleen kan dat niet met de FFT).


Meer over de wonderlijke spectrale eigenschap van een puls en over de impulsresponsie lees je in http://muziekexact.nl/DSP_13_Convolutie.pdf.



Stel hier je vragen over DSP! Denk aan de hoofdregel van dit forum: domme vragen bestaan niet!
 

Attachments

  • impuls en freqresponsie 2.jpg
    impuls en freqresponsie 2.jpg
    143 KB · Bekeken: 178
Laatst gewijzigd:
Nog een paar dingen om over na te denken:
(1)
Als je weet dat de sampling frequentie hier 44,1 kHz is, kun je dan aantonen dat de dip van dit filter precies moet liggen bij 14.700 Hz?

(2)
Wat zal er gebeuren als je het filter van zmooc uitbreidt met nog meer termen, bijv
S2[n] = 0,2*(S1[n] + S1[n-1] + S1[n-2] + S1[n-3] + S1[n-4])?

(3)
Waarom kun je de amplitudekarakteristiek van een IIR-filter per definitie met de FFT nooit exact uitrekenen en alleen maar (prima) benaderen? (dat wil niet zeggen dat je met de computer geen exacte amplitude-karakteristiek van een IIR-amp.karakteristiek zou kunnen maken, alleen kan dat niet met de FFT).


Meer over de wonderlijke spectrale eigenschap van een puls en over de impulsresponsie lees je in http://muziekexact.nl/DSP_13_Convolutie.pdf.

Stel hier je vragen over DSP! Denk aan de hoofdregel van dit forum: domme vragen bestaan niet!

Domme antwoorden mogelijk wel :
1)44,1 * 0.33 => 14.700 Hz maar daar zie ik verder totaal geen verklaring of logica in (toeval).
2)Het filter wordt steiler (6 dB per toegevoegde term... geleerd van zmooc)
3)Een resultaat weergeven van de berekening van een Infinite-IR-filter met FFT is het rekenproces beeindigen, terwijl het filterproces zelf 'infinite' blijft doorgaan.

Als ik als 'niet-kenner' hier juiste antwoorden heb neergezet*, dan vraag ik me af waar al de 'wel-kenners' zijn (velen in de bib peins ik...).

(* zou me verbazen)
 
Um. Het is wiskunde, daar is per definitie niks speculatiefs aan:P

Niet? De deeltjesversneller en alle wiskunde is imo gebaseerd op speculatie.

OT:
Leest deze discussie mee om er wat van op te pikken, dat 'kenner' kun je misschien omschrijven als iemand die de wiskunde van hierboven doorheeft.
'T komt aardig over als Wiskunde B1 + B2 op de HAVO van een paar jaar terug. Dat vond ik zelf stukken leukere wiskunde dan Wiskunde A1 + A2.
 
Ronaldoz:
...'T komt aardig over als Wiskunde B1 + B2 op de HAVO ...
DSP gaat over signalen en die kun je inderdaad precies noteren zoals functies (die bij wiskunde B1 / B2 worden behandeld). Dit is wat we hierboven dan ook al verschillende malen hebben gedaan.
audiocollage:
"het filter wordt steiler"
Klopt. Maar er gebeuren nog een paar andere opmerkelijke dingen! Daarover later meer.

audiocollage:
Een resultaat weergeven van de berekening van een Infinite-IR-filter met FFT is het rekenproces beeindigen, terwijl het filterproces zelf 'infinite' blijft doorgaan.

Yep. De DFT (of FFT) is een berekening die je uitvoert met een zeker aantal geluidssamples; hoeveel dat er zijn kun je zelf bepalen, maar het is altijd een eindig aantal. Een IIR-filter klinkt in principe oneindig lang door. Als een IIR-filter stabiel is, dan wordt het geluid wel geleidelijk steeds zachter en zal vanaf een zeker moment onhoorbaar zijn. Daarom kun je in de praktijk met de DFT of FFT de amplitudekarakteristiek wel met elke gewenste graad van nauwkeurigheid benaderen, want je kunt dat aantal samples ook heel groot maken, en bovendien hebben veel stabiele IIR-filters een heel sterke demping en dus een impulsresponsie die bijvoorbeeld al na een fractie van een seconde niet meer hoorbaar is.
audiocollage:
44,1 * 0.33 => 14.700 Hz maar daar zie ik verder totaal geen verklaring of logica in (toeval)


Die frequentie van 14.700 Hz ligt inderdaad precies op een derde van de sampling frequentie. Wil je de "logica" daarvan snappen, dan zijn er twee vragen die eerst beantwoord moeten worden:
  1. Wat brengt de amplitude-karakteristiek van een filter nu precies in beeld?
  2. Als je ineens, out of the blue, zo'n filterformule als 0,33 * (S1[n] + S1[n-1] + S1[n-2]) ziet staan, krijg je al gauw een gevoel alsof die door Marsmannetjes op aarde gedropt en dat het een onontcijferbare hocus pocus is die niets meer van doen heeft met synth's of geluid. Het is dan vooral een kwestie van je afvragen: wat zeggen ze nou eigenlijk met deze formule? Welke audio-bewerking die ikzelf misschien al honderduizend keer heb uitgevoerd (zonder erbij na te denken), wordt er kort en krachtig mee weergegeven?
ad (1)
een filter "doorfluiten"
Elk filter heeft een bijzondere eigenschap: de frequentie van een toon wordt nooit veranderd door het filter; alleen de amplitude en de fase kunnen worden gewijzigd. In de audio-studio noemen ze dat "sinus-in, sinus-uit", d.w.z. als ik een sinustoon van 500 Hz op de input van een filter zet, dan krijg ik op de output van het filter ook een sinustoon van 500 Hz, en niet van bijv. 505 Hz of 479 Hz.
Als je dus een filter wilt doormeten, pak je een sinusgenerator, houdt het volume constant en draait geleidelijk de frequentie-knop rechtsom. Je hoort dan een toon die steeds hoger wordt en waarvan het volume afwisselend toe- of afneemt. Zo meet je trouwens ook een versterker of een box door - dat zijn immers ook filters. Dit doormeten met een langzaam hoger wordende sinustoon noemen ze: een systeem doorfluiten. De meetwaarden kun je op verschillende manieren registreren en vervolgens afbeelden in een grafiek; dat is dan de amplitude-karakteristiek van het systeem.

Hieronder nogmaals dezelfde karakteristiek als in mijn vorige post, maar dan met de amplitude-schaal van boven naar beneden aflopend van 100% tot 0% en met een frequentieverdeling die gemakkelijker laat zien dat die dip inderdaad op 1/3 van de samplingfrequentie zit (of, wat op hetzelfde neerkomt, op 2/3 van de halve samplingfrequentie. Waarom wordt maar getekend tot de halve sampling frequentie?).

attachment.php


Wat je nu zou kunnen doen is een sinustoon van 14.700 Hz maken en die door het filter trekken om te kijken wat voor outputsignaal je krijgt. De amplitude-karakteristiek "voorspelt" dat die output alleen maar kan bestaan uit samples die allemaal de waarde nul hebben. Ís dat ook inderdaad zo?
ad (2)


Wat zegt die filterformule nou eigenlijk?
  1. Stel, je hebt een digitale opname gemaakt van verkeerslawaai, en opgeslagen in een wav-bestand. Je noemt dit bestand V[n]. Ook heb je een digitale opname gemaakt van een blaffende hond, en opgeslagen in wav-bestand B[n]. (Neem even aan dat beide bestanden precies evenlang duren en dus evenveel samples bevatten, namelijk N). Nu maak je een nieuw bestand M[n] door de bewerking M[n] = V[n] + B[n] te berekenen voor alle waarden van n van 0 tot N. Hoe zou je die bewerking in puur audio-jargon onder woorden brengen? En de bewerking M[n] = 0,7*V[n] + 0,5*B[n]?
  2. Stel je hebt een geluid op spoor S1 staan. Je maakt nu twee nieuwe signalen A[n] en B[n] aan. Die definieer je als volgt: A[n] = S1[n-1]en B[n] = S1[n-2]. Hoe zou je de signalen A[n] en B[n] in één woord, een typisch audio-woord, uitdrukken? Kun je dat met een grafiekje verduidelijken?
  3. En hoe omschrijf je dan in gewoon audio-jargon de bewerking S2[n] = 0,33 * (S1[n] + A[n] + B[n])?
 
 

Attachments

  • ampkarakteristiek .jpg
    ampkarakteristiek .jpg
    151,7 KB · Bekeken: 165
Laatst gewijzigd:
WaveGuide7 schreef:
Die frequentie van 14.700 Hz ligt inderdaad precies op een derde van de sampling frequentie. Wil je de "logica" daarvan snappen, dan zijn er twee vragen die eerst beantwoord moeten worden:
Wel raar dat die filtering bij een sampling frequentie van 96kHz dan ineens op 32 kHz (96 x 0.33...) gebeurt, ligt dat aan de wiskundige nauwkeurigheid of dat doorfluiten ?
 
Wel raar dat die filtering bij een sampling frequentie van 96kHz dan ineens op 32 kHz (96 x 0.33...) gebeurt, ligt dat aan de wiskundige nauwkeurigheid of dat doorfluiten ?

Wat is daar raar aan?
De dip ligt in beide gevallen bij 1/3 van de samplingfrequentie. Dat ligt niet aan de wiskundige nauwkeurigheid, ook niet aan dat doorfluiten, maar aan de filterformule zelf!
Misschien wordt dat duidelijker als je een antwoord vindt op de laatste vragen in mijn vorige post over "wat zegt die formule nu eigenlijk?"
 
Wel raar dat die filtering bij een sampling frequentie van 96kHz dan ineens op 32 kHz (96 x 0.33...) gebeurt, ligt dat aan de wiskundige nauwkeurigheid of dat doorfluiten ?

De filtercoefficienten worden berekend op basis van (onder andere) de sampling frequentie. Als je een filter met dezelfde frequentie-karakteristiek wil op 96khz, heb je dus andere waardes nodig voor de 0.33's.
 
Misschien wordt dat duidelijker als je een antwoord vindt op de laatste vragen in mijn vorige post over "wat zegt die formule nu eigenlijk?"
1) Stel, je hebt een digitale opname gemaakt van verkeerslawaai, en opgeslagen in een wav-bestand. Je noemt dit bestand V[n]. Ook heb je een digitale opname gemaakt van een blaffende hond, en opgeslagen in wav-bestand B[n]. (Neem even aan dat beide bestanden precies evenlang duren en dus evenveel samples bevatten, namelijk N). Nu maak je een nieuw bestand M[n] door de bewerking M[n] = V[n] + B[n] te berekenen voor alle waarden van n van 0 tot N. Hoe zou je die bewerking in puur audio-jargon onder woorden brengen? En de bewerking M[n] = 0,7*V[n] + 0,5*B[n]?
Mixen, mengen of optellen, eerst alle volumes op 100% daarna volumes op : 70% en 50%.
2) Stel je hebt een geluid op spoor S1 staan. Je maakt nu twee nieuwe signalen A[n] en B[n] aan. Die definieer je als volgt: A[n] = S1[n-1]en B[n] = S1[n-2]. Hoe zou je de signalen A[n] en B[n] in één woord, een typisch audio-woord, uitdrukken?
Een verschuiving in tijdsduur van één en twee samples (een typisch audio-woord : doorfluiten ???).
3) En hoe omschrijf je dan in gewoon audio-jargon de bewerking S2[n] = 0,33 * (S1[n] + A[n] + B[n])?
Één derde van de mix van 1) en 2).
"wat zegt die formule nu eigenlijk?"
Discreet doorfluiten ?
 
2) Is dat zoiets als 'delay'?
 
Het i-woord is nog niet gevallen...

Het i-woord is nog niet gevallen...

Mixen, mengen of optellen, eerst alle volumes op 100% daarna volumes op : 70% en 50%.
"mix-"formule en "mengtafel-formule"
Ja, je zou een formule als M[n] = V[n] + B[n]de "mix-"formule kunnen noemen. En dan is een formule als M[n] = 0,7*V[n] + 0,5*B[n] een "mengtafel-formule": voordat de twee signalen worden gemixt, wordt eerst hun eigen "volumeknop" in de stand resp. 70% en 50% gezet.

Een verschuiving in tijdsduur van één en twee samples (een typisch audio-woord : doorfluiten ???).
2) Is dat zoiets als 'delay'?
echo
Een verschuiving: ja, maar welke kant schuif je op? Komen A[n] en B[n] nu eerder of later dan het directe geluid?
A[n] komt één sample-tijd later dan S[n] en B[n] komt twee sample-tijden later.
Een "kopie" van een geluid dat je iets later hoort dan het oorspronkelijke geluid noem je een echo. Dus A[n] en B[n] zijn echo's, "delay's" van S[n].
3) En hoe omschrijf je dan in gewoon audio-jargon de bewerking S2[n] = 0,33 * (S1[n] + A[n] + B[n])?

"filter-formule"
Als twee (of meer) signalen een direct geluid plus een of meerdere echo's daarvan voorstellen, dan heeft de mix ervan een filter-effect. Dat dit zo is, blijkt bijvoorbeeld uit de amplitudekarakteristiek die we in bericht 66
voor deze filter-formule hebben bepaald.

"wat zegt die formule nu eigenlijk?"

Zie bericht 42

nog een andere bekende audio-term moet hier vallen!
Maar waarom heeft een mix van een direct geluid en een echo daarvan een filterwerking, d.w.z., een versterking die afhangt van de frequentie van een toon?
Waarom wordt een sinustoon van 4900 Hz door dit filter afgezwakt tot 85% en een toon van 14.700 Hz zelfs helemaal weggedrukt (tenminste als de sampling frequentie 44100 Hz is)? (zie plaatje hierboven )

Er moet nog een andere, algemeen bekende audio-term vallen (ik heb het eventjes opgezocht: er staan op synthforum 122 discussies waarin die term ter sprake komt). Het is een begrip dat je ooit bij natuurkunde hebt geleerd in het hoofdstuk over geluid en dat ook in de NLT-module Sound Design in Hoofdstuk 2 nog eens kort wordt besproken. Ook op Synthwiki vind je 't trouwens...
 
 
 
ik vind het zo fijn dat je een plek en onderwerp hebt gevonden waar je je ei zo goed in kwijt kan :)
 
Ok vooruit ik zal happen en je vooruit helpen door er 123 discussies van te maken: interferentie. Hatsee.
 
Ok vooruit ik zal happen en je vooruit helpen door er 123 discussies van te maken: interferentie. Hatsee.

Bij topic start heb ik al voldoende uitgelegd wat mijn positie, motivatie en belangen in deze discussie zijn en waar die voor bedoeld is.

Schrijf niet om mij een lol te doen. Kijk uitsluitend naar je eigenbelang. Pak je kans in deze draad om wat meer te weten te komen van DSP. Ik ben al een kwart eeuw een profi op dit terrein. Ik kan je vooruit helpen.
Stel vragen. En beantwoord te mijne, zodat ik weet of ik een beetje op het goede spoor zit.

In elke vorm van studiemateriaal over technische en exacte onderwerpen vind je vragen en opdrachten om jezelf te testen en, vooral, te oefenen. Sterker nog, meestal zit de belangrijkste stof verborgen in de opdrachten, want techniek is iets dat je zelf moet doen en zelf moet ontdekken.

Deze draad is een gratis cursus (je kunt die ook doen zonder WaveWizard). Andere profi's bieden op dit forum slechts aankondigingen naar cursussen waarvoor je dik moet betalen en afreizen naar een of ander oord.

Het is aan jou om te bepalen hoe interactief die cursus is en wat je er mee opschiet. Naar mijn inschatting: meer dan met een boek van Steiglitz bestellen bij amazon. Steig kun je geen vragen stellen. Mj wel. Gratis. En ik ben goed in mijn vak; cum laude afgestudeerd sonologie in een DSP onderwerp: LPC-vocoders.

Dus aan alle offtopic schrijvers: doe mee of ga lekker in een andere draad schrijven.
 
Laatst gewijzigd:
Maar waarom heeft een mix van een direct geluid en een echo daarvan een filterwerking, d.w.z., een versterking die afhangt van de frequentie van een toon?
Fazeverschuivingen : in faze = optelling = versterking, tegenfaze = aftrekking = verzwakking en alles tussen deze twee uitersten.
Een delay of echo is het zeker moeilijk te noemen met een vertraging van maar 1/441000 seconde.
Het is aan jou om te bepalen hoe interactief die cursus is en wat je er mee opschiet. Naar mijn inschatting: meer dan met een boek van Steiglitz bestellen bij amazon. Steig kun je geen vragen stellen. Mj wel. Gratis. En ik ben goed in mijn vak; cum laude afgestudeerd sonologie in een DSP onderwerp: LPC-vocoders.
Nu nog goed overbrengen hé ?!


... en daarbij helpt humor meer dan een saai boek...
Iets uitleggen doe je vertrekkend vanuit de kennis of visie van 'het slachtoffer'...
Als die mens altijd op droog zand heeft gezeten, moet je niet beginnen met waterboarding, hé. :smeris:
Zoiets bouw je op...
WaveGuide7, hoe kun je nu interactief te werk gaan omtrent DSP als je 'haast enkel wiskunde praat' en maar met één software pakket werkt ?
* breid je gearlist uit met bvb. deze free software : Audacity, SyncModular (Reaktor equivalent) en PD (Pure Data voor de moeilijkere dingen);
* bouw de voorbeelden die je wil geven daarmee op (laat iets horen wat iedereen thuis kan heropbouwen);
* maak het boeiend en begrijpbaar van bij de start voor iedereen, vanzelf komen de vragen wel die uiteindelijk tot diepere wiskunde kunnen leiden.
 
Laatst gewijzigd:
Back
Top