# -*- coding: utf-8 -*-
"""
Created on Thu Feb 27 19:29:15 2020

@author: lenovo
"""

# -*- coding: utf-8 -*-
"""
Created on Thu Feb 27 18:01:52 2020

@author: Akourgli
"""

import numpy as np
import matplotlib.pyplot as plt
import scipy.fftpack
# Exemple 1
N = 100; f0=1000; fe=8000; Te=1/fe
t = np.linspace(0.0, N*Te, N)
x = np.sin(2.0*np.pi*f0*t) 
y = scipy.fftpack.fft(x)
y = np.fft.fftshift(y)
freq = np.arange(-N/2,N/2)*fe/N

plt.figure(1)
plt.subplot(311)
plt.plot(freq, np.abs(y))
plt.title('Module de la T.F.D.'); plt.grid(True); plt.xlabel('Fréquence (Hz)'); plt.ylabel('Amplitude')
plt.subplot(312)
plt.plot(freq, np.angle(y))
plt.title('Phase de la T.F.D.'); plt.grid(True); plt.xlabel('Fréquence (Hz)'); plt.ylabel('Amplitude')
plt.subplot(313)
plt.plot(freq, 20*np.log10(np.abs(y)/N))
plt.title('Module de la T.F.D. en db'); plt.grid(True);plt.xlabel('Fréquence (Hz)');plt.ylabel('Amplitude')
plt.show()

# Exo 1
NF = 4; Te = 1.0; fe=1.0/Te;
# signal
x = np.array([1,0,0,1])

y = scipy.fftpack.fft(x,NF)
y = np.fft.fftshift(y)
freq = np.arange(-NF/2,NF/2)*fe/NF

plt.figure(2)
plt.subplot(211)
plt.stem(freq, np.abs(y),use_line_collection=True)
plt.title('Module de la T.F.D.'); plt.grid(True); plt.xlabel('Fréquence (Hz)');plt.ylabel('Amplitude')
plt.subplot(212)
plt.stem(freq, np.angle(y),use_line_collection=True)
plt.title('Phase de la T.F.D.'); plt.grid(True); plt.xlabel('Fréquence (Hz)'); plt.ylabel('Amplitude')
plt.show()

#Exo 2 à compléter
from math import pow
N=6; Te = 1.0; fe=1.0/Te; NF=64; f0=0.2
x=np.ones(N)
E=0.0
for i in x:
    E+=pow(i,2)
    
t = np.linspace(0.0, N*Te, N)
z = np.exp(2*np.pi*1j*f0*t)



#Exo 3 à compléter
import scipy.signal as sp


N = 50; f0=1680; fe=8000; Te=1/fe; NF=1024
t = np.linspace(0.0, N*Te, N)
x = np.exp(2*np.pi*1j*f0*t)
#help(scipy.signal.hamming)
window = sp.windows.hann(N)