How to find phase and frequency spectrum of signal?
13 次查看(过去 30 天)
显示 更早的评论
I have a signal:
t = -2:0.01:2;
x = zeros(size(t));
x(t >= -2 & t < -1) = -1;
x(t >= 0 & t <= 2) = -1;
how I can find frequency and phase spectrum of this signal? I need to plot all of it.
回答(1 个)
Star Strider
2023-11-17
t = -2:0.01:2;
x = zeros(size(t));
x(t >= -2 & t < -1) = -1;
x(t >= 0 & t <= 2) = -1;
figure
plot(t, x)
grid
xlabel('t')
ylabel('x')
title('Time Domain Plot of ‘x(t)’')
axis('padded')
Fs = 1/mean(diff(t));
Fn = Fs/2;
L = numel(t);
NFFT = 2^nextpow2(L);
FTx = fft(x(:).*hann(L), NFFT)/L;
Fv = linspace(0, 1, NFFT/2+1)*Fn;
Iv = 1:numel(Fv);
figure
tiledlayout(2,1)
nexttile
plot(Fv, abs(FTx(Iv))*2)
grid
ylabel('Magnitude (absolute)')
nexttile
plot(Fv, unwrap(angle(FTx(Iv))))
grid
xlabel('Frequency (cycles/(time unit))')
ylabel('Phase (rad)')
sgtitle('One-Sided Fourier Transform of ‘x(t)’')
Make appropriate changes to get the result you want.
.
1 个评论
另请参阅
类别
在 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!