python通信系统仿真_Python----matlab的兄弟语⾔(⽤
python(x,。。。
最近爱上Python(蟒蛇语⾔)这个编程语⾔,因为她简单,功能强⼤,⽽且还免费,⽹上能到关于她的⼤量开源代码,因⽽便于学习。对于学⼯程,习惯⽤matlab作仿真的童鞋,假如想学⼀门语⾔玩编程的话,我极⼒推荐python!
仅仅花了⼀个下午就将她的语法学了⼀遍,因为她实在太像我⽐较熟的matlab了。matlab总是需要库的⽀持,python也是;m语⾔中数组为基础,python中序列、列表为基础;matlab专于做数组运算,python也有⼤量⽀持数组运算的库。
python在⼤量科学计算库的⽀持下,有了python(x,y),Spyder的编译环境后,python看起来就更像matlab了,如下图。
右下⾓为类似matlab环境中的command窗⼝,左边是路径⽂件,中间为⽂本编辑窗⼝。
是不是开始产⽣兴趣了呢?学习路径如下,⼤量⽂件⽀持!!
1、python简明教程    sebug/paper/python/
2、80个经典资料。⼊门的话,推荐下载其中的《笨办法学习python》、《常⽤模块详解》  bbs.51cto/thread-935214-1.html
3、python(x,y)(注意是python(x,y),它是⽤python专门科学计算的)sebug/paper/books/scipydoc/index.html#
java后端有必要学算法吗4、下载python(x,y)的地址 下载这个 ⾃带PyQt、Python2.7编译器、Spyder等等  下⼀个顶⼗个 功能强⼤ 其中包括GUI设计编程、Spyder(类似matlab环境)科学计算、原始类似Dos编程环境(强烈推荐)www.pythonxy
另外,有童鞋想做游戏,python也可以哦,pygame(python的⼀个库)帮你!
5、先当⽹上下⼀个pygame(⽹上很多的,这⾥就不给除了,⽊有收藏),下的时候注意⾃⼰的python编译器的版本要与⾃⼰将要下载的pygame版本对应  pygame⼊门神器    simple-is-better/news/361
下⾯就来秀秀我⽤python编出的简易qpsk-ofdm系统仿真吧。sebug/paper/books/scipydoc/index.html#  资料学习。
import os
import numpy as np
import matplotlib.pyplot as plt
java 基础import random
#import stdin
close('all')
x=array([1,2,3,4,5,6,7,8]
)
os.system('cls')
shape((len(x)/2,2))
x=arange(1,10001,1)
size=len(x)
print len(x)
for i in range(len(x)):
x[i-1]=random.randint(0,1)
or_bits=x
shape((len(x)/2,2))
b=range(5000)
d=range(5000)
for i in range(5000):
m=x[i][0]
n=x[i][1]
if m==0:电脑主板上的jsp是什么意思
m=-1
else:
m=1
if n==0:
n=-1python入门教程资料
else:
n=1
b[i]=complex(m,n)
d[4999-i]=conjugate(b[i]) '''
x=np.linspace(0,2*np.pi,10) y=np.sin(x)
'''
bb=range(10002)
for i in bb:
if i==0 or i==5001:
bb[i]=0
elif i<=5000:
bb[i]=b[i-1]
else:
bb[i]=d[i-5002]
cc=ifft(bb)*16
#print cc
#print len(cc)
plt.figure(figsize=(8,4)) plt.plot(real(cc))
plt.ylim(-1,1)
cc_real=real(cc)
print find(cc_real>0)
flag1=find(cc_real>0)
flag2=find(cc_real<=0)
#for i in flag:
print cc_real[flag1]
print cc_real[flag2]
cc_pos=cc_real[flag1]
cc_neg=cc_real[flag2]
cc_2=cc_real**2
print mean(cc_pos**2)
特斯拉model3和y怎么选
print mean(cc_neg**2)
print mean(cc_2)
pow_mean=mean(cc_2)
noise_mean=pow_mean/float(10)
select语句执行结果是print noise_mean
noise=1
def awgn(x,snr):
snr=10**(snr/10.0)
xpower=np.sum(x**2)/len(x)
npower=xpower/snr
global noise
noise=np.random.randn(len(x)) * np.sqrt(npower)
length=range(len(x))
for i in length:
x[i]=x[i]+noise[i]
return x
>>>>># ofdm modulation>>>>>### tx=awgn(cc_real,11)
plt.figure(figsize=(8,4))
plt.plot(tx)
plt.ylim(-1,1)
>>>>># ofdm demodulation>>>>># rx=tx
rx_de1=fft(rx)/float(16)
print rx_de1
rx_de2=rx_de1[1:5001]
#print len(rx_de2)
#print rx_de1[0]
#print rx_de1[5001]
print "a=",rx_de2[:]
rx_de3=arange(1,10001,1)
rx_de3=shape((len(rx_de3)/2,2)) for i in range(len(rx_de3)):
rr=real(rx_de2[i])
ri=imag(rx_de2[i])
if rr<0:
rr=0
else:
rr=1
if ri<0:
ri=0
else:
ri=1
rx_de3[i][0]=rr
rx_de3[i][1]=ri
rx_de4=shape(1,(len(rx_de3)*2)) gg=find(rx_de4!=or_bits)
ber_count=len(gg)
ber=ber_count/float(len(or_bits))
print ber
仿真结果如下:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。

发表评论