Metlivi-bloggen

Så skapar du pulsbreddsmodulering genom att kombinera sågtandsvågor med motsatt polaritet

Skapa pulsbreddsmodulering (PWM) genom att mixa två likadana sågtandsvågor på samma nivå, invertera polariteten på den ena och variera deras relativa fas. Deras motriktade ramper tar ut varandra mellan återställningarna, vilket lämnar en pulsvågform vars bredd följer avståndet mellan återställningarna. New Systems Instruments dokumenterar uttryckligen den här tekniken för sin fasstyrda sågtandsoscillator. Triphase Oscillator

Den här guiden vänder sig till syntanvändare som vill bygga det ljudet med oscillator- och mixningsfunktioner. Börja med en fast puls, kontrollera att utsläckningen fungerar och lägg sedan till rörelse. Det praktiska valet är om du vill styra fasen direkt eller låta två frekvenser som skiljer sig något åt ändra den kontinuerligt.

29 oktober 20268 min läsningAv Metlivi Editorial Team
Avsnitt 1

Vad måste stämma för att två sågtandsvågor ska ge en puls?

Du behöver två sågtandssignaler med samma grundform, lika amplitud, motsatt polaritet och en justerbar fasrelation. För en exakt statisk puls måste de också ha samma frekvens. Den ena signalen stiger mellan återställningarna medan den andra faller; deras lutningar tar ut varandra när signalerna summeras.

En användbar konfiguration består av en sågtandskälla med separat justerbara fasutgångar, en mixer som kan subtrahera en signal från en annan och en lågfrekvensoscillator (LFO) för modulering. Du kan också använda två oscillatorer och en separat polaritetsinverterare. Triphase Oscillator är ett dokumenterat hårdvaruexempel: den har sågtandsutgångar med samma tonhöjd, oberoende fasreglage och en bipolär mixer. Triphase Oscillator

Polaritetsinvertering och fasförskjutning är separata operationer. Invertering multiplicerar varje sampel eller spänning med −1. En fasförskjutning flyttar vågformen inom dess cykel. En förskjutning på en halv cykel för en sågtandsvåg vänder inte i sig dess lutning. Puckettes analys av vågformer visar att om man subtraherar sågtandsvågor som är förskjutna en halv cykel får man en fyrkantsvåg, medan en addition ger en sågtand med dubbelt så hög frekvens. Sågtandsvågor och symmetri

Därför är en startsfasinställning på en synt bara användbar om den etablerar den relation du behöver. Kontinuerlig PWM kräver en parameter som ändrar den relativa fasen medan tonen spelas, eller en frekvensskillnad som får fasen att glida.

Avsnitt 2

Varför ändrar subtraktion av sågtandsvågor pulsbredden?

Föreställ dig två identiska stigande sågtandsvågor som är förskjutna en del av en cykel. Subtrahera den ena från den andra. Mellan återställningarna stiger båda i samma takt, så deras differens förblir konstant. När någon av dem återställs hoppar differensen till en annan nivå. Avståndet mellan återställningarna avgör hur länge utsignalen ligger på respektive nivå. Det här är metoden med subtraktion av fördröjd sågtand som beskrivs i Steffan Diedrichsens syntesanteckning. Pulsbreddsmodulering

Här är en uttrycklig matematisk konvention för att förutsäga resultatet. Låt p vara den aktuella fasen från 0 upp till, men inte inklusive, 1. Definiera en normaliserad stigande sågtand som r(p) = 2 × frac(p) − 1, där frac omsluter argumentet så att det hamnar inom det intervallet. För en önskad positiv pulskvot D mellan 0 och 1, skapa y = r(p − D) − r(p).

Med den här konventionen är utsignalen 2(1 − D) under den första andelen D av cykeln och −2D under resten. Den positiva delen varar alltså exakt D av varje cykel. Följande värden är ett illustrativt räkneexempel för ideala sågtandsvågor från −1 till +1, inte mätningar av ett visst instrument.

Positiv pulskvot Relativ fördröjning Hög nivå Låg nivå
25 % En fjärdedels cykel, eller 90° +1.5 −0.5
50 % En halv cykel, eller 180° +1.0 −1.0
75 % Tre fjärdedels cykel, eller 270° +0.5 −1.5

De olika positiva och negativa nivåerna vid 25 % och 75 % är väntade: varje vågform har ett medelvärde på noll i den här konstruktionen. Jag kontrollerade numeriskt dessa tre fall med 1 000 jämnt fördelade faser. Om subtraktionen vänds ändras utsignalens polaritet, så en enhets visade fasriktning kan ge den motsvarande positiva pulskvoten.

Vid noll relativ förskjutning tar de identiska vågorna med motsatt polaritet ut varandra helt. Den här ändpunkten är användbar för kalibrering, men ger ingen ihållande pulston.

Avsnitt 3

Hur patchar du en stabil puls innan du lägger till modulering?

Följ den här proceduren om ditt instrument har matchande sågtandsutgångar med justerbar relativ fas. New Systems Instruments manual dokumenterar samma grundläggande signalväg: ett positivt bidrag till mixern, ett negativt bidrag och en fasjustering för att ställa in pulsbredden. Triphase Oscillator — användarmanual, revision 1.01

  1. Välj två matchande sågtandssignaler. Använd en gemensam oscillatorkärna eller en mjukvaruoscillatorstruktur som upprätthåller deras frekvensrelation.
  2. Ta tillfälligt bort moduleringen. Stäng av fasrandomisering och extra röster så att du kan granska ett vågformspar.
  3. Koppla båda signalerna till en summerande mixer. Håll signalvägarna linjära medan du ställer in utsläckningen.
  4. Invertera det ena bidraget. Använd negativ mixergain eller en separat inverterare. Låt det andra bidraget vara positivt.
  5. Matcha amplituderna vid noll fasförskjutning. Justera nivåerna tills den summerade utsignalen närmar sig tystnad.
  6. Flytta den relativa fasen en halv cykel. Det ideala resultatet är en fyrkantsvåg med lika långa höga och låga delar.
  7. Gå mot en fasförskjutning på en fjärdedels cykel. Bekräfta att den ena delen blir kortare medan den andra blir längre.

Om möjligt, granska summan på ett oscilloskop. Vid en fast förskjutning ska du leta efter två ungefär horisontella sektioner åtskilda av övergångar. Det ger dig en konkret kontroll innan du bedömer ljudet genom filter eller effekter.

Samma rattlägen betyder inte nödvändigtvis samma signalamplitud. Testet med utsläckning vid noll förskjutning kontrollerar hela signalvägarna, inklusive oscillatorernas utsignalsnivåer och mixergain. När testet fungerar låter du gaininställningarna vara fasta och använder fasen för att ställa in bredden.

Avsnitt 4

Hur gör du en fast puls till kontrollerad PWM?

Använd en LFO på reglaget för relativ fas. Som en illustrativ startpunkt kan du centrera relationen kring en halv cykel och använda en långsam modulationsfrekvens, till exempel 0.3 Hz. Öka djupet gradvis tills pulsen växlar mellan bred och smal utan att nå fullständig utsläckning. Det här är startinställningar att justera på gehör, inte produktspecifikationer.

För ett definierat modulationsintervall kan den tidigare konventionen skrivas som D(t) = 0.5 + 0.2 × sin(2π × 0.3 × t), där tiden t anges i sekunder. Då sveps den positiva pulskvoten mellan 30 % och 70 %, och en modulationscykel tar ungefär 3.33 sekunder. Översätt intervallet till instrumentets faskalning; utgå inte från att alla fasingångar använder samma spänningsskala.

Om du bara flyttar fasen på den ena sågtandsvågen flyttas också den ena pulskanten i förhållande till den andra. Om det skapar mer tonhöjdsrörelse än du vill ha kan du prova att flytta båda faserna lika mycket i motsatta riktningar. Triphase-manualen rekommenderar uttryckligen att samma styrsignal appliceras på båda fas­indångarna med motsatta attenuverterinställningar för mindre förändring av grundtonens tonhöjd. Triphase Oscillator — användarmanual

Ställ in breddintervallet innan du lägger till ytterligare ljudformning. Då blir det enklare att avgöra om en ton som tonar bort beror på att utsläckningen närmar sig eller på ett senare steg i patchen.

Avsnitt 5

Kan oscillatorer som är lätt ostämda ge samma rörelse?

Ja. Två sågtandsvågor med motsatt polaritet och något olika frekvens ändrar hela tiden sin relativa fas. Puckettes PWM-exempel använder just den här metoden. Den är användbar när en synt erbjuder oscillatortuning och polaritetsinvertering men saknar kontinuerlig fasstyrning. Kombinera sågtandsvågor

Fasrelationen går framåt ett helt varv för varje cykel i frekvensskillnaden. De illustrativa frekvenserna 100 Hz och 100.2 Hz skiljer sig till exempel med 0.2 Hz, så deras relativa fas upprepas var 1 ÷ 0.2 = 5 sekund. En fast frekvensskillnad ger därför en förutsägbar svepperiod.

