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

王林
Freigeben: 2024-01-22 19:12:06
nach vorne
1457 Leute haben es durchsucht

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!

Quelle:docexcel.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage