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
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!