Home  >  Article  >  Computer Tutorials  >  matlab audio processing: program to generate WAV format spectrograms and time domain waveforms

matlab audio processing: program to generate WAV format spectrograms and time domain waveforms

王林
王林forward
2024-01-22 19:12:061385browse

matlab audio processing: program to generate WAV format spectrograms and time domain waveforms

matlab program for making spectrograms of audio files in WAV format and making time domain waveform charts

%Hello, this program reads the mywav.wav file and then displays the spectrum and waveform. Note that the mywav.wav file should not be too long, otherwise the operation will be very slow.

[y,Fs,bits]=wavread('mywav.wav');% read signal, sampling rate and sampling bits.

y=y(:,1);%I assume here that your voice is two-channel. I only use the mono channel for analysis. If you want to analyze another channel, please change it to 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)');

Spectrum analysis of continuous signals based on matlab

Give me an example, just change it yourself

fs=1000;%Set sampling frequency

N=1024;%set data length

i=0:N-1;

t=i/fs;

f=100;%Set the frequency of sinusoidal signal

%Generate sinusoidal signal

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

subplot(231);

plot(t,x);% makes the time domain waveform of the sinusoidal signal

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

xlabel('t');

ylabel('y');

title('Sinusoidal signal time domain waveform');

grid;

%Perform FFT transformation and make a spectrogram

y=fft(x,N);% perform fft transformation

mag=abs(y);% amplitude

f=(0:N-1)*fs/N; The expression of % abscissa frequency is f=(0:M-1)*Fs/M;

subplot(232);

plot(f,mag);% make a spectrogram

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

xlabel('Frequency (Hz)');

ylabel('magnitude');

title('Sinusoidal signal amplitude spectrum diagram');

grid;

%root mean square spectrum

sq=abs(y);

figure(1);

subplot(233);

plot(f,sq);

xlabel('Frequency (Hz)');

ylabel('root mean square spectrum');

title('Root mean square spectrum of sinusoidal signal');

grid;

%power spectrum

power=sq.^2;

figure(1);

subplot(234);

plot(f,power);

xlabel('Frequency (Hz)');

ylabel('power spectrum');

title('Power spectrum of sinusoidal signal');

grid;

%Logarithmic Spectrum

ln=log(sq);

figure(1);

subplot(235);

plot(f,ln);

xlabel('Frequency (Hz)');

ylabel('log spectrum');

title('Logarithmic spectrum of sinusoidal signal');

grid;

%Use IFFT to restore the original signal

xifft=ifft(y);

magx=real(xifft);

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

subplot(236);

plot(ti,magx);

xlabel('t');

ylabel('y');

title('Sinusoidal signal waveform converted by IFFT');

grid;

The above is the detailed content of matlab audio processing: program to generate WAV format spectrograms and time domain waveforms. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:docexcel.net. If there is any infringement, please contact admin@php.cn delete