0% ont trouvé ce document utile (0 vote)
4 vues6 pages

Transformée de Fourier et Filtrage RIF

Transféré par

Ngagne Demba Camara
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
4 vues6 pages

Transformée de Fourier et Filtrage RIF

Transféré par

Ngagne Demba Camara
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd

import numpy as np

import [Link] as plt


from [Link] import freqz
from sympy import symbols, cos, solve

# Exercice 1: Transformée de Fourier Discrète (TFD)

# Suite x(n)
x1 = [Link](16)
x1[0] = x1[1] = x1[2] = x1[14] = x1[15] = 1

# Calcul de la TFD
X1 = [Link](x1)

# Tracé de la TFD
[Link](figsize=(12, 6))
[Link](2, 1, 1)
[Link]([Link](X1), use_line_collection=True)
[Link]("TFD de la suite x1(n)")
[Link]("Fréquence")
[Link]("|X1(k)|")
[Link]()

# Suite x(n)
x2 = [Link](16)
x2[0] = x2[1] = x2[2] = x2[3] = x2[4] = 1

# Calcul de la TFD
X2 = [Link](x2)

# Tracé de la TFD
[Link](2, 1, 2)
[Link]([Link](X2), use_line_collection=True)
[Link]("TFD de la suite x2(n)")
[Link]("Fréquence")
[Link]("|X2(k)|")
[Link]()

plt.tight_layout()
[Link]()

# Transformée inverse
x1_inv = [Link](X1)
x2_inv = [Link](X2)

# Tracé des suites inversées


[Link](figsize=(12, 6))

[Link](2, 1, 1)
[Link]([Link](x1_inv), use_line_collection=True)
[Link]("Transformée inverse de X1(k)")
[Link]("n")
[Link]("x1_inv(n)")
[Link]()

[Link](2, 1, 2)
[Link]([Link](x2_inv), use_line_collection=True)
[Link]("Transformée inverse de X2(k)")
[Link]("n")
[Link]("x2_inv(n)")
[Link]()

plt.tight_layout()
[Link]()
# Exercice 2: Filtrage numérique RIF

# Coefficients du filtre
h = [0.1, 0, 0.2, 0.1]

# Tracé de la réponse impulsionnelle


n = [Link](len(h))
[Link](n, h, use_line_collection=True)
[Link]("Réponse impulsionnelle h(n)")
[Link]("n")
[Link]("h(n)")
[Link]()
[Link]()

# Calcul de la réponse fréquentielle


w, H = freqz(h)

# Tracé du module et de la phase


[Link](figsize=(12, 6))

# Module
[Link](2, 1, 1)
[Link](w, [Link](H))
[Link]("Réponse fréquentielle")
[Link]("Fréquence (rad/sample)")
[Link]("|H(jω)|")
[Link]()

# Phase
[Link](2, 1, 2)
[Link](w, [Link](H))
[Link]("Fréquence (rad/sample)")
[Link]("Phase (radians)")
[Link]()

[Link]()

# Fréquences spécifiques
omega_Te = [0, [Link]/2, [Link], 2*[Link]]
H_values = [[Link]([h[k] * [Link](-1j * omega * k) for k in range(len(h))]) for
omega in omega_Te]

# Affichage des résultats


for omega, H_val in zip(omega_Te, H_values):
print(f"ωT_e = {omega:.2f}, |H(jωT_e)| = {[Link](H_val):.2f}, Phase =
{[Link](H_val):.2f} radians")

# Calcul de la fréquence de coupure


H_dB = 20 * np.log10([Link](H))
cutoff_idx = [Link](H_dB <= -3)[0][0]
cutoff_freq = w[cutoff_idx]

print(f"Fréquence de coupure à -3dB: {cutoff_freq:.2f} rad/sample")

# Signal d'entrée
x = [1, 1, 0, 0, 0, 0, 0, 0]

# Calcul du signal de sortie


y = [Link](x, h)

# Tracé du signal de sortie


n = [Link](len(y))
[Link](n, y, use_line_collection=True)
[Link]("Signal de sortie y(n)")
[Link]("n")
[Link]("y(n)")
[Link]()
[Link]()

# Exercice 3: Étude d'un filtre numérique

# Variables symboliques
z, rho, theta = symbols('z rho theta')

# Fonction de transfert
H_z = (1 - 2*z**-1) / (1 - 2*rho*cos(theta)*z**-1 + rho**2*z**-2)
print(f"Fonction de transfert H(z): {H_z}")

# Pôles
poles = solve(1 - 2*rho*cos(theta)*z**-1 + rho**2*z**-2, z)
print(f"Pôles: {poles}")

# Zéros
zeros = solve(1 - 2*z**-1, z)
print(f"Zéros: {zeros}")

# Calcul du module de la réponse fréquentielle


H_freq = H_z.subs({rho: 0.8, theta: [Link]/4})
H_freq = H_freq.simplify()

# Tracé du module
w = [Link](0, 2*[Link], 1000)
H_values = [abs(H_freq.subs(z, [Link](1j*omega))) for omega in w]

[Link](w, H_values)
[Link]("Module de la réponse fréquentielle")
[Link]("Fréquence (rad/sample)")
[Link]("|H(jω)|")
[Link]()
[Link]()

Vous aimerez peut-être aussi