abs(x.^2)

20 visualizzazioni (ultimi 30 giorni)
Malar Vizhi
Malar Vizhi il 3 Mag 2022
Modificato: Default il 5 Ago 2023
Hello everyone
This was my code and i was trying to find peak power of the given sin signal.I dont understand how does it really work mathametically?
clc;f=1;
t=1/f;
x=1*sin(2*pi*f*t);
y=max (abs(x).^2);
  2 Commenti
Martti Ilvesmäki
Martti Ilvesmäki il 3 Mag 2022
.^2 is element-wise power function: https://se.mathworks.com/help/matlab/ref/power.html
abs() is absolute value and complex value function: https://se.mathworks.com/help/matlab/ref/abs.html?s_tid=doc_ta
x.^2 will raise all elements of vector or matrix x to the second power while abs() will take the absolute value of each element in vector or matrix. Using them both together in this case is unnecessary, because using x.^2 will remove all negative values already.
Walter Roberson
Walter Roberson il 3 Mag 2022
That is a formula for peak power, but not with that input. For it to work, the input has to be the fft of the signal (after subtracting the mean)
Your x only has a single sample.
That code with sin() looks like the bare outline of an attempt to calculate fft.

Accedi per commentare.

Risposta accettata

Malar Vizhi
Malar Vizhi il 3 Mag 2022
Thankyou then what about this sir
y=mean(x.^2);
if x is array
  3 Commenti
Martti Ilvesmäki
Martti Ilvesmäki il 3 Mag 2022
% Example
x = [1 2 3];
x_squared = x.^2; % --> [1 4 9]
x_squared_mean = mean(x_squared); % --> 4.6667
Default
Default il 5 Ago 2023
Modificato: Default il 5 Ago 2023
This will fail for complex signals, the more accurate mean will be:
meanx = mean(abs(x).^2);
and the peak will be:
peakx = max(abs(x).^2);

Accedi per commentare.

Più risposte (0)

Community Treasure Hunt

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

Start Hunting!

Translated by