Modulation et démodulation FM avec Python Partie 3

Aperçu

J'ai essayé la modulation et la démodulation FM avec Python. Le démodulateur est GNU Radio FM Demod.

Photo

figure_4.png

Graphique de flux

test17.grc.png

Exemple de code

from gnuradio import analog
from gnuradio import audio
from gnuradio import blocks
from gnuradio import eng_notation
from gnuradio import filter
from gnuradio import gr
from gnuradio.eng_option import eng_option
from gnuradio.filter import firdes
from optparse import OptionParser
import sys
import scipy
import numpy as np
import scipy.signal as sg
import pylab

class radio(gr.top_block):
    def __init__(self, vfm):
        gr.top_block.__init__(self)
        self.samp_rate = samp_rate = 32000
        self.blocks_vector_source_x_0 = blocks.vector_source_f(vfm.tolist(), False, 1, [])
        self.hilbert_fc_0 = filter.hilbert_fc(65, firdes.WIN_HAMMING, 6.76)
        self.blocks_vector_sink_x_0 = blocks.vector_sink_f(1)
        self.analog_fm_demod_cf_0 = analog.fm_demod_cf(channel_rate=samp_rate, audio_decim=1, deviation=75000, audio_pass=15000, audio_stop=16000, gain=1.0, tau=75e-6, )
        self.connect((self.hilbert_fc_0, 0), (self.analog_fm_demod_cf_0, 0))
        self.connect((self.analog_fm_demod_cf_0, 0), (self.blocks_vector_sink_x_0, 0))
        self.connect((self.blocks_vector_source_x_0, 0), (self.hilbert_fc_0, 0))
def main():
    sample_rate = 32000.
    nsamples = 320
    F_1 = 440.
    A_1 = 1.0
    F_2 = 10000.
    A_2 = 6.0
    t = np.arange(nsamples) / sample_rate
    vin = A_1 * np.sin(2 * np.pi * F_1 * t) 
    vfm = A_1 * np.sin(2 * np.pi * F_2 * t + A_2 * -np.cos(2 * np.pi * F_1 * t))
    put = radio(vfm)
    put.run()
    data = scipy.array(put.blocks_vector_sink_x_0.data())
    f1 = pylab.figure(1, figsize = (12, 10), facecolor = 'w')
    s1 = f1.add_subplot(2, 2, 1)
    s1.plot(vin)
    s3 = f1.add_subplot(2, 2, 2)
    s3.plot(vfm)
    s4 = f1.add_subplot(2, 2, 3)
    s4.plot(data)
    pylab.show()
if __name__ == "__main__":
    try:
        main()
    except KeyboardInterrupt:
        pass

Recommended Posts

Modulation et démodulation FM avec Python Partie 3
Modulation et démodulation FM avec Python Partie 2
Modulation et démodulation FM avec Python
Modulation et démodulation AM avec python
Modulation et démodulation AM avec Python Partie 2
Traitement d'image avec Python (partie 2)
Programmation avec Python et Tkinter
Chiffrement et déchiffrement avec Python
Etudier Python avec freeCodeCamp part1
Images en bordure avec python Partie 1
Python et matériel - Utilisation de RS232C avec Python -
Grattage avec Selenium + Python Partie 1
Etudier Python avec freeCodeCamp part2
Traitement d'image avec Python (partie 1)
Résolution de Nampre avec Python (partie 2)
Traitement d'image avec Python (3)
Grattage avec Selenium + Python Partie 2
python avec pyenv et venv
Fonctionne avec Python et R
Communiquez avec FX-5204PS avec Python et PyUSB
Briller la vie avec Python et OpenCV
Jouez des nombres manuscrits avec Python Partie 1
Robot fonctionnant avec Arduino et python
Installez Python 2.7.9 et Python 3.4.x avec pip.
objet perl et classe python partie 2.
Réseau neuronal avec OpenCV 3 et Python 3
Scraping avec Node, Ruby et Python
[Automatisé avec python! ] Partie 1: fichier de configuration
Grattage avec Python, Selenium et Chromedriver
Grattage avec Python et belle soupe
Encodage et décodage JSON avec python
Introduction à Hadoop et MapReduce avec Python
[GUI en Python] PyQt5-Glisser-déposer-
Lire et écrire NetCDF avec Python
J'ai joué avec PyQt5 et Python3
objet perl et classe python partie 1.
Lire et écrire du CSV avec Python
Automatisez des tâches simples avec Python Part0
Intégration multiple avec Python et Sympy
[Automatisé avec python! ] Partie 2: Fonctionnement des fichiers
Coexistence de Python2 et 3 avec CircleCI (1.0)
Jeu Sugoroku et jeu d'addition avec Python
Système de trading automatique FX réalisé avec python et algorithme génétique Partie 1
Communiquez entre Elixir et Python avec gRPC
Construction de pipeline de données avec Python et Luigi
Calculer et afficher le poids standard avec python
Surveiller les pannes de Mojo avec Python et Skype
Jouez des nombres manuscrits avec python, partie 2 (identifier)
[Automation] Manipulez la souris et le clavier avec Python
Traiter les données Pubmed .xml avec python [Partie 2]
Authentification sans mot de passe avec RDS et IAM (Python)
Automatisez des tâches simples avec Python Part1 Scraping
Installation de Python et gestion des packages avec pip
Utilisation de Python et MeCab avec Azure Databricks
POSTER diversement avec Python et recevoir avec Flask
Capturer des images avec Pupil, python et OpenCV