FFT analysis on recorded sound
soundfft.m |
clear all close all % Loading audio file [data, fs] = audioread('File_name.wav'); % Performing FFT analysis L = length(data); data_fft = fft(data); ang = angle(data_fft); % Phase of each harmonic wave amp = 10*abs(data_fft(:,1)/L); % Scaling FFT output amplitude f = fs*(1:(L/2))/L; % Converting FFT frequency data to actual frequency % Plotting frequency spectrum figure semilogx(f,amp(1:(L/2))) xlim([0,fs/2]) % Frequency spectrum to audio duration = 10; time_interval_divisions = 8192; time = 0:1/time_interval_divisions:duration; a = 0; for i=1:length(f) a = a + amp(i)*sin(2*pi*time*f(i)+ang(i)); end plot(time,a) sound(a,time_interval_divisions)