LILLKUB

Hemmapulare debatterar lämpligen i detta forum.

Moderator: Redaktörer

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

Varianter

Inläggav lilltroll » 2006-03-24 21:51

Här kommer ännu fler mätningar på "lillkub" och trollboxar.

Om man nu tänker sig att man vill härma det som BASTA kallar AC-Bass, Audio Pro kallar ACE och YAMAHA kallar YST så kan det se ut någonting så här.

Bild

70 dB motsvarar 93 dB (ref 20 microPa) @ 1 m strålandes i halvrymd.

Mättid 90 s, 40kg sitter på lådan.

Röd heldragen - 1:a ton
Rödpunkt - 2:a ton
Blå - 3:e ton
Grön 4:e ton

Men det är så tråkigt. Istället kan man t. ex. tänka sig följande som :oops: "färgar" 8) dist. annorlunda

Bild

och så lite överdrivet

Bild

När Svante såg analogischemat för de två övre så trodde han inte att jag skulle kunna realisera det stabilt. 8)

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

Dist killer

Inläggav lilltroll » 2006-03-24 22:37

Ett försök till en dist killer :D

Bild

70 dB motsvarar 93 dB (ref 20 microPa) @ 1 m strålandes i halvrymd.

Mättid 90 s, 40kg sitter på lådan.

Röd heldragen - 1:a ton
Rödpunkt - 2:a ton
Blå - 3:e ton
Grön 4:e ton

Användarvisningsbild
paa
Sökaren
 
Inlägg: 35894
Blev medlem: 2005-01-10

Re: Varianter

Inläggav paa » 2006-03-24 23:50

lilltroll skrev:Här kommer ännu fler mätningar på "lillkub" och trollboxar.

Om man nu tänker sig att man vill härma det som BASTA kallar AC-Bass, Audio Pro kallar ACE och YAMAHA kallar YST så kan det se ut någonting så här.

Hur gammalt är det där patentet egentligen, har det inte gått ut snart?
Medlem på forumet för hifi; Faktiskt.se, numera Faktiskt.io sedan jan 10, 2005
Numera pensionär.
Vi har sålt Sonic Design till Winn Scandinavia, vilka driver bl.a Ljudfokus och BRL.

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

Re: Varianter

Inläggav Svante » 2006-03-24 23:59

paa skrev:
lilltroll skrev:Här kommer ännu fler mätningar på "lillkub" och trollboxar.

Om man nu tänker sig att man vill härma det som BASTA kallar AC-Bass, Audio Pro kallar ACE och YAMAHA kallar YST så kan det se ut någonting så här.

Hur gammalt är det där patentet egentligen, har det inte gått ut snart?


Det ursprungliga patentet togs i samband med exjobbet som gjordes 1976. Sen har det lagts till något annat patent, men det har jag inte i huvudet när det var, men jag tror att de också har gått ut.
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

I'l lov that deeep deeep basssssss

Inläggav lilltroll » 2006-03-25 00:02

Om man nu bara vill ha botten!

Bild

Hur låter det då ? Tja, spelar man P3 så hör man endast elbasen, och lite baskagge.

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

Dist mät

Inläggav lilltroll » 2006-03-25 23:35

Knopade ihop ett eget dist-mät prog :D baserad på log-svept sinus och testmätte på lillkub (utan trollerilådor)

Bild
OBS, ej kalibrerad nivå.

Heldragen = 1:a ton
Rödprickig = 2:a ton
Blåprickig = 3:e ton

Här kommer tricket, nu är nivån nästan konstant från 26 Hz till 416 Hz.
Det blir så mycket lättare och jämföra disten då mellan olika system !!!

Bild

och lite starkare

Bild

OBS, ej kalibrerad nivå.

Progget är helautomatiskt. Man trycker bara på enter :lol: Dock bara BETA än så länge
Senast redigerad av lilltroll 2006-03-26 00:26, redigerad totalt 1 gång.

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

