ljsr1001 发表于 2008-3-10 19:55

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 编辑 ]

xiaoyongsword 发表于 2008-3-10 20:10

n是一个向量,P是单值 ,怎么能画的了?点对点的画

[ 本帖最后由 xiaoyongsword 于 2008-3-10 20:15 编辑 ]

ljsr1001 发表于 2008-3-10 20:23

那要想画的,P不也是个循环么,怎么弄

xiaoyongsword 发表于 2008-3-10 20:40

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

ljsr1001 发表于 2008-3-10 20:54

可以了,谢了^_^

xiaoyongsword 发表于 2008-3-10 21:04

不客气!看了你前几天发的关于功率谱的帖子和现在发的帖子一样,是些基本问题,找本matlab的书看看基础知识。尝试自己动手。我前段时间做过一些功率谱仿真。

ljsr1001 发表于 2008-3-10 21:10

如果想画单频的图,就是每个N里面,最大的两个频率值相加,然后画随着N变化的图,怎么设计啊

ljsr1001 发表于 2008-3-10 21:17

加个MAX(P)就成了,可是画出来的图完全没有规律

ljsr1001 发表于 2008-3-11 13:24

如果想画步进为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();
怎么画出曲线来?

xiaoyongsword 发表于 2008-3-12 20:35

就用这个程序就可以,步距64本身就是一些离散的点,没有办法画成连续曲线!
页: [1]
查看完整版本: MATLAB作图