Fourier Transform of tripuls

16 次查看(过去 30 天)
Below you got what I've tried, but it does not work. The second graph does not match with the actual fft of a triangle function. Can someone help me? The use of tripuls is required! Ty!
clc
t=-2:.01:2;
subplot(2, 1, 1);
x=tripuls(t,2);
plot(t, x);
title('Triangle');
subplot(2, 1, 2);
Ts = mean(diff(t)); % Sampling Interval
Fs = 1/Ts; % Sampling Frequency
Fn = Fs/2; % Nyuquist Frequency
L = length(x);
ftx = fft(x)/L; % Fourier Transform
ftxs = fftshift(ftx); % Shift To Centre
plot(t, ftxs);
title('TdF Triangle');

回答(1 个)

Priyanshu Mishra
Priyanshu Mishra 2020-7-29
Hi Moisa,
fft is giving you a complex double values . Try taking only absolute values. I tried the following code and getting sinc squared function which is expected for a triangular pulse.
clc
t=-2:.01:2;
subplot(2, 1, 1);
x=tripuls(t,2);
plot(t, x);
title('Triangle');
subplot(2, 1, 2);
Ts = mean(diff(t)); % Sampling Interval
Fs = 1/Ts; % Sampling Frequency
Fn = 2*Fs; % Nyuquist Frequency
L = length(x);
ftx = abs(fft(x)); % Fourier Transform
ftxs = fftshift(ftx); % Shift To Centre
plot(t, ftxs);
title('TdF Triangle')

类别

Help CenterFile Exchange 中查找有关 Electromechanical 的更多信息

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by