Time-frequency spectrum for a low frequency signal
조회 수: 2 (최근 30일)
이전 댓글 표시
Hi,
I'm a begginer with matlab and I search to do the time-frequency spectrum for a low frequency signal.
I tried the cwt function on a "normal" frequency signal :
t = 0:0.001:20-0.001;
x = cos(2*pi*50*t).*(t > 0 & t<=5)+ ...
cos(2*pi*50*t).*(t >= 10 & t < 15)+ ...
cos(2*pi*100*t).*(t >= 10 & t < 15)+ ...
cos(2*pi*100*t).*(t >= 15 & t < 20)+ ...
0.5*randn(size(t));
[y, f] = cwt(x,30);
figure;
subplot(2,1,1)
plot(x)
subplot(2,1,2)
imagesc(abs(y).^2)
And I get this correct result :
But when I try on a low frequency signal, it doesn't work at all...
t = 0:.001:20-0.001;
x = cos(2*pi*0.005*t).*(t > 0 & t<=5)+ ...
cos(2*pi*0.005*t).*(t >= 10 & t < 15)+ ...
cos(2*pi*0.01*t).*(t >= 10 & t < 15)+ ...
cos(2*pi*0.01*t).*(t >= 15 & t < 20)+ ...
0.5*randn(size(t));
[y, f] = cwt(x,30);
figure;
subplot(2,1,1)
plot(x)
subplot(2,1,2)
imagesc(abs(y).^2)
How could I make it work? Do I need to change functions or settings?
댓글 수: 0
답변 (1개)
Vinay
2024년 9월 25일
The continuous wavelet transform requires few cycles of a signal to accurately determine its frequency content within a given window. When a signal with a frequency of 0.01 Hz is used, its time period is 100 seconds. However, the signal duration is only 20 seconds, therefore cycles are not fully captured.
The issue can be resolved by extending the signal duration to exceed the signal's time period.
Additionally, for low-frequency signals, noise can introduce frequency components ranging from 0 to (fs/2 ), resulting in a wide range of low-amplitude frequency detections due to noise.
Kindly refer to the below documentation of “cwt” for more details:
I hope this helps!
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Time-Frequency Analysis에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!