Inläggav Svante » 2006-03-25 23:42

F*n lilltroll ska du göra mig arbetslös? :wink:

Är det svep och många FFTer som swedist, eller är det mer avancerade varianter?
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
Bamsefar
 
Inlägg: 6281
Blev medlem: 2003-08-27

Re: Varianter

Inläggav Bamsefar » 2006-03-26 00:06

Svante skrev:
paa skrev:
lilltroll skrev:Här kommer ännu fler mätningar på "lillkub" och trollboxar.

Om man nu tänker sig att man vill härma det som BASTA kallar AC-Bass, Audio Pro kallar ACE och YAMAHA kallar YST så kan det se ut någonting så här.

Hur gammalt är det där patentet egentligen, har det inte gått ut snart?


Det ursprungliga patentet togs i samband med exjobbet som gjordes 1976. Sen har det lagts till något annat patent, men det har jag inte i huvudet när det var, men jag tror att de också har gått ut.


Patentet, om det nu fortfarande är giltigt, kan jag knappast tänka mig spelar någon roll i just detta skedet....

Men om lilltroll skulle börja tillverka så kan det vara värt att kolla upp kanske. Å andra sidan servosystem får ju vem som helst konstruera (även om det kräver en accelerometer kopplad till själva konen, vilket inte är fallet här som jag förstår det hela).

För övrigt, 19 år är väl tiden för patent om jag minns rätt, 2006-19 = 1987.

YST är ACE, iom att Yamaha köpte rättigheterna att utnyttja konstruktionsprincipen en gång i tiden (undrar om inte det var 1984).
Best Regards
Bamsefar

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

Inläggav lilltroll » 2006-03-26 00:14

Svante skrev:F*n lilltroll ska du göra mig arbetslös? :wink:

Är det svep och många FFTer som swedist, eller är det mer avancerade varianter?


Inga amatörsaker här! :?
Analytisk robust invers i tidsdomänen :), bara för att inte göra som du tänkt 8) tukey-fönstringen medför rippel, men det trunkeras nästan bort helt och hållet. Men där finns förbättringsmöjligheter.

OBS BETA kod VARNING för FULkonstanterna vilka beror på datorn.

Kod: Markera allt
%Trolldist
%Mäter dist. m h a log-svept sinus
close all
clear all
clc

fs=44100;
T=10;
f_start=2;
f_end=22000;% Hz
t=0:1/fs:T-1/fs;

sprintf('Calculating signal\n');
y = chirp(t,f_start,T,f_end,'logarithmic',-90);
y=y.*tukeywin(length(y),0.1)';
Y=fft(y,2*length(y));

k=log( f_end ./ f_start )/T;

yinv=y(end:-1:1).*exp(-t*k); % Analytisk invers i tidsdomänen
YINV=fft(yinv,2*length(y));

%Kontroll av inversen
f=linspace(0,fs/2,length(y));
figure,semilogx( f, 20*log10(abs(YINV(1:end/2))) , f , 20*log10(abs(Y(1:end/2)) ), f , 20*log10( abs( Y(1:end/2).*YINV(1:end/2) )) );
xlim([f_start f_end])

sprintf('Recording signal\n')
pause(0.3)

soundsc(y,fs);DATA=wavrecord(length(y),fs,1); %FULHACK - tidsvariant !

sprintf('Processing recording\n')

