2013-07-30 95 views
2

我试图在Python Matlab代码NumPy的警告:铸造复杂的现实丢弃虚部

我的代码给出警告

/usr/lib/python2.7/dist-packages/numpy/core /numeric.py:235:ComplexWarning:铸造复数值实际丢弃该虚部

返回阵列(A,D型细胞,复制=假,为了=顺序)

Python代码

demod_1_a=mod_noisy*2*cos((2*pi*Fc*t)+phi) 

N=10 
Fc=40 
Fs=1600 
d=firwin(numtaps=N,cutoff=40,nyq=Fs/2) 
print(len(d)) 
Hd=lfilter(d, 1.0, demod_1_a) 
print(len(Hd)) 
y2=(convolve(Hd,raised))/Convfac 
print(len(y2)) 
y2=y2[(sa/2)-1:-sa/2] 
print(len(y2)) 
demod_3_a=y2[(sa/2)-1::sa] 
print(len(demod_3_a)) 

demod_1_b=-1*mod_noisy*2*sin((2*pi*Fc*t)+phi) 

Hd2=lfilter(d,1.0,demod_1_b) 

y3=(convolve(Hd2,raised))/Convfac 

y3=y3[(sa/2)-1:-sa/2] 

demod_3_b=y3[(sa/2)-1::sa] 

#########3333 
#Demod 

demod=demod_3_a+(1j)*demod_3_b 
print((demod)) 
plot(demod,'wo') 
show() 

此代码给我的结果,但不是所期望的结果。我想问这个警告如何影响我的代码? 什么是解决方案摆脱这种警告。请帮助

+2

您的变量名称是难以理解的,其中一半的变量是在别处定义的。你甚至想要做什么? – user2357112

回答

11

该警告来自剧情指挥 - 我很确定。 “情节”意味着采取一个真正的数组,并把它放在屏幕上。当它看到一个复数的数组时,它可以做到最好,即丢弃虚数部分并绘制真实部分。

你可能想尝试像

plot(numpy.real(demod),'wo') 
plot(numpy.imag(demod),'wo') 

的东西,如果你想看到两个部分。

+0

是的,你是绝对正确的,当我使用情节命令它给了我错误 –

+0

谢谢,我只是希望这会工作 –