How to represent waveform (sum of sinusoids) in complex notation
23 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Nathan Kennedy
el 9 de En. de 2018
Comentada: Jan
el 9 de En. de 2018
Hi,
I have a sum sinusoids to make a waveform, each sinusoid has a different phase attached to it.
clear
f = (20.2 : 0.01 : 21.2)*10^9;
Fs = 5*max(f);
Ts = 1/Fs;
end_t = 0.2*10^(-6);
dt = 0 : Ts : end_t-Ts;
for a = 1:length(f)-1
random_phase = 2*pi*rand(1,1);
%y(a,:) = 2 * sin(2*pi .* f(a) .* dt + random_phase);
end
waveform = sum(abs(y))
plot(dt,waveform)
I need to amplify this waveform, but the amplification being applied is in the form of a vector, it has an increase amplitude (gain) component and also a phase change component.
So the waveform is amplified but also subjected to phase change at instances in time.
To do this, my original waveform must be complex so I can multiply two complex numbers together to get the amplified waveform.
How do I do get my original code in a complex form?
0 comentarios
Respuesta aceptada
Jan
el 9 de En. de 2018
Editada: Jan
el 9 de En. de 2018
What about:
y(f,:) = cos(2*pi .* f .* dt + random_phase) + ...
1i * sin(2*pi .* f .* dt + random_phase);
Or equivalently:
y(f,:) = exp(1i * (2*pi .* f .* dt + random_phase));
2 comentarios
Jan
el 9 de En. de 2018
Trimmed down to what? A complex sin wave can be expressed as
y = A * exp(k * t + a)
to define amplitude, frequency and phase shift. Together with the Euler formula: exp(ix) = cos(x) + i * sin(x) you get the shown code.
Más respuestas (0)
Ver también
Categorías
Más información sobre Continuous Waveforms en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!