Mikrofonkompensation, hur?

Hur funkar tekniken bakom bra hifi?

Moderator: Redaktörer

Användarvisningsbild
Svante
Audiot!
 
Inlägg: 37552
Blev medlem: 2004-03-03
Ort: oakustisk

Mikrofonkompensation, hur?

Inläggav Svante » 2008-01-12 22:10

Jag sitter här och funderar.

När man har ett mätprogram som kan använda en kalibreringskruva för mätmikrofonen, hur brukar då mätprogrammen göra med fasen?

Jag använder ju väldigt sällan program som andra skriver, så jag vet faktiskt inte. :oops:

Jag kan se tre möjligheter:

1. Man ändrar bara amplitudinformationen, men gör ingenting med fasen.
2. Man räknar ut vad fasen borde vara utifrån amplitudkurvan och diverse antaganden.
3. Man kräver kalibreringsdata med fasinformation.

Så hur gör programmen?
Så länge har jag längat efter att loudness war skulle vara över. Nu börjar jag tro att vi faktiskt är där. Kruxet är att vi förlorade.

Användarvisningsbild
Naqref
Saknad grundare, †2014
 
Inlägg: 27893
Blev medlem: 2003-03-23
Ort: Krischansta

Inläggav Naqref » 2008-01-12 22:23

Min mik-kapsel kom med både mätkurva med fasinfo och kaliberingsfil. Gissar att den senare innehöll även fasinfon. Svårt att veta när filerna är inkompatibla med mätprogget. :roll:
Audiodesigner åt en del. Larsen, Holographic Audio etc.
CEO och huvudägare i Acoustic Landscape R&D AB.
CTO / R&D Manager och delägare i Acoustic Illusion AB.

Användarvisningsbild
Svante
Audiot!
 
Inlägg: 37552
Blev medlem: 2004-03-03
Ort: oakustisk

Inläggav Svante » 2008-01-12 22:40

Naqref™ skrev:Min mik-kapsel kom med både mätkurva med fasinfo och kaliberingsfil. Gissar att den senare innehöll även fasinfon. Svårt att veta när filerna är inkompatibla med mätprogget. :roll:


Ah. Vad är det för format på filen du fick?
Så länge har jag längat efter att loudness war skulle vara över. Nu börjar jag tro att vi faktiskt är där. Kruxet är att vi förlorade.

Användarvisningsbild
Naqref
Saknad grundare, †2014
 
Inlägg: 27893
Blev medlem: 2003-03-23
Ort: Krischansta

Inläggav Naqref » 2008-01-12 22:42

.FR2 resp .CAL om det säger mer. Kan inte uttolka så mycket via texteditorn i a f.
Audiodesigner åt en del. Larsen, Holographic Audio etc.
CEO och huvudägare i Acoustic Landscape R&D AB.
CTO / R&D Manager och delägare i Acoustic Illusion AB.

RogerJoensson
 
Inlägg: 5287
Blev medlem: 2006-10-22

Inläggav RogerJoensson » 2008-01-13 02:02

Loudspeakerlab http://lsp-lab.com/ accepterar MDF-filer (Microphone Data Format) eller DAT-filer för mikrofonkompensation. Det sistnämda är det som programmet själv använder när man sparar mätningar. I bägge formaten ingår fasresponsen och programmet tar också hänsyn till denna i de kompenserade mätningarna.

Själv (som tillverkar mikrofoner för brödfödan) vågar jag inte lita på kapslar med kompensationskurva eller billiga mätmikar, som referenser. Jag har tidigare provat ett par varianter, bla en "riktig" mätmik från Monacor med mätkurva och allt. Den slog fel på mer än 3dB i diskanten, on axis! 8O -Så det fick bli att köpa en Earthworks mätmik, som jag innerligt hoppas mäter rätt...

