Her kommer et langt svar på Snickers sitt innlegg.
Hvis du ikke gidder å lese gjennom alt, så er det en oppsummering på slutten.
Jeg innser at planen min om å få en 100% oversiktlig progresjon i tråden byr på utfordringer, vi får se hvordan den utvikler seg. Derfor legger jeg ut en "hybrid" (en del issues jeg summerte opp) som stammer fra en dialog jeg hadde med et annet medlem for en tid tilbake.
Er det du og Orso som har hatt seminar?
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
Ok, la meg først understreke en ting. Verken FIR eller IIR er bedre eller dårligere enn hverandre. Det er alltid et spørsmål om anvendelse.
IIR er klart dårligere i praksis.
Forskjellen er såpass stor at mange som har drevet med IIR basert korreksjon har opparbeidet seg «kunnskap» på gale premisser. Det sirkulerer derfor en rekke myter om at man bare bør korrigere i bassen, ikke bør korrigere dipper, bare bør korrigere direktelyden, ikke kan korrigere rommet (for så vidt riktig, men feil allikevel), ikke kan korrigere excessfase frekvenser, at bruk av DSP er det samme som å kompensere for en feil ved å introdusere en ny osv. Listen er lang og seiglivet, og du er med på å holde liv i den, Snickers. Men det finnes etter hvert en god del profesjonelle og amatører som har skjønt noe av dette, som har tatt skrittet fra tradisjonell EQ til FIR basert korreksjon, og som har fått et helt annet syn på sakene.
For å lage et FIR filter må man definere en impulsrespons mellom punktene A og B i tidsdomenet. Disse punktene er da hhv start og sluttidspunktet for det som danner grunnlaget for å generere filteret. Det er altså det man mater konvoleringsfunksjonen med. Man beregner punktene (taps) som skal korrigeres ved hjelp av konvolveren og får dermed en korreksjon som er en invers av den aktuelle impulsresponsen. Man kan beregne frekvens og faseresponsen ved hjelp av en fouriertransformasjon. Da ser man frekvensresponsen og faseresponsen til den impulsresponsen man nettopp målte. Man kan også beregne frekvens og faseresponsen til selve filteret, og man vil se at denne er lik som frekvens og faseresponsen av målingen, men da selvsagt helt motsatt.
Dette høres veldig bra ut, men det er minst fire gigantiske problemer.
For det første kan man se for seg at man utfører en måling i et rom. Man endrer så tidsvinduet med, la oss si, 50%. Omregnet til løpetid så øker man det kanskje fra 20 til 30 meter. Det er ikke en veldig stor endring, men frekvensresponsen endrer seg da som regel dramatisk. Det samme skjer naturlig nok med impulsresponsen. Når vi lytter til et slikt oppsett lytter vi til alle tidsvinduer på en gang. Vi lytter til korte tidsvinduer og definerer dette som direktelyd. Vi lytter til litt lengre tidsvinduer og definerer dette som presensrefleksjoner. Vi lytter til lange tidsvinduer og definerer dette som etterklang. Så da er spørsmålet: Hvilket tidsvindu skal du bruke på målingen for å generere FIR-filteret? Ønsker vi ikke presensrefleksjonene? Ønsker vi ikke etterklang i det heletatt? Ønsker vi kun å korrigere høyttalerne? Er det ikke i rommet mange av utfordringene ligger?
Man kan se for seg en hel masse saker og ting her. Men ettersom det faktisk finnes en rekke ulike korreksjonsløsninger på markedet, så kommer vi lengre om vi forholder oss til det som faktisk finnes, i stedet for å filosofere omkring teoretiske konstruksjoner.
Det som skjer når man korter ned tidsvinduet er at frekvensresponsen blir glattet ut. Det er ikke veldig dramatisk. Det er en praktisk måte å forenkle bildet på, så man ikke ender opp med en unødvendig detaljert korreksjon. Dette gjøres på ulike måter. Et firkantet vindu er den dårligste løsningen. Ulike varianter av frekvensavhengige vinduer er mye bedre.
For øvrig så må man ta hensyn til både tidlige og sene refleksjoner hvis man skal lage en best mulig korreksjon. Det gjøres også.
Det du sier om korte, mellomlange og lange tidsvinduer og hva vi hører, er overforenkling. Vi hører også direktelyd i lange tidsvinduer. Bølgelengden på et 50 Hz signal er ca 7 meter. Du må høre en stund på det for å skille det fra 55 Hz. Og hvis du hører på en lavfrekvent tone med lang varighet, så vil direktelyden blande seg med en eldre utgave av seg selv før den finner veien inn i øregangen. Tror du at du har en hørsel som gjør deg i stand til å splitte blandingen av direktelyd og reflektert lyd – når begge spiller den samme tonen?
Og så hører vi refleksjoner i korte tidsvinduer - spesielt når det vi hører på har kort varighet, som et trommeslag. Diskantgjengivelse av trommer høres forbløffende likt ut i ulike rom, både med og uten korreksjon. Sammenliknet med hodetelefoner og «rent kildesignal» er det mye degradering. Tsk tsk blir slap slap, selv i mastering studioer som er akustikkbehandlet etter alle kunstens regler. En av begrensningene vi må leve med.
En av de lavest hengende fruktene når det gjelder frekvenskorreksjon, er å forhindre at enkelte frekvenser dominerer lydbildet og maskerer andre frekvenser. Da må frekvensresponsen jevnes ut. Til det må man ha analyser og algoritmer som analyserer dette både i tidsdomenet og frekvensdomenet. Hvis man f.eks. løfter en «stasjonær» dipp (den dippen som man ser i den tradisjonelle frekvensresponsen) – så ender man gjerne opp med en eller to midlertidige peaker som vil degradere lydbildet. De som bekjenner seg til EQ og er skeptisk til diplifting har til felles at de bruker primitive metoder til å analysere hva som foregår i rommet. Så de skjønner ikke at den «hulheten» i lyden som kan oppstå når man forsøker å heve en dipp, gjerne skyldes at de utilsiktet har skapt en eller to midlertidige peaker.
Når det gjelder f.eks. Audiolense så brukes det frekvensavhengig filtrering. Dvs kort vindu på høye frekvenser, kombinert med lengre vindu på lave frekvenser. Dette er ikke lengre så nytt og spesielt. Og det er vel stort sett bare DEQX som opererer med en gating der vinduet er konstant. Greit nok hvis man måler utendørs, nærfelt, eller skal lage høyttalere etter gamlemåten, men det er ikke SOTA når man skal skreddersy høyttaleren til rommet den står i.
I tillegg så brukes det (i Audiolense og i hvert fall et par andre løsninger) egne analyser til å forstå hvordan både tidlig og sen rompåvirkning kan innvirke det som vi opplever som direktelyd. Viktig det også.
For det andre, la oss nå si at du vil korrigere rommet. La oss si at du har definert et tidsvindu tilsvarende 100ms. Hvordan tror du impulsresponsen til den målingen ser ut? Vi kan jo slå fast at den er 100ms lang. Vi kan videre slå fast at den består av en initiell puls, med påfølgende etterklang som er dempet ift direktelyden. Så hvordan ser det ut når vi inverterer en slik impulsrespons? Vel, 100ms er 34 meter. Det kan bety 3 ganger frem og tilbake i et rom på drøyt 6 meter. Hvis du skal invertere dette må du sende ut noe lenge før hovedpulsen, nærmere bestemt 100ms før hovedpulsen. Dette skal gå via diverse flater i rommet, og det som ikke skal nå ørene skal altså kanselleres ut av diverse direktelyd fra høyttalerne. Dette er ting som skal skje før selve hovedpulsen, noe som betyr at før anslaget av en transient kommer skal det sendes ut masse korreksjonsinformasjon for det som skjer forsinket i tidsdomenet. Dette er hørbart. Og jo mer du klipper bort av selve rominformasjonen, jo mindre får du korrigert av rommet.
Hvor mye filteraktivitet du må ha "på venstresiden" for å korrigere noen turer frem og tilbake i rommet varierer med frekvens. Men først må vi erstatter det rigide tidsvinduet ditt (som vel kun brukes i DEQX så vidt jeg vet) med et frekvensavhengig tidsvindu. Ellers er ikke dette liv laga. Så får det heller være at det blir litt mindre futt i stråmannen. Med frekvensavhengig filtrering vil tidsdomenekorreksjonen begrenses til noen få perioder (typisk 2-5) ved ulike frekvenser. 100 ms kan f.eks. anvendes opp til 50 Hz hvis man korrigerer litt sånn småhardt. Og så snakker vi om brøkdelen av et millisekund øverst i diskanten. Dette er viktig, for det betyr at man stort sett kun tidskorrigerer direktelyd over schroeder-frekvensen.
Det høres også ut som du lever i den villfarelse at 100 ms med romklang krever 100 ms med pre-ringingende korreksjon for å bli korrigert. Jeg mener å ha hørt den samme villfarelsen på videoer fra DSP-seminaret i fjor. Dette er 99,99% galt. Nesten hele frekvensregisteret kan tidskorrigeres med et faseforløp og et tidsforløp som oppfører seg omtrent som minimum fase – mao ganske problemfritt. En impuls med et haleheng korrigeres av en annen impuls med et haleheng som gjør omtrent det motsatte av den første. Begge halehengene kommer etter hovedpulsen. Det er kun noen få frekvenser - i praksis gjerne 1-3 problematiske dipper som kan ødelegge idyllen her. I den grad slike gjør seg gjeldene, så må de temmes så man unngår hørbar pre-ringing. Men hvis man skal korrigere de, så er det ikke 100 ms. Det kan være 10 ms, flere sekunder og alt imellom. Rent matematisk så kan alt korrigeres. Men hifi utstyret – sikkert rommet også - er ikke presist nok til at det fungerer i praksis.
Tidsdomenekorreksjon kan være tricky, og noen ganger kan det være bedre å nøye seg med minimumfase korreksjon. Men tidsdomenekorreksjon er ikke en umulighet, slik du fremstiller det. De fleste som kan velge mellom en ren frekvenskorreksjon og en kombinert korreksjon med identisk frekvensrespons foretrekker sistnevnte.
Det er for øvrig bare en helt spesiell gruppe som snakker om å «korrigere rommet» slik du gjør. Det er jo ingen som hevder at man kan det. Så det er litt stråmannsargumentasjon det der. Ingen som driver seriøst med lydkorreksjon snakker om å korrigere rommet. Det vi forsøker å få til her, er en lydkorreksjon som reduserer lineær forvrengning slik at det låter bedre, og uten å tilføre hørbare artifakter. Det er både utfordringer og forbedringsmuligheter, men det fungerer svært bra sammenliknet med alternativene.
Så, for det tredje, var det dette med 3 dimensjoner da. For har du begge ørene og hele kroppen eksakt der målemikrofonen stod? Hvis du skal sende ut korreksjonsinformasjon så vil denne være gyldig kun i ett punkt i det tredimensjonale rommet. Hvis du skal måle impulsresponsen til et rom vil den være gyldig fra det punktet der målemikrofonen stod, i teorien et uendelig lite punkt. Man kan godt se for seg at man måler i mange punkter, også lager et gjennomsnitt av frekvensresponsen. Så kan man se for seg at man lager et gjennomsnitt av fasen også, men hva da med refleksjonene? Det vil jo komme tusenvis av refleksjoner som varierer i tidsdomenet mellom de ulike målepunktene. Hva er riktig gjennomsnitt av en refleksjon som dukker på i 5 ulike plasser i tidsvinduet, og ved 5 ulike frekvenser? Det finnes ingen korrekt definisjon på dette, og det medfører hørbare avvik som vil variere etter hvor man befinner seg, hvilket øre som mottar lyden, evt hvilken øvrig del av kroppen som oppfatter lyden osv.
«I teorien er det et uendelig lite punkt»
I praksis så fungerer det ganske så bra.
Hvis du mener at det er så stor forskjell på hvordan akustikken påvirker lyden fra sete til sete, så har du samtidig avgitt en fallitterklæring i forhold til hele ideen om høyttalere. Da er det bare hodetelefoner og utelyd som kan fungere.
Hvis du derimot gjør en del målinger så vil du se at mange interaksjonsproblemer mellom rom og høyttalere er globale. Du trenger ikke gjøre målingene selv en gang. Det finnes masse av sorten på nettet. En høyttaler som låter svært bra i sweet spot vil låte bedre utenfor sweet spot enn en tilsvarende høyttaler som låter dårlig i sweet spot. Som regel vil den låte bedre i naborommet også. Om den er tunet med DSP eller tilfeldigvis bare spiller bra på lag med rommet spiller ingen rolle.
Så var det dette med utfasinger da. Det er jo et problem uansett korreksjonssystem, men når man inverterer en impulsrespons ligger det ingen intelligens i det som gjør at man kan forstå hva en utfasing er. Man kan sette en øvre grense for hvor mange decibel man maksimalt kan gaine et punkt, men om man har full utfasing kan man jo gaine så mye man vil. En full utfasing er summen av to lyder (typisk en direkte og en reflektert) som er like store, i motfase og således går i null. Så om man gainer opp 10dB øker man de to signalene med 10dB, men de blir fortsatt null til sammen. Imidlertid har 250-watts forsterkeren plutselig blitt en 25 watts forsterker, for den vil klippe 10dB tidligere enn uten slik EQ-ing. Da kan man jo si at man ikke skal øke mer enn 3dB ved en eneste frekvens, men hva da med avvik i klangbalansen, delvis utfasing, fravær av room gain ved enkelte frekvenser som helt fint lar seg korrigere? Systemet kan ikke gjette hvor disse utfasingene er og hva som ikke er utfasinger. Igjen må man velge bort produktiv korreksjon for å unngå alvorlige problemer.
Jeg har studert mange hundre målinger inngående, og jeg har aldri sett en total utfasing. Hvis du gainer en gitt frekvens 10 dB så vil den spille 10 dB høyere, uansett om det er en resonanspeak eller en kansellering ned til -30 dB. Men resonnementet er egentlig irrelevant: Det er vel ingen ved sine fulle fem som forsøker å fullt ut korrigere dype dipper. Og de som tror at vi som lager DSP løsninger forsøker på det, vet ikke hva de snakker om.
Men langt viktigere enn dybden på den kraftigste utfasing er hva som skjer med utfasingsfrekvensen i starten og slutten av en tone. Kansellering? Overhodet ikke. Det er jo lyd her, jo! Innfasingen og utfasingen vil også være svekket i nivå. Ikke 30dB, men nok til at det kan ha noe for seg å korrigere den litt opp. Kanskje det som var en u-dal i responsen blir endret til en ikke-hørbar bergsprekk.
Å heve noe 10dB er uproblematisk. Du bruker ikke 90% av effekten i forsterkeren, slik du hevder, til gjøre det. Det er bare tull. Hvis du hever en frekvens med 10 dB, så mister du 10dB gain. Det går med minimalt effekt for å fylle dette dalsøkket. Og så er det gjerne noen topper som høvles ned. Så går det omtrent opp i opp. Det hører også til sjeldenhetene at dette stresser høyttaleren vesentlig. Så du må ha ekstra gain i systemet. Men du trenger ikke mer effekt og mer membranareal.
Default i Audiolense er å tillate 6 dB løft i dippene. Jeg har simulert merbelastningen ved default frekvenskoreksjon ved å kjøre et random signal gjennom korreksjonsfiltrene. Merbelastningen ved ren frekvenskorreksjon var helt ubetydelig – ned mot 0dB. Ved tidsdomenekorreksjon var det ca 1dB merbelastning av forsterker og høyttaler for et gitt lydtrykk. Dvs 1dB lavere ouput for like samme pådrag. Det er ikke ubetydelig, men særlig dramatisk er det ikke.
Når man korrigerer IIR er det ingen start og slutt på tidsvinduet. Det hele foregår i det vi kaller minimum fase. Man kan korrigere rommet med minimum fase. Det blir ikke riktig, men gjør man en god jobb er det rimelig fritt for hørbare artifakter. Noen vil kanskje innvende at å forbedre rommet vil gi bedre lyd enn å EQ-e for problemene. Da vil jeg innvende at å EQ-e for avvikene man har vil gjøre lyden bedre enn å ikke EQ-e, og at dette gjelder både i dårlige og i gode rom.
En biquad (ett stk iir filter) har alltid en start og en slutt. Starten er klart definer, slutten har brukeren ofte ikke kontroll over.
Jeg er enig i at dette vil forbedre lyden, hvis det gjøres bra. Men det kan gjøres vesentlig bedre med FIR.
Men se da for deg at man jobber med EQ til det blir skikkelig bra. Man kan godt lage dette om til en minimum fase frekvenskurve med både energi og faseinnhold. Så kan man godt mate dette inn i en konvolveringsfunksjon og dytte resultatet inn i en FIR-blokk. Det man står igjen med da er et FIR-filter som oppfører seg eksakt på samme måte som IIR-filteret. Man kan godt gjøre rom-målinger, summere dem, ta ut trender og snitt og generere meget godt grunnlag for å korrigere både med FIR og IIR. Saken er at om man ikke gjør dette i minimum fase ender man som regel opp med en del uheldige artifakter. Gjør man det i minimum fase betyr det ikke så mye om man gjør det med IIR eller FIR-filter. Imidlertid, om man ikke analyserer rommet ved hjelp av enten menneskelig eller en slags forprogrammert intelligens kan man ikke gjøre dette og få noen som helst korreksjon av rommet.
Problemet med å gjøre det med IIR er at det ikke blir så presist som det kan bli. Hvis man har lykkes med FIR noen ganger, så blir det aldri skikkelig bra med IIR. Det er enkelt å lage et FIR filter som gjør det samme som en haug med IIR filtre. Men det er ikke enkelt å gå andre veien – selv om vi holder oss til minimum fase korreksjon.
Jeg har aldri sett en IIR korreksjon som er i nærheten av presisjonsnivået til en god FIR korreksjon.
Det hele koker altså ikke ned til FIR vs IIR, men til minimum fase vs eksess fase. Når du måler ekkofritt måler du i all hovedsak minimum fase. Når du inkluderer rommet måler du eksess fase. Du må gjerne gjøre disse målingene og legge dem til grunn for korreksjon, men selve korreksjonen kan ikke jobbe effektivt utenfor minimum fase.
Det er ikke minimum fase vs eksess fase. Det er minimum fase vs mixed fase. Eksess fase er en analytisk konstruksjon som du ikke finner i virkeligheten. I virkeligheten er det mixed phase, der store deler av frekvensområdet har mye til felles med minimum fase.
De fleste høyttalerelementer er tett på minimumfase. Men det finnes unntak der også. Og så er det mixed fase utfordringer ved høyttalere som har flere enn ett element. Og så er det mixed phase utfrodringer i kombinasjonen av høyttaler og rom. Det er en myte at ren høyttalerkorreksjon er super-problemfri minumumfase, mens korreksjon av lyd i rom er så ekstremt problematisk. Begge deler er mulig og begge deler har sine utfordringer.
Alt dette kan relativt problemfritt utsettes for en minimumfase korreksjon. Kvaliteten på resultatet avhenger av hvor presis korreksjonen er. Der er FIR overlegen IIR. Det er kanskje like viktig hvordan man kommer fram til hva som bør korrigeres. Kvaliteten på dette er varierende i FIR leiren. Noe er IMO bra, noe er OK og noe er ganske dårlig. Jeg kan ikke huske å ha sett gode analyser ifm IIR basert korreksjon. Bortsett fra Dirac, som kombinerer de to.
Det var mine generelle betraktninger om saken.
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
Det er altså spesielt punkt 2 som er betydelig overforenklet. Det finnes minst 4 ulike måter å se det på som drar med seg minst 4 ulike problemstillinger, dvs, så lenge ting foregår i eksess fase.
Oppsummering:
Den første «kjempeutfordringen» med størrelsen på tidsvinduet er etter min vurdering en utfordring som ikke eksisterer. I forskningen var den løst for over 20 år siden. I praktisk implementering for 10-15 år siden i flere kommersielle løsninger.
Den andre kjempeutfordringen – der er du inne på en stor utfordring knyttet til tidsdomenekorreksjon – dette med å unngå hørbar pre-ringing. Jeg mener det eksisterer gode prinsippløsninger på dette både i Dirac, Acourate og Audiolense nå. Men det er mange rare impulsresponser rundt omkring, så det dukker av og til opp målinger som ikke spiller på lag med algoritmene. Men du reiser prinsipielle innvendinger, mens jeg ser bare praktiske og løsbare utfordringer. Og jeg synes det er flere ganske gode løsninger tilgjengelig allerede. Og det du antar om 100 ms pre-ringing for å korrigere et 100 ms vindu er altså feil og misvisende.
Så var det dette med 3 dimensjoner. Den «hodet i skruestikka»-myten som skinner igjennom her er bare tull. Sweet spot-en blir hverken større eller mindre ved frekvenskorreksjon. Ved tidskorreksjon blir den muligens litt mindre. Men jeg har ved flere anledninger opplevd at tidskorreksjon også fungerer bra langt utenfor sweet spot, så jeg vet ikke. Men hvis man hører noe er det jo bare å slå over til en ren frekvenskorreksjon.
Den fjerde kjempeutfordringen skal altså være knyttet til utfasing. Her antar du at total utfasing eksisterer, noe det ikke gjør i praksis. Ikke at det betyr så mye. Det er sjelden at det er aktuelt å ta dipper 100 %. Dette er også langt på vei en utfordring som bare eksisterer blant spekulanter med lite innsikt i de aktuelle løsningene.
Det er forøvrig ingen ting som foregår i eksess fase, kanskje bortsett fra en og annen subrutine når korreksjonsfiltrene blir generert. Det er minimumfase og mixed fase ut av høyttaler og i rommet.
Jeg tror også du har misforstått dette med minimumfase vs non-minimumfase, jfr dine påstander om 100 ms pre-ringing og andre tidligere innlegg som har touchet innom dette. Til ditt forsvar skal det sies at det er vanskelig få en intuitiv forståelse av dette minimumfase greiene – en forståelse av hvordan det arter seg i praksis. Der er det nok mange som sliter. Jeg har skjønt litt mer etter hvert, har nok ganske god forståelse for disse refleksjonene som kan skape hørbar pre-ringing. Men det er sikkert mye som gjenstår her i gården også. Den «offisielle» versjonen av minimumfase vs mixed fase er strengt matematisk og DSP-faglig, og favner mye videre enn det som har med høyttaler og rom å gjøre. Et non-minimum fase signal kan f.eks. være en eksoterm reaksjon eller en kjerne-eksplosjon som bare ekspanderer og ekspanderer. Der signalet starter svakt og så bare blir sterkere og sterkere. Ustabile greier. Helt uhåndterlig. Ja, man kan også lage IIR filtre som fungerer på den måten. Og noen ganger skjer det også. Et minimumfase signal kan beskrives som en liten eksplosjon som bare dør ut.
All lyd som kommer ut av en høyttaler og deiser veggimellom i et rom, starter med en kraftig puls som dør ut etter en stund. Veldig minimum-fase likt i det store bildet - men med en del lokale avvik. Disse avvikene skaper utfordringer ift tidsdomenekorreksjon, men ikke av en størrelsesorden som non-minimumfase signaler i sin alminnelighet kan skape. Litt modifisering her og litt moderering der, så er det mulig å håndtere de problematiske frekvensene på en ganske så skånsom måte og få en en respons i tidsdomenet som er vesentlig bedre enn man får ved en ren frekvenskorreksjon – vel og merke innenfor et høyst tidsbegrenset vindu. Med klokere og bedre akustikkbehandling, så burde det gå an å redusere disse utfordringene til peanuts. Derfor er det egentlig ganske trist at småromsakustikere og en del andre grupperinger som kan en del om hifi har så mye fordommer og så lite faktabaserte kunnskaper om DSP.