MATLAB Answers

How do you find average power?

조회 수: 223(최근 30일)
Nathan Jaqua
Nathan Jaqua 20 Nov 2019
편집: Daniel M 21 Nov 2019
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

Rik
Rik 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.
Nathan Jaqua
Nathan Jaqua 20 Nov 2019
I need to find the voiced and unvoiced portions of the signal. I thought that L:0 was what I needed in that part to find it, but I'm really not sure. Nor am I sure on how to find the average power based on the equation I attached to the question when I initially asked it.

로그인 to comment.

채택된 답변

Daniel M
Daniel M 21 Nov 2019
편집: Daniel M 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;

  댓글 수: 0

로그인 to comment.

추가 답변(0개)

이 질문에 답변하려면 로그인을(를) 수행하십시오.


Translated by