Get the frequencies at specific value of amplitude
3 次查看(过去 30 天)
显示 更早的评论
Hello everyone, I want to split the signal using the Gabor transform and then taking the values of frequency against the maximum value of amplitude within each window. Thank you for helping me.
0 个评论
采纳的回答
Vinay
2024-8-16
Hii Abdul,
The Short-Time Fourier Transform (STFT) divides a longer signal into smaller segments of equal length and computes the Fourier transform separately for each segment. The frequency corresponding to the maximum amplitude within a specific window can be analyzed using the code provided below.
% Parameters
Fs = 22000;
t = 0:1/Fs:1;
windowLength = 256;
overlap = 128;
signal = sin(2*pi*50*t) + 0.5*randn(size(t)); % Signal with noise
% Short-Time Fourier Transform (STFT)
[S, F, T] = stft(signal, Fs, 'Window', hamming(windowLength), 'OverlapLength', overlap, 'FFTLength', windowLength);
% Initialize vector to hold frequencies
maxFreqs = zeros(size(T));
% Loop to find the frequency of maximum amplitude
for k = 1:length(T)
[~, maxIdx] = max(abs(S(:, k)));
% frequency of the maximum amplitude
maxFreqs(k) = F(maxIdx);
end
% Display the results
disp('Frequencies of maximum amplitude in each window:');
disp(maxFreqs);
Kindly refer to the following documentation for “short time fourier transform”:
I hope this helps!
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Fourier Analysis and Filtering 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!