# How do you find average power?

120 views (last 30 days)

Show older comments

Hi y'all, I'm having an issue with this logic. I need to find the average power of but I don't see what I am doing wrong with this. Nothing shows up when I read my start.au and thusly, I'm not sure about my voiced and un_voiced segments.

clc;

clear all;

[x, Fs] = audioread('start.au');

% plot the file

plot(x, Fs);grid on;

title('raw speech data');

xlabel('samples');ylabel('amplitude');

% identify voiced segment from the speech vector. Load it in newly created

% voiced segment array

L = 300; % number of samples in sub-sample array

x_voiced = x(L:0+ L-1);

% identify unvoiced segment from the speech vector. Load it in newly created

% unvoiced segment array

x_unvoiced = x(L:0 + L-1);

% calculate average power of a voiced and unvoiced segments.

% Use avg power formula as shown in the file

P_voiced = sum(x_voiced)/L;

P_unvoiced = sum(x_unvoiced)/L;

##### 2 Comments

Rik
on 20 Nov 2019

This time I edited your question for you. Next time, please use the tools explained on this page to make your question more readable.

As for why nothing is showing up: you are only plotting a single point. Use plot(x) or plot(1:numel(x),x) instead, and you should see a curve.

I don't really understand the rest of your code, so I'm not sure if this is already the solution you need.

### Accepted Answer

Daniel M
on 21 Nov 2019

Edited: Daniel M
on 21 Nov 2019

Calculating the average power of your discrete signal according to the equation in your attached figure is done as:

P = sum(x.^2)/L;

Or

P = mean(x.^2);

Or

P = rms(x)^2;

##### 2 Comments

Rik
on 24 May 2020

### More Answers (0)

### See Also

### Categories

### Products

### Community Treasure Hunt

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

Start Hunting!