Workshop 2 - Geluid

65
WORKSHOP GELUID Katja Verbeeck [email protected] KaHo Sint-Lieven 20 november 2012 1

description

Workshop 2 - Geluid

Transcript of Workshop 2 - Geluid

Page 1: Workshop 2 - Geluid

WORKSHOP GELUID

Katja Verbeeck

[email protected]

KaHo Sint-Lieven – 20 november 2012

1

Page 2: Workshop 2 - Geluid

INHOUD

Geluid

Wat is geluid?

Analoog vs. digitaal

Digitalisering van analoge audio

Bemonstering

Kwantificeren

Problemen: aliasing en kwantificeringsfouten

Compressie van audio (MP3)

Het idee van Fourier

De Familie van Fourier Transformaties:

Wiskundige technieken voor analyse van periodieke signalen: Fourierreeks

Fouriertransformatie

Discrete en Fast Fouriertransformatie (DFT/FFT)

Toepassingen

Opdracht

Page 3: Workshop 2 - Geluid

WAT IS GELUID?

Geluid is een golf-fenomeen, net zoals licht, maar dan op

macroscopisch niveau. Lucht moleculen worden

samengedrukt en uitgezet onder impuls van een fysisch

device.

Voorbeeld : een luidspreker in een audio-systeem vibreert heen

en weer en veroorzaakt een longitudinale drukgolf die wij als

geluid ervaren

Vermits geluid drukgolven zijn, nemen ze continue waarden aan

integenstelling tot digitale waarden die discreet zijn!

Ook longitudinale drukgolven voldoen aan golf eigenschappen

zoals: reflectie, refractie en diffractie

Digitalizatie: maak een digitale representatie van het continue

audio signaal – geluid omvormen tot een stroom van getallen, bij

voorkeur gehele getallen

Page 4: Workshop 2 - Geluid

GELUIDSGOLVEN

Analoog signaal: een continue meting van de drukgolf Geluid is 1-dimensionaal: de amplitude is uitgezet t.o.v. de tijd Deze grafiek moet omgezet worden naar getallen, zowel in de amplitude als tijds-

as : Sampling

Page 5: Workshop 2 - Geluid

HOE WERKT ONS OOR?

From: tamaraberg.com

Page 6: Workshop 2 - Geluid

DECIBELS

From: tamaraberg.com

Page 7: Workshop 2 - Geluid

ANALOOG

VS.

DIGITAAL

Page 8: Workshop 2 - Geluid

ANALOOG SIGNAAL

Tijdscontinu en continu waardenbereik

0.00

0.05

0.10

0.15

0.20

0.25

Page 9: Workshop 2 - Geluid

BEMONSTERD SIGNAAL

0.00

0.05

0.10

0.15

0.20

0.25

Sampling in de tijdsas – kies punten op evenredige afstand van elkaar Ts – de frequentie waarmee dit gebeurt noemt men de sampling frequence fs

Voor audio is deze frequentie typisch: 8kHz tot 48 kHz (8 kHz is 8000 samples per seconde)

Page 10: Workshop 2 - Geluid

BEMONSTERD SIGNAAL

Page 11: Workshop 2 - Geluid

0.000

0.063

0.125

0.188

0.250

DIGITAAL SIGNAAL

n = aantal bits, Q = bitstap

Sampling in de amplitude-as : Quantificatie

Page 12: Workshop 2 - Geluid

SAMPLING EN QUANTIFICATIE

Page 13: Workshop 2 - Geluid

SAMPLING EN QUANTIFICATIE

From wikipedia

Page 15: Workshop 2 - Geluid

3 VRAGEN OM DATA TE DIGITALIZEREN

Wat is de sampling rate?

Hoe fijn gaat de data gekwantificeerd worden?

Uniform?

Hoe wordt de audio data opgeslaan in een formaat?

Page 16: Workshop 2 - Geluid

NYQUIST SAMPLE THEOREMA

Page 17: Workshop 2 - Geluid

NYQUIST SAMPLE THEOREMA

Page 18: Workshop 2 - Geluid

ALIASING

Page 19: Workshop 2 - Geluid

ALIASING

Zelfde frequentie maar verschillende amplitude !

Page 20: Workshop 2 - Geluid

ALIASING

Page 21: Workshop 2 - Geluid

ALIASING

Bij reconstructie zijn deze twee signalen zijn niet te onderscheiden, ze zijn elkaars alias. Aliasing treedt op wanneer discrete elementen gebruikt worden om een continu signaal te reconstrueren en er ambiguiteit ontstaan in de frequentie.

Page 22: Workshop 2 - Geluid

ALIASES

Wanneer een sinusoide met frequentie f gesampled wordt met frequency fs dan zullen de resulterende

samples onscheidbaar zijn van een andere sinusoide met frequentie:

voor N willekeurige integer.

