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.
参考
カテゴリ
Help Center および File Exchange で Spectral Measurements についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!