Rumah > tutorial komputer > pengetahuan 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

王林
Lepaskan: 2024-01-22 19:12:06
ke hadapan
1560 orang telah melayarinya

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 Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan