5

PythonでMatlabコードを試しています

私のコードは警告を出します

/usr/lib/python2.7/dist-packages/numpy/core/numeric.py:235: ComplexWarning: 複素数を実数にキャストすると虚数部が破棄されます

return array(a, dtype, copy=False, order=order)

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() 

このコードは私に結果を与えていますが、望ましい結果ではありません。この警告が私のコードにどのように影響するかを尋ねたかったのですか? この警告を取り除くための解決策は何ですか.助けてください

4

1 に答える 1

17

警告は plot コマンドから来ています - 私はかなり確信しています。「プロット」は、1次元の実数配列を取得して画面に表示することを目的としています。複素数の配列を検出すると、できる限りのことを行います。つまり、虚部を破棄して実部をプロットします。

次のようなものを試してみたいかもしれません

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

両方の部分を見たい場合。

于 2013-07-30T22:13:07.873 に答える