ヒルベルト変換について(解析信号)
11 views (last 30 days)
Show older comments
下記の人口データの最初の1000msの解析信号を求めて、瞬時振幅と瞬時位相を時間の関数としてプロットしたいのですが、
どのようにするか教えて頂きたいです。
解析信号の求めるというのはヒルベルト変換のことなのかfftかも良く分からないのですが、
分かる方いましたらコメント頂きたいです、
よろしくお願いいたします
f1=10;
f2=23;
fs=250; サンプル周波数
L=1000;
T=1/fs;
t=(0:L-1)*T;
S=10*sin(2*pi*f1*t+pi*1/2)+ 3*sin(2*pi*f2*t +pi*3/2); %人口データ
y=hilbert(smoothdata1); %ヒルベルト変換
p2=abs(y); %振幅
plot(t,p2); %プロット
0 Comments
Accepted Answer
Naoya
on 16 Jun 2020
ヒルベルト変換を用いた瞬時振幅と瞬時位相という点では、 hilebert関数で得られる複素数ベクトルに対して、 振幅 -> abs , 位相 -> angle の結果を求めれば宜しいかと思います。
以下は 0 ~ 10sec までの信号で、周波数が 5 -> 15 Hz, 振幅が 1 -> 11 に変化するような信号でヒルベルト変換から、瞬時振幅、瞬時位相、瞬時周波数を求めてみた例となります。
Fs = 100; % サンプリング周波数 (Hz)
t = 0:1/Fs:10;
% 解析対象信号
x = chirp(t, 5,10, 15).*(t+1);
% ヒルベルト変換
y = hilbert(x);
% 瞬時振幅
subplot(3,1,1), plot(t, abs(y))
% 瞬時位相
subplot(3,1,2), plot(t, angle(y))
% 瞬時周波数
subplot(3,1,3), plot(t(2:end), diff(unwrap(angle(y)))*Fs/(2*pi))
ylim([4 16])
0 Comments
More Answers (0)
See Also
Categories
Find more on スペクトル測定 in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!