Svenska ElektronikForumet
http://elektronikforumet.com/forum/

Program för att analysera frekvenser i ljudfiler?
http://elektronikforumet.com/forum/viewtopic.php?f=10&t=9877
Sida 1 av 1

Författare:  speakman [ 12.12 2006-03-08 ]
Inläggsrubrik:  Program för att analysera frekvenser i ljudfiler?

Leta efter något lämpligt program för att analysera ljudfiler.
Det jag är ute efter är vilka frekvenser som finns att hämta hur ljudströmmen, vilken magnitud osv.
Har aldrig kört med Matlab, annars kanske en FFT-analys där skulle vara att föredra?
Är det svårt att komma igång med Matlab för såna här ändamål? Finns det några bra tutorials på nätet?
Tacksam för alla tips!

Mvh
speakman

Författare:  Henrik [ 12.20 2006-03-08 ]
Inläggsrubrik: 

Matlab skulle klara det enkelt, och på bästa sätt. Dock är det inget man köper, det är dyyyyrt. Är det en stor wavfil, behöver du göra det ofta? Är det en engångsgrej kan jag göra det om du vill, fast nu är jag på jobbet.

Författare:  speakman [ 13.14 2006-03-08 ]
Inläggsrubrik: 

Tack för erbjudandet. Ja, det är en wavfil, eller snarare en "raw"-fil som jag genererar i mitt egna program. Filen skulle i princip kunna se ut hur som helst.
Om du kan Matlab kanske du skulle vilja göra en grund för en FFT-analys som jag skulle kunna ha som referens?
Googlade runt lite, och det finns väldigt många tutorials för FFT i Matlab, men ett praktiskt exempel hade helt klart varit smidigt!

Mvh
speakman

Författare:  Henrik [ 21.40 2006-03-08 ]
Inläggsrubrik: 

Detta kan du klistra in i en m-fil. Sedan döper du m-filen till exempelvis 'minfft.m' och sparar i din work-mapp. För att anropa m-filen skriver du helt enkelt 'minfft' i kommandofönstret.

Kod: [Expandera/Minimera] [Hämta] (Untitled.txt)
% Exempel på FFT i matlab. Förutsätter float32-kodad mono-fil.

% Samplingsfrekvens

Fs=44100;                       

% Upplösning på FFT i bitar.
% Ex 10 bitar = 1024 punkters upplösning

Bits=10;           

% Eftersom filen vi skall läsa kan vara i vilket format som helst,
% ser vi till att öppna vår fil binärt. Då gör man så här:

File_ID=fopen('G:\minfil.raw','r');

% nu kan vi läsa innehållet filen,
% alla samples läggs i en vektor "samples".

samples=fread(File_ID,inf,'float32');

% Periodtid sampling

Ts=1/Fs;           

% Antal sampel i filen

N=length(samples);

% Skapa tidsvektor

t=0:Ts:Ts*N-Ts;                 

% Skapa frekvensvektor upp till Fs/2 (Nyquist)

f=0:(Fs/2)/2^(Bits-1):Fs/2-(Fs/2)/(2^Bits-1);

% Plotta först originalsamplingen rätt upp och ner, i en övre graf

subplot(2,1,1);plot(t,samples);

% The magic

X=fft(samples,2^Bits);             

% Plottar i en undre graf absolutbeloppen av första halvan av fft'n. Absolutbelopp ty fft ger en real- och en imaginärdel.
% Den andra halvan av fft'n är ändå bara spegling av den första.

subplot(2,1,2); semilogx(f,abs(X(1:2^(Bits-1))))


Döds-lita inte på det här - jag är lite trött - men det ger ändå ett humm om hur upplägget ser ut.

Författare:  speakman [ 08.29 2006-03-09 ]
Inläggsrubrik: 

Tack!

Men som du säkert förstår så får jag inte direkt ut 32-bitars flyttal från ljudkortet, så om det gick att ändra till signed 16-bitar (little endian), så hade det helt klart varit enklare. :D
Ska installera mitt "nyinköpta" *host* *host* MatLab ikväll och se vad som går att göra!

Mvh
speakman

Författare:  cykze [ 12.56 2006-03-09 ]
Inläggsrubrik: 

Prova det fria alternativet "octave" ("apt-get install octave"). Det är ett fritt alternativ till Matlab.

Författare:  Henrik [ 14.38 2006-03-09 ]
Inläggsrubrik: 

Signed 16-bitar läser du genom att endast ändra följande rad:
samples=fread(File_ID,inf,'int16');

Författare:  JimmyAndersson [ 15.32 2006-03-09 ]
Inläggsrubrik: 

cykze: Kan man köra det i terminal-läget (dvs utan något GUI installerat) ? Vore inte dumt isåfall. :)

Författare:  cykze [ 16.02 2006-03-09 ]
Inläggsrubrik: 

JimmyAndersson: Ja, octave körs i terminalen. Fast plotten visas grafiskt i ett X-fönster. Det kanske går att ställa in så att plotten visas i terminalen också.

Författare:  speakman [ 19.44 2006-03-09 ]
Inläggsrubrik: 

Octave is fan the shit asså!! :D

Mvh
speakman

Författare:  baron3d [ 22.21 2006-03-09 ]
Inläggsrubrik: 

Kan rekomendera Cool_edit_pro_2 även Cool_edit_pro är OK.

Författare:  speakman [ 22.56 2006-03-09 ]
Inläggsrubrik: 

Kan man göra spektrumanalyser där?

Författare:  baron3d [ 23.05 2006-03-09 ]
Inläggsrubrik: 

Ja

Sida 1 av 1 Alla tidsangivelser är UTC + 1 timme
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/