How to plot ifft for a frequency signal?
조회 수: 6 (최근 30일)
이전 댓글 표시
I've a .dat file (attaching the .mat file of that .dat file after converting, since this platform doesn't allow to upload .dat file while asking question) which represent the frequency spectrum of a vibration signal from a bearing having a sampling frequency of (fs=32768). How to convert the frequency signal to time domain signal. Please help.
댓글 수: 3
Scott MacKenzie
2021년 8월 6일
편집: Scott MacKenzie
2021년 8월 6일
Have you tried? Please post the code you've attempted so far.
채택된 답변
Yazan
2021년 8월 6일
편집: Yazan
2021년 8월 6일
clc, close all
fs = 32768;
fidx = z.Date23122013;
specOneSide = z.Time100351;
[fidx, idx] = unique(fidx);
specOneSide = specOneSide(idx);
fOneSide = (fidx./fidx(end))*fs/2;
subplot(1,2,1)
plot(fOneSide, specOneSide), xlabel('Frequency - Hz'), ylabel('Magnitude spectrum');
axis tight, title('One-sided spectrum');
specTwoSide = [flip(specOneSide(1:end)); specOneSide(2:end-1)];
N = length(specTwoSide);
f = -fs/2:fs/N:fs/2-fs/N;
subplot(1,2,2)
plot(f, specTwoSide), xlabel('Frequency - Hz'), ylabel('Magnitude spectrum');
axis tight, title('Two-sided spectrum');
sig = ifft(fftshift(specTwoSide));
figure,
t = (0:N-1)./fs;
plot(t, sig), axis tight, title('Signal');
xlabel('Time - sec'), ylabel('Amplitude');
댓글 수: 5
Yazan
2021년 8월 6일
Notice that the values of the Date23122013 (or your frequency axis points) are not unique. Also, for one value of Date23122013, you have sometimes multiple values of Time100351. My code uses the first appearing value of Time100351 for a given Date23122013 automatically, which is sometimes zero, but you might prefer otherwise. It is always a good idea to clean your data first.
추가 답변 (0개)
참고 항목
카테고리
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!