FM-Modulation und Demodulation mit Python Part 2

Überblick

Ich habe FM-Modulation und Demodulation mit Python versucht. Demoditionsalgorithmus ist Google Radio

Foto

figure_1.png

Beispielcode

import scipy.signal as sg
import numpy as np
import matplotlib.pyplot as plt

sample_rate = 48000.0
nsamples = 320
F_1 = 440.0
F_2 = 10000.0
F_3 = 10000.0
nyq_rate = sample_rate / 2.0
cutoff_hz = 5000.0
numtaps = 29
t = np.arange(nsamples) / sample_rate
vin = np.sin(2 * np.pi * F_1 * t) 
vfm = np.sin(2 * np.pi * F_2 * t + 6.0 * -np.cos(2 * np.pi * F_1 * t))
i1 = vfm * np.cos(2 * np.pi * F_3 * t)
q1 = vfm * np.sin(2 * np.pi * F_3 * t)
lpf = sg.firwin(numtaps, cutoff_hz / nyq_rate)
I2 = sg.lfilter(lpf, 1, i1)
Q2 = sg.lfilter(lpf, 1, q1)
pI = 0
pQ = 0
m = 0
vo = np.zeros(320)
for t in range(0, vfm.size):
   real = pI * I2[t] + pQ * Q2[t]
   imag = pI * Q2[t] - pQ * I2[t]
   sgn = 1
   circ = 0
   ang = 0
   div = 1
   if (real < 0):
      sgn = -sgn
      real = -real
      circ = np.pi
   if (imag < 0):
      sgn = -sgn
      imag = -imag
      circ = -circ
   if (real > imag):
      div = imag / real
   else:
      if (real != imag):
         ang = -np.pi / 2
         div = real / imag
         sgn = -sgn
   vo[t] = circ + sgn * (ang + div / (0.98419158358617365 + div * (0.093485702629671305 + div * 0.19556307900617517))) * 5
   pI = I2[t]
   pQ = Q2[t]
fig = plt.figure(1)
ax = fig.add_subplot(311)
ax.plot(vin[1:300])
ax = fig.add_subplot(312)
ax.plot(vfm[1:300])
ax = fig.add_subplot(313)
ax.plot(vo[1:300])
fig.set_tight_layout(True)
plt.show()



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
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
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
Fraktal zum Erstellen und Spielen mit Python
Ein Memo mit Python2.7 und Python3 in CentOS