MATLAB作图
我想画随着取样值N的不同,功率P就不同,但是我怎么都画不出来clear;
t=0:pi/100:2*pi*100;
x=2*sin(t);%+sin(2*pi*300*t);
plot(t,x);
for n=64:100;
y=fft(x,n);
figure(2);
kk = sum(abs(y).*abs(y));%求信号的功率
P=kk/(n*n);
plot(n,P); %怎么画不出来?
[ 本帖最后由 eight 于 2008-3-13 11:13 编辑 ] n是一个向量,P是单值 ,怎么能画的了?点对点的画
[ 本帖最后由 xiaoyongsword 于 2008-3-10 20:15 编辑 ] 那要想画的,P不也是个循环么,怎么弄 clear;
clc;
t=0:pi/100:2*pi*100;
x=2*sin(t);%+sin(2*pi*300*t);
plot(t,x);
for n=64:100
n1(n)=n;
y=fft(x,n);
figure(2);
kk = sum(abs(y).*abs(y));
P=kk/(n*n);
p1(n)=P;
end
plot(n1,p1); 可以了,谢了^_^ 不客气!看了你前几天发的关于功率谱的帖子和现在发的帖子一样,是些基本问题,找本matlab的书看看基础知识。尝试自己动手。我前段时间做过一些功率谱仿真。 如果想画单频的图,就是每个N里面,最大的两个频率值相加,然后画随着N变化的图,怎么设计啊 加个MAX(P)就成了,可是画出来的图完全没有规律 如果想画步进为64的图,比如
clear;
clc;
t=0:pi/100:2*pi*100;
x=2*sin(t);
plot(t,x);
for n=64:64:1024
n1(n)=n;
y=fft(x,n);
figure(2);
kk=sum(abs(y).*abs(y));
P=kk/(n*n);
p1(n)=P;
end
plot(n1,p1);
axis();
怎么画出曲线来? 就用这个程序就可以,步距64本身就是一些离散的点,没有办法画成连续曲线!
页:
[1]