De meeste reconstructietechnieken geven het minumum van deze frequenties terug, vandaar dat het

belangrijk is om een uniek minimum te bereiken in f . Dit is voldaan als met

de Nyquist freqentie.

In deze grafiek is de Nyquist conditie voldaan als het blauwe signaal het originele signaal is, in het andere

geval:

are = 0.9 and = 0.1.

= 0.1

= 0.9

Page 23: Workshop 2 - Geluid

ALIASING

-> gebruik anti-aliasing filter, waarbij hoog frequente componenten worden afgezwakt

Page 24: Workshop 2 - Geluid

KWANTIFICERING

Q

Kwantificatie-error of ruis: Te wijten aan de afronding van kwantificatie – keuze van aantal bits Het verschil tussen de actuele waarde van het analoge signaal en het dichtsbijzijnde kwantificatie interval waarde

Page 25: Workshop 2 - Geluid

BLOKSCHEMA

SignaalaanpassingAnti-Aliasing

filterS&H ADC

OpslagVerwerking

DACInterpolatie

filter

Ditheringruisgenerator

Page 26: Workshop 2 - Geluid

AUDIO

COMPRESSIE:

MP3

Page 27: Workshop 2 - Geluid

EVEN REKENEN...

CD-kwaliteit:

44,1KHz

16bit (op de bitdiepte komen we straks nog terug)‏

Stereo (2 kanalen)‏

Data rate =

44100 * 16 * 2 = 1411200 bits/s

Hoeveel ruimte nodig voor 1 min muziek?

Gemiddeld nummer = 3 min32≈‏ miljoen bytes (of 32

megabytes) .

Page 28: Workshop 2 - Geluid

VERLIESLOZE COMPRESSIE

PCM: CD-geluid zonder compressie.

Enkel lineair geëncodeerd

ADPCM:

A staat voor Adaptive

D voor Differential

Encodeert verschillen tussen aanliggende samples

Comprimeert ca. 2:1 tot 4:1

Page 29: Workshop 2 - Geluid

MP3, DE JPEG VAN DE AUDIO...

JPEG-compressie maakt gebruik van de zwakheden van

het menselijk oog

Kan daardoor zeer efficiënt comprimeren

MP3 doet hetzelfde!

MPEG (Moving Pictures Experts Group)

Mp3 staat voor MPEG Audio Layer 3

Eerst even nagaan hoe ons gehoor werkt...

Page 30: Workshop 2 - Geluid

PSYCHO-AKOESTISCH MODEL

• we horen frequenties tussen ca. 20Hz en 20kHz

• oor meest gevoelig tussen 1 en 5 kHz

• "dynamic range"

verschil tussen luidste en stilste waarneermbaar geluid – is ca. 96 dB

• stem tussen 500Hz en 2 kHz

• klinkers: lagere frequenties

• medeklinkers: hogere frequenties

Page 31: Workshop 2 - Geluid

MP3 IS PERCEPTUELE CODERING

perceptuele codering = codering gebaseerd op de menselijke waarneming

van geluidssignalen

Ons gehoor kan geen frequenties waarnemen onder de 20 Hz en boven de

20 kHz. Deze signalen worden dus weggefilterd.

Ons gehoor is minder gevoelig voor heel hoge en heel lage tonen. Deze

tonen comprimeert men sterk zonder nadelige gevolgen.

Wanneer een luide toon onmiddellijk gevolgd wordt door een stille toon, kan

die stille toon weggelaten worden zonder dat de mens daar iets van merkt.

Als het om stereogeluid gaat en de klank op de twee kanalen is precies

hetzelfde, dan wordt één kanaal weggelaten uiteraard. Bij het afspelen

wordt hetzelfde kanaal over beide kanalen weergegeven.

Als er verschillende klanken tegelijkertijd spelen, maskeren sommige

klanken elkaar. Niet alle afzonderlijke geluiden kunnen we waarnemen. De

minst dominante geluiden worden weggefilterd.

Page 32: Workshop 2 - Geluid

“THRESHOLD”‏VAN ONS GEHOOR

• experiment: zet persoon in stille ruimte

• voor verschillende frequenties:

• volume verhogen tot geluid nét hoorbaar wordt

• uittekenen in grafiek

Page 33: Workshop 2 - Geluid

FREQUENCY MASKING

experiment:

• speel 1 kHz toon af (maskeer-geluid)‏

• speel test-toon (bvb. 1.1 kHz) en verhoog volume tot die net hoorbaar is

• teken waardes uit in grafiek

Page 34: Workshop 2 - Geluid

FREQUENCY MASKING

• herhaal experiment voor verschillende maskeer-frequenties:

Page 35: Workshop 2 - Geluid

TEMPORAL MASKING

experiment:

• speel 1kHz-toon aan bvb. 60 dB

