IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Téléchargez Discussion :

Modulation analogique FM


Sujet :

Téléchargez

  1. #1
    Membre du Club

    Inscrit en
    avril 2007
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : avril 2007
    Messages : 54
    Points : 56
    Points
    56
    Par défaut Modulation analogique FM
    Bonjour,

    Je vous propose un nouvel élément à utiliser : Modulation analogique FM

    le code modélise une chaine de transmission d'un signal analogique en utilisant la modulation FM.
    1-modulation
    signal_informatif ---->integrateur---->modulateurFM--->signal modulé

    2-démodulation

    signal modulé--->dérivateur-->redresseur-->fitrepasbas--->elimination composante continu
    on élimine la composante continue en descriminant la moyenne du signal


    ******************Fonction Spectre**********************
    cette fonction calcule le fft d'un signal en lui transmet deux arguments le nombre d'échantillons et le signal .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function sig_out=spectre(sig_inp,fft_size)
    %**********transformation************
    sig_out=fft(sig_inp,fft_size);
    sig_out=abs(sig_out)/fft_size;
    sig_out=sig_out(1:fft_size/2+1);
    **************************Script de modulation **************

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    clear all; clc; clear;
    fs =100e3; %frequence d'echantillonnage
    fft_size=512;
    dt=1/fs; % pas d'échantillonnage
    t=0:dt:0.01; % axe du temps
    t_dif=t(2:end); 
    % parceque la fonction diff retire un échantillon du signal on modifie l'axe de temps pour pouvoir représenter le signal à la sortie du dérivateur%
    f=fs*(0:fft_size/2)/fft_size; % axe de fréquence
    
    %Signal informatif
    fimax=3400;
    u1=1;
    Sig_inf=u1*cos(2*pi*fimax*t);
    
    
    %Modulation de frequence
    kf=1.5;  up=2 ; fp= 15000;
    Sig_int=cumsum(Sig_inf); % la sortie de l'integrateur
    Sig_int=Sig_int/max(Sig_int); % normalisation du signal intégré
    Sig_fm=up*cos(2*pi*fp*t+kf*Sig_int); % signal modulé en FM
    subplot(211);
    plot(t*1000,Sig_inf,'b');grid on ; hold on;
    plot(t*1000,Sig_fm,'r');grid on ; hold on;
    xlim([0 2]);
    
    Sp_fm = spectre (Sig_fm,fft_size);
    subplot(212); plot(f/1000,Sp_fm); grid on; hold on;
    xlabel('frequence (KHZ)');
    
    %Demodulation FM
    
    %Derivation
    
    Sig_der=diff(Sig_fm);
    figure;
    subplot(211);
    plot(t_dif*1000,Sig_der,'b');grid on;hold on;
    xlim([0 2]);
    
    %Spectre du signal derivé
    
    Sp_der = spectre (Sig_der,fft_size);
    subplot(212); plot(f/1000,Sp_der); grid on; hold on;
    xlabel('frequence (KHZ)');
    
    %Redressement
    Sig_red=abs (Sig_der);
    figure;
    subplot(211);
    plot(t_dif*1000,Sig_red,'b');grid on;hold on;
    xlim([0 2]);
    
    
    %Spectre du signal redressé
    
    Sp_red = spectre (Sig_red,fft_size);
    subplot(212); plot(f/1000,Sp_red); grid on; hold on;
    xlabel('frequence (KHZ)');
    
    %Filtrage
    [b a]=butter[5,[fimax]*2/fs);
    Sig_fil=filtfilt(b ,a,Sig_red);
    figure;
    subplot(211);
    plot(t_dif*1000,Sig_fil,'r');grid on;hold on;
    xlim([0 2]);
    
    
    %Spectre du signal filtré
    Sp_fil= spectre(Sig_fil,fft_size);
    subplot(212); plot(f/1000,Sp_fil,'r'); grid on; hold on;
    xlabel('frequence (KHZ)');
    
    %Elimination de la composante continue
    Sig_out=Sig_fil-mean(Sig_fil);
    Sig_out=Sig_out*6;
    figure;
    subplot(211);plot(t*1000,Sig_out,'r');grid on; hold on;
    ******************************************************
    si vous avez besoin de quoi que ce soit je suis là

  2. #2
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    février 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : février 2015
    Messages : 2
    Points : 0
    Points
    0
    Par défaut
    salut
    ce code me renvoi un erreur dans la fonction plot
    est ce que vous pouvez m'aider pour résoudre cette problème
    merci d'avance

Discussions similaires

  1. Module analogique d'entrée [ PL7 ]
    Par Invité dans le forum Automation
    Réponses: 8
    Dernier message: 01/04/2011, 17h56
  2. module Find
    Par martijan dans le forum Modules
    Réponses: 8
    Dernier message: 09/07/2003, 12h07
  3. cherche module ou langage pour récupérer des données audio..
    Par Ry_Yo dans le forum Langages de programmation
    Réponses: 5
    Dernier message: 12/05/2003, 18h44
  4. PerlDoc sur une fonction d'un module
    Par lesouriciergris dans le forum Modules
    Réponses: 2
    Dernier message: 13/03/2003, 21h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo