MATLAB Answers

Kobi
0

why this fourrier transform is not good?

Asked by Kobi
on 15 Jul 2016
Latest activity Commented on by Kobi
on 16 Jul 2016
this script should calculate the fourier transform of a single sine with frequency of 1KHz and for some reason i can't see the pulses in the frequency domain at the -1000 and 1000, please help
clear all
close all
clc
% Downsampling
f_max=1e3;
fs=4e3;
t=linspace(0,1/f_max,fs);
y=sin(2*pi*f_max*t);
frequency_domain=linspace(-fs/2,fs/2,length(t));
figure;
col=4; row=2;
subplot(col,row,1)
plot(t,y)
title('\bf The Original signal')
ylabel('Amplitude')
xlabel('Time')
grid on
subplot(col,row,3)
stem(t,y)
title('\bf The sampled signal')
ylabel('Amplitude')
xlabel('Time')
grid on
% sampled signal in the frequency domain
subplot(col,row,4)
Y=fft(y)/length(y);
Y=fftshift(Y);
plot(frequency_domain,abs(Y))
title('\bf The Original signal in the frequency domain')
ylabel('Magnitude')
xlabel('frequency')
grid on
xlim([-2e3 2e3])

  0 Comments

Sign in to comment.

Products

1 Answer

Answer by Geoff Hayes
on 16 Jul 2016

Kobi - why is your time domain initialized as
t=linspace(0,1/f_max,fs);
Aren't you interested in the full second since fs is the sampling frequency (number of samples per second)? Instead, try
t = linspace(0,1-1/f_max,fs);
and see what happens.

  1 Comment

if i change the script as you said, i can't sample the signal properly, i get something like a sawtooth wave

Sign in to comment.