• stop deze toon en speel test-toon (bvb. 1,1 kHz aan bvb. 40dB) na kort interval

• varieer dit interval tot test-toon net hoorbaar wordt

• varieer amplitude van test-toon en teken uit in grafiek:

Page 36: Workshop 2 - Geluid

FREQUENCY EN TEMPORAL MASKING

verzamel deze informatie op drie assen: 3D voorstelling van maskeer-effect:

Page 37: Workshop 2 - Geluid

http://computer.howstuffworks.com/mp31.htm

Page 38: Workshop 2 - Geluid

MP3 ALGORITME: PRINCIPE

1. splits het signaal in 32 frequentie-banden (sub-band filtering)‏

2. analyseer maskeer effect voor elke band door de aanliggende banden, gebruik

makend van psycho-akoestisch model

3. als de geluidsenergie van een band onder de "masking-threshold" ligt, negeer

dan deze informatie

4. in het andere geval, bepaal het aantal bits nodig om de informatie te coderen,

zodat de kwantificeringsfout onder de masking-threshold blijft

5. codeer de bitstream

Page 39: Workshop 2 - Geluid

MP3 ALGORITME: EEN VOORBEELD

• stel, na sub-band filtering krijgen we volgende informatie (voor het voorbeeld

bekijken we enkel de eerste 16 banden):

• Laten we band 8 eens bekijken

• uit het psycho akoestisch model:

• 60 dB niveau in deze band maskeert 12 dB in band 7 en 15 in band 9

• niveau van band 7 is 10 dB -> minder dan 12 dB -> negeren

• band 9: 35 dB > 9 dB -> niet negeren !

• we sturen enkel deel boven maskeer-niveau

• we kunnen dus 2 bits uitsparen (2 * 6 dB = 12dB)‏

Page 40: Workshop 2 - Geluid

STEREO REDUNDANCY CODING

stereo-informatie wordt nog eens als volgt gecomprimeerd:

• hoge frequentie-banden: codeer som van linker en rechter signaal in plaats van

afzonderlijk

• middle/side encoding: codeer centraal en verschil van het rechter of linker

kanaal.

Page 41: Workshop 2 - Geluid

INHOUD

Geluid Wat is geluid?

Analoog vs. digitaal

Digitalisering van analoge audio Bemonstering

Kwantificeren

Problemen: aliasing en kwantificeringsfouten

Compressie van audio (MP3)

Fourier Trnasformaties Het idee van Fourier

De Familie van Fourier Transformaties: Wiskundige technieken voor analyse van periodieke signalen:

Fourierreeks

Fouriertransformatie

Discrete en Fast Fouriertransformatie (DFT/FFT)

Toepassingen

Opdracht

Page 43: Workshop 2 - Geluid

HET IDEE VAN FOURIER

Een wiskundige functie in de tijd (of ruimte) kan altijd bekeken worden als een functie over frequenties, het zogenaamde frequentiespectrum (Anders gezegd: als een som van sinus en cosinusgolven)

Page 44: Workshop 2 - Geluid

FREQUENTIE VAN GOLVEN

Een complex signaal kan steeds ontbonden worden in een gewogen som van sinusoiden

Page 45: Workshop 2 - Geluid

FOURIER EN GELUIDSGOLVEN

Vb.: geluid bij 200 Hz

Klinkt anders afhankelijk van de vorm van het signaal:

==> niet enkel de frequentie is belangrijk, ook de golfvorm

Page 46: Workshop 2 - Geluid

FOURIER EN THE BEATLES :

“HARD DAY’S NIGHT” MYSTERY CHORD

http://en.wikipedia.org/wiki/A_Hard_Day's_Night_(song) http://www.npr.org/templates/story/story.php?storyId=98743259

Page 47: Workshop 2 - Geluid

FAMILIE VAN FOURIER TRANSFORMATIE

