Найти - Пользователи
Полная версия: BPSK
Начало » Python для экспертов » BPSK
1
toksin
Есть ли у кого опыт написания BPSK демодулятора ? Либо может посоветуете библиотеку для работы с различными видами модуляции, пытаюсь читать в книгах по ЦОС, но там все очень сухо написано, а главное почти один в один, такое ощущение, что списывают друг у друга, если посоветуете хорошую книгу, где хорошо расписано - тоже буду очень благодарен.
Борисенков Сергей
Может чем поможет:
http://www.mathworks.com/matlabcentral/fileexchange/3371
toksin
Вот, что у меня вышло с модулятором:
#-------------------------------------------------------------------------------
# Name: Nikolay
# Purpose:
#
# Author: toksin
#
# Created: 21.01.2011
# Copyright: (c) developer 2011
# Licence: Free
#-------------------------------------------------------------------------------
#
#Файл bin.txt содержит данные в виде нулей и единиц(входящая информация)
#в psk-31 используется алфавит варикод http://en.wikipedia.org/wiki/Varicode
#Файл test.wav содержит промодулированный сигнал
#
#!/usr/bin/env python

import cmath
import pylab, wave
from matplotlib import mlab
import struct

mes = []
fmes = open("bin.txt", "r").read()
for m in fmes:
mes.append(m)

s = []
amp = 5000
sampl = 11025#частота семплирования
f = 1000# частота несущей(Гц)
phase = 0
manip = 31#частота манипуляции
sampl_manip = sampl/manip

ln_mes = len(mes)*manip
if ln_mes>sampl:
ln = ln_mes/sampl +1
else:
ln = 1
for t in xrange(sampl*ln):
if t % sampl_manip == 0 and len(mes)>0 and t>0:
bit = int(mes.pop(0))
if bit == 0:
if phase == 0:
phase -= cmath.pi
else:
phase = 0
elif bit ==" ":
phase = phase
s.append(cmath.sin(2*cmath.pi*f*t/sampl+phase))
x =[]
for r in s:
x.append(r.real)
#pylab.plot([y for y in range(len(s))], x)
#pylab.show()
#print len(x)
wav_file = wave.open("test.wav", "wb")
nchannels = 1
sampwidth = 2
framerate = int(sampl)
nframes = ln_mes
comptype = "NONE"
compname = "not compressed"
wav_file.setparams((nchannels, sampwidth, framerate, nframes,
comptype, compname))

for s in x:
# write the audio frames, make sure nframes is correct
wav_file.writeframes(struct.pack('h', s*amp/2))
wav_file.close()
Вот еще вопрос - способен ли питон производить цифровую обработку сигнала, со скоростью равной С++ ? Если использовать cmath, scipy, numpy.
Zubchick
чем больше расчетов запихнешь в cmath, scipy, numpy тем быстрей будет работать.
toksin
Zubchick не подскажите, как реализовать фильтр нижних частот(ФНЧ) ?
stx
Может поможет
toksin
Вот это ссылочка, огромнейшее вам спасибо stx.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB