MATLAB Answers

How to get equation of a sound

13 views (last 30 days)
Luis Zuniga
Luis Zuniga on 4 Sep 2020
Answered: Madhav Thakker on 9 Sep 2020
I would like to get the equation for the next sound of piano keys (I have attached the zip with the mp3 file):
By equation I mean the formula of the general trend of the sound. To get the graph above I used the following code:
[x, fs] = audioread("IA de Mate\The Lumineers - April (Part 9 Of 10).mp3")
X = x(:,1);
N = length(x);
t = (0:N-1)/fs;
N/fs
%plot time domain signa
plot(t, x)
grid on
xlabel('time(s)')
ylabel('amplitude')
title('Signal in Time Domain')
  5 Comments
KSSV
KSSV on 4 Sep 2020
@Tamir Suliman: the signal is random, you cannot use polyfit for this.

Sign in to comment.

Answers (1)

Madhav Thakker
Madhav Thakker on 9 Sep 2020
Hi Luis,
I understand that you want to get the equation of the attached mp3 file. The attached signal is very random. However, you can get a non-intuitive complex equation by using fft in MATLAB.
I am attaching a snippet that might help you –
[x, fs] = audioread("The Lumineers - April (Part 9 Of 10).mp3");
L = numel(x(:,1));
Fn = fs/2; % Nyquist Frequency
xm = x-mean(x); % Subtract Mean To Make Amplitudes At Frequencies>0 More Prominent
FTs = fft(xm)/L; % Fourier Transform
Fv = linspace(0, 1, fix(L/2)+1)*Fn; % Frequency Vector
Iv = 1:length(Fv); % Index Vector
Phs = angle(FTs);
For more details, you can refer to a similar discussion here - https://www.mathworks.com/matlabcentral/answers/348847-how-to-get-equation-of-signal-in-matlab
Hope this helps.

Community Treasure Hunt

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

Start Hunting!