Fourier reeksen: de functie is periodiek (golven zoals sinus, square,

continu‏en‏(herhaalt‏zichzelf‏patroon‏een‏waarbij‏golfvorm‏elke‏‏…

Fourier transformatie: de functie is a-periodiek en continu,

bijvoorbeeld een afnemende exponentiële functie, een Gaussiaanse

functie

Discrete tijd Fourier transformatie: de functie is slechts bepaald

op discrete tijdstappen en niet periodiek

Discrete Fourier transformatie: de functie is discreet en periodiek

(herhaalt zichzelf)

Page 48: Workshop 2 - Geluid

Fourierreeks

Page 49: Workshop 2 - Geluid

FOURIERREEKS

Willekeurig periodiek signaal beschrijven met behulp van zuivere sinussen.

==> (begrensd) periodiek signaal is samenstelling van:

constante component

Grondtoon (n=1)

Harmonischen (n>1)

Page 50: Workshop 2 - Geluid

FOURIERREEKS

Berekening van relatieve inbreng componenten:

Page 51: Workshop 2 - Geluid

FOURIERREEKS

Alternatieve voorstelling:

Met:

Page 52: Workshop 2 - Geluid

REEKSONTWIKKELING BLOKGOLF

Page 53: Workshop 2 - Geluid

REEKSONTWIKKELING BLOKGOLF

Page 54: Workshop 2 - Geluid

SYNTHESE VAN EEN BLOKGOLF

3 termen 10 termen

Page 55: Workshop 2 - Geluid

FOURIERANALYSE - FOURIERSYNTHESE

FourierAnalyse:

Een signaal analyseren door het te ontbinden in de verschillende componenten

==> frequentiespectrum (bv: spectrumanalyzer)

Fouriersynthese:

Een signaal construeren (synthetiseren) door verschillende afzonderlijke signalen te combineren (bv. synthesizer)

Page 56: Workshop 2 - Geluid

FOURIERREEKS – COMPLEXE SCHRIJFWIJZE

Relaties van Euler:

Toepassen in de formules van Fourier geef:

met

NB: alle getallen zijn complexe getallen (f(t) meestal reël)

Page 57: Workshop 2 - Geluid

FOURIERTRANSFORMATIE

Uitbreiding naar niet-periodieke signalen: limietgeval voor f→‏‏,0‏T→‏

Geeft:

Page 58: Workshop 2 - Geluid

DISCRETE FOURIER TRANSFORMATIE

Page 59: Workshop 2 - Geluid

FAST FOURIER TRANSFORM (FFT)

Theorie gaat ook op voor discrete (bemonsterde) signalen: DFT

Speciale, geoptimaliseerde algoritmes: FFT

Praktisch:

t-domein: n reële waarden (n = macht van 2)

f-domein: n complexe getallen ( = frequentieresolutie)

==> geeft f-spectrum van 0 Hz tot Fs!

Page 60: Workshop 2 - Geluid

SPECTRUM VAN BEMONSTERD SIGNAAL

Fs 3.Fs2.Fs

Fs 3.Fs2.Fs

origineel f-spectrum

f-spectrum na bemonstering

’spiegeling‘‏+‏spectrum‏origineel‏:FFT‏na‏<==

Page 61: Workshop 2 - Geluid

SPECTRUM VAN BEMONSTERD SIGNAAL

Page 62: Workshop 2 - Geluid

OPMERKINGEN

Rekenwerk !

Eventuele manipulaties in f-domein: ook in gespiegeld spectrum

Efficiënte FFT-implementaties werken bijna altijd met een macht van 2 (n = .(…2048‏,1024‏,512‏,256‏,128‏,64

In frequentiedomein werk je met een aantal waarden die de energie

voorstellen die het signaal bevat bij een bepaalde frequentie(band). Deze reeks waarden omvat het hele frequentiegebied tussen 0 Hz en de bemonsteringsfrequentie.

Reële versus complexe FFT Stereo geluid: 2 signalen (meestal interleaved gecodeerd)

Page 63: Workshop 2 - Geluid

TOEPASSINGEN

Spectrumanalyse

Fourierfiltering

Compressietechnieken

Maar ook in Quantummechanica, Economie, Mechanica, Astronomie…

==> niet enkel signalen in functie van de tijd, ook ruimte, of gelijk welke andere variabele , eventueel in 2D, 3D…

Page 64: Workshop 2 - Geluid

TOEPASSINGEN

Page 65: Workshop 2 - Geluid

OPDRACHT 2:

ONTWERP JE EIGEN WAV SCRAMBLER IN C#

Schrijf een programma dat WAV files kan lezen en dat via FFT deze geluid files kan aanpassen tot een vervormd of gescrambled geluid. Kies zelf je vervorming, maw kies zelf welke frequentiemanipulatie je doet. Deze manipulatie(s) moet(en) wel weer ongedaan gemaakt kunnen worden, maw je programma moet ook een de-scramble methode voorzien, zodat je weer je origineel WAV bestand bekomt. Verzorg je GUI, toon de header van de originele en gescrambelde WAV files (#kanalen, bemonsteringsfrequentie, #bits per sample). Verzorg je verslag : beschrijf de opgedane kennis – beschrijf je scrambler en descrambler methode Bestudeer zeker eerst het WAV bestandformaat: http://www-mmsp.ece.mcgill.ca/Documents/AudioFormats/WAVE/WAVE.html http://www.lightlink.com/tjweber/StripWav/WAVE.html#Intro Je krijgt Fourier.cs ter beschikking om FFT te gebruiken, je hoeft het algoritme niet zelf te implementeren. Deadline: dinsdag 18 december , indienen via GIT Nuttige referenties: http://music.columbia.edu/cmc/musicandcomputers/ http://www.codeproject.com/KB/audio-video/WaveEdit.aspx