Heim  >  Artikel  >  Computer-Tutorials  >  Matlab-Audioverarbeitung: Programm zum Generieren von Spektrogrammen im WAV-Format und Zeitbereichswellenformen

Matlab-Audioverarbeitung: Programm zum Generieren von Spektrogrammen im WAV-Format und Zeitbereichswellenformen

王林
王林nach vorne
2024-01-22 19:12:061452Durchsuche

Matlab-Audioverarbeitung: Programm zum Generieren von Spektrogrammen im WAV-Format und Zeitbereichswellenformen

Matlab-Programm zum Erstellen von Spektrogrammen von Audiodateien im WAV-Format und Zeitbereichs-Wellenformdiagrammen

Hallo%, dieses Programm liest die Datei mywav.wav und zeigt dann das Spektrum und die Wellenform an. Beachten Sie, dass die Datei mywav.wav nicht zu lang sein sollte, da der Vorgang sonst sehr langsam wird.

[y,Fs,bits]=wavread('mywav.wav'); % Lesesignal, Abtastrate und Anzahl der Abtastbits.

y=y(:,1);%Ich gehe hier davon aus, dass Ihre Stimme binaural ist. Wenn Sie einen anderen Kanal analysieren möchten, ändern Sie ihn bitte in y=y(:,2 )

sigLength=length(y);

Y = fft(y,sigLength);

Pyy = Y.* conj(Y) / sigLength;

halflength=floor(sigLength/2);

f=Fs*(0:halflength)/sigLength;

figure;plot(f,Pyy(1:halflength+1));xlabel('Frequency(Hz)');

t=(0:sigLength-1)/Fs;

figure;plot(t,y);xlabel('Time(s)');

Spektrumanalyse kontinuierlicher Signale basierend auf Matlab

Geben Sie mir ein Beispiel, ändern Sie es einfach selbst

fs=1000;% eingestellte Abtastfrequenz

N=1024;% eingestellte Datenlänge

i=0:N-1;

t=i/fs;

f=100;% legt die Frequenz des Sinussignals fest

%Sinusförmiges Signal erzeugen

x=sin(2*pi*f*t);

subplot(231);

plot(t,x); % erstellt die Zeitbereichswellenform des Sinussignals

axis([0,0.01,-1,1]);

xlabel('t');

ylabel('y');

title('Sinusförmige Signal-Zeitbereichswellenform');

Gitter;

%Führen Sie eine FFT-Transformation durch und erstellen Sie ein Spektrogramm

y=fft(x,N); % führt eine FFT-Transformation durch

mag=abs(y);% Amplitude

f=(0:N-1)*fs/N; Der Ausdruck der % Abszissenfrequenz ist f=(0:M-1)*Fs/M;

subplot(232);

plot(f,mag);% ein Spektrogramm erstellen

axis([0,100,0,80]);

xlabel('Frequenz (Hz)');

ylabel('magnitude');

title('Sinussignalamplituden-Spektrumdiagramm');

Gitter;

% quadratisches Mittelwertspektrum

sq=abs(y);

Abbildung(1);

subplot(233);

plot(f,sq);

xlabel('Frequenz (Hz)');

ylabel('quadratisches Spektrum');

title('Root Mean Square Spectrum of Sinusoidal Signal');

Gitter;

% Leistungsspektrum

Leistung=Quadrat^2;

Abbildung(1);

subplot(234);

plot(f,power);

xlabel('Frequenz (Hz)');

ylabel('Leistungsspektrum');

title('Sinusförmiges Signalleistungsspektrum');

Gitter;

% logarithmisches Spektrum

ln=log(sq);

Abbildung(1);

Nebenhandlung(235);

plot(f,ln);

xlabel('Frequenz (Hz)');

ylabel('log-Spektrum');

title('Logarithmisches Spektrum des Sinussignals');

Gitter;

% Verwenden Sie IFFT, um das ursprüngliche Signal wiederherzustellen

xifft=ifft(y);

magx=real(xifft);

ti=[0:length(xifft)-1]/fs;

Nebenhandlung(236);

plot(ti,magx);

xlabel('t');

ylabel('y');

title('Sinusförmige Signalwellenform konvertiert durch IFFT');

Gitter;

Das obige ist der detaillierte Inhalt vonMatlab-Audioverarbeitung: Programm zum Generieren von Spektrogrammen im WAV-Format und Zeitbereichswellenformen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:docexcel.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen