How can I Plot a simple linear plot of sound pressure v/s frequency from an audio track?

1 次查看(过去 30 天)
I need to plot power v/s frequency (Hz) simple 2-d plots of an audio file.

回答(1 个)

Star Strider
Star Strider 2018-11-9
Us e the fft (link) function.
The full code would go something like this:
filename = 'YourFile.wav';
[y,Fs] = audioread(filename); % Import File
N = size(y,1); % Assuming Column Vectors
t = linspace(0, N, N)/Fs; % Time Vector (If Necessary)
Fn = Fs/2; % Nyquist Frequency
Fy = fft(y)/N;
Fv = linspace(0, 1, fix(N/2)+1)*Fn; % Frequency Vector
Iv = 1:numel(Fv): % Index Vector
figure
plot(Fv, abs(Fy(Iv,:))*2)
grid
  2 个评论
AKSHAT NEGI
AKSHAT NEGI 2018-11-12
Thank you very much. Also I have multiple tracks and i need to plot all of them in one , Can that be done?
Star Strider
Star Strider 2018-11-12
My pleasure.
I am not certain what you want to do.
You can certainly plot them, although I would plot each track in a separate axes, probably using the subplot function. You can make all the frequency vectors the same by using the second ‘NFFT’ argument to the fft funciton.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Audio I/O and Waveform Generation 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by