linden 发表于 2009-2-18 15:23

有关real的问题

sig1=ifft(fft(y).*fft(h)); % 低通(低频分量)
sig2=ifft(fft(y).*fft(g)); % 高通(高频分量)
figure(5); % 信号图
subplot(2,1,1)
plot(real(sig1));
title('分解信号1')
subplot(2,1,2)
plot(real(sig2));
title('分解信号2')
这段程序中有real和没有real画出来的图没有什么差别,这是怎么回事?

sigma665 发表于 2009-2-18 16:01

回复 楼主 linden 的帖子

real是取实部
没加real没有出现警告吗

linden 发表于 2009-2-18 16:19

回复 沙发 sigma665 的帖子

没有出现警告,
输出波形完全一样

ChaChing 发表于 2009-2-18 16:36

試試
a=; b=; c=complex(a,b);
subplot(3,1,1); plot(c);
subplot(3,1,2); plot(real(c));
subplot(3,1,3); plot(,c)
第一个是画plot(real(c),imag(c))
第二个及第三个是画一样了, 但第三个会出现警告!

[ 本帖最后由 ChaChing 于 2009-2-18 16:40 编辑 ]

linden 发表于 2009-2-18 19:20

如果sig1=ifft(fft(y).*fft(h));是个实数的话,会不会要不要real一样呢!?

ChaChing 发表于 2009-2-18 20:21

回复 5楼 linden 的帖子

当然c为实数, plot(c)与plot(real(c))是一样!
可以使用isreal(c)检查c是否为实数!
我想若LZ确定有无real画出来的图没有什么差别, 唯一可能性就是sig1为实数

linden 发表于 2009-2-19 10:33

isreal(sig1)是实数的话,返回值是1?复数,返回值是0?

ChaChing 发表于 2009-2-19 10:42

回复 7楼 linden 的帖子

試試
a=2; isreal(a), b=1+2*i; isreal(b)
页: [1]
查看完整版本: 有关real的问题