DATA=DATA.*tukeywin(length(DATA),0.2);
DATA=[DATA' zeros(1,length(DATA))];
out=fftfilt(yinv,DATA);

[apa, i]=max(abs(out)); % Korrigera FULHACK
FUL=300; % FULKONSTANT pga FULHACK

part1=out(i-FUL:i-FUL+fs);
part2=out(i-FUL-round(log(2)/k*fs):i-FUL-1);
part3=out(i-FUL-round(log(3)/k*fs):i-FUL-round(log(2)/k*fs)-1);
Fpart1=fft(part1);
Fpart2=fft(part2);
Fpart3=fft(part3);

F1=linspace(0,fs/2,length(Fpart1)/2);
F2=linspace(0,fs/4,length(Fpart2)/2);
F3=linspace(0,fs/6,length(Fpart3)/2);
figure,semilogx(F1,20*log10(abs(Fpart1(1:end/2))),'r',F2,20*log10(abs(Fpart2(1:end/2))),'r:',F3,20*\
log10(abs(Fpart3(1:end/2))),'b:','linewidth',2);
grid on
xlim([5*f_start f_end/3])
ylim([20 120])
xlabel('Frequency [Hz]')
ylabel('SPL [dB]')
legend('Grundton','2:a tonsdist','3:e tonsdist')

break
%Konstant utnivå

A=abs(Fpart1(250))./abs(Fpart1(1:end/2));
A(1:250)=1; %i_250=26 Hz.
A(4000:end)=A(4000); %i_250=416 Hz.
B=fir2(2*fs,F1/(fs/2),A);

test=fftfilt(B,[y zeros(1,fs)]);
test=test(fs/2:end-fs/2-1);
soundsc(test,fs);DATA1=wavrecord(length(test),fs,1); %FULIS

DATA1=DATA1.*tukeywin(length(DATA1),0.2);
DATA1=[DATA1' zeros(1,length(DATA1))];
out=fftfilt(yinv,DATA1);
[apa, i]=max(abs(out));

FUL1=3000; %Fulkonstant
part1=out(i-FUL1:end);
part2=out(i-FUL1-round(log(2)/k*fs):i-FUL1-1);
part3=out(i-FUL1-round(log(3)/k*fs):i-FUL1-round(log(2)/k*fs));
Fpart1=fft(part1);
Fpart2=fft(part2);
Fpart3=fft(part3);

F1=linspace(0,fs/2,length(Fpart1)/2);
F2=linspace(0,fs/4,length(Fpart2)/2);
F3=linspace(0,fs/6,length(Fpart3)/2);
figure,semilogx(F1,20*log10(abs(Fpart1(1:end/2))),'r',F2,20*log10(abs(Fpart2(1:end/2))),'r:',F3,20*\ log10(abs(Fpart3(1:end/2))),'b:','linewidth',2);
grid on
xlim([5*f_start f_end/3])
ylim([0 100])
xlabel('Frequency [Hz]')
ylabel('SPL [dB]')
legend('Grundton','2:a tonsdist','3:e tonsdist')

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

MATLAB fundering

Inläggav lilltroll » 2006-03-26 00:59

Den här raden är anka :( i MATLAB
soundsc(y,fs);DATA=wavrecord(length(y),fs,1);

Börja spela upp, och sedan börja spela in. Tappar helt synken mellan in och ut.
Finns det något bättre alternativ för full duplex in/uppspelning i MATLAB ?

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

Re: MATLAB fundering

Inläggav Svante » 2006-03-26 01:16

lilltroll skrev:Den här raden är anka :( i MATLAB
soundsc(y,fs);DATA=wavrecord(length(y),fs,1);

Börja spela upp, och sedan börja spela in. Tappar helt synken mellan in och ut.
Finns det något bättre alternativ för full duplex in/uppspelning i MATLAB ?


Kanske... Lägga till en synkpuls i det du spelar upp... :wink: :lol:
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

Re: MATLAB fundering

Inläggav lilltroll » 2006-03-26 01:24

Svante skrev:
lilltroll skrev:Den här raden är anka :( i MATLAB
soundsc(y,fs);DATA=wavrecord(length(y),fs,1);

Börja spela upp, och sedan börja spela in. Tappar helt synken mellan in och ut.
Finns det något bättre alternativ för full duplex in/uppspelning i MATLAB ?


Kanske... Lägga till en synkpuls i det du spelar upp... :wink: :lol:


Nej fy, det hjälper inte. Betänk att jag mäter på system med en övre gränsfrekvens på 50 Hz ibland. Men tricket stereo, med ena kanalen som referns blir nog bra !!!

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

Kalibrerade mätningar

Inläggav lilltroll » 2006-03-27 23:55

Här kommer ver 2 av trolldist. Nu i sync och klart förbättrad.

Original ser det ut så här med lillkub.

Frekvensgång
Bild

Dist vid 95dB (förstaton) SPL @ 1 meter

Bild

Klassisk Servo

Frekvensgång
Bild

Dist vid 95dB (förstaton) SPL @ 1 meter

Bild

Alternativt Servo

Frekvensgång
Bild

Dist vid 95dB (förstaton) SPL @ 1 meter

Bild

Dist 95 dB överlagrade

Bild

Användarvisningsbild
Nattlorden
Pumpkin/Redaktör
 
Inlägg: 57935
Blev medlem: 2003-10-28
Ort: Grå Hamnarna

Inläggav Nattlorden » 2006-03-28 07:05

Hmm... innebär detta att subjektivistfalangen troligtvis skulle uppskatta "klassisk servo" bäst?
It's all fun and games until Darth Vader comes.

Användarvisningsbild
Wolfie
Inrökt
 
Inlägg: 6502
Blev medlem: 2003-06-13
Ort: En vik i Barken

Inläggav Wolfie » 2006-03-28 07:35

Det finns en bättre .wav "spelare" i Matlab sedan 6.3 versionen.
Har för mig att den heter wavplay() eller något dylikt.
Läskommandot, om jag inte minns helt galet heter då wavread().

Den som söker i hjälpen skall finna det korrekta svaret :lol: :D

(i den spelaren går det exempelvis att stoppa uppspelningen innan hela
.wav filen har spelats upp, vilket ju kan vara skönt ibland).

Sitter på jobbet nu, och har inte tillgång till Matlab, så bättre än så kan jag
inte hjälpa.

Men posta gärna en studentlicens på senaste Matlab versionen till mig
så hjälper jag gäärna till :lol:
Inga anknytningar

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

Mera dist

Inläggav lilltroll » 2006-03-29 20:09

Här kommer ver 3 av trolldist, med några förbättringar.

Här sitter hötalaren i serie med en rent resestiv "potentiometer"

Först dist vid 95dB (förstaton) SPL @ 1 meter, med en serieresistans på 0 ohm.

Bild


Sedan dist vid 95dB (förstaton) SPL @ 1 meter, med en serieresistans på -3.7 ohm.
Bild

Sedan dist vid 95dB (förstaton) SPL @ 1 meter, med en serieresistans på 3 ohm.
Bild
Jag förstår inte riktigt uppkomsten av det tydliga nollstället vid 58 Hz :?:

Sedan dist vid 95dB (förstaton) SPL @ 1 meter, med en serieresistans på 6 ohm.
Bild

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

Inläggav lilltroll » 2006-03-29 20:50

I ver. 4.0 ska engelskan vara rätt oxå :oops:

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

Re: Mera dist

Inläggav Svante » 2006-03-29 21:04

lilltroll skrev:Jag förstår inte riktigt uppkomsten av det tydliga nollstället vid 58 Hz :?:


Spekulation: Kan det vara två distorsionsmekanismer som båda genererar andraton, men att de råkar vara i motfas. Vid 58 Hz råkar de dessutom vara lika starka, så att de tar ut varandra.

Man skulle ju kunna tänka sig tex att luften i lådan eller elmentets fjädring ger dist åt ett håll och talspoleinduktansen åt det andra.
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

Trolldist v. 3.9

Inläggav lilltroll » 2006-04-01 07:01

Nu är jag uppe i ver 3.9 BETA av trolldist som börjar bli stabil :)


Kod: Markera allt
%Trolldist BETA v 3.9
%Dist & frequency response measuring program using log-swept sine
%Mikael Bohman VT06
%MATLAB Version 7.1.0.246 (R14) Service Pack 3
close all
clear all
clc


fs=16000;   %Samplingsfrekvens [Hz]
T=15;       %Sveptid [s]
f_start=15;    %Startfrekvens [Hz]
f_end=8000;%    %Slutfrekvens [Hz]
CAL=0;          %Kalibrering dB
KONTROLL=1;      % Kontroll av invers
INITTEST=0;     %Initialtest av nivån
PREDELAY=512;     % Predelay omgång 1 i samples
Prefactor=10;       %Chirpen börjar på en frekvens som är f_start/Precator
Postfactor=2205/2000;     %Chirpen slutar på en frekvens som är f_end/Postfactor
Prewindow=8;        %1/Prefactor fönstras i början
Postwindow=100;      %1/Postwindow fönstras i slutet
Simulate=0;         %Simulera / Mät dist
Konstant_level=0;   %Processen med konstant nivå
Konstant_level_start=28;    %Den frekvens som konstant utnivå börjar på
Konstant_level_end=400;   %Den frekvens som konstant utnivå slutar på

disp('Trolldist')
if((f_end*Postfactor )>fs/2) %Antivikningsskydd
    f_end=fs/2/Postfactor;
end

if(INITTEST>0)  ;%Initialtest av nivån
    disp('Playing test signal');
    t=0:1/fs:3;
    SIN=0.99*sin(2*pi*100*t);
    sound(SIN,fs);%,DATA=wavrecord(length(t),fs,2);
    pause(3.5)
    clear SIN t DATA
end

disp('Calculating signal');
t=0:1/fs:T-1/fs;

%y=tdSig-mean(tdSig);
%yinv=tdSigInv-mean(tdSigInv);

y = 0.99*chirp(t,f_start/Prefactor,T,f_end*Postfactor,'logarithmic',-90); %Skapa chirp
n=linspace(-pi,0,ceil(length(y)/Prewindow));
m=linspace(0,pi,ceil(length(y)/Postwindow));
y(end-length(m)+1:end)=y(end-length(m)+1:end).*0.5.*(1+cos(m));  %Fönstra slutet
y(1:length(n))=y(1:length(n)).*0.5.*(1+cos(n));         %Fönstra början
k=log( Postfactor * f_end ./ f_start *Prefactor)/T;     %Beräknar tidskostanten för inversen
yinv=y(end:-1:1).*exp(-t*k);                            %Analytisk invers i tidsdomänen
clear t
YINV=fft(yinv,2*length(y));                             %Inversen i frekvensdomänen
Y=fft(y,2*length(y));                                   %Signalen i frekvensdomänen
P=mean(abs(Y.*YINV).^2);                                %Beräkna medeleffekten av Y(f)*YINV(f)
yinv=yinv./sqrt(P);                                     %Korrigera amplituden på inversen


if(KONTROLL>0)
    f=linspace(0,fs/2,length(y));
    figure,semilogx( f, 20*log10(abs(YINV(1:end/2)./sqrt(P)))...
        , f , 20*log10(abs(Y(1:end/2)) )...
        , f , 20*log10( abs( Y(1:end/2).*YINV(1:end/2)./sqrt(P) )));
    xlim([f_start f_end]);
    xlabel('Frequency [Hz]');
    ylabel('Level [dB]');
    legend('Inverted signal i frequency domain','Signal in frequency domain','Product in frequency domain');
   
    drawnow
end
clear Y YINV n m f P

if(Simulate>0)
    %Mät dist
    disp('Recording signal')
    sound(y,fs);REC=wavrecord(length(y),fs,2);
    disp('Processing recording');
    DATA=REC(:,1).*tukeywin(length(REC),0.2);
    REF=REC(:,2).*tukeywin(length(REC),0.2);
    DATA=DATA(:).*tukeywin(length(DATA),0.2);
    REF=REF(:).*tukeywin(length(REF),0.2);
    clear REC y
else
  %Simulera dist
    disp('Simulating dist.')
    [b,a]=butter(3,[0.01 0.1]);
    DATA=y(:)+0.02*filter(b,a,y(:)).^2;
    REF=y(:);
    clear y b a
end

DATA=[DATA' zeros(1,length(DATA))];
REF=[REF' zeros(1,length(REF))];
out=fftfilt(yinv,DATA);
ref=fftfilt(yinv,REF);

[apa, i]=max(abs(ref)); %Jämför med referenssignalen

clear ref REF DATA apa yinv

L1=fs;
L2=ceil(log(2)/k*fs);
L3=ceil(log(3)/k*fs);
L4=ceil(log(4)/k*fs);
INDEX1=i-PREDELAY:i-PREDELAY+L1-1;
INDEX2=i-PREDELAY-L2:i-PREDELAY-L2-1+round(0.5*L2);
INDEX3=i-PREDELAY-L3:i-PREDELAY-L3-1+round(0.5*(L3-L2));
INDEX4=i-PREDELAY-L4:i-PREDELAY-L4-1+round(0.5*(L4-L3));
part1=out(INDEX1).*tukeywin(length(INDEX1),2*PREDELAY/length(INDEX1))';
part2=out(INDEX2).*tukeywin(length(INDEX2),2*PREDELAY/length(INDEX2))';
part3=out(INDEX3).*tukeywin(length(INDEX3),2*PREDELAY/length(INDEX3))';
part4=out(INDEX4).*tukeywin(length(INDEX4),2*PREDELAY/length(INDEX4))';
Fpart1=fft(part1);
Fpart2=fft(part2);
Fpart3=fft(part3);
Fpart4=fft(part4);

clear INDEX1 INDEX2 INDEX3 INDEX4

figure,
subplot(2,2,1),plot(0:1000/fs:1000*(length(part1)-1)/fs,1000*part1);
title('Impulse response (IR), fundamental')
xlabel('Time [ms]')
subplot(2,2,2),plot(0:1000/fs:1000*(length(part2)-1)/fs,1000*part2);
title('IR 2:nd harmonic')
xlabel('Time [ms]')
subplot(2,2,3),plot(0:1000/fs:1000*(length(part3)-1)/fs,1000*part3);
title('IR, 3:nd harmonic')
xlabel('Time [ms]')
subplot(2,2,4),plot(0:1000/fs:1000*(length(part4)-1)/fs,1000*part4);
title('IR, 4:nd harmonic')
xlabel('Time [ms]')

clear part1 part2 part3 part4

t=-i/fs:1/fs:(length(out)-i-1)/fs ;
figure, plot(t,10*log10(out.^2));
title('Energy Time Curve');
YLIM=ylim;
ylim([YLIM(2)-100 YLIM(2)]);
grid on
xlabel('Time [s]');
ylabel('Level [dB]');
hold on
plot([0 0],[YLIM(2)-100 YLIM(2)],'k','linewidth',2);
plot([-L2/fs -L2/fs],[YLIM(2)-100 YLIM(2)],'r','linewidth',2);
plot([-L3/fs -L3/fs],[YLIM(2)-100 YLIM(2)],'g','linewidth',2);
plot([-L4/fs -L4/fs],[YLIM(2)-100 YLIM(2)],'m','linewidth',2);
hold off
legend('Convoluted recording','Fundamental','2:nd harmonic','3:d harmonic','4:th harmonic','Location','NorthWest');
drawnow
clear L1 L2 L3 L4 t out

F1=linspace(0,fs/2,length(Fpart1)/2);
F2=linspace(0,fs/4,length(Fpart2)/2);
F3=linspace(0,fs/6,length(Fpart3)/2);
F4=linspace(0,fs/8,length(Fpart4)/2);

[apa, I]=find(F1>63);
clear apa
CAL=100-20*log10(abs(Fpart1(I(1)))); % Kalibrering

ktemp=log(f_end/f_start);
Ftemp=f_start*exp(ktemp*linspace(0,1,100));
k1=1;k2=1;k3=1;k4=1;
for m=2:2:length(Ftemp)-1
   
    I=find(and(F1>Ftemp(m-1), F1<Ftemp(m+1)));
    if(isempty(I)~=1)
        dB1(k1)=10*log10(mean(abs(Fpart1(I)).^2));
        F1log(k1)=Ftemp(m);
        k1=k1+1;
    end
    I=find(and(F2>Ftemp(m-1), F2<Ftemp(m+1)));
    if(isempty(I)~=1)
        dB2(k2)=10*log10(mean(abs(Fpart2(I)).^2));
        F2log(k2)=Ftemp(m);
        k2=k2+1;
    end
    I=find(and(F3>Ftemp(m-1), F3<Ftemp(m+1)));
    if(isempty(I)~=1)
        dB3(k3)=10*log10(mean(abs(Fpart3(I)).^2));
        F3log(k3)=Ftemp(m);
        k3=k3+1;
    end
    I=find(and(F4>Ftemp(m-1), F4<Ftemp(m+1)));
    if(isempty(I)~=1)
        dB4(k4)=10*log10(mean(abs(Fpart4(I)).^2));
        F4log(k4)=Ftemp(m);
        k4=k4+1;
    end
end

clear ktemp Ftemp k1 k2 k3 k4 I

% figure,semilogx(...
%     F1,20*log10(abs(Fpart1(1:end/2)))+CAL,'o:',...
%     F1log,dB1+CAL,'k*',...
%     F2,20*log10(abs(Fpart2(1:end/2)))+CAL,'ro',...
%     F2log,dB2+CAL,'r*',...
%     F3,20*log10(abs(Fpart3(1:end/2)))+CAL,'bo',...
%     F3log,dB3+CAL,'b*',...
%     F4,20*log10(abs(Fpart4(1:end/2)))+CAL,'g',...
%     F4log,dB4+CAL,'g*','linewidth',1);

I1=find(and(F1log>=f_start,F1log<=f_end));
I2=find(and(F2log>=f_start,F2log<=f_end/2));
I3=find(and(F3log>=f_start,F3log<=f_end/3));
I4=find(and(F4log>=f_start,F4log<=f_end/4));

figure,semilogx(...
    F1log(I1),dB1(I1)+CAL,'k:',...
    F2log(I2),dB2(I2)+CAL,'r:',...
    F3log(I3),dB3(I3)+CAL,'b:',...
    F4log(I4),dB4(I4)+CAL,'g:','linewidth',2);

grid on

xlim([f_start f_end]);
ylim([10 110]);
xlabel('Frequency [Hz]');
ylabel('SPL [dB] @ 1m ref 20 uPa');
legend('Fundamental','2:nd harmonic','3:d harmonic','4:th harmonic','Location','NorthWest');
drawnow
title('Trolldist v. 3.9 Beta - Frequency resp. and dist.')
clear I1 I2 I3 I4 F2 F3 F4 Fpart1 Fpart2 Fpart3 Fpart4 i k m

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

Några exempel

Inläggav lilltroll » 2006-04-01 07:21

Ver 3.9 kan både mäta och simulera dist (åt sig själv)
Upplösningen i frekvens är dessutom konstant på logskala.

Först ännu ett exempel på lillkub original

Impulssvaren

Bild
Frekvensgång & Dist
Bild

Här ett exempel på simulerad dist.
Kod: Markera allt
    [b,a]=butter(3,[0.01 0.1]);
    DATA=y(:)+0.02*filter(b,a,y(:)).^2;
    REF=y(:);


dvs, vi bör få 40 dB skillnad mellan grundton och andra delton för området 80 - 800 Hz (-6dB gränser)

Bild

Det stämmer inom ~ +-0.05 dB, Bra va :D

Nu till något mer avancerat simulerad dist !

Kod: Markera allt
    [b,a]=butter(3,[0.01 0.1]);
    DATA=y(:)+sqrt(filter(b,a,y(:)));
    REF=y(:);


Bild

Någon som vill testa analytiskt om det stämmer 8)

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

Massor av dist

Inläggav lilltroll » 2006-04-01 07:46

Fungerar metoden för mycket olinjära system ? - JA !

Här kommer ett exempel med ~98% dist

Frekvensgång & Dist
Bild

33.9 dB starkare 2:a ton än 1:a ton

ger
Kod: Markera allt
>> A=10^(33.9/20);A/(A+1)

ans =

    0.9802


dvs 98 % dist !

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

Lite seriösa kalibrerade mätningar

Inläggav lilltroll » 2006-04-10 20:07

Trolldist ver. 7.2

ORIGINAL Lillkub
Bild
AC-bass (Som i ACE eller YST)
Bild
Som väntat, sänker disten först, sedan ökar den.

Skumt Servo
Bild

Här minskar disten ~[40 Hz 150 Hz]
Nu ska jag bara kombinera det bästa från 1&2&3 ... på rätt sätt :roll:

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

Lägre resonansfrekvens

Inläggav lilltroll » 2006-04-12 23:57

fp=28 Hz

Mätningen är kalibrerad.
Dist. LILLKUB Original
Bild

Digitalt reglersystem
Bild
Senast redigerad av lilltroll 2006-04-18 18:46, redigerad totalt 2 gånger.

Kaffekoppen
Inaktiverad
 
Inlägg: 20003
Blev medlem: 2006-01-19

Inläggav Kaffekoppen » 2006-04-13 00:51

Man skulle verkligen vilja veta hur det skulle sett ut med en slav som hade lägre resonansfrekvens. Det är synd att du inte kan lägga på 200g till på din slav.

Börjar du känna dig nöjd?

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

Inläggav lilltroll » 2006-04-13 14:29

Kaffekoppen skrev:Man skulle verkligen vilja veta hur det skulle sett ut med en slav som hade lägre resonansfrekvens. Det är synd att du inte kan lägga på 200g till på din slav.

Börjar du känna dig nöjd?


Ska nog kunna hitta 200 gram och slänga på. Limma ?

Nöjd? Jag har ju precis börjat ! :)

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

Inläggav lilltroll » 2006-04-17 23:20

Nu sitter det 140 g extra vikt på slaven.
fp=24 Hz

Kaffekoppen
Inaktiverad
 
Inlägg: 20003
Blev medlem: 2006-01-19

Inläggav Kaffekoppen » 2006-04-17 23:48

Skillnad?

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

Lägre fp

Inläggav lilltroll » 2006-04-18 18:42

140 g extra på slaven.

2.83 V RMS ut från förstärkaren ger följande kalibrerade tonkurva.
Bild

Distmätningar vid 105 resp 95 dB
Bild

Nu ska det regleras lite igen... :D

PS. Har börjat mäta och jämföra lite med kommersiella subbar. De står sig förvånandsvärt dåligt mot den i volym mycket mindre lillkub DS.

PS2. Trolldist v. 7.32 börjar bli riktigt bra. Den behöver rensas lite, sen kommer den nog på faktiskt.se DS.

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

Inläggav lilltroll » 2006-04-18 18:49

Det blir mer och mer en sluten låda, ju lägre fp blir - på gott och ont

Kaffekoppen
Inaktiverad
 
Inlägg: 20003
Blev medlem: 2006-01-19

Inläggav Kaffekoppen » 2006-04-18 19:00

Kan väl inte vara negativt.... få ut samma ljudtryck och lågfrekvent bas ur en 14L sluten låda....det går väl inte?

Den måste låta mer musikaliskt med....och samverka bättre med ett rum?

Ser ju riktigt bra ut!! :-)

FöregåendeNästa

Återgå till DIY-forum


Vilka är online

Användare som besöker denna kategori: Majestic-12 [Bot], MoonMartin och 70 gäster