Rumah  >  Artikel  >  tutorial komputer  >  pemprosesan audio matlab: program untuk menjana spektrogram format WAV dan bentuk gelombang domain masa

pemprosesan audio matlab: program untuk menjana spektrogram format WAV dan bentuk gelombang domain masa

王林
王林ke hadapan
2024-01-22 19:12:061385semak imbas

pemprosesan audio matlab: program untuk menjana spektrogram format WAV dan bentuk gelombang domain masa

Program Matlab untuk membuat spektrogram fail audio dalam format WAV dan graf bentuk gelombang domain masa

Hello%, program ini membaca fail mywav.wav dan kemudian memaparkan spektrum dan bentuk gelombang. Ambil perhatian bahawa fail mywav.wav tidak boleh terlalu panjang, jika tidak, operasi akan menjadi sangat perlahan.

[y,Fs,bits]=wavread('mywav.wav'); % isyarat baca, kadar pensampelan dan bilangan bit pensampelan.

y=y(:,1);%Saya menganggap di sini bahawa suara anda adalah binaural

sigLength=panjang(y);

Y = fft(y,sigLength);

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

separuh=lantai(sigLength/2);

f=Fs*(0:separuh panjang)/sigLength;

angka;plot(f,Pyy(1:separuh+1));xlabel('Frekuensi(Hz)');

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

angka;plot(t,y);xlabel('Masa(s)');

Analisis spektrum isyarat berterusan berdasarkan matlab

Beri saya contoh, cuma tukar sendiri

fs=1000;% tetapkan kekerapan pensampelan

N=1024;% set panjang data

i=0:N-1;

t=i/fs;

f=100;% menetapkan frekuensi isyarat sinusoidal

%Jana isyarat sinusoidal

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

subplot(231);

plot(t,x); % menjadikan bentuk gelombang domain masa bagi isyarat sinusoidal

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

xlabel('t');

ylabel('y');

tajuk('Bentuk domain masa isyarat sinusoidal');

grid;

%Lakukan transformasi FFT dan buat spektrogram

y=fft(x,N); % melakukan transformasi fft

mag=abs(y);% amplitud

f=(0:N-1)*fs/N; Ungkapan % kekerapan absis ialah f=(0:M-1)*Fs/M;

subplot(232);

plot(f,mag);% membuat spektrogram

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

xlabel('Frekuensi (Hz)');

ylabel('magnitud');

tajuk('Rajah spektrum amplitud isyarat sinus');

grid;

% Purata Purata Spektrum Kuasa Dua

sq=abs(y);

angka(1);

subplot(233);

plot(f,sq);

xlabel('Frekuensi (Hz)');

ylabel('akar min spektrum persegi');

tajuk('Akar min spektrum persegi isyarat sinusoidal');

grid;

% spektrum kuasa

kuasa=persegi^2;

angka(1);

subplot(234);

plot(f,kuasa);

xlabel('Frekuensi (Hz)');

ylabel('spektrum kuasa');

tajuk('spektrum kuasa isyarat sinusoid');

grid;

% Spektrum Logaritma

ln=log(sq);

angka(1);

subplot(235);

plot(f,ln);

xlabel('Frekuensi (Hz)');

ylabel('spektrum log');

tajuk('spektrum logaritma isyarat sinusoidal');

grid;

% Gunakan IFFT untuk memulihkan isyarat asal

xifft=ifft(y);

magx=real(xifft);

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

subplot(236);

plot(ti,magx);

xlabel('t');

ylabel('y');

tajuk('Bentuk isyarat sinusoidal ditukar oleh IFFT');

grid;

Atas ialah kandungan terperinci pemprosesan audio matlab: program untuk menjana spektrogram format WAV dan bentuk gelombang domain masa. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:docexcel.net. Jika ada pelanggaran, sila hubungi admin@php.cn Padam