Automatisk hörlurar Equalizer (10 / 14 steg)
Steg 10: minstakvadratmetoden montering
I det här steget beskriver vi den metod som vi använder för att programmet skall vi använda i framtiden steg. Vi passar av minsta kvadratmetodenoch vi sammanfatta här nedan, för nyfikna läsare:
Vi vill att ange vinsterna på varje band, så att våra ingående par skall låta som våra mål par. Vi kan försöka den här av antar att frekvenssvaret av hela vårt system kommer att vara en linjär funktion av vinst på varje band och frekvenssvaret av arrangerar individuellt. Det är vi anta att det är av formen y = Ax, där y är en vektor med vår utgång frekvens av storleksanpassa n, där n är antalet mätningar vi gjort samtidigt som kännetecknar hörlurarna. A är en matris vars kolumner representerar frekvenssvaret av varje band (n x 6), och x är vektorn av storlek 6 som representerar vinst på varje steg.
Vi vill lösa för X. A är en mager matris, så det kan inte inverteras, men vi kan ta det är pseudo inversen, (A ^ T A) ^-1 A ^ T, och multiplicera det med våra mål frekvensomfång. Detta ger oss ett x sådan som Ax är så nära som möjligt till vårt mål. Observera att x kan ha värden som är antingen, eller större än den maximala vinsten vi kan uppnå. Vi kommer att helt enkelt ställa den senare till 0 och den tidigare till vår max vinning. I MATLAB, detta är gjort "en \ x". Vi hade också att hantera vissa inkonsekventa data som interpolering för att se till att alla prover är samma längd. Se vår kod för detaljer.
Observera att vi måste göra en mätning med inget ljud spela för att få en originalplan, och subtrahera det från alla framtida mätningar för att vårt antagande av linearitet ska vara giltig.
Vi anser att deras kan vara metoder som ger en snävare passform, som stokastiska gradient härkomst, vilket förutsätter ingen linjär modell. Dock skulle stokastiska gradient härkomst kräver att vi upprepade gånger åter kännetecknar våra ingående hörlurar, som skulle vara mycket långsammare, men möjligen har en bättre passform.