Det finns en liten matematisk skillnad jämfört med konstruktionen med lika frekvens. För normaliserade sågtandsvågor är lutningarna proportionella mot frekvensen. Om man subtraherar sågtandsvågor med olika frekvens återstår en lutning mellan övergångarna; resultatet närmar sig en puls med platt topp när skillnaden blir liten. Det följer direkt av att derivera sågtandsformelns rampdelar.

Ostämning sveper också igenom hela den relativa fascykeln, inklusive lägen nära utsläckning. Med direkt fasmodulering kan du välja ett centrum och begränsa utslaget. Välj ostämning för en kontinuerligt roterande relation; välj fasstyrning när du behöver ett repeterbart breddintervall.

Avsnitt 6

Vad gör du om oscillatorn saknar justerbar fasutgång?

Kontrollera om systemet kan skapa en förskjuten sågtand från en befintlig signal. Doepfer dokumenterar en algebraisk metod: jämför den inkommande sågtanden med en styrspänning och addera sedan den resulterande rektangelsignalen på rätt nivå för att få en förskjuten sågtand. Styrspänningen ställer in den effektiva förskjutningen. A-137-2 Wave Multiplier II

Om en lämplig processor har en separat utgång för den förskjutna sågtanden kan du kombinera den med originalsignalen med motsatt polaritet enligt metoden ovan. Kontrollera först vilka utgångar som finns. Doepfers beskrivning av A-137-2 skiljer mellan dess summerade utgång och enskilda signaler som finns internt; utgå inte från att summan på frontpanelen är en separat åtkomlig förskjuten sågtand. A-137-2 Wave Multiplier II

Det här ger ett praktiskt utrustningsval: använd oberoende fasutgångar när de finns, ostäm två oscillatorer om ett fullständigt svep fungerar, eller använd en dokumenterad processor för sågtandsförskjutning med åtkomliga enskilda signaler. Funktionen du behöver är en styrbar relation mellan matchande ramper.

Avsnitt 7

Hur felsöker du ett oväntat resultat?

Arbeta bakåt från den enklaste statiska patchen. Kontrollerna nedan följer av utsläckningsmodellen och hjälper dig att skilja routningsfel från avsiktlig modulering.

Vad du observerar Vad du ska kontrollera Nästa åtgärd
En tydlig sågtand kvarstår vid noll förskjutning Polaritet och matchning av amplitud Bekräfta ett negativt bidrag och finjustera sedan nivåerna för utsläckning
Lutande sektioner vid en fast bredd Frekvens, gain och vågformsmatchning Ta bort ostämningen och jämför de två källsignalerna
Bredden ändras bara när tonen börjar Beteendet hos startfasen Leta efter kontinuerlig fasmodulering eller använd lätt ostämning
Ljudet försvinner nästan med jämna mellanrum Moduleringen når fasjustering Minska djupet eller flytta fasens centrum
Tonhöjden upplevs som högre när den andra sågtanden läggs till Båda mixerns bidrag kan ha samma polaritet Kontrollera inverteringen igen innan du justerar fasen

För digitala implementeringar ska du också skilja mellan vågformskonstruktion och ljudrenderingens kvalitet. En matematiskt direkt sågtand innehåller diskontinuiteter. SciPy anger uttryckligen att dess funktion sawtooth inte är bandbegränsad och att dess övertoner aliaseras; att sampla två sådana ramper och subtrahera dem ger ingen antialiaseringsmetod. SciPy-dokumentation för sågtand

Använd en lämplig bandbegränsad oscillatormetod eller en översamplad struktur med filtrering före nedsampling för en mjukvaruimplementering i ljudfrekvens. Puckette dokumenterar både översampling och metoder med övergångssammanfogning för att generera sågtand. Kontrollera resultatet över de avsedda tonhöjds- och modulationsintervallen i stället för att bara förlita dig på en vågformsgranskning vid låga toner. Strategier för bandbegränsning av sågtandsvågor

Bygg ljudet i tre steg: bekräfta utsläckning vid noll förskjutning, skapa en fyrkantsvåg vid en halv cykels förskjutning och animera sedan den relativa fasen. Den sekvensen ger dig en tillförlitlig referens vid varje steg och gör den färdiga PWM-patchen lättare att styra.

Avsnitt 8

Källor

Relaterad läsning

Fortsätt utforska detta ämne