amplitude of non-periodic signal
5 ビュー (過去 30 日間)
古いコメントを表示
Dear All; if I have a non periodic signal/wave , how can i calculate the amplitude and wavelength ?
0 件のコメント
採用された回答
Star Strider
2015 年 10 月 3 日
Another possibility is in the code I used in this Answer. The peak times (the periods are the differences between them) will be in t(zx_idx) and the amplitudes will be in C(zx_idx) in that code.
2 件のコメント
Star Strider
2015 年 10 月 3 日
It is in my Answer. I am reposting it here:
t = linspace(0, 10, 1000); % Time
C = 2 + sin(2*pi*t + cos(5*pi+t)*pi); % Signal
dC = diff([0, C])/(t(2)-t(1)); % Approximate Derivative
dCzx = dC .* circshift(dC, [0 -1]); % Negative Values => Zero Crossings (Mostly)
zx_idx = find(dCzx <= 0); % Derivative Zeros Are Maxima, Minima Of ‘C’
figure(1)
plot(t, C)
hold on
plot(t(zx_idx), C(zx_idx), 'or')
hold off
grid
axis([xlim 0 5])
その他の回答 (1 件)
Image Analyst
2015 年 10 月 3 日
As you know, any arbitrary signal can be considered as a weighted sum of a bunch of sine waves - that's the whole concept of Fourier analysis. I suggestion you look at the fft() function or the pwelch() function.
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!