MATLAB: Find power of signal

powerpwelchsignalSignal Processing Toolboxwav file

Hi, how do i find total power of signal from a wav file and display it on axes ? I currently only have this.
[myRecording,fs] = audioread('filename.wav',[1,2*8000]); %fs = sample rate
Nsamps = length(myRecording);
t = (1/fs)*(1:Nsamps); %Prepare time data for plot
%Do Fourier Transform
y_fft = abs(fft(myRecording)); %Retain Magnitude
y_fft = y_fft(1:Nsamps/2); %Discard Half of Points
f = fs*(0:Nsamps/2-1)/Nsamps; %Prepare freq data for plot
%Plot Sound File in Time Domain
plot(handles.normalLies,t, myRecording)
xlabel(handles.normalLies,'Time (s)')
ylabel(handles.normalLies,'Amplitude')
%Plot Sound File in Frequency Domain
plot(handles.fttLies,f, y_fft)
xlim(handles.fttLies,[0 20])
xlabel(handles.fttLies,'Frequency (Hz)')
ylabel(handles.fttLies,'Amplitude')

Best Answer

In time domain: for discrete signal x(n)
Instantaneous power = x(n)^2
Average power = (1/N) * sum(x(n).^2)
N = data length or period
Related Question