abs(x.^2)

17 Ansichten (letzte 30 Tage)
Malar Vizhi
Malar Vizhi am 3 Mai 2022
Bearbeitet: Default am 5 Aug. 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 Kommentare
Martti Ilvesmäki
Martti Ilvesmäki am 3 Mai 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 am 3 Mai 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.

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Malar Vizhi
Malar Vizhi am 3 Mai 2022
Thankyou then what about this sir
y=mean(x.^2);
if x is array
  3 Kommentare
Martti Ilvesmäki
Martti Ilvesmäki am 3 Mai 2022
% Example
x = [1 2 3];
x_squared = x.^2; % --> [1 4 9]
x_squared_mean = mean(x_squared); % --> 4.6667
Default
Default am 5 Aug. 2023
Bearbeitet: Default am 5 Aug. 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);

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by