FM-Modulation und Demodulation mit Python Part 3

Überblick

Ich habe FM-Modulation und Demodulation mit Python versucht. Der Demodulator ist GNU Radio FM Demod.

Foto

figure_4.png

Flussdiagramm

test17.grc.png

Beispielcode

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

FM-Modulation und Demodulation mit Python Part 3
FM-Modulation und Demodulation mit Python Part 2
FM-Modulation und Demodulation mit Python
AM-Modulation und Demodulation mit Python
AM-Modulation und Demodulation mit Python Part 2
Bildverarbeitung mit Python (Teil 2)
Programmieren mit Python und Tkinter
Ver- und Entschlüsselung mit Python
Python mit freeCodeCamp Teil1 studieren
Angrenzende Bilder mit Python Teil 1
Python und Hardware-Verwenden von RS232C mit Python-
Schaben mit Selen + Python Teil 1
Python studieren mit freeCodeCamp part2
Bildverarbeitung mit Python (Teil 1)
Nampre mit Python lösen (Teil 2)
Bildverarbeitung mit Python (3)
Schaben mit Selen + Python Teil 2
Python mit Pyenv und Venv
Funktioniert mit Python und R.
Kommunizieren Sie mit FX-5204PS mit Python und PyUSB
Leuchtendes Leben mit Python und OpenCV
Spielen Sie handschriftliche Zahlen mit Python Part 1
Roboter läuft mit Arduino und Python
Installieren Sie Python 2.7.9 und Python 3.4.x mit pip.
Perl-Objekt und Python-Klasse Teil 2.
Neuronales Netzwerk mit OpenCV 3 und Python 3
Scraping mit Node, Ruby und Python
[Mit Python automatisiert! ] Teil 1: Datei einstellen
Scraping mit Python, Selen und Chromedriver
Kratzen mit Python und schöner Suppe
JSON-Codierung und -Decodierung mit Python
Hadoop-Einführung und MapReduce mit Python
[GUI in Python] PyQt5-Drag & Drop-
Lesen und Schreiben von NetCDF mit Python
Ich habe mit PyQt5 und Python3 gespielt
Perl-Objekt und Python-Klasse Teil 1.
Lesen und Schreiben von CSV mit Python
Automatisieren Sie einfache Aufgaben mit Python Part0
Mehrfachintegration mit Python und Sympy
[Mit Python automatisiert! ] Teil 2: Dateivorgang
Koexistenz von Python2 und 3 mit CircleCI (1.0)
Sugoroku-Spiel und Zusatzspiel mit Python
Automatisches FX-Handelssystem mit Python und genetischem Algorithmus Teil 1
Kommunizieren Sie mit gRPC zwischen Elixir und Python
Datenpipeline-Aufbau mit Python und Luigi
Berechnen Sie das Standardgewicht und zeigen Sie es mit Python an
Überwachen Sie Mojo-Ausfälle mit Python und Skype
Spielen Sie handschriftliche Zahlen mit Python Teil 2 (identifizieren)
[Automatisierung] Bearbeiten Sie Maus und Tastatur mit Python
Verarbeiten Sie Pubmed .xml-Daten mit Python [Teil 2]
Passwortlose Authentifizierung mit RDS und IAM (Python)
Automatisieren Sie einfache Aufgaben mit Python Part1 Scraping
Python-Installation und Paketverwaltung mit pip
Verwenden von Python und MeCab mit Azure Databricks
POST verschieden mit Python und empfange mit Flask
Bilder mit Pupil, Python und OpenCV aufnehmen