Clear Filters
Clear Filters

fft fast transform fourier problem ?

1 view (last 30 days)
benzouine yassine
benzouine yassine on 7 Apr 2015
Hi,
I am having trouble plotting the fft (fast fourier transform) of this signal :
% Create square wave for ii = 1 : length(x) if x(ii) < 0 y(ii) = 0; elseif x(ii) > 1 y(ii) = 0; else y(ii) = 1; end end
% Plot square wave subplot(1,1,1) plot(x,y) grid;
i wanna this fft .

Answers (2)

buzz
buzz on 7 Apr 2015
What's exactly the matter? You have a rect impulse, use the fft function implemented in matlab:
Y = fft(y);
You should have a sinc function into fourier domain. Remember the fft is normalized to the length of the signal to be transformed. So, in order to view the amplitude correctly:
A = abs(Y)/length(y);
About the frequency axis (normalized frequency):
N = length(y);
df = 1/N;
f_axis = 0:df:1-df
plot(f_axis,y);
That's all. Waiting for more detail about the question.

benzouine yassine
benzouine yassine on 8 Apr 2015
Thks for your answer,but when i use the fft i don't get a sinc of my signal , why ? this is my final code :
clc, clear
Fs = 1000; % Sampling Frequency x = -5 : 1/Fs : 5; % Time vector % Create square wave for ii = 1 : length(x) if x(ii) < 0 y(ii) = 0; elseif x(ii) > 1 y(ii) = 0; else y(ii) = 1; end end
% Plot square wave %subplot(3,2,1) plot(x,y) grid; axis([-5 5 -2 2])
figure;
Y = fft(y);
A = abs(Y)/length(y);
N = length(y); df = 1/N; f_axis = 0:df:1-df plot(f_axis,y); grid;
figure1;

Community Treasure Hunt

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

Start Hunting!