[Audio] Volymkontroll mellan två lägen.
Postat: 18 februari 2010, 14:37:33
Med inspiration från problemen med volyminställning i tråden Grafisk Equalizer ville jag utreda hur andra har löst det. Designen som analyseras här är tagen från Ranes equalizer ME 15S. Ranes schema kan du ladda ner här.
Genom att modellera ovanstående schema med potentiometern R2 förenklat till två resistanser erhåller vi nedanstående figur.
Där 0 < k < 1 anger läget på potentiomtern.
R5 = R1 ,
R6 = k·R2 ,
R7 =(1-k)·R2 ,
R8 = R3 ,
R9 = R1 ,
R10 = (1-k)·R2 = R7 ,
R11 = k·R2 = R6 ,
R12 = R4 .
KCL ger oss
samt
Vi kan nu skriva överföringsfunktionen som
Ekvationen för G2 = v2/vs fås på liknande sätt.
Mha Matlab kan vi plotta överföringsfunktionerna beroende av olika värden på k. Vi börjar med att definiera olika resistorvärden.
Funktionen för G1 definierar vi genom
och G2 genom
Tillslut kan vi se vad man får om man summerar v1 och v2 för olika värden på k.
Resultat blir enligt nedanstående figur.
Vid k=0 får vi ca -10 dB dämpning och vid k = 1 får vi ca 10 dB. För mitt läget hos potentiometern blir k=0.5 vilket ger ca 0 dB, dock får man se upp med verkliga komponenter som har stora avvikelser. Sedan bör det påpekas att överföringsfunktionerna bör optimeras med bättre komponentvärden. Ranes schema borde vara en bra start för exempelvärden.
Genom att modellera ovanstående schema med potentiometern R2 förenklat till två resistanser erhåller vi nedanstående figur.
Där 0 < k < 1 anger läget på potentiomtern.
R5 = R1 ,
R6 = k·R2 ,
R7 =(1-k)·R2 ,
R8 = R3 ,
R9 = R1 ,
R10 = (1-k)·R2 = R7 ,
R11 = k·R2 = R6 ,
R12 = R4 .
KCL ger oss
samt
Vi kan nu skriva överföringsfunktionen som
Ekvationen för G2 = v2/vs fås på liknande sätt.
Mha Matlab kan vi plotta överföringsfunktionerna beroende av olika värden på k. Vi börjar med att definiera olika resistorvärden.
Kod: Markera allt
% definitioner.m
R1 = 1;
R2 = 100;
R3 = 10;
R4 = 0.1;
Kod: Markera allt
function [G1] = G1(k)
definitioner;
R5 = R1;
R6 = k.*R2;
R7 = (1-k).*R2;
R8 = R3;
% h1 = va/vs
h1 = (1/R5)./(1/R5+1./R6+1./R7);
% h2 = v1/va
h2 = -R8./R7;
G1 = h1.*h2;
end
Kod: Markera allt
function [G2] = G2(k)
definitioner;
R9 = R1;
R10 = (1-k).*R2;
R11 = k.*R2;
R12 = R4;
% h1 = va/vs
h1 = (1/R9)./(1/R9+1./R10+1./R11);
% h2 = v1/va
h2 = -R12./R11;
G2 = h1.*h2;
end
Kod: Markera allt
k = [0:0.01:1];
semilogy(k,abs(G1(k)+G2(k)))
Vid k=0 får vi ca -10 dB dämpning och vid k = 1 får vi ca 10 dB. För mitt läget hos potentiometern blir k=0.5 vilket ger ca 0 dB, dock får man se upp med verkliga komponenter som har stora avvikelser. Sedan bör det påpekas att överföringsfunktionerna bör optimeras med bättre komponentvärden. Ranes schema borde vara en bra start för exempelvärden.