Hello Community,
i try to calculate the root mean square of a piecwise function.
I had different approaches, but all them don't work.
1. Approach
syms t
y = piecewise(0<=t<=2,-sin(2*pi/8*t));
rms = rms(y);
Error Message: Error using sym/subsindex (line 953)
Invalid indexing or function definition. Indexing must follow MATLAB indexing. Function arguments must be symbolic variables, and function body must be sym expression.
2. Approach
syms t
y = piecewise(0<=t<=2,-sin(2*pi/8*t));
t = 0:0.001:2;
z = subs(y);
m = double(z);
rms = rms(m);
Error Message: Array indices must be positive integers or logical values.
I don't know any other approach.
I hope, I expressed my problem appropriatly.
Thanks for your help!
Smitty

 Respuesta aceptada

Sam Chak
Sam Chak el 15 de Jul. de 2022
Can you check if this is the expected RMS value over the interval ?
t = linspace(0, 2, 2001);
y = - sin(2*pi/8*t);
v = rms(y)
v = 0.7071
plot(t, y)

2 comentarios

Smitty
Smitty el 15 de Jul. de 2022
Yes, that is the expected RMS. My problem is to get it for Functions, that I define with "Piecewise" so that I can combine Rectangle und Sinus Signals.
Smitty
Smitty el 15 de Jul. de 2022
Editada: Smitty el 15 de Jul. de 2022
It just came to my mind, that i can just implement the RMS by myself.
syms t
y = piecewise(0<=t<=2,sin(2*pi/8*t));
T = 2;
RMS = sqrt(1/T*int(y^2,0,T));
That works fine.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Productos

Versión

R2021b

Etiquetas

Preguntada:

el 15 de Jul. de 2022

Editada:

el 15 de Jul. de 2022

Community Treasure Hunt

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

Start Hunting!

Translated by