0% ont trouvé ce document utile (0 vote)
30 vues2 pages

Mat Lab

Transféré par

ahmedhajtaib86
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)
30 vues2 pages

Mat Lab

Transféré par

ahmedhajtaib86
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

Code MatLab :

clc; clear; close all;

%% Paramètres du filtre Sallen-Key

fc = 1000; % Fréquence de coupure en Hz

C = 10e-9; % Capacité en Farads (10nF)

R = 1 / (2 * pi * fc * C); % Calcul de R pour atteindre fc

R = round(R, -1); % Arrondi à une valeur standard (ex: 16kΩ)

%% Définition de la fonction de transfert H(s)

s = tf('s'); % Définition de l'opérateur de Laplace

H = 1 / (1 + 2 * R * C * s + (R * C)^2 * s^2);

%% Tracé des courbes de Bode

figure;

bode(H);

title('Réponse fréquentielle du filtre passe-bas actif');

grid on;

%% Simulation temporelle : signal sinusoïdal

Fs = 50e3; % Fréquence d'échantillonnage (50 kHz)

T = 5e-3; % Durée de simulation (5 ms)

t = 0:1/Fs:T; % Axe temporel

freqs = [500, 1000, 2000, 5000, 10000]; % Fréquences d'entrée

colors = ['b', 'r', 'g', 'm', 'k']; % Couleurs pour distinguer les signaux

figure;

hold on;

for i = 1:length(freqs)
Vin = sin(2 * pi * freqs(i) * t); % Signal d'entrée

Vout = lsim(H, Vin, t); % Signal en sortie du filtre

% Tracé des signaux d'entrée

subplot(2,1,1);

plot(t*1000, Vin, 'Color', colors(i), 'LineWidth', 1.5);

hold on;

% Tracé des signaux de sortie

subplot(2,1,2);

plot(t*1000, Vout, 'Color', colors(i), 'LineWidth', 1.5);

hold on;

end

% Configuration des axes

subplot(2,1,1);

xlabel('Temps (ms)');

ylabel('Amplitude');

title('Signaux d’entrée pour différentes fréquences');

legend(arrayfun(@(f) [num2str(f), ' Hz'], freqs, 'UniformOutput', false));

grid on;

subplot(2,1,2);

xlabel('Temps (ms)');

ylabel('Amplitude');

title('Signaux de sortie après filtrage');

legend(arrayfun(@(f) [num2str(f), ' Hz'], freqs, 'UniformOutput', false));

grid on;

hold off;

Vous aimerez peut-être aussi