Virtuell Analog Synt. Examensarbete i Datateknik MIKAEL BERGSTRÖM VICTOR LÓPEZ
|
|
- Ann-Charlotte Hansson
- för 6 år sedan
- Visningar:
Transkript
1 Virtuell Analog Synt Examensarbete i Datateknik MIKAEL BERGSTRÖM VICTOR LÓPEZ Examinator: Peter Lundin Institutionen för data- och informationsteknik CHALMERS TEKNISKA HÖGSKOLA Göteborg, Sverige 2017
2
3 EXAMENSARBETE Virtuell Analog Synt MIKAEL BERGSTRÖM VICTOR LÓPEZ Examinator: Peter Lundin Institutionen för data- och informationsteknik CHALMERS TEKNISKA HÖGSKOLA Göteborg, Sverige 2017
4 Virtuell Analog Synt MIKAEL BERGSTRÖM VICTOR LÓPEZ MIKAEL BERGSTRÖM, VICTOR LÓPEZ, 2017 Examinator: Peter Lundin Institutionen för data- och informationsteknik Chalmers tekniska högskola SE Göteborg Sverige Telefon: +46 (0) The Author grants to Chalmers University of Technology and University of Gothenburg the non-exclusive right to publish the Work electronically and in a non-commercial purpose make it accessible on the Internet. The Author warrants that he/she is the author to the Work, and warrants that the Work does not contain text, pictures or other material that violates copyright law. The Author shall, when transferring the rights of the Work to a third party (for example a publisher or a company), acknowledge the third party about this agreement. If the Author has signed a copyright agreement with a third party regarding the Work, the Author warrants hereby that he/she has obtained any necessary permission from this third party to let Chalmers University of Technology and University of Gothenburg store the Work electronically and make it accessible on the Internet. Omslag: Oscilloskop som visar en ljudvåg genererad av synten. Chalmers Reproservice Göteborg, Sverige 2017
5 Virtuell Analog Synt MIKAEL BERGSTRÖM VICTOR LÓPEZ Examinator: Peter Lundin Institutionen för data- och informationsteknik, Chalmers tekniska högskola Examensarbete Sammanfattning En traditionell synt använder sig av analoga komponenter för att producera ljud. En eller flera oscillatorer används för att producera en vågform som formas med hjälp av ett eller fler filter. Processen kallas subtraktiv ljudsyntes. Sedan mitten av 90-talet existerar så kallade VA-syntar (virtual analog syntesizer), som på digitalt vis emulerar den tidigare enbart analoga ljudsyntesen. Den här rapporten beskriver processen att från grunden designa och utveckla en synt med hjälp av en ARM-baserad mikrocontroller (STM32F407). Mjukvaran är skriven i C och inkluderar oscillatorer för de grundläggande vågformerna, lågpassfilter med variabel gränsfrekvens samt konturgeneratorer som kan modulera både gränsfrekvens och amplitud över tid. Arbetet har resulterat i en mjukvaruprototyp samt design av en analogmodellerande synt, och har utförts på Chalmers Tekniska Högskola under 2016/2017 på initiativ av rapportförfattarna. Nyckelord: Synt, DSP, Inbyggda system, Digitala filter, ARM, Musik i
6 Abstract Traditional synthesizers use analog components to generate sound. One or more oscillators are used to produce a waveform, which is in turn shaped by a low pass filter (and sometimes also a high pass filter). This process is called subtractive audio synthesis. Since the middle of the 90s there exists so-called virtual analog synthesizers that emulates analog audio synthesis by digital means. This report documents the process of designing and assembling a synthesizer using an ARM-based microcontroller (STM32F407). The software is written in C and includes oscillators for the basic waveforms, a low pass filter with a variable cutoff frequency and envelope generators capable of modulating cutoff frequency and amplitude over time. The work was conducted on Chalmers University of Technology during 2016/2017 at the initiative of the authors. ii
7 Förord Som ett resultat av ett intresse för syntar och maskinnära programmering, och en vilja att kombinera dessa föddes idén till examensarbetet hos en av gruppens medlemmar. En fundering om vilken sorts synt det blir när man är med själv och bestämmer över hur den låter och över vilka funktioner den har. Går det att göra en synt som låter bra med en mikrokontroller? Dessa är frågor som ligger till grund för valet av ämne. Efter att författarna kommit i kontakt med varandra, visade det sig att de delade intresset för både ljudteknik och maskinnära programmering. Arbetet är ett examensarbete omfattande 15 högskolepoäng vid Data- och informationsteknik vid Chalmers tekniska högskola. Vi vill tacka vår handledare Dan Dolonius för hans för hans engagemang och stöd, Sven Knutsson och Roger Johansson på institutionen för deras hjälp med att använda MD407:an, våra vänner Dan Sihvonen och Sebastian Olsson, samt de hjälpsamma medlemmarna på 99musik.se. iii
8 iv
9 Ordlista Bandbredd Beteckning för ett begränsat frekvensomfång. Bodediagram Bodediagrammet illustrerar ett systems frekvensberoende egenskaper. Det består av två delar, där den övre grafen beskriver amplituden i db och den nedre beskriver fasförskjutningen. Frekvens representeras av en logaritmisk skala, vilket tydliggör brytpunkter och lutning. Bodediagrammet utvecklades 1938 av amerikanen Hendrik Wade Bode. DMA Direct Memory Access. Array i minnet som används för att snabbt komma åt olika data. Filter Används i en synt för att filtrera bort de frekvenser användaren inte vill ha i ljudet. Lågpassfilter finns på i stort sett alla syntar medan högpassfilter är mindre vanligt. Klaviatur Tangentuppsättning för musikinstrument. Återfinns på exempelvis piano, dragspel, keyboard och syntar. Dessa instrument kallas klaviaturinstrument. Konturgenerator Används för att styra olika parametrar över tid. Den engelska termen envelope är mer använd. LFO Lågfrekvent oscillator som används för att styra värden. Oftast gränsfrekvens eller stämning. MD407 Mikrokontrollern synten är skriven för. Den är utvecklad av Chalmers baserad på STM32F407 och har en klockfrekvens på 168MHz. MIDI Står för Musical Instrument Digital Interface. MIDI är en industri-standard som föreslogs av synt-pionjären Dave Smith år Används till allt från att signalera vilka toner synten ska spela till ändring av parametrar. Vikning Fenomen inom digital signalbehandling vilket uppstår vid sampling av frekvenser ovan Nyquist-frekvensen. Nyquist-frekvensen är halva samplingsfrekvensen. Audiell vikning skapar missljud i Nyquist-frekvensen, medan vikning i film kan visa sig som att en propeller snurrar långsamt. Namnet Nyquist-frekvensen kommer från Nyquist-teoremet, vilket är uppkallat efter den svensk-amerikanske elektroingenjören Harry Nyquist. Monofoni/Polyfoni En monofonisk synt kan bara spela en ton i taget. Signalen kan dock bestå av en kombination av flera oscillatorer i olika frekvenser. En polyfonisk synt kan spela flera toner i taget. v
10 Oscillator Komponenten i synten som genererar ljud. Resonans Förstärkning av signalamplitud inom ett visst begränsat frekvensområde Samplingsfrekvens Vid vilken frekvens sampel tas vid sampling. Synt/Synthesizer Instrument som på analogt eller digitalt vis har förmågan att syntetisera ett stort antal ljud och klanger. Ej att förväxla med ett keyboard, vars ljud oftast baseras på inspelningar av verkliga instrument, och inte har samma förmåga att syntentisera ljud. Ton Västerländsk musik är uppbygd av den kromatiska skalan. Skalan innefattar tolv toner som alla ligger ett halvt tonsteg från varandra. Nästkommande tonsteg i skalan fås genom att multiplicera frekvensen med 2 1/12, detta medför att en oktav en dubblering av frekvensen. vi
11 Innehåll Sammanfattning Abstract Förord Ordlista Innehåll i ii iii v vii 1 Inledning Bakgrund Syfte Mål Frågeställningar Avgränsningar Metod 2 3 Teknisk bakgrund Signalkedjan Oscillator Filter Konturgenerator Röster MIDI Genomförande Kravspecifikation Hårdvara Programmeringsspråk och utvecklingsmiljö Mjukvarans struktur Systemklockans konfigurering Huvudslinga Användargränssnitt Styrning av periferienheter Design av användargränsnitt Implementation av oscillator och LFO Triangelvåg Fyrkantsvåg Sinusvåg Vitt brus LFO Implementation av filter Implementation av konturgenerator Attack-stadiet Decay-stadiet Sustain-stadiet Release-stadiet Resultat 17 vii
12 6 Diskussion och slutsats Bedöming av resultat Diskussion Miljö och etik Referenser 19 Bilagor 20 A Figurer 21 A.1 Fyrkantsvåg A.2 Triangel- och sågtandsvåg A.3 Kombinerad signal A.4 Vågformer från analog källa A.5 Filter B Pseudokod 26 B.1 Oscillatorer B.1.1 Triangelvåg B.1.2 Fyrkantsvåg B.1.3 Sinusvåg B.1.4 Vitt brus B.2 Konturgenerator viii
13 1 Inledning 1.1 Bakgrund När de första syntarna dök upp på sextiotalet var de konstruerade av analoga komponenter och använde sig av en subtraktiv ljudsyntes, det vill säga att en eller flera oscillatorer skapar en vågform som sedan passerar genom ett lågpass- och ett eventuell högpassfilter, för att sist passera en förstärkarkrets. Syntarna har även en eller flera konturgeneratorer för att forma ljudets karaktär. Den subtraktiva ljudsyntesen var väldigt populär fram till slutet av åttiotalet, då de hel-digitala syntarna med andra former av ljudsyntes dök upp. År 1995 tillverkade svenska Clavia den första virtual analog-synten, det vill säga en synt som på digitalt vis emulerar en subtraktiv ljudsyntes. VA-syntar blev väldigt populära och var standard fram till för några år sedan; då de analoga syntarna återigen blivit väldigt populära. De tidiga VA-syntarna hade många problem med svag hårdvara och andra barnsjukdomar. De var utrusta med lågupplösta AD-omvandlare vilket medförde relativt få olika inställningsmöjligheter på de olika parametrarna. Röster föll även bort ju mer avancerade ljud som synten generar, vikning vid högre frekvenser var inte alls ovanligt. Hårdvara som då var omöjlig att få i en synt kan vi nu använda för att bygga en egen kompetent VA-synt. Ett projekt av den här karaktären kan vara mycket lärorikt inom såväl programmering som ljudteknik samt sannolikt en bra merit för framtida arbetssökande. Det är dessutom ett tillfälle att få arbeta med en kombination av hårdvara och mjukvara vilket tilltalar projektdeltagarna. 1.2 Syfte Båda projektdeltagarna har sedan tidigare ett intresse för ljudteknik och maskinnära programmering. Dessutom är en av projektdeltagarna hobbymusiker med stort intresse för syntar, och intresserad av att komma in i branschen. 1.3 Mål Inom ramen för projektet ska det utvecklas en analogmodellerande synt. Mjukvaran såväl som hårdvaran ska utvecklas till en fungerande prototyp. Det viktigaste i projektet är att få till en mjukvara som klarar av att generera ljud, och som har många av de funktioner som återfinns i en klassisk synt. Exempelvis oscillatorer, filter, och så kallade konturgeneratorer. Funktioner beskrivs mer utförligt i den tekniska bakgrunden i rapporten. Målet är att konstruera en prototyp till en synt, med nödvändig mjukvara och hårdvara. Fokus kommer att ligga på utveckling av mjukvaran. 1.4 Frågeställningar Projektet ska försöka utreda och besvara följande frågeställningar: Hur en mjukvarubaserad oscillator och konturgenerator bäst implementeras? Hur ett mjukvarubaserat filter implementeras. Vilket sorts filter som lämpar sig till en synt. Huruvida de analoga komponenterna bör emuleras på sådant vis att även dess imperfekter återskapas? Krav på och val av lämpligt datorkort för en VA-synt. Hur implementeras MIDI-protokollet. Hur användarstyrda variabler styrs på bästa vis. 1
14 1.5 Avgränsningar Vid ett eventuellt klaviatur kommer ett färdigt klaviatur att införskaffas, antingen används ett klaviatur från ett äldre MIDI-keyboard, eller köper ett. Moderna syntar har ofta inbyggda ljudeffekter, det kommer inte inte denna synt vara utrustad med. 2 Metod Utvecklingsarbetet har varit uppdelat i följande olika delmoment: Utveckling av en kravspecifikation. Val av hårdvara, programspråk samt utvecklingsmiljö. Utveckling av mjukvara samt kontinuerlig testning. Utvecklingen delades upp i dessa moment: Utveckling av oscillator. Utveckling av filter. Utveckling av konturgenerator Drivrutiner till de periferienheter de olika komponenterna kräver. Sammansättning av hårdvaran. Utvecklingen av den tänkta prototypen måste göras genom listning av de önskade egenskaper synten bör utrustas med. Dessa egenskaper gås sedan igenom för att fastställa vilka som är genomförbara, och vilken hårdvara dessa egenskaper kräver. Med hjälp av denna information beslutades val av programspråk samt mikrokontroller. Mjukvarans utveckling skedde till största del med hjälp av parprogrammering. De olika komponenterna utvecklades var för sig gemensamt. Parprogrammeringen användes för att på bästa vis kunna ta tillvara på den gemensamma kunskap paret besitter. Detta tillvägagångssätt möjliggjorde även testning på ett smidigt sätt samt snabbare möjligheter till lösningar av problem. Vid behov av eventuella periferienheter skrevs drivrutiner till dessa allt eftersom behovet uppstod. Vid utvecklingen av komponenterna användes den helanaloga synten Korg MS-20 Mini för att notera hur dess komponenter beter sig med olika inställningar. För att tolka beteendet användes ett oscilloskop. Testerna utfördes dels audiellt med hjälp av högtalare för att lyssna på det utmatande ljudet och subjektivt bedöma om det låter bra. Samt visuellt med hjälp av oscilloskop objektivt bedömma huruvida komponenten som testas uppför sig korrekt. Mjukvaran för hårdvarustyrning utvecklades parallelt med respektive mjukvarubaserade komponenter. Lödlösa prototypkort användes för verifiering av de elektriska kretsar. Oscilloskop användes för att verifiera att signalen från de analoga reglagen lästes av på ett tillfredsställande vis. Den slutgiltiga monteringen hanns inte med i projektet. 2
15 3 Teknisk bakgrund 3.1 Signalkedjan Signalkedjan på en synt representerar de olika steg som signalen passerar innan den matas ut. Dessa inkluderar oscillatorer, filter samt konturgeneratorer. De olika beståndsdelarna beskrivs i följande stycken. Figur 3.1: Exempel på en vanlig signalkedja hos en synt med subtraktiv ljudsyntes 3
16 3.2 Oscillator Oscillatorn är den första komponenten i syntens signalkedja och används för att generera en ton i form av en vågform med en specifik grundfrekvens. Vilken frekvens oscillatorn har styrs av klaviaturet. Vågformen används för att ändra karaktär på ljudet. Oscillatorer paras oftast ihop för att tillsammans kunna generera en sammanslagen signal, detta görs för att kunna generera en vågform med helt annat frekvensinnehåll än vad signalen från en enkel oscillator kan generera. Oscillatorn i en traditionell synt har vanligtvis förmågan att generera ett antal olika vågformer. Sinus-, fyrkant-, triangel- eller sågtandsvågform hör till de mer vanliga vågformerna. En enkel sinusvåg består enbart av en grundfrekvens medan övriga består av en grundfrekvens samt ett antal övertoner som ger vågformen sin slutgiltiga form. En perfekt fyrkant-, triangel- eller sågtandsvåg existerar enbart i teorin eftersom den innehåller ett oändligt antal frekvenser. Fyrkantsvågor går ofta att pulsbreddsmodulera, det vill säga att man varierar andelen av perioden då signalen då den är hög kontra då den är låg (se figur A.1,A.2, och A.3 i figurbilaga). Ett vanligt användningsområde för detta är att låta lågfrekvensoscillatorn (LFO) påverka detta för att göra ett ljud som passar bra till bas. Triangelvågen går även den ibland att justera fritt, man låter då användaren justera brytpunken, med vilket menas den punkt där triangeln övergår från en ökning till en minskning. Med hjälp av den inställning kan triangelvågen formas till allt från sågtand, till en inverterad sågtand. Alla med dessa olika vågformer har sen egna ljudbild. På syntar där triangelvågens brytpunkt inte går att justera, finns oftast sågformsvåg och triangelvåg med som separata vågformer istället. 3.3 Filter Ett viktigt redskap för att kunna forma ljudet är användningen av ett eller flera filter. Filtret är hela fundamentet för den subtraktiva ljudsyntesen - filtret tar bort de frekvenser användaren inte vill ha i ljudet, och producerar en signal med ett reducerat frekvensomfång. Gränsfrekvensen är den frekvens vid vilken filtret börjar verka. Lågpassfilter används för att släppa igenom de frekvenser som är lägre än gränsfrekvensen. Det återfinns på alla syntar med subtraktiv ljudsyntes.[1] Ett annat filter som ofta återfinns hos syntar är högpassfilter, som istället släpper igenom de frekvenser ovan gränsfrekvensen. Ett låg- och ett högpassfilter kan kombineras för att skapa ett så kallat bandpassfilter vilket antingen kan släppa igenom eller blockera frekvenserna innanför den centrala delen. Dessa filter kan ha olika effektiv dämpning av frekvenserna utanför bandbredden, en egenskap som i musiksammanhang ofta mäts i db per oktav. Ett högre värde indikerar en kraftigare dämpning. På analoga syntar är det vanligast med ett filter på 12 eller 24 db/oktav, men ett digitalt filter kan dämpa signalen mycket mer effektivt än så. Ett filter på en synt bör även kunna betona en frekvens, vilket görs genom att att förstärka frekvensen vid filtrets gränsvärde, det kallas för det mesta resonans (se figur A.11 i appendix). 4
17 3.4 Konturgenerator På en analog synt är konturgeneratorn är oftast kopplad till förstärkaren och används för att forma ljudets karaktär genom att styra förstärkningen. Konturgeneratorn kan även användas för att styra andra parametrar, exempelvis gränsfrekvensen för ett filter. Förmågan att styra ett parametervärde kan användas för att forma ett stort antal olika ljud. De effekter som styrs via en konturgenerator kan liknas vid det som ger olika instrument dess karaktär. En fiol som spelas med långa stråkdrag skulle återskapas på en synt med en lång attack, medan ett hamrande piano skulle få med en kort attack och lång release. Med hjälp av konturgeneratorn kan man även skapa helt annorlunda ljud som vanligtvis kanske inte förknippas med syntar, som virvel- och bastrumma. Utan en konturgenerator skulle syntar ha ett väldigt onaturligt och omusikaliskt ljud. Konturgeneratorn består oftast av fyra parametrar (ADSR): Attack - styr hastigheten på parameterökningen. Decay - styr hur snabbt parametern sänks till jämn nivå. Sustain - bestämmer vilken nivå decay sänks till och hålls medan tangenten hålls. Release - tiden det tar för parametern att sänkas ned från och med att tangenten släpps. Figur 3.2: Exempel på en konturgenerator då envelope amount är satt till positivt värde 5
18 3.5 Röster På en en synt med subtraktiv ljudsyntes består en röst av hela signalkedjan på synten. Det vill säga oscillator, filter, och utsignal. Varje röst har dessutom en eller flera konturgeneratorer för att ge varje röst en egen klang, på samma vis som på ett piano. En monofonisk synt kännetecknas av att den har en röst, vilket innebär att synten kan spela en tangent i taget, ljudet går sedan genom filtret, och sedan ut till förstärkaren. På en polyfonisk synt är signalkedjan multiplicerad med hur många röster den har. En synt med sex rösters polyfoni och två oscillatorer per röst har således totalt sex stycken signalkedjor som kan spelas oberoende av varandra. Antalet röster begränsar följaktligen hur många noter synten kan spela samtidigt. Även om synten då har sex stycken signalkedjor, så delar dessa samma inställningar. Figur 3.1 på sida 3 visar ett exempel på hur en vanlig signalkedja på en monofonisk synt med subraktiv ljudsyntes ser ut. Konturgeneratorn (envelope) kan styra filtervaribler och förstärkaren, medan LFOn kan styra filter och olika oscillatorvariabler. Det är på det här viset vi har designat våran synt. 3.6 MIDI För att styra en synt på annat vis än med klaviatur utarbetades en industristandard under åttiotalet i form av ett kommunikationsprotokoll. Med det nya protokollet garanterades att syntar från olika tillverkare kunde kommunicera med varandra. Med hjälp av MIDI kan en synt med dator, trummaskiner, MIDI-keyboard, eller andra syntar styra bland annat vilken ton synten ska spela i. På många vis fungerar det som en digital motsvarighet till det själspelande pianot. MIDI skickar alltså inget ljud, utan bara information till instrumentet. De flesta syntar byggda efter 1984 har möjlighet att ta till sig information genom MIDI. Antingen genom en dedikerad MIDI-port eller genom en USB-port - något som blivit vanligare under senare år. 6
19 4 Genomförande Kravspecifikationen togs fram genom att studera flera olika syntar och dess egenskaper. Analoga syntar som Korg MS-20, Moog Minitaur, samt DSI Prophet studerades samt analogmodelerande syntar som Clavia Nord Lead 2, och Meeblip Anode. Begränsande designval som återfinns hos de syntar vi kollade på uteslöts för att möjliggöra många olika ljudkombinationer. 4.1 Kravspecifikation Minst två oscillatorer per röst. Minst en röst. En lågfrekvent oscillator (LFO) för variabelmodulation. Möjlighet att stämma ur oscillatorerna från grundfrekvensen. Möjlighet att kombinera olika oscillatorinställningar helt separat från varandra. Oscillator med förmåga att generera sinus-, fyrkant-, och triangelvåg. Modulering av triangelvågens brytpunkt samt pulsbreddsmodulering av fyrkantsvågen. Oscillatorn ska kunna generera en frekvens med hög precision. Styrning av oscillator med hjälp av MIDI. Lågpassfilter med resonans och valbar gränsfrekvens. Syntens olika parametrar ska gå att styra på enkelt vis. Förmågan att generera toner i ett brett frekvensomfång. Konturgenerator som påverkar utsignalens styrka. Konturgenerator som påverkar filtrets gränsfrekvens. 4.2 Hårdvara Synten drivs av Chalmers egenutvecklade MD407 med en klockfrekvens på 168 MHz. Tidigt i projektet diskuterades även Arduinos mikrokontroller, men då MD407 både är snabbare och är mer lättillgänglig via Chalmers valdes denna. Även att MD407 körs med vanlig C-kod - till skillnad från Arduino var till MD407:s fördel vid valet. MD407 bygger på mikrokontrollern STM32F407 vilken har en modern ARM-processor med flyttalsenhet. Mikrokontrollern har även inbyggda digital-analog-omvandlare (D/A-omvandlare), samt analogdigital-omvandlare(a/d-omvandlare). Dessa komponenter är en förutsättning för att synten ska kunna mata ut ljud och läsa av analoga reglage. De analoga reglagen används för att styra syntens olika användarstyrda variabler. Både A/D-omvandlaren och D/A-omvandlaren har en upplösning på 12 bitar. De analoga potentiometrarna som är kopplade till A/D-omvandlarna går att vrida 270. Detta betyder att det är drygt 15 samplingspunkter för varje grad vilket medför att variabeländring upplevs som sömlöst. 4.3 Programmeringsspråk och utvecklingsmiljö Programspråket C föreföll som ett naturligt val då programbiblioteken för mikrokontrollern är skrivna i språket. C passar även till vårt projekt då det är snabbt och maskinnära. Andra programspråk förkastades då de antingen ansågs vara besvärliga (Assembler), eller långsamma (Java). Mjukvaran skrevs med hjälp av utvecklingsmiljön CodeLite. Chalmers tillhandahåller insticksprogram till CodeLite för kommunikation med plattformen vilket gjorde utvecklingsmiljön till ett naturligt val. Vid utvecklingen av mjukvaran har bibliotek från microkontroller-tillverkaren (STMicroelectronics) samt hjälpbibliotek skrivna av Sven Knutsson på Data- & informationsteknik på Chalmers använts. 7
20 4.4 Mjukvarans struktur Programmets grundstruktur är uppbyggt på följande vis: först initieras nödvändiga periferienheter och processorfunktioner (systemklocka, avbrott, GPIO-pinnar, DMA, samt D/A-omvandlare och A/D-omvandlare). För att initiera dessa komponenter används fördefinierade datastrukturer från datorkortets programbibliotek. Datastrukturen fylls med värden som styr hur enheten ska fungera. Därefter träder programmet in i en slinga som växelvis matar ut en nivå till D/A-omvandlaren och växelvis beräknar nivån baserat på vilken signal vi vill mata ut. Skrivningarna till D/A-omvandlaren är synkroniserade med hjälp av systemklockan till 28 khz Systemklockans konfigurering Valet av utmatningsfrekvens bör vara tillräckligt hög för att synten ska kunna reproducera en signal som kan innehålla alla frekvenser inom det hörbara spektrat. Enligt Nyquistteoremet krävs en samplingsfrekvens som är mer än dubbelt så stor som de frekvenser man vill återge för att motverka fel i samplingen.[2] Det hörbara spektrat rymmer frekvenser mellan 20 Hz och 20 khz[3], vid en samplingsfrekvens på 44,1 khz skulle således synten inte ha några problem med återgivning av frekvenser i det spektrat. Samma resonemang fördes vid CD-skivans val av standardfrekvens.[4] Tidsperioden mellan samplingarna är knappt 22,7 µs och under denna period genomförs de beräkningar som ligger till grund för utmatningsnivån från D/A-omvandlaren. De inkluderar oscillatorer, filter och konturgeneratorer. Vid en utmatningsfrekvens på 44,1 khz märktes att synten inte hann med att beräkna hela signalkedjan. Detta yttrade sig i att synten inte skrev något värde till D/A-omvandlaren vilket resulterade i en tyst signal. För att motverka problemet valdes att sänka utmatningsfrekvensen Andra möjliga lösningar inkluderade att reducera funktionalitet till den grad att synten inte längre har en subtraktiv ljudsyntes. Dessa lösningar innefattade bland annat att inaktivera filtret, eller en oscillator. Att inaktivera filtret var aldrig aktuellt, då filtret är en kritisk komponent för den subtraktiva ljudsyntesen. Att inaktivera en oscillator skulle möjligtvis kunna lösa problemet, men det avfärdades då kravet att på två separata oscillatorer prioriterades högre än kravet på ett större frekvensomfång Huvudslinga Tidigt i projektet valdes en programstruktur som skulle möjliggöra polyfoni. Funktionen fick avfärdas på grund av prestandabegränsningar men strukturen möjliggör eventuell vidareutveckling till polyfoni, vid användning av en kraftigare processor. Möjligheten till polyfoni implementerades genom att låta varje röst representeras av en datastruktur innehållandes den information som krävs för att kunna generera signalen. Då en röst instansieras läggs nämnda datastruktur till en lista som innehåller samtliga aktiva röster, tillsammans med en räknare som representerar antalet röster. Då en röst tystnar raderas rösten ur fältet och räknaren minskar med ett. I programmets huvudslinga anropas en funktion som summerar rösternas utsignal. Denna funktion itererar genom listan av röster och beräknar deras momentana signalvärde baserat på variabler i röstens datastruktur. Datastrukturen för en röst benämns voice_parameters och innehåller följande variabler: key - grundton amplitude - signalens amplitud i relation till konturgeneratorn envelope_modifier - ändring av gränsfrekvensen i relation till konturgeneratorn amplitude_stage - konturgeneratorns stadie i avseende till amplitud filter_stage - konturgeneratorns stadie i avseende till filtrets gränsfrekvens filter_cache - minne av de senaste samplen, för användning av filtret filter_coefficients - datastruktur innehållandes koefficienter för filtret osc1 och osc2 - datastrukturer innehållandes oscillatorvariabler 8
21 Vad dessa variabler gör mer specifikt kommer beskrivas mer ingående i implementationen av de specifika delarna. Slutligen gör en omvandling från flyttal till 12-bitars positivt heltal för utmatning till D/A-omvandlaren. Vid nästa systemavbrott skrivs detta värde till D/A-omvandlaren och huvudslingan återupprepas. 4.5 Användargränssnitt Användargränssnittet är realiserat med hjälp av en uppsättning brytare och vridreglage (potentiometrar) för styrning samt lysdioder för återkoppling till användaren Styrning av periferienheter Vid knapptryck för att ändra inställning på synten, och vid anslag på MIDI-klaviatur genereras ett avbrott. Beroende på vilken brytare som är nedtryckt anropas olika avbrottsrutiner. På MD407 finns det sex stycken olika avbrottshanterare med olika prioriteringsnivåer, vilket betyder att alla brytare kan ha en enskild metod. För att synten ska kännas snabb och responsiv att spela på har MIDI-anslag en helt egen avbrottshanterare, med högsta prioritet efter systemavbrottet. MIDI-avbrottet reagerar på när tangenten slås an, samt släpps. Syntens vridreglage är potentiometrar kopplade till A/D-omvandlare på datorkortet. Till skillnad från brytarna genereras inget avbrott vid användning, istället sparas värdet till ett fält i minnet med hjälp av direct memory access (DMA). Fältet innehåller 12-bitars heltal och läses av regelbundet. Värderna i fältet multipliceras sedan med en lämplig konstant beroende på variabelns användning och önskat värdesomfång. För att generera stabila värden ur potentiometrarna går det avlästa värdet genom en normaliseringsmetod. Normaliseringsmetoden tar en andel av föregående värde och adderar med en mindre andel av nya värdet. Metoden fungerar som ett enkelt lågpassfilter av första ordningen och resulterar i ett stabilt värde som inte fluktuerar. 9
22 4.5.2 Design av användargränsnitt Gränssnittet är utformat dels för att konformera till traditionella syntars gränssnitt och dels för att tillhandahålla snabb åtkomst av viktiga funktioner. På grund av ett begränsat antal A/D-omvandlare fick antalet vridreglage begränsas. Detta gjordes genom att låta vissa vridreglage styra mer än än parametet. Följdaktligen är gränssnittet mindre lättanvänt än vad som hade varit möjligt med tillgång till fler A/D-omvandlare. Gränssnittet är uppdelat i 4 sektioner, där varje sektion styr en specifik del av signalkedjan. Med hjälp av dessa kriterier utarbetades en ritning på en prototyp fram (se figur 4.1). OSCILLATORS innehåller brytare och vridreglage för att styra syntens oscillatorer. I sektionens övre del finns två brytare som används för att välja vilken oscillator som skall styras. Lysdioder indikerar valet av oscillator. I den mellersta delen kan vald oscillators vågform väljas på liknande sätt. Sektionens nedre del innehåller vridreglage för att justera parametrarna hos den valda oscillatorn. LFO ROUTE innehåller ett antal vippomkopplare som styr vilka parametrar LFO:n skall styra, samt vilka oscillatorer som skall beröras. ENVELOPE innehåller ett antal vridreglage för att justera konturgeneratorernas parametrar, samt en vippomkopplare för att välja huruvida det är amplitudens eller filtrets konturgenerator som berörs. FILTER innehåller två vridreglage för att justera lågpassfiltrets parametrar. Vidare finns en lysdiod i panelens övre högra del som indikerar att synten tar emot MIDI-meddelanden. Figur 4.1: Ritning över det planerade gränssnittet 10
23 4.6 Implementation av oscillator och LFO Följande kapitel beskriver hur oscillatorns olika våggeneratorer är implementerade. Efter en inledande generell text följer en djupare beskrivning av hur de olika vågformerna generas. Motsvarighet till en analog synts oscillator är egentligen bara en metod i mjukvaran. Metoden läser av vilken vågform som den sprecifika oscillatorn är inställd på. Metoden ropar sedan på den angivna vågformens metod. Oscillatorn kan generera fyra olika vågformer: sinus-, triangel- och fyrkantsvåg, samt vitt brus. Synten har två ljudalstrande oscillatorer vilket möjliggör exempelvis en kombination av fyrkant- och triangelvåg, vilket kan skapa komplexa vågformer (figur A.7 i appendix). Oscillatorns användarinställda värden sparas i en anpassad datastruktur som innehåller respektive rattars värden, medan en annan datastruktur sparar de dolda värdena som oscillatorn behöver för att kunna räkna ut samplingen som ska spelas. Datastrukturen med de användarvariablerna benämns global_oscillator och innehåller följande variabler: shape - variabeln anger vilken vågform som ska genereras multiplier - anger var brytpunkten placeras (0-1) f inetune - variabel som styr hur mycket oscillatorn ska frångå grundfrekvensen route - flaggor som används för att bestämma vad LFOn ska påverka. amplitude - dikterar högsta signalstyrka. För LFOn påverkar variabeln hur mycket den påverkar annan variabel. Datastrukturen för de dolda värdena benämns local_oscillator och består av dessa variabler: t - tidsvariabel, används för att generera rätt sampel. period - antal samplingar per period sparas i variabeln. angular_velo - vinkelfrekvensen. Används vid generering av sinusvågen actual_f req - vågformens egentliga frekvens triangle_positive - lutningen på signalökningen vid genering av triangel-våg triangle_negative - lutningen på signalminskningen vid genering av triangel-våg Triangel- och fyrkantsvågen har en brytpunk som kan varieras. Brytpunkt är den punkt i perioden där en fyrkantsvåg går från hög till låg. För en triangelvåg motsvarar brytpunkten den tidpunkt i perioden då vågformen har sitt maximala värde. Triangelvågens brytpunkt realiseras på sådant vis att signalen utgår från minimivån för att sedan nå maxnivån där brytpunkten placeras. När maxnivån är nådd minskas signalen mot miniminivå som signalen når vid periodens slut. Triangelvågens implementation möjliggör på detta vis en mängd olika vågformer med egen karaktär (figur A.4, A.5, och A.6 i bilaga). Oscillatorerna går även att stämma ur en hel oktav både upp och ned. Med detta menas att oscillatorns faktiska frekvens är en annan än den av grundtonen givna frekvensen. Funktionen implementeras genom en variabel med ett värde som kan justeras från 0,5 till 2. Variabeln multipliceras sedan med grundtonens frekvens. Oscillatorn spelar således upp tonen i grundtonens frekvens när variabeln är ställd till 1. I följade text kommer variabeln att benämnas fine tune. För djupare förståelse finns pseudokod för samtliga oscillatorer bland bilagorna. (B.1.2, B.1.1, B.1.4, och B.1.3 i bilagan) 11
24 4.6.1 Triangelvåg Vid generering av triangelvåg räknas först den faktiska frekvensen ut, med hjälp av tonens grundfrekvens samt värdet på värdet på fine tune. Vågformens periodtid i sampel räknas sedan ut med hjälp av den faktiska frekvensen dividerat med samplingsfrekvensen. Detta tal multipliceras sedan med 100 för att motverka problem som uppkommer med tidsdiskreta variblar. Med hjälp av multipliceringen flyttas det ursprungliga decimaltecknet bak vilket möjliggör en återgivning av frekvenser med högre noggranhet. Även tidsvariablen adderas i steg av 100 istället för 1. Triangelvågens brytpunkt realiseras på sådant vis att variabeln antar ett värde mellan 0 och 1, vilket multipliceras med antal samplingar perioden består av. Detta delar upp perioden i två skeden - ett där signalen ska öka från lägsta till högsta nivå, samt ett där nivån går från högsta till lägsta nivå. Lutningen i dessa skeden räknas ut genom att multiplicera högsta nivån med 2, för att sedan dividera med antal samplingar det specifika skedet består av Fyrkantsvåg Implementeringen av fyrkantsvågen följer samma mall. Det som skiljer mellan dessa metoder är att i första skedet genererar fyrkantsvågen en hög signal och sedan i det efterföljande skedet en låg signal Sinusvåg Oscillatorn generar sinusvågen med hjälp av en funktion från ett programbibliotek. Programbiblioteket innehåller en tabell för en sinuskurva med 512 samplingar. Vid funktionsanrop bestäms ett värde utifrån tabellen med hjälp av linjär interpolering. Vid vågformens beräkning anropas sinusfunktionen med en konstant multiplicerad med oscillatorns tidsvariabel. Denna konstant är lika med 2π dividerat med syntens utmatningsfrekvens. Konstanten beräknas redan innan huvudslingan för att spara beräkningskraft Vitt brus Vitt brus består av en jämn fördelning av samtliga frekvenser. Detta genereras med hjälp av datorkortets inbyggda slumptalsgenerator LFO LFO:n är implementerad nästan precis som de ljudalstrande oscillatorerna. För att på en enkelt vis kunna styra LFOn:s frekvens med en potentiometer valdes den att konstant spelas i F0 (21,83 Hz). Grundfrekvensen multipliceras sedan med värdet från en användarstyrd variabel som går mellan 0-1. Variabeln fungerar på samma vis som finjusteringen av frekvensen på de ljudalstrande oscillatorerna - men då variabeln har ett annat värdesomfång förverkligas det på annat vis. Det gör att LFOn får ett frekvensomfång på 0-21,83 Hz. LFOn kan väljas att styra pulsbredd respektive brytpunk, finstämning, samt filtrets gränsfrekvens. Vid modulation av oscillatorvärden kan LFOn väljas att påverka båda oscillatorerna eller bara en av dem med hjälp av vippomkopplare på frontpanelen. 12
25 4.7 Implementation av filter En viktig komponent av mjukvaran är ett så kallat lågpassfilter. Vad gäller digitala filter så finns det flera olika sorter, som kan implementeras på en mängd olika vis. Efter fördjupning i ämnet föll valet på ett filter av typen infinite impulse response (IIR) av andra ordningen. Som filtrets namn antyder har det ett impulssvar som i teorin är nollskillt oändligt länge. Detta beror på det faktum att filtret bygger på återkoppling. Återkopplingen möjliggör inte bara instabilitet men också en viss självsvängning, även kallat resonans. Resonansen yttrar sig i en förstärkning av signalen vid och omkring filtrets gränsfrekvens. Filtrets ordningstal representerar dess fördröjning räknat i sampel och är på samma gång ett mått på dess beräkningskomplexitet. Filtrets effektiva dämpning är dessutom avhängigt av dess ordningstal. Ett alternativ hade varit att implementera ett filter av type finite impulse response (FIR). Till skillnad från IIR-filtret finns ingen återkoppling, och därmed ingen möjlighet till resonans. Dessutom krävs FIR-filtret mer beräkningskraft för att åstadkomma samma dämpning som ett IIR-filter med lägre beräkningsintensitet. Med hänvisning till kravspecifikationen där resonans förekommer och IIR-filtrets lägre beräkningsintensitet föreföll det sig som ett självklart val. Filtret som implementerats ger en dämpning på ca 12 db/oktav och kan kedjekopplas med sig själv för en dubbelt så hög dämpningseffekt (24 db/oktav). För att använda så lite beräkningskraft som möjligt har synten inte utrustasts med möjligheten att välja dämpningen 24 db/oktav på filtret. Filtret realiseras med differensekvation 4.1 där x representerar ofiltrerad signal, y representerar filtrerad signal och t representerar en tidsvariabel. Koefficienterna α, β och γ ges av ekvationerna 4.2, 4.3, och 4.4 där variablerna θ c representerar filtrets gränsfrekvens och d dess dämpningsfaktor.[5] Dämpningsfaktor ska ej förväxlas med dämpning, då det senare är ett mått på filtrets dämpning av signalen, medan föregående begrepp beskriver dämpningen av filtrets återkoppling. Dämpningsfaktorn kan varieras för att styra resonansens intensitet och är omvänt proportionell mot densamma. För filtrets frekvenssvar se figur 4.2. För ett komplett bodediagram inkl. fasförskjutning, se figur A.11. y[n] = 2(αx[n] + 2αx[n 1] + αx[n 2] + γy[n 1] βy[n 2]) (4.1) β = (d/2) sin θ c 1 + (d/2) sin θ c (4.2) α = (1/2) + β γ 4 (4.3) γ = ( β) cos θ c (4.4) För att lagra nödvändig data för filtrets beräkningar definierades två sorters datastrukturer: coefficients innehållandes ovan nämnda koefficienter samt voice_cache innehållandes följande: x - fält innehållandes signalens tre senaste ofiltrerade värdena y - fält innehållandes signalens tre senaste filtrerade värdena n - index för senaste värdet 13
26 Vid varje förändring av filtrets gränsfrekvens måste koefficienterna beräknas på nytt. Eftersom såväl konturgenerator som LFO modulerar gränsfrekvensen resulterar detta i att koefficienterna räknas om för varje sampel som ska filtreras. Filtreringen utförs i följande steg för varje sampel: 1. Beräkning av koefficienter (4.2, 4.3, samt 4.4) samt lagring av dessa i röstens coefficients-variabel 2. Lagring av ofiltrerat värde i röstens voice_cache-variabel 3. Beräkning av filtrerat värde (4.1) utifrån röstens voice_cache-variabel och coefficients-variabel 4. Lagring av filtrerat värde i röstens voice_cache-variabel 5. Inkrementering av index i röstens voice_cache-variabel (mod 3) Figur 4.2: Filtrets frekvenssvar för olika d då θ c = 300 Hz. 14
27 4.8 Implementation av konturgenerator Synten är uttrustad med två separata konturgeneratorer. En konturgenerator styr röstens amplitud, medan den andra styr filtrets gränsfrekvens. Dessa två körs helt separat och har egna värden. Synten utrustades med två konturgeneratorer då det ansågs viktigt att både kunna påverka styrkan på utsignalen samt filtrets gränsfrekvens över tid. Konturgeneratorerna på synten är programmerade så att rösten har ett par av konturgeneratorer. Vid en eventuell vidareutveckling till en synt med fler röster är det enkelt att implementera dessa. En rösts konturgenerator kan i en given tidpunkt befinna sig i ett av de fyra stadierna (se bilaga B.2). Vilket stadie konturgeneratorerna befinner sig i sparas i röstens datastruktur. Konturgeneratorerna är uppbyggda med hjälp av en switch-sats. För båda konturgeneratorerna gäller att när en röst initieras, så befinner sig båda i attack. Inför implementationen av konturgeneratorn diskuterades att låta konturgeneratorns stadie vara enbart beroende av tid. Detta avfärdades dock efter insikten om att konturgeneratorn då skulle kunna hoppa till ett tidigare stadie om dess parametrar förändrades under röstens livstid. Istället valdes att beräkna en förändringstakt baserad på de inställda tidsvärdena och låta konturgeneratorn avancera till nästa stadie då ett visst villkor är uppfyllt. En uppräkningstyp (enum) håller reda på varje rösts stadie. De tidsbaserade stadiumen i konturgeneratorn har alla en separat formel som används för att räkna ut förändringstakten varje sampel. Där variabeln som reglaget modifierar representerar tiden i sekunder. Alla formler använder sig av makrot OU T P U T _F REQ vilket är syntens samplingsfrekvens. Sustain-reglaget anger istället en nivå. Sätts tiden till 0 i något stadie används inte formeln, detta för att förhindra division med 0. Stadiet med tidsvariabeln 0 utelämnas då från konturgeneratorn. Ställs release-reglaget till 0 tas rösten bort direkt då tangenten släpps. Gemensamt för både amplitudens och filtrets konturgeneratorer är att de returnerar ett flyttal mellan 0,0 och 1,0 som representerar konturgeneratorns utveckling. Vad gäller amplituden multipliceras detta värde med röstens utsignal för att realisera en amplitudutveckling. I filtrets fall är förfarandet något mer komplicerat. Konturgeneratorn förflyttar filtrets faktiska gränsfrekvens (actual_cutoff ) från det inställda grundvärdet (cutoff ) till ett värde som anges av inställningen envelope amount, och sedan tillbaka igen. Mer specifikt multipliceras värdet som konturgeneratorn returnerar envelope modifier med differensen mellan den av användaren inställda gränsfrekvensen (cutoff ) och målfrekvensen som ges av envelope_amount. envelope_amount omfattar samtliga värden filtrets gränsfrekvens kan anta och indikerar attack-stadiets målnivå. Detta kan således resultera i en konturgenerator med en negativ utveckling då envelope_amount < cutoff. Beräkningen tydliggörs av formel Attack-stadiet actual_cutoff = cutoff + envelope_modifier (envelope_amount cutoff) (4.5) Förändringstakten räknas ut genom formel 4.6 där attack_time representerar tiden som konturgeneratorn ska befinna sig i stadiet. attack_slope = 1 attack_time OUT P UT _F REQ 0 < attack_time 20 (4.6) Attack-stadiets villkor är uppfyllt då returvärdet nått 1. Konturgeneratorn går då över till nästföljande stadie; decay. 15
28 4.8.2 Decay-stadiet Variabeln decay_time indikerar längden på tiden det tar från att värdet går från attack-sektionens slutvärde till en nivå angiven av sustain_level-variabeln. När värdet på variabeln nått det angivna sustain_level-värdet ändras konturgeneratorn stadie till sustain. Formeln 4.7 beskriver med vilket värde varibeln ändras varje sampel. decay_slope = sustain_level 1 decay_time OUT P UT _F REQ (4.7) Sustain-stadiet 0 < decay_time 20 0 sustain_level 1 I sustain-stadiet ändras ingen variabel, utan värdes hålls till det satta värdet. När ett MIDI-avbrott generas, läses det tänkta MIDI-meddelandet av. Är meddelandet ett note off -meddelande äntrar rösten release-stadiet Release-stadiet Lutningen på variabeländringen anges av formeln 4.8. release_slope = sustain_level release_time OUT P UT _F REQ (4.8) 0 < release_time 20 0 sustain_level 1 Konturgeneratorn som påverkar amplitudet tar bort rösten när variabeln nått ursprungsnivån. Konturgeneratorn vilken påverkar filtrets gränsfrekvens avslutar minskningen av variabeln och förblir på ursprungsvärdet. Figur 4.3: Exempel på en konturgenerator då envelope_amount är satt till negativt värde 16
29 5 Resultat I projektet har vi utvecklat mjukvaran samt designat en prototyp av en analogmodellerande synt samt besvarat följande frågeställningar: Hur en mjukvarubaserad oscillator implementeras. Hur ett filter implementeras samt vilket filter som bäst lämpas sig för en synt. Hur en digital konturgenerator implementeras. Vi har inte besvarat på fullgott vis vad som krävs av datorkortet. Utan snarare har vi besvarat vad som inte orkar med att driva en synt med de eganskaper vi hade i åtanke. Den slutgiltiga monteringen hanns inte med. Mjukvara finns för att hantera de användargränssnitt som synten använder sig av, men lödningen av komponter till ett chassi slutfördes ej. Inte heller har hanteringen av MIDI-meddelande hunnits med. 6 Diskussion och slutsats Projektet visade sig mer omfattande än vad vi hade trott. De flesta moment var väldigt tidskrävande. Saker som vi trodde skulle vara enkla visade sig vara komplicerade. Det var inte självklart hur en given funktion skulle implementeras, och vi fick utforska och utvärdera olika lösningar. Att konfigurera periferienheter och få dem att bete sig på önskat vis var även det mycket tidskrävande. Något som däremot visade sig vara mycket enklare än beräknat var implementationen av konturgenerator och filter. 6.1 Bedöming av resultat I arbetet har oscillatorer utvecklats vilka generar vågformer väldigt lika de från analog källa. Figur A.9 visar en triangelvåg som är genererad av en Korg MS-20 mini, vilken har en helt analog signalkedja. Vågformen skiljer sig till viss del från vår synts triangelvåg (figur A.5) med rundade hörn till skillnad från skarpa. Anledningen till detta är inte att en analog synt är inkapabel till att generera en vågform med skarpa ändringar, utan är snarare ett designval från dem. När respektive syntars fyrkantsvåg jämförs är skillnaden mindre (se figur A.2 och A.8). Figur A.10 visar MS-20 Minis sågtand, även den skiljer sig från vår sågtand A.4, men då dessa utgår från triangeln är det inte särskilt oväntat. Oscillatorn har inga direkt emulerade felaktigheter - skavanker som kan påstås väcka liv i analoga syntar har utelämnats helt. En analog oscillator kan ibland uppträda på ett oväntat vis, där de mjukvarubaserade oscillatorerna alltid generar samma frekvens. Dessa felaktigheter kan istället emuleras med hjälp av LFOn. Filterdelen uppfyller de krav som ställdes. Vid högre resonans fås en mer digital karaktär på ljudet än vad ett analogt filter producerar. Vi tror att det är väldigt svårt att skapa ett mjukvarubaserat filter som låter som ett analogt. Många av de syntar med en digital signalgenerering är utrustade med analoga filter, vilket vi tror kan ha att göra med att det krävs mycket beräkningskraft samt bra skrivna algoritmer för att utveckla ett motsvarande digitalt filter. Filtret låter dock bra i de mer sansade inställningarna. Den utvecklade konturgeneratorn uppträder på samma vis som på analoga syntar. I många fall har syntar med en analog signalkedja en digital konturgenerator, då de uppträder på ett väldigt snarlikt sätt som den analoga motsvarigheten. De första digitala konturgeneratorerna hade låg uppdateringsfrekvens, vilket omöjliggjorde en snabb övergång mellan stadierna i jämförelse med dess analoga motsvarighet[6]. Konturgeneratorn utvecklad i detta projekt är dock tillräckligt snabb för att några sådana problem inte ska infinna sig. Det visade sig att MD407:ans processorkraft inte räckte till för att göra alla de beräkningar vi ville göra och till följd av detta fick vi göra vissa eftergifter. Bland annat valdes att sänka samplingsfrekvensen vilket begränsar frekvensomvånget synten kan återskapa. Det slutgiltiga samplingsfrekvensen sattes till 28 khz, vilket medför att synten inte kan generera frekvenser högre än nyquistfrekvensen på Hz. Synten får även problem med vikning när ljudvågor spelas som innehåller frekvenser över Hz, det vill säga de olika 17
30 övertoner som återfinns i ljudet.[7] Vikningen uppenbarar sig i form av högfrekventa missljud. Hur MIDI-styrning implementeras besvarades inte på fullvärdigt vis. 6.2 Diskussion För att motverka de nämnda missljuden skulle synten kunna utrustas med ett passivt analogt filter efter signalutmatningen. Detta filter skulle konstrueras för att ha en sådan gränsfrekvens att missljuden kraftigt dämpas. En fördel med ett analogt filter är att det inte ökar belastningen på processorn. Problemet skulle helt kunna lösas genom att använda en snabbare mikrokontroller, eller flera för att på så vis dela upp arbetsbördan. En mikrokontroller som tar hand om oscillatorerna medan en annan sköter filter och andra beräkningar skulle antagligen lösa alla våra problem. Uppskalning med fler funktioner och röster skulle då inte heller vara allt för besvärligt. Funderingar fanns om dessa skulle kunna kopplas ihop med hjälp av CAN-bussen; men efter en uppskattning av mängden data som behöver skickas kom vi fram till att CAN-protokollet är för långsamt. Andra överföringsprotokoll skulle behöva användas, där USB skulle kunna vara ett möjligt alternativ. En kombination av digital och analog teknik skulle också kunna vara ett alternativ för att minska beräkningsbördan på datorkortet. Då går dock lite av frågeställningen bort. Det är också mycket möjligt att andra algoritmer hade gett ett bättre resultat. Eftersom det är första gången vi tar oss an ett projekt av den här omfattningen kan vi inte utesluta att det går att göra på ett mer effektivt sätt. Filterkoefficienterna skulle möjligtvis kunna placeras i en så kallad look-up-table för koefficienterna vid de vanligaste frekvenserna. Koefficienterna för de frekvenser vilka inte förekommer i tabellen kan sedan genom interpolering tas fram. Att spara färdigräknade filterkoefficienter på det viset skulle antagligen effektivisera syntens filterdelen. Oförmågan att besvara hur MIDI-protokollet på bäst vis implementerades har att göra med underskattning av problemet från vårat håll. Det antogs att MIDI bara enkelt kan kopplas in och sedan läsa av meddelandena, vilket var fel. En hel del olika elektriska kretsar krävdes; bland annat en opto-kopplare vilken används för att motverka jordfel. Kretsarna som krävdes visade sig vara besvärliga att anskaffa. Problemet resulterade i att vi fick använda kretsar som inte var angivna i MIDI-specifikationerna. När vi sedan hade problem att läsa av meddelandet skapades en osäkerhet om kretsen fungerade korrekt, vilket gjorde att vi avbröt utvecklingen och koncentrerade oss på andra problem. MIDI-protokollet hade mycket väl kunnat lösats om vi tidigare satt oss in i problemet. Då ett syfte med att göra arbetet var att uttöka vår förståelse för maskinnära programmering, får det anses uppfyllt. Båda projektdeltagarna navigerar med större säkerhet genom olika programbibliotek. Det som tidigare uppfattades som något relativt krångligt kunde i slutet av projektet göras med ett större självförtroende. I projektet har vi utvecklat metoder som skiljer sig mycket från våra tidigare projekt. Det har varit väldigt lärorikt att dels behöva komma fram till vilka algoritmer bäst lämpar sig för att uppnå det vi vill, samt att sedan implementera dessa. Den begränsade beräkningskapaciteten hos MD407 har även tvingat oss att skriva effektiv kod och tänka i nya banor för att hushålla med beräkningskraft. 6.3 Miljö och etik Projektet har diskuteras utifrån miljö- och etiksynpunkt men några särskilda för- eller nackdelar har inte funnits. 18
31 Referenser [1] I. Synthesis. (). Basic synthesis: Part 2 filters, URL: (hämtad ). [2] H. Nyquist, Certain topics in telegraph transmission theory, tekn. rapport, URL: physics.oregonstate.edu/~hetheriw/whiki/ph415_s15/tasks/dsp/files/nyquist/nyquist.pdf. [3] T. Rossing, Springer Handbook of Acoustics. Springer, 2007, isbn: [4] J. Watkinson, The Art of Digital Audio. Butterworth-Heinemann, 1993, isbn: [5] J. Lane och G. Hillman, Implementing iir/fir filters, With motorola s dsp56000/sps/dsp56001 digital signal processors, version rev 2, Motorola Inc., [6] (). Jx-8p, URL: (hämtad ). [7] S. R. Lab. (). Sampling rate, URL: rat.html (hämtad ). [8] J. Yiu, The definite guide to arm cortex-m3 and m4 processors, ARM Ltd. 19
32 Bilagor 20
33 A Figurer A.1 Fyrkantsvåg Figur A.1: Fyrkantsvåg med 25% pulsbredd Figur A.2: Fyrkantsvåg med 50% pulsbredd Figur A.3: Fyrkantsvåg med 75% pulsbredd 21
34 A.2 Triangel- och sågtandsvåg Figur A.4: Triangelvåg med brytpunkt vid 50% (Sågtandsvåg) Figur A.5: Triangelvåg med brytpunkt vid 50% Figur A.6: Triangelvåg med brytpunkt vid 0% (Inverterad sågtandsvåg) 22
35 A.3 Kombinerad signal Figur A.7: Fyrkantsvåg med 35% pulsbredd i kombination med triangelvåg med brytpunkt vid 80% 23
36 A.4 Vågformer från analog källa Figur A.8: Fyrkantsvåg med 50%pulsbredd Figur A.9: Triangelvåg med brytpunkt vid 50% Figur A.10: Sågtandsvåg 24
Lab lanserade R.A. Moog Inc. en ny synt: Minimoog. Den var designad av Bill Hemsath och Robert Moog och kom att revolutionera musikhistorien.
Lab 1 1970 lanserade R.A. Moog Inc. en ny synt: Minimoog. Den var designad av Bill Hemsath och Robert Moog och kom att revolutionera musikhistorien. Minimoogen var egentligen en ganska enkel synt. Den
Grundläggande signalbehandling
Beskrivning av en enkel signal Sinussignal (Alla andra typer av signaler och ljud kan skapas genom att sätta samman sinussignaler med olika frekvens, Amplitud och fasvridning) Periodtid T y t U Amplitud
DIGITALA FILTER. Tillämpad Fysik Och Elektronik 1. Frekvensfunktioner FREKVENSSVAR FÖR ETT TIDSDISKRET SYSTEM. x(n)= Asin(Ωn)
DIGITALA FILTER TILLÄMPAD FYSIK OCH ELEKTRONIK, UMEÅ UNIVERSITET 1 Frekvensfunktioner x(n)= Asin(Ωn) y(n) H(z) TILLÄMPAD FYSIK OCH ELEKTRONIK, UMEÅ UNIVERSITET 2 FREKVENSSVAR FÖR ETT TIDSDISKRET SYSTEM
Digital signalbehandling Digitalt Ljud
Signalbehandling Digital signalbehandling Digitalt Ljud Bengt Mandersson Hur låter signalbehandling Institutionen för elektro- och informationsteknik 2008-10-06 Elektronik - digital signalbehandling 1
DIGITALA FILTER DIGITALA FILTER. Tillämpad Fysik Och Elektronik 1
DIGITALA FILTER TILLÄMPAD FYIK OCH ELEKTRONIK, UMEÅ UNIVERITET 1 DIGITALA FILTER Digitala filter förekommer t.ex.: I Photoshop och andra PC-programvaror som filtrerar. I apparater med signalprocessorer,
Resttentamen i Signaler och System Måndagen den 11.januari 2010, kl 14-19
Resttentamen i Signaler och System Måndagen den 11.januari 2010, kl 14-19 Tillåtna hjälpmedel: Valfri miniräknare (utan möjlighet till trådlös kommunkation). Valfri litteratur, inkl. kursböcker, formelsamlingar.
Laborationsprojekt i digital ljudsyntes
Laborationsprojekt i digital ljudsyntes A. Målsättning Att studenten skall få fördjupade kunskaper i digital signalbehandling genom att lära sig de grundläggande principerna för digital ljudsyntes av stränginstrumentliknande
Kompletterande räkneuppgifter i Spektrala Transformer Komplex analys, sampling, kvantisering, serier och filter Laura Enflo & Giampiero Salvi
Kompletterande räkneuppgifter i Spektrala Transformer Komplex analys, sampling, kvantisering, serier och filter & Giampiero Salvi Komplex analys Om man endast använder den reella tallinjen är det inte
Elektronik. Viktor Öwall, Digital ASIC Group, Dept. of Electroscience, Lund University, Sweden-
Analogt och Digital Bertil Larsson Viktor Öwall Analoga och Digitala Signaler Analogt Digitalt 001100101010100000111110000100101010001011100010001000100 t Analogt kontra Digitalt Analogt få komponenter
Faltningsreverb i realtidsimplementering
Faltningsreverb i realtidsimplementering SMS45 Lp1 26 DSP-system i praktiken Jörgen Anderton - jorand-3@student.ltu.se Henrik Wikner - henwik-1@student.ltu.se Introduktion Digitala reverb kan delas upp
TNMK054 - LJUDTEKNIK 1 FILTER OCH VCF
TNMK054 - LJUDTEKNIK 1 FILTER OCH VCF NÅGRA FREKVENSER Bastrumma Kropp 60-80Hz, snärt 2,5kHz Virveltrumma Kropp 240Hz, krispighet 5kHz HiHat & cymbaler Gongljud 200Hz, briljans 7,5-12kHz Hängpuka Kropp
Digital Signalbehandling i Audio/Video
Digital Signalbehandling i Audio/Video Institutionen för Elektrovetenskap Laboration 1 (del 2) Stefan Dinges Lund 25 2 Kapitel 1 Digitala audioeffekter Den här delen av laborationen handlar om olika digitala
Tillämpning av komplext kommunikationssystem i MATLAB
(Eller: Vilken koppling har Henrik Larsson och Carl Bildt?) 1(5) - Joel Nilsson joelni at kth.se Martin Axelsson maxels at kth.se Sammanfattning Kommunikationssystem används för att överföra information,
Spektrala Transformer
Spektrala Transformer Tidsdiskreta signaler, kvantisering & sampling Tidsdiskreta signaler Tidskontinuerlig signal Ex: x(t) = sin(ωt) t är ett reellt tal ω har enheten rad/s Tidsdiskret signal Ex: x(n)
DT1130 Spektrala transformer Tentamen
DT3 Spektrala transformer Tentamen 5 Tentamen består av fem uppgifter där varje uppgift maximalt ger p. Normalt gäller följande betygsgränser: E: 9 p, D:.5 p, C: p, B: 6 p, A: 8 p Tillåtna hjälpmedel:
2 Laborationsutrustning
Institutionen för data- och elektroteknik 2002-02-11 1 Inledning Denna laboration syftar till att illustrera ett antal grundbegrepp inom digital signalbehandling samt att närmare studera frekvensanalys
RemoteBud. Inlämnas: Patrik Johnsson, e01pjo Viktor Karlsson, e01vk
RemoteBud Inlämnas: 2005-02-01 Patrik Johnsson, e01pjo Viktor Karlsson, e01vk Abstract Skulle du också vilja styra dina lampor och rulla ner dina persienner med hjälp av din TV-fjärrkontroll? Remotebud
Digitala projekt rapport
Digitala projekt rapport Alexander Westrup, d04aw@student.lth.se Martin Sandgren, d04ms@student.lth.se 4 december 2007 Innehåll 1 Abstract 1 2 Inledning 1 3 Arbetsgång 1 4 Hårdvara 1 4.1 Processor...............................
Elektronik. Dataomvandlare
Elektronik Dataomvandlare Johan Wernehag Institutionen för elektro- och informationsteknik Lunds universitet 2 Översikt Analoga och digitala signaler Nyquistteorem Kvantiseringsfel i analog-till-digital
Tentamen i TMA 982 Linjära System och Transformer VV-salar, 27 aug 2013, kl
Tentamen i TMA 982 Linjära System och Transformer VV-salar, 27 aug 2013, kl 8.30-12.30 Examinatorer: Lars Hammarstrand och Thomas Wernstål Tentamen består av två delar (Del I och Del II) på sammanlagt
Tentamen i Elektronik, ESS010, del 2 den 6 mars 2006 SVAR
Tekniska Högskolan i Lund Institutionen för Elektrovetenskap Tentamen i Elektronik, ESS010, del 2 den 6 mars 2006 SVAR 1 Bandbredd anger maximal frekvens som oscilloskopet kan visa. Signaler nära denna
Projektrapport i Digitala System
Projektrapport i Digitala System Stämapparat LTH Ingenjörshögskolan vid Campus Helsingborg Handledare: Bertil Lindvall Utförd: Vårtermin 2019 Utförd av: Markus Ljungqvist Nilsson, Gustav Wetterbrandt,
Att fånga den akustiska energin
Att fånga den akustiska energin När vi nu har en viss förståelse av vad ljud egentligen är kan vi börja sätta oss in i hur det kan fångas upp och efterhand lagras. När en ljudvåg sprider sig är det inte
Grundläggande ljud- och musikteori
Grundläggande ljud- och musikteori Jan Thim Magnus Eriksson Lektionens syfte Syftet med denna lektion är är att att ge ge förståelse för för decibelbegreppet, spektrum, digitalisering och och olika olika
Elektronik 2018 EITA35
Elektronik 218 EITA35 Föreläsning 1 Filter Lågpassfilter Högpassfilter (Allpassfilter) Bodediagram Hambley 296-32 218-1-2 Föreläsning 1, Elektronik 218 1 Laboration 2 Förberedelseuppgifter! (Ingen anmälan
D/A- och A/D-omvandlarmodul MOD687-31
D/A- och A/D-omvandlarmodul MOD687-31 Allmänt Modulen är helt självförsörjande, det enda du behöver för att komma igång är en 9VAC väggtransformator som du kopplar till jacket J2. När du så småningom vill
Projekt 1 (P1) Problembeskrivning och uppdragsspecifikation
Projekt 1 (P1) Problembeskrivning och uppdragsspecifikation Etapp 1 Problem med mätsignalen m.a.p. sampling, vikning och spektraltäthet Problembeskrivning Uppdragsgivaren överväger att skaffa nya A/D-omvandlare
Frekvensplanet och Bode-diagram. Frekvensanalys
Frekvensplanet och Bode-diagram Frekvensanalys Signaler Allt inom elektronik går ut på att manipulera signaler genom signalbehandling (Signal Processing). Analog signalbehandling Kretsteori: Nod-analys,
Pulsmätare med varningsindikatorer
Pulsmätare med varningsindikatorer Elektro- och informationsteknik Projektrapport, EITF11 Digitala Projekt Charlie Hedhav Sofia Johansson Louise Olsson 2016-05-17 Abstract During the course Digitala Projekt
Spänningsstyrd Oscillator
Spänningsstyrd Oscillator Referat I det här projektet byggs en delkrets till frekvensneddelare för oscilloskop som inte har tillräcklig bandbredd för dagens höga frekvenser. Kretsen som byggs är en spänningsstyrd
Tentamen i Signaler och kommunikation, ETT080
Inst. för informationsteknologi Tentamen i Signaler och kommunikation, ETT080 2 juni 2006, kl 14 19 Skriv namn och årskurs på alla papper. Börja en ny lösning på ett nytt papper. Använd bara en sida av
Ämnesområde Hörselvetenskap A Kurs Akustik och ljudmiljö, 7 hp Kurskod: HÖ1015 Tentamenstillfälle 4
IHM Kod: Ämnesområde Hörselvetenskap A Kurs Akustik och ljudmiljö, 7 hp Kurskod: HÖ115 Tentamenstillfälle 4 Datum 213-11-7 Tid 4 timmar Kursansvarig Susanne Köbler Tillåtna hjälpmedel Miniräknare Linjal
Spektrala Transformer
Spektrala Transformer Tidsdiskreta signaler, kvantisering & sampling Tidsdiskreta signaler Tidskontinuerlig signal Ex: x(t) = sin(ωt) t är ett reellt tal ω har enheten rad/s Tidsdiskret signal Ex: x(n)
Tentamen ssy080 Transformer, Signaler och System, D3
Tentamen ssy080 Transformer, Signaler och System, D3 Examinator: Ants R. Silberberg 19 oktober 2011 kl. 08.30-12.30 sal: Hörsalsvägen Förfrågningar: Ants Silberberg, tel. 1808 Lösningar: Anslås torsdag
DT1130 Spektrala transformer Tentamen
DT Spektrala transformer Tentamen 72 Tentamen består av fem uppgifter där varje uppgift maximalt ger 4 p. Normalt gäller följande betygsgränser: E: 9 p, D:.5 p, C: 4 p, B: 6 p, A: 8 p Tillåtna hjälpmedel:
Elektronisk ljudalstring. Synthesizers. Workstations, arbetsstationer & MIDI
Elektronisk ljudalstring & MIDI Synthesizers (Roland, Korg, ARP, Yamaha, Emu, Kawai, Alesis, Prophet, Moog, Ensoniq) Kan syntetisera/skapa olika (elektroniska) ljud Innehåller ofta olika digitala effekter
Elektronik Dataomvandlare
Elektronik Översikt Analoga och digitala signaler Dataomvandlare Pietro Andreani Institutionen för elektro- och informationsteknik Lunds universitet Nyquistteorem Kvantiseringsfel i analog-till-digital
RÄKNEEXEMPEL FÖRELÄSNINGAR Signaler&System del 2
t 1) En tidskontinuerlig signal x( t) = e 106 u( t) samplas med sampelperioden 1 µs, varefter signalen trunkeras till 5 sampel. Den så erhållna signalen får utgöra insignal till ett tidsdiskret LTI-system
Spektrala Transformer
Spektrala Transformer Kurssammanfattning Fyra kärnkoncept Sampling Faltning Poler och nollställen Fouriertransform Koncept #1: Sampling En korrekt samplad signal kan rekonstrueras exakt, dvs ingen information
Projekt EITA15. Väckarklocka. LTH Ingenjörshögskolan vid Campus Helsingborg Datateknik
Projekt Väckarklocka LTH Ingenjörshögskolan vid Campus Helsingborg Datateknik Grupp:, och Handledare: Bertil Lindvall och Lars Göran Larsson Kurs: EITA 15 Lunds Tekniska Högskola Datum: 2019-05-21 Sammanfattning
Ett urval D/A- och A/D-omvandlare
Ett urval D/A- och A/D-omvandlare Om man vill ansluta en mikrodator (eller annan digital krets) till sensorer och givare så är det inga problem så länge givarna själva är digitala. Strömbrytare, reläer
LEU240 Mikrodatorsystem Laboration 2: Ett komplett avbrottsstyrt system med in- och utenheter
Institutionen för data- och informationsteknik 2011-11-07 : Ett komplett avbrottsstyrt system med in- och utenheter Inledning Vid resten av kursens labtillfällen så kommer vi att steg för steg bygga upp
Effektpedal för elgitarr
EITF11 - Digitala Projekt Effektpedal för elgitarr Handledare: Bertil Lindvall Ivan Rimac (I05) Jimmy Lundberg (I08) 2011-05-10 Contents Bakgrund... 3 Kravspecifikation... 3 Kravspecifikation Effektpedal...
Laboration 3 Sampling, samplingsteoremet och frekvensanalys
Laboration 3 Sampling, samplingsteoremet och frekvensanalys 1 1 Introduktion Syftet med laborationen är att ge kunskaper i att tolka de effekter (speglingar, svävningar) som uppkommer vid sampling av en
RealSimPLE: Pipor. Laborationsanvisningar till SimPLEKs pipa
RealSimPLE: Pipor Laborationsanvisningar till SimPLEKs pipa Vad händer när ljudvågor färdas genom ett rör? Hur kan man härma ljudet av en flöjt? I detta experiment får du lära dig mer om detta! RealSimPLE
Bildbehandling i frekvensdomänen
Uppsala Tekniska Högskola Signaler och system Handledare: Mathias Johansson Uppsala 2002-11-27 Bildbehandling i frekvensdomänen Erika Lundberg 800417-1602 Johan Peterson 790807-1611 Terese Persson 800613-0267
PROJEKT LJUD. KOPIERINGSUNDERLAG Martin Blom Skavnes, Staffan Melin och Natur & Kultur Programmera i teknik ISBN
PROJEKT LJUD PROJEKT LJUD s 1 I det här projektet ska du koppla en krets som innehåller en högtalare och skriva ett program som får högtalaren att spela toner och melodier. Materiel Arduino dator kopplingsdäck
Elektronik Dataomvandlare
Elektronik Översikt Analoga och digitala signaler Dataomvandlare Pietro Andreani Institutionen för elektro- och informationsteknik Lunds universitet Nyquistteorem Kvantiseringsfel i analog-till-digital
MEDIESIGNALER INTRODUKTION
Rev. 150119 US MEDIESIGNALER INTRODUKTION 1 VILKA PROBLEM LÖSER VI MED SIGNAL- BEHANDLING? Akustik. Inspelning av sorl från fikarummet vid TFE. Varför pratar alla så högt? Varför hör man inte vad någon
Formelsamling finns sist i tentamensformuläret. Ämnesområde Hörselvetenskap A Kurs Akustik och ljudmiljö, 7,5hp Kurskod: HÖ1004 Tentamenstillfälle 1
Ämnesområde Hörselvetenskap A Kurs Akustik och ljudmiljö, 7,5hp Kurskod: HÖ1004 Tentamenstillfälle 1 Datum 2011-06-01 Tid 4 timmar Kursansvarig Åsa Skagerstrand Tillåtna hjälpmedel Övrig information Resultat:
Audio & Videoteknik 2D2021, 2D1518
TENTAMEN Kurs: Kursnummer: Moment: Program: Åk: Examinator: Rättande lärare: Datum: Tid: Hjälpmedel: Audio & Videoteknik 2D2021, 2D1518 Tentamen Medieteknik 2 Trille Fellstenius Trille Fellstenius, Svante
PlantPuppy Räddaren för den som inte kan hålla växterna vid liv
Lunds Tekniska Högskola Elektro- och informationsteknik Digitala Projekt PlantPuppy Räddaren för den som inte kan hålla växterna vid liv Gerda Sidwall Thygesen Sofia Sundbom Zoë Wyon ine14gth@student.lu.se
Mätningar med avancerade metoder
Svante Granqvist 2008-11-12 13:41 Laboration i DT2420/DT242V Högtalarkonstruktion Mätningar på högtalare med avancerade metoder Med datorerna och signalprocessningens intåg har det utvecklats nya effektivare
TIDSDISKRETA SYSTEM SYSTEMEGENSKAPER. Minne Kausalitet Tidsinvarians. Linjäritet Inverterbarhet Stabilitet. System. Tillämpad Fysik och Elektronik 1
TIDSDISKRETA SYSTEM TILLÄMPAD FYSIK OCH ELEKTRONIK, UMEÅ UNIVERSITET 1 SYSTEMEGENSKAPER x[n] System y[n] Minne Kausalitet Tidsinvarians Linjäritet Inverterbarhet Stabilitet TILLÄMPAD FYSIK OCH ELEKTRONIK,
Talets akustik repetition
Pétur Helgason VT 29 Talets akustik repetition 29-3-3 Vad är ljud för någonting? Vi människor lever och rör oss i ett skikt med gas som ligger ovanpå jordens yta. Gasen består av ca 8 % kväve och 2 % syre.
Temperaturmätare med lagringsfunktion DIGITALA PROJEKT EITF11 GRUPP 14, ERIK ENFORS, LUDWIG ROSENDAL, CARL MIKAEL WIDMAN
2016 Temperaturmätare med lagringsfunktion DIGITALA PROJEKT EITF11 GRUPP 14, ERIK ENFORS, LUDWIG ROSENDAL, CARL MIKAEL WIDMAN Innehållsförteckning INLEDNING... 3 KRAVSPECIFIKATION AV PROTOTYP... 3 FUNKTIONELLA
Signalbehandling, förstärkare och filter F9, MF1016
Signalbehandling, förstärkare och filter F9, MF1016 Signalbehandling, inledning Förstärkning o Varför förstärkning. o Modell för en förstärkare. Inresistans och utresistans o Modell för operationsförstärkaren
TSKS06 Linjära system för kommunikation Lab2 : Aktivt filter
TSKS06 Linjära system för kommunikation Lab2 : Aktivt filter Sune Söderkvist, Mikael Olofsson 9 februari 2018 Fyll i detta med bläckpenna Laborant 1 Laborant 2 Personnummer Personnummer Datum Godkänd 1
Fouriermetoder MVE295 - bonusuppgifter
Fouriermetoder MVE295 - bonusuppgifter Edvin Listo Zec 920625-2976 edvinli@student.chalmers.se Sofia Toivonen 910917-4566 sofiato@student.chalmers.se Emma Ekberg 930729-0867 emmaek@student.chalmers.se
Innehållsförteckning. Figur- och tabellförteckning. Figure 1 Blockschema över hårdvaran...4 Figure 2 Blockschema över programet...
Abstract Syftet var att konstruera en väder station som håller koll på temperaturen. Huvudfunktionen var att få en grafisk visning av temperaturen över ett visst tidsintervall eftersom vi valde den grafiska
Laboration 1: Aktiva Filter ( tid: ca 4 tim)
091129/Thomas Munther IDE-sektionen/Högskolan Halmstad Uppgift 1) Laboration 1: Aktiva Filter ( tid: ca 4 tim) Vi skall använda en krets UAF42AP. Det är är ett universellt aktivt filter som kan konfigureras
Kapitel 2 o 3 Information och bitar Att skicka signaler på en länk. Jens A Andersson
Kapitel 2 o 3 Information och bitar Att skicka signaler på en länk Jens A Andersson Att sända information mellan datorer värd 11001000101 värd Två datorer som skall kommunicera. Datorer förstår endast
GPIO - General Purpose Input Output
GPIO - General Purpose Input Output Ur innehållet: Ideala och verkliga signaler Bitvis in- och utmatning Anslutning - fysiskt gränssnitt F407 - GPIO-modul tillämpningar Läsanvisningar: Arbetsbok avsnitt
DT1120/DT1130 Spektrala transformer Tentamen
DT/DT3 Spektrala transformer Tentamen 86 Tentamen består av fem uppgifter där varje uppgift maximalt ger 4 p. Normalt gäller följande betygsgränser: E: 9 p, D:.5 p, C: 4 p, B: 6 p, A: 8 p Tillåtna hjälpmedel:
Exempelsamling Grundläggande systemmodeller. Klas Nordberg Computer Vision Laboratory Department of Electrical Engineering Linköping University
Exempelsamling Grundläggande systemmodeller Klas Nordberg Computer Vision Laboratory Department of Electrical Engineering Linköping University Version: 0.11 September 14, 2015 Uppgifter markerade med (A)
Signalbehandling Röstigenkänning
L A B O R A T I O N S R A P P O R T Kurs: Klass: Datum: I ämnet Signalbehandling ISI019 Enk3 011211 Signalbehandling Röstigenkänning Jonas Lindström Martin Bergström INSTITUTIONEN I SKELLEFTEÅ Sida: 1
AD-DA-omvandlare. Mätteknik. Ville Jalkanen. ville.jalkanen@tfe.umu.se 1
AD-DA-omvandlare Mätteknik Ville Jalkanen ville.jalkanen@tfe.umu.se Inledning Analog-digital (AD)-omvandling Digital-analog (DA)-omvandling Varför AD-omvandling? analog, tidskontinuerlig signal Givare/
Ljudlära. Ljud är Periodicitet. Introduktion. Ljudlära viktigt ur två aspekter:
Introduktion Ljudlära Ljudlära viktigt ur två aspekter: 1. Ljudets fysikaliska egenskaper 2. Vad vi uppfattar med hörseln Syfte: att lära sig göra relevanta kopplingar mellan faktisk vetenskap och sinnlig
Hambley avsnitt
Föreläsning 0 Hambley avsnitt 6.6.8 Filter [6.2, 6.5 6.8] Vid kommunikation används tidsharmoniska signaler. Dessa har ett visst frekvensband centrerad kring en bärfrekvens. Som exempel kan en sändare
Hambley avsnitt
Föreläsning Hambley avsnitt 6.6.8 Filter [6.2, 6.5 6.8] Nästan all trådlös och trådbunden kommunikation är baserad på tidsharmoniska signaler. Signalerna utnyttjar ett frekvensband centrerad kring en bärfrekvens.
Föreläsning: Digitalt Ljud. signalbehandling. Elektronik - digital signalbehandling. Signal och spektrum. PC-ljud. Ton från telefonen.
Elektronik - digital signalbehandling Föreläsning: Digitalt Ljud Bengt Mandersson Hur låter signalbehandling Institutionen för elektro- och informationsteknik 2010-10-01 1 2008-10-06 Elektronik - digital
Digitala projekt - Radiostyrd bil
Digitala projekt - Radiostyrd bil Handledare: Bertil Lindvall Johan Lennartsson e02jle David Thomasson e02dt Magnus Lisborg e02mls Innehållsförteckning 1. Inledning.3 2. Målsättning med projektet.......3
GRUNDKURS I SIGNALBEHANDLING (454300), 5sp Tentamen
GRUNDKURS I SIGNALBEHANDLING (454300), 5sp Tentamen 26.02013 kursens övningsuppgifter eller gamla tentamensuppgifter, eller Matlab-, Scilab- eller Octave- programmerbara kalkylatorer eller datorer. 1.
Laboration i tidsdiskreta system
Laboration i tidsdiskreta system A. Tips Användbara MATLAB-funktioner: conv Faltning square Skapa en fyrkantvåg wavread Läs in en ljudfil soundsc Spela upp ett ljud ones Skapa en vektor med godtyckligt
Datorer och musik. CT3620 Vetenskapsmetodik för teknikområdet 2005-10-14. Mats Sandvik Wendy Castellanos
Datorer och musik CT3620 Vetenskapsmetodik för teknikområdet 2005-10-14 Mats Sandvik Wendy Castellanos Sammanfattning Denna rapport är tänkt att ge läsaren en översikt av hur datorer och musik och fungerar
PROJEKT STAFFAN STALLEDRÄNG
PROJEKT STAFFAN STALLEDRÄNG PROJEKT STAFFAN STALLEDRÄNG s 1 I det här projektet ska du koppla en krets som innehåller en högtalare och en lysdiod, samt skriva ett program som får högtalaren att spela en
Ulrik Söderström 20 Jan Signaler & Signalanalys
Ulrik Söderström ulrik.soderstrom@tfe.umu.se 20 Jan 2009 Signaler & Signalanalys Sinusspänning Sinus och cosinus samma form men fasförskjutna Fasförskjutning tidsfördröjning Sinus och cosinus är väldigt
Mätning av biopotentialer
1. Inledning Inom dagens sjukvård är tekniken en självklar och viktig faktor. De allra flesta diagnoser, analyser och behandlingar grundar sig på information från ett flertal tekniska utrustningar och
Analoga och Digitala Signaler. Analogt och Digitalt. Analogt. Digitalt. Analogt få komponenter låg effektförbrukning
Analoga och Digitala Signaler Analogt och Digitalt Analogt 00000000000000000000000000000000000 t Digitalt Analogt kontra Digitalt Analogt å komponenter låg eektörbrukning verkliga signaler Digitalt Hög
Ulrik Söderström 19 Jan Signalanalys
Ulrik Söderström ulrik.soderstrom@tfe.umu.se 9 Jan 200 Signaler & Signalanalys l Sinusspänning Sinus och cosinus samma form men fasförskjutna Fasförskjutning tidsfördröjning Sinus och cosinus är väldigt
TEMPERATUR OCH VINDMÄTARE MED HÖGTALARFUNKTION
TEMPERATUR OCH VINDMÄTARE MED HÖGTALARFUNKTION Digitala Projekt EITF 11, 18 maj 2015 Grupp 13; Morten Rosén, Henrik Boris-Möller, Christoffer Nordberg Projekthandledare: Bertil Lindvall Innehållsförteckning
Laboration, analoga applikationer
Labratin, analga applikatiner Du ska i denna labratin simulera ch analysera några kretsar för analga applikatiner. Material Datr med OrCad. Kppla kmpnentbibliteken sm är upplagda i mdle m du inte redan
A/D- och D/A- omvandlare
A/D- och D/A- omvandlare Jan Carlsson 1 Inledning Om vi tänker oss att vi skall reglera en process så ställer vi in ett börvärde, det är det värde som man vill processen skall åstadkomma. Sedan har vi
Kapitel 2 o 3 Information och bitar Att skicka signaler på en länk. Jens A Andersson
Kapitel 2 o 3 Information och bitar Att skicka signaler på en länk Jens A Andersson Att göra Kursombud Williams bok???? Kolla schemat: Övningar flyttade Labanmälan ska funka nu 2 Att sända information
Digitalitet. Kontinuerlig. Direkt proportionerlig mot källan. Ex. sprittermometer. Elektrisk signal som representerar ljud.
Analog Digitalitet Kontinuerlig Direkt proportionerlig mot källan Ex. sprittermometer Elektrisk signal som representerar ljud Diskret Digital Representation som siffror/symboler Ex. CD-skiva Varje siffra
AD-/DA-omvandlare. Digitala signaler, Sampling och Sample-Hold
AD-/DA-omvandlare Digitala signaler, Sampling och Sample-Hold Analoga och Digitala Signaler Analogt Digitalt 001100101010100000111110000100101010001011100010001000100 t Analogt - Digitalt Analogt få komponenter
A/D D/A omvandling. Lars Wallman. Lunds Universitet / LTH / Institutionen för Mätteknik och Industriell Elektroteknik
A/D D/A omvandling Lars Wallman Innehåll Repetition binära tal Operationsförstärkare Principer för A/D omvandling Parallellomvandlare (Flash) Integrerande (Integrating Dual Slope) Deltapulsmodulation (Delta
Välkomna till TSRT19 Reglerteknik Föreläsning 5. Sammanfattning av föreläsning 4 Frekvensanalys Bodediagram
Välkomna till TSRT19 Reglerteknik Föreläsning 5 Sammanfattning av föreläsning 4 Frekvensanalys Bodediagram Sammanfattning av förra föreläsningen 2 Givet ett polpolynom med en varierande parameter, och
Samtidig visning av alla storheter på 3-fas elnät
Samtidig visning av alla storheter på 3-fas elnät Med nätanalysatorerna från Qualistar+ serien visas samtliga parametrar på tre-fas elnätet på en färgskärm. idsbaserad visning Qualistar+ visar insignalerna
Department of Information Technology Digitala projekt. SuperKull. Daniel Öhman Alexander Persson
Department of Information Technology Digitala projekt SuperKull Daniel Öhman Alexander Persson Abstract The purpose of this course was to design and construct an electronic
Laboration 3: Musikbibliotek
Laboration 3: Musikbibliotek Objektorienterad programmering, Z1 Syfte I denna laboration ska ni definiera ett litet bibliotek för att generera musik som kan avlyssnas med vanliga musikprogram. Tiden medger
Analogt och Digital. Viktor Öwall. Elektronik
Analogt och Digital Viktor Öwall Analoga och Digitala Signaler Analogt Digitalt 001100101010100000111110000100101010001011100010001000100 t Analogt kontra Digitalt Analogt få komponenter låg effektförbrukning
Kapitel 2 o 3 Information och bitar Att skicka signaler på en länk. Jens A Andersson
Kapitel 2 o 3 Information och bitar Att skicka signaler på en länk Jens A Andersson Att sända information mellan datorer värd 11001000101 värd Två datorer som skall kommunicera. Datorer förstår endast
Lab skapades Ove (Orator Verbis Electris) av Gunnar Fant, KTH.
Lab 2 1953 skapades Ove (Orator Verbis Electris) av Gunnar Fant, KTH. Ove var en talsyntesmaskin som kunde göra vokalljud. Ganska bra sådana dessutom, i alla fall med tanke på dåtidens teknik. Här finns
Chalmers Tekniska Högskola och Mars 2003 Göteborgs Universitet Fysik och teknisk fysik Kristian Gustafsson Maj Hanson. Svängningar
Chalmers Tekniska Högskola och Mars 003 Göteborgs Universitet Fysik och teknisk fysik Kristian Gustafsson Maj Hanson Svängningar Introduktion I mekanikkurserna arbetar vi parallellt med flera olika metoder
Signal- och bildbehandling TSBB03
Tentamen i Signal- och bildbehandling TSBB3 Tid: 28-5-29 kl. 8-2 Lokal: TER2 Ansvarig lärare: Maria Magnusson besöker lokalen kl. 9. och.4 tel 73-84 38 67 Hjälpmedel: Räknedosa, medskickad formelsamling,
i(t) C i(t) = dq(t) dt = C dy(t) dt y(t) + (4)
2 Andra lektionen 2. Impulssvar 2.. En liten krets Beräkna impulssvaret för kretsen i figur genom att beräkna hur y(t) beror av x(t). R x(t) i(t) C y(t) Figur : Första ordningens lågpassfilter. Utsignalen
Elektro och Informationsteknik LTH Laboration 4 Tidsplan, frekvensplan och impedanser
Elektro och Informationsteknik LTH Laboration 4 Tidsplan, frekvensplan och impedanser Elektronik för D ETIA01 Andrés Alayon Glasunov Palmi Thor Thorbergsson Anders J Johansson Lund Mars 2009 Laboration
DIGITALA PROJEKT Väderstation
DIGITALA PROJEKT Väderstation Christian Lindquist, E03 Leonardo Bello, E03 Abstract Almost everybody has some kind of temperature measurement device in their home. The latest in this industry are more
Tentamen i ESS 010 Signaler och System E3 V-sektionen, 16 augusti 2005, kl 8.30 12.30
Tentamen i ESS 00 Signaler och System E3 V-sektionen, 6 augusti 2005, kl 8.30 2.30 Examinator: Mats Viberg Tentamen består av 5 uppgifter som vardera ger maximalt 0 p. För godkänd tentamen fordras ca 20