Hur som helst att köpa lösa kapslar med kalibreringskurva är ganska meningslöst, om man tänker bygga in dem i ett hölje själv. Det krävs inte många tiondels mm ökad diameter eller minimal luftglipa mot ev. rörhylsa förrän de ger annorlunda resultat, främst i diskanten. Så även om man köpt kalibrerade kapslar så bör man ändå få dem kalibrerade mot en riktig mätmik för att veta hur de egentligen mäter. :(

Användarvisningsbild
Svante
Audiot!
 
Inlägg: 37552
Blev medlem: 2004-03-03
Ort: oakustisk

Inläggav Svante » 2008-01-13 03:13

RogerJoensson skrev:Loudspeakerlab http://lsp-lab.com/ accepterar MDF-filer (Microphone Data Format) eller DAT-filer för mikrofonkompensation. Det sistnämda är det som programmet själv använder när man sparar mätningar. I bägge formaten ingår fasresponsen och programmet tar också hänsyn till denna i de kompenserade mätningarna.


Ja, det mejkar ju sens att göra så. Då kan man ta upp en kalibreringsfil själv med mätprogrammet, bara man har en juste referensmik.

RogerJoensson skrev:Hur som helst att köpa lösa kapslar med kalibreringskurva är ganska meningslöst, om man tänker bygga in dem i ett hölje själv. Det krävs inte många tiondels mm ökad diameter eller minimal luftglipa mot ev. rörhylsa förrän de ger annorlunda resultat, främst i diskanten. Så även om man köpt kalibrerade kapslar så bör man ändå få dem kalibrerade mot en riktig mätmik för att veta hur de egentligen mäter. :(


Ja, det är ju precis som med högtalarelement som man sätter i en låda, det blir kantdiffraktion. Likadant blir det med mikrofoner, men eftersom de är mindre hamnar baffelsteget högre upp i frekvens.

Intressant ändå, kanske är tiden förbi när man bara fick en kurva på papper, utan fasinfo.
Så länge har jag längat efter att loudness war skulle vara över. Nu börjar jag tro att vi faktiskt är där. Kruxet är att vi förlorade.

Användarvisningsbild
chrisss
 
Inlägg: 973
Blev medlem: 2007-01-09
Ort: Kungsängen/Sverige

Re: Mikrofonkompensation, hur?

Inläggav chrisss » 2008-01-14 01:03

Svante skrev:Jag sitter här och funderar.

När man har ett mätprogram som kan använda en kalibreringskruva för mätmikrofonen, hur brukar då mätprogrammen göra med fasen?

Jag använder ju väldigt sällan program som andra skriver, så jag vet faktiskt inte. :oops:

Jag kan se tre möjligheter:

1. Man ändrar bara amplitudinformationen, men gör ingenting med fasen.
2. Man räknar ut vad fasen borde vara utifrån amplitudkurvan och diverse antaganden.
3. Man kräver kalibreringsdata med fasinformation.

Så hur gör programmen?



Alternativ 1 är en kompromiss men felet i fas pga ändrad amplitud måste vara lågt jfr med amplitudfelet. Även om det säkert ger ett resultat som ligger väldig nära sanningen tilltalar det knappast dig som tekniker.


Alternativ 2 kan ju inte vara så svårt för dig. Om man antar att en mic är minimumfas så är det ju bara att göra en HBT på amplitiden.
Lätt för mig att säga som inte vet hur man gör i praktiken :P

Exempel på min korrigeringsfil.
SN160050.MDF

MDF (Microphone Data File) Format
Author=LinearX Systems Inc
Date=Nov 18,2000 Sat 10:04AM
Model=M31
Serial=160050
dBspl= 94.00
dBm= -23.47
Points=552
Index Freq(Hz) dB Deg
1 10.15 2.20 0.00
2 10.31 2.01 0.00
3 10.46 1.92 0.00
4 10.62 1.90 0.00
5 10.78 1.87 0.00
.
.

305 977.77 0.07 0.00
306 992.57 0.04 0.00
307 1007.60 0.00 0.00
308 1022.85 -0.06 0.00
309 1038.33 -0.10 0.00
310 1054.05 -0.13 0.00
311 1070.01 -0.15 0.00
.
.

548 37661.57 -6.72 0.00
549 38231.73 -6.40 0.00
550 38810.50 -6.39 0.00
551 39398.03 -6.42 0.00
552 39994.48 -6.33 0.00
End

Eftersom fasberäkningen kräven amplituddata 0-> oändligt så får man göra en manuell "tailkorrektion". För min fil blir det:
2.2 från 0 - 10Hz och -6.33 från 40kHz och uppått.


Eftersom mitt mätsystem inte mäter fas har jag inte samma problem.
Mäter amplitud. Mätsystemet korrigerar automatisk amplituden.
Gör "tailkorrektion" nere och uppe. Genererar minimumfas. OK.
Christian Lindblom
0704 - 91 51 56

Användarvisningsbild
Svante
Audiot!
 
Inlägg: 37552
Blev medlem: 2004-03-03
Ort: oakustisk

Inläggav Svante » 2008-01-14 01:10

Tackar. Jag har konfererat lite med Lilltroll om de där hilbertarna. Jag måste ju skriva dem själv, dessvärre.
Så länge har jag längat efter att loudness war skulle vara över. Nu börjar jag tro att vi faktiskt är där. Kruxet är att vi förlorade.

Användarvisningsbild
lilltroll
 
Inlägg: 1697
Blev medlem: 2005-01-03

Inläggav lilltroll » 2008-01-14 01:31

Fick du till det med herr David Hilbert ?
Beach 2010 - Nyårslöftet - ehh ingen kommentar
* * * * * * * * * * * * * * * * *

Användarvisningsbild
Svante
Audiot!
 
Inlägg: 37552
Blev medlem: 2004-03-03
Ort: oakustisk

Inläggav Svante » 2008-01-14 08:56

lilltroll skrev:Fick du till det med herr David Hilbert ?


Hehe, jag har inte träffat honom än... Det här är ett projekt som inte blir klart i morgon. Det måste mogna i min lilla hjärna.
Så länge har jag längat efter att loudness war skulle vara över. Nu börjar jag tro att vi faktiskt är där. Kruxet är att vi förlorade.

Användarvisningsbild
chrisss
 
Inlägg: 973
Blev medlem: 2007-01-09
Ort: Kungsängen/Sverige

Inläggav chrisss » 2008-01-14 09:16

Svante skrev:
lilltroll skrev:Fick du till det med herr David Hilbert ?


Hehe, jag har inte träffat honom än... Det här är ett projekt som inte blir klart i morgon. Det måste mogna i min lilla hjärna.


Måste du skriva ett eget program?

Finns det inga färdiga rutiner/algoritmer i t.ex MathCAd

Annars kanske det finns nåt man kan använda på frd consortium.
http://www.pvconsultants.com/audio/frdgroup.htm

http://www.pvconsultants.com/audio/targetgen/mprm.htm

"The purpose of Minimum Phase Response Modeler is allow the user to create and save modeled frequency and impedance files (.frd & .zda) for use in other software, such as crossover design programs. It also allows for the user to import existing frequency response files and modify them in various ways. The program will calculate the minimum phase response for whatever modeling or modifications have been made. Once the modifications or modeling are complete the results can be saved as an frd file. The output will contain both frequency and phase response for 500 sample points"
Christian Lindblom
0704 - 91 51 56

Användarvisningsbild
Svante
Audiot!
 
Inlägg: 37552
Blev medlem: 2004-03-03
Ort: oakustisk

Inläggav Svante » 2008-01-14 19:04

chrisss skrev:Måste du skriva ett eget program?

Finns det inga färdiga rutiner/algoritmer i t.ex MathCAd


Hehe, nej, någon klippa-klistra-programmerare blir jag aldrig.

Jag vet inte om det framgick. men det handlar inte om att lösa kalibreringen för en egen specifik mikrofon, utan om att få in funktionaliteten i mitt eget mätprogram.

Sen är det lite stimulerande att göra även skruvarna själv. Även om det tar lite tid.
Så länge har jag längat efter att loudness war skulle vara över. Nu börjar jag tro att vi faktiskt är där. Kruxet är att vi förlorade.

dimitri
 
Inlägg: 4604
Blev medlem: 2003-09-20
Ort: Götelaborg

Inläggav dimitri » 2008-01-14 19:11

Jag förstår ingenting men jag är glad att vara medlem i detta forum.

Användarvisningsbild
Jocke
 
Inlägg: 6762
Blev medlem: 2005-09-21

Inläggav Jocke » 2008-01-14 19:32

dimitri skrev:Jag förstår ingenting men jag är glad att vara medlem i detta forum.


Jag med! Har inte heller träffat Hilbert. Gillar Svantes program och blir de bättre så gillar jag dem ännu mer!

/J :wink:

Användarvisningsbild
Svante
Audiot!
 
Inlägg: 37552
Blev medlem: 2004-03-03
Ort: oakustisk

Inläggav Svante » 2008-01-14 21:25

dimitri skrev:Jag förstår ingenting men jag är glad att vara medlem i detta forum.


Alltså, jag vill implementera möjligheten att kompensera för en mätmikrofons tonkurva i mitt högtalartonkurvemätarprogram. Då undrade jag hur jag ska göra med fasinformationen, och därav min fråga om hur andras program gör. Jag använder ju så sällan andras program.

Om man antar att en mikrofon är ett minimumfas-system, vilket är ganska rimligt, så kan man räkna ut fasgången även om man bara har tonkurvan. För att göra det behöver man Hilberttransformen, och lite mer knökande med kurvorna. Exakt hur jag ska få in det i mitt program, och om jag överhuvudtaget behöver göra det, vet jag inte ännu.
Så länge har jag längat efter att loudness war skulle vara över. Nu börjar jag tro att vi faktiskt är där. Kruxet är att vi förlorade.

Användarvisningsbild
lilltroll
 
Inlägg: 1697
Blev medlem: 2005-01-03

Det är inte rocketscience det här

Inläggav lilltroll » 2008-01-15 01:47

En liten MATLAB demo. Jag simulerar en mikrofon som har fått sig en smäll och har en redig resonans runt 13 kHz.
Sen plottar jag den riktiga fasen från systemet, och den som jag fick från Hilberttransformen.

Kod: Markera allt
 [B,A]=butter(2,[0.50 0.7]);
 [H,W]=freqz(B,A,4096);
 
 Response=H+1;
 PHASE=imag(-hilbert(log(abs(Response))));
 
 subplot(2,1,1),semilogx(W/pi*22050,20*log(abs(Response)),'k','linewidth',2);
 xlim([1000 20000]);
 ylabel('Response [dB]')
 grid on
 title('Microphone Simulation');
 
 subplot(2,1,2),semilogx(W/pi*22050,180/pi*angle(Response),W/pi*22050,180/pi*(PHASE-PHASE(1)));
 xlim([1000 20000]);
 xlabel('Frequency [Hz]')
 ylabel('Phase [Degrees]');
 legend('Real phase','Phase from Hilbert transform');
 grid on
 


Raden att fästa vikten på är den här:
Kod: Markera allt
PHASE=imag(-hilbert(log(abs(Response))));


Bild

Då Hilberttransformen är diskret så kommer det alltid finnas ett litet fel mellan den verkliga fasen och den estimerade fasen. Felet minskar med växande längd på Hilbert filret, dvs ju fler punkters FFT man använder ju bättre blir det.

OBS. Nollställena måste strikt ligga i vänstra halvplanet. Några nollställen på jw-axeln tolereras inte, ty log(0)= - Inf

Alltså: Hilberttransformera logaritmen av responskuran/tonkurvan och byt tecken så fås faskurvan direkt i enheten [rad]
Beach 2010 - Nyårslöftet - ehh ingen kommentar
* * * * * * * * * * * * * * * * *

rotel2
 
Inlägg: 618
Blev medlem: 2006-08-26

Inläggav rotel2 » 2008-01-15 23:02

länge leve Hilbert! :D
Då jag utnyttjar han flitigt :roll:


Återgå till Teknikforum


Vilka är online

Användare som besöker denna kategori: Inga registrerade användare och 18 gäster