digiale signaalverwerking deel 2: sampling en digiale filerechniek Hoewel we de vorige keer reeds over he samplen van signalen gesproken hebben, komen we daar nu op erug, om de ermee samenhangende effecen e leren kennen. Daarna gaan we ons me de digiale filerechniek bezighouden. Wanneer van een gesampled signaal uisluiend de sampling-frequenie bekend is, kan me behulp van he volgende heorema worden bepaald of alle signaalinformaie ook daadwerkelijk in de samples veregenwoordigd is: Indien een signaal aandelen beva me een maximale frequenie van f max, dan is voor de volledige reconsrucie van he signaal een sampling-rae nodig van enminse 2 f max. Aan de hand van een voorbeeld kan worden gedemonsreerd of de signaalfrequenie al dan nie e hoog is voor een gegeven sample-rae. MUSICG1 <reurn> wek een oonladder op vanaf 40 Hz. Er worden dan 60 onen geproduceerd die seeds een halve oon hoger worden in frequenie, zoda er in oaal een bereik van 5 ocaven word besreken. De hoogse oon heef een frequenie van 14 khz. In MUSIC1.WAV worden de onen me een sampling-rae van 44,1 khz opgeslagen; aan he heorema is dus voldaan, hegeen al luiserend gemakkelijk e verifiëren val. D OWNSAMPLING Om he voorbeeld complee e maken, gaan we he zojuis opgeweke signaal opnieuw bemonseren nu echer me slechs een kwar van de oorspronkelijke sampling-frequenie, dus me 11025 khz. Deze werkwijze word downsampling genoemd en uigevoerd door he programma DWNSMPL1.EXE. Hierbij word MUSIC1.WAV omgeze in besand MUSIC2.WAV. De downsampling-facor word als volg ingegeven: DWNSMPL1 \inp=music1.wav \ou=music2.wav \facor=4 <reurn>. Nu zijn uisluiend lagere onen dan 1 u u 0 0 x 1 x 2 x 3 x 4 y 1 x 5 x 6 11025 Hz/2 = 5512,5 Hz beschikbaar. Hogere onen worden volgens he bovengenoemde heorema nie correc gereconsrueerd en daardoor in oaal verkeerde frequenies omgeze. Di noem men aliasing. A LIASING- FREQUENTIES He aliasing-effec is overigens geenszins willekeurig, maar val vrij eenvoudig e herleiden. Word een sinusvormig signaal me een frequenie van x 7 x 8 x 9 1 2 3 4 5 6 7 8 9 Downsampling me facor 4 x y 1 2 Figuur 1. Bij downsampling van een signaal word een sampling-frequenie genomen die een bepaalde facor lager is dan oorspronkelijk hier een facor 4. y 2 10 x 10 980015-2 - 11 11 12 x 11 x 12 y 3 f 0 < f s /2 bemonserd me de frequenie f s, dan onsaan bepaalde sampling-waarden. Elk signaal me de frequenies m f s f 0 of m f s + f 0 (m = 1, 2, 3, 4...) wek dan een sel idenieke signaalcomponenen op, die de bij f 0 behorende aliasing-frequenies vormen (zie figuur 2). Na he samplen kan men de bij de aliasingfrequenies behorende signalen nie meer van elkaar onderscheiden, omda ze alle he gevolg zijn van he samplen van frequenie f 0. Om di e vermijden word de A/D-omzeer normalier voorafgegaan door een laagdoorlaa- 3 32
filer da de alias-frequenies onderdruk. Da breng ons bij he hema... 2 Aliasing-frequenies L AAGDOORLAATFILTERING Di hoef nie me een gewoon filer e gebeuren, maar kan ook langs digiale weg worden gerealiseerd. We nemen simpelweg een analoog laagdoorlaafiler als voorbeeld (figuur 3 en 4) en proberen vervolgens he gedrag ervan op digiale wijze e imieren. Een beeje wiskunde val hierbij nie e vermijden, alhoewel een en ander zo eenvoudig mogelijk is gehouden. Tijdens een enkele sampling-inerval me een duur van T = k+1 k verander de ingangsspanning zoals e zien slechs weinig en opziche van de aanvangswaarde u k. Ook de uigangsspanning zal slechs weinig veranderen, zoda door weersand R een bijna consane sroom vloei er grooe van i = (u k v k )/R. Aan he begin van de sampling-inerval saa over de condensaor de spanning v k. Nada hij gedurende me de zojuis genoemde sroom is geladen, bedraag de condensaorspanning: v k+1 = v k + i /C = v k + (v k u k )/RC Als we sellen da r = 1 ( /RC), dan komen we ui op: v k+1 = r v k + (1 r)u k Zo luid dus he berekeningsvoorschrif voor ons eerse digiale filer. He programma is op de CD-ROM onder de naam LP1.EXE e vinden; voor de broncode LP1.PAS kan men erech in figuur 5. De regels 1 o 5 vormen de kop van he programma en bepalen onder meer da de programmabiblioheek SIGLIB.PAS gebruik moe worden. De regels 6 en 7 bepalen de benodigde variabelen, erwijl regel 10 voor de iniialisering zorg van SIGLIB.PAS. De regels 11 o en me 14 definiëren de parameers en evenueel worden hier bij oproep van he programma de acuele waarden opgenomen. In regel 16 en 17 word de in- en uivoer van de WAV-besanden geaciveerd. Regel 19 iniialiseer de filerwaarde. De lus van de regels 20 o en me 25 voer de feielijke filerbewerking ui. In regel 22 word de acuele fileruigangswaarde in de oupu-file geschreven. He fileralgorime is in regel 23 e vinden. De insrucie in regel 26 slui alle besanden en slui he programma af. He voorbeeld illusreer da programma s voor digiale signaalverwerking nie per se lang en ondoorzichig hoeven zijn. De anders alijd aanwezige ballas word ons in deze cursus ui handen genomen door de programmabiblioheek SIGLIB.PAS. Voor he esen van he filer bewerken we besand MUS1.WAV (eers beluiseren!) van de CD-ROM. Di gebeur door de insrucie lp1 \r=0.995 \scale=10 \inp=mus1.wav f 0 \ou=mp.wav <reurn> He resulerende signaal mp.wav onderscheid zich bij he afluiseren duidelijk van he oorspronkelijke signaal. Men kan vervolgens nog wa experimeneren me he filer door bijvoorbeeld verschillende waarden voor r e proberen. Groer dan 1 mag r echer nie worden, omda he filer anders insabiel word. Alleen door e luiseren val he filer nauurlijk nie ech nauwkeurig e karakeriseren. Een paar essignalen zijn voor zo n analyse ononbeerlijk. Hiervoor kan gebruik worden gemaak van de op de CD-ROM aanwezige... P ULSGENERATOREN De eerse en eenvoudigse van deze generaoren me de aanduiding PULSE1.EXE wek een zeer kore puls op, waarbij alle sample-waarden nul zijn me uizondering van slechs éénje. De posiie en de hooge van de puls kunnen me de parameers worden ingeseld. Di elemenaire essignaal is heel belangrijk en zal bij laere experimenen nog vaak worden gebruik. Een andere pulsgeneraor vorm he programma STEP1.EXE, da een eenvoudige sapspanning opwek me gedefinieerde hooge en posiie. Als 4 f s 2 f s - f 0 f s + f 0 f s Aliasing 3 u () Figuur 4. Reacie van he RC-filer op een spanningssprong aan de ingang. u k v k v k+1 voorbeeld voeren we he programma DO XLP1.SPP ui. De daarmee opgeweke signalen zijn afgebeeld in figuur 6. Boven zien we de reacie van filer mp1.wav op puls pulse1.wav, onder he langzaam oplopende anwoord mp.wav op sprong sep1.wav. Ook di experimen kan men weer me verschillende r-waarden uivoeren. Wa gebeur er bijvoorbeeld bij r = 0.9? Duidelijk is da me di curveverloop he gedrag van een laagdoorlaafiler slechs amelijk onnauwkeurig val e 33 2f s - 2f 0 2f s + 2f 0 2f s 980015-2 - 12 Figuur 2. He opreden van deze equivalene frequenies saa bekend als he aliasing-effec. Figuur 3. Een analoog laagdoorlaafiler, besaande ui een simpel RC-newerk. R C 980015-2-13 v () simuleren. Een verdere mogelijkheid word geboden door een, eveneens op u () v () 980015-2 - 14
5 001 program lp1 ; 002 uses dos,cr,graph ; 003 004 {$I SIGLIB.PAS } 005 006 var k:in ; 007 y,scale,r:floa ; 008 009 begin 010 sar( simple lowpass ) ; 011 scale:=1.0 ; se_par_real( \scale=,scale) ; 012 r:=0.95 ; se_par_real( \r=,r) ; 013 inp_fn:= pulse1.wav ; se_par_sring( \inp=,inp fn) ; 014 ou_fn:= mp.wav ; se_par_sring( \ou=,ou fn) ; 015 016 open_inp(inp_fn) ; 017 open_ou(ou_fn) ; 018 019 y:=0 ; 020 for k:=1 o nsamples do 021 begin 022 oupu(scale*y) ; 023 y:=r*y+(1-r)*inpu ; 024 if (k mod 2000)=0 hen wrie(. ) ; 025 end ; 026 sop ; 026 end. Figuur 5. Pascal-broncode van he digiale filer LP1. de CD-ROM aanwezige, sweepgeneraor. Door he ingeven van DO XLP2.SPP <reurn> word een sweep-signaal van 1...1000 Hz geproduceerd (boven in figuur 7) en door he laagdoorlaafiler bewerk. De ampliude van he uigangssignaal (onder) neem af naarmae de frequenie hoger word. Nog een mogelijkheid is om wie ruis aan he laagdoorlaafiler oe e voeren en he specrum van he uigangssignaal e bekijken. Daaroe dien men zich eers echer verrouwd e maken me de opie om specra van signalen e berekenen en deze zichbaar e maken. S PECTRUM- ANALYSER Een cursus digiale signaalverwerking Figuur 6. Uigangsspanning van he laagdoorlaafiler bij een puls resp. spanningssprong aan de ingang. is nauurlijk nie complee zonder de mogelijkheid e hebben om signaalspecra ook daadwerkelijk e kunnen bekijken. Voor di doel is op de CD- ROM he programma SPEC1.EXE (source-code SPEC1.PAS) aanwezig. Voor he berekenen van een specrum maak SPEC1.EXE gebruik van de zogeheen discree Fourierransformaie (DFT), die ui N waarden een aanal van N/2 ampliudewaarden afleid, behorende bij de frequenies 0 o f s /2. In ons programma is N = 4096. De ampliudewaarden worden logarimisch weergegeven om een zo groo mogelijk bereik e krijgen. He experimen XSPEC1.SPP wek wee signalen op me de frequenies 193,7988 Hz (mp1.wav) en 196,4905 Hz (mp2.wav), me elk 4096 samples bij een sampling-rae van 44.100 samples/s. Laa men op deze sinussignalen een DFT los, dan krijg men de in figuur 8 afgebeelde specra. Zoals e zien, lijk in he eerse signaal (mp1.wav, linksboven) slechs één frequenie aanwezig e zijn. He specrum laa een hoge, zeer smalle piek zien. Bij he weede signaal daarenegen (mp2.wav) rechsboven) is de piek nauwelijks 20 db groo en verloop he afvallen van de curve links en rechs van de piek veel minder seil. Hoe kom DFT eigenlijk aan he resulaa da alle frequenies in een signaal een beeje voorkomen? Figuur 9 oon da een aanal volledige perioden van he signaal mp1.wav precies in he venser 6 980015-2 - 16 34
7 Figuur 7. Een sweep-signaal word door he laagdoorlaafiler gesuurd. Figuur 8. Specra van sinussignalen, boven zonder en onder me oepassing van een venser. van 4096 punen pas die voor de DFTbewerking worden gebruik. Bij he signaal mp2.wav is da echer nie meer helemaal he geval; de waarde van he signaal aan he begin, links, is nul, maar rechs aan he einde nie, aangezien er 18,5 perioden in he zelfde venser passen. Da is de reden da er voor he afbeelden van he signaal een groo aanal frequenies nodig is en dus ook door de DFT worden weergegeven. V ENSTERS Uieraard is di geen bevredigende oesand, wan eigenlijk zou de DFT ook bij signaal mp2.wav een vergelijkbare smalle piek moeen laen zien. Da val 8 980015-2 - 18 35
9 980015-2 - 19 e bereiken door he ingangssignaal (boven in figuur 10) eers e vermenigvuldigen me een zogenaamde venserfuncie (middelse signaal). Er onsaa dan he onder in figuur 10 afgebeelde signaal, da vervolgens aan een DFT onderworpen word. Deze venserfuncie bewerksellig da he signaal vóór uivoering van de DFTbewerking aan de randen als he ware wa word afgevlak, waardoor he resulerende specrum de gewense vorm dicher benader. Als we even erugkijken naar figuur 8, dan zien we daar onderin de specra van de beide signalen mè oepassing van deze venserechniek. He specrum van signaal mp2.wav is nu duidelijk smaller, maar de signaalpiek van mp1.wav is 10 Figuur 9. De signalen passen al dan nie goed in he venser van de specrumanalyser. daarenegen zichbaar breder geworden da laase is de prijs die voor de oepassing van een venser moe worden beaald. De specrum-analyser op de CD-ROM laa de gebruiker de keuze om mè of zonder venser e werken. He gebruik van vensers zullen we rouwens opnieuw egenkomen wanneer we he over filersynhese gaan hebben. (980015-2) In he volgende deel zullen we een paar eche signalen aan een specrum-analyse onderwerpen en gaan we verder me he onderwerp filering. Figuur 10. Onder he oepassen van een venser word versaan de vermenigvuldiging van he signaal me een bepaalde venserfuncie (midden). 980015-2 - 20 37