fft fast transform fourier problem ?

조회 수: 2 (최근 30일)
benzouine yassine
benzouine yassine 2015년 4월 7일
답변: benzouine yassine 2015년 4월 8일
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 .

답변 (2개)

buzz
buzz 2015년 4월 7일
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 2015년 4월 8일
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;

카테고리

Help CenterFile Exchange에서 Fourier Analysis and Filtering에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by