Discrete Fourier series problem

49 views (last 30 days)
I need to plot y[n]=y=1+cos(2*pi*n/N+pi/2) in discrete time and plot the calculate the Fourier coefficients in dicrete time and plot it. But i don't have the period N. How can I do this in Matlab?
Here is the code I tried to do, but it's incomplete so far.
N=??; %Feriod
n=0:1:??; %Discrete Time
y=1+cos(2*pi*n/N+pi/2); %Discrete function
stem(n,y) %Plot discrete function
FourierCoef = fft(y); %Fourier series function
stem(n,real(FourierCoef),'k'); %Plot Fourier real coefficients

Accepted Answer

James Browne
James Browne on 15 Jun 2019
Are you sure that you have the right general equation for y? The function looks odd to me, when I consider the general form of the cosine function:
y = offset + amplitude*cos( angularVelocity * time + phaseShift )
For the above case, your parameters would be:
offset = 1
amplitude = 1
angularVelocity = 2*pi (radians/sec)
time = n
phaseShift = pi/2 (radians)
period = (2*pi) / (angularVelocity)
= (2*pi) / (2*pi rad/sec)
= 1 second
Ther period should not appear in the cosine function (at least I have never seen it in that configuration). Additionally, your process for evaluation the FFT of the signal is wrong. It is actually quite tricky to use the FFT function, however the MATLAB help page has some good examples, found here:
Additionally, I often refer to this youtube video when using FFT in MATLAB. The video is old and the user interface looks very different than modern versions of MATLAB but the syntax is the same:
Hope this helps. Cheers~
Muna Awajan
Muna Awajan on 1 May 2020
fft: Discrete fast Fourier transform

Sign in to comment.

More Answers (0)





Community Treasure Hunt

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

Start Hunting!

Translated by