回 帖 发 新 帖 刷新版面

主题:求助:频率和曲线的关系,如何生成频率曲线

各位大侠:
    帮我看看,我有一组频率数据“428,490,472,524,521,558,500,516,482,453,393,384”,我看把它整理成一条曲线,X轴方向是时间(t),Y轴方向就是上面的值,今天安装了Matlab,不知道从哪里入手,阅读资料也没有找到答案呢?
    哪位大侠能给我指点一二,万分感谢!

回复列表 (共8个回复)

沙发

y=[428,490,472,524,521,558,500,516,482,453,393,384];
x=[0 1 2 3 4 5 6 7 8 9 10 11 ];%y对应的x作标以0~11为例
plot(x,y)

板凳


y=[428,490,472,524,521,558,500,516,482,453,393,384];
x = [0.00233645 0.00437726 0.00649591 0.00840431 0.0103237 0.0121158 0.0141158 0.0160538 0.0181285 0.0203360 0.0228805 0.0254847]; 
plot(x,y)
时间不是单纯的{1,2,3..],因为时间是有频率决定的,如428,该频率发送结束,下个频率发送的时间是1/428 = 0.00233645 ;
下一个频率为490,该频率发送结束的时间为(1/428 + 1/490) = 0.00437726 。
如果没个时间都这样做,很累,有没有把频率作为数组,X和Y由数组计算出来的方法,我今天刚装上Matlab,语法都不是很熟,楼上的朋友或者哪位大侠能帮个忙啊?

3 楼

感觉楼主的意思是已知y,求x,而且是倒数关系。
这样行吗?
y=[428,490,472,524,521,558,500,516,482,453,393,384];
x=y.^-1;
plot(x,y)

4 楼

y=[428,490,472,524,521,558,500,516,482,453,393,384];
x=y.^-1;
plot(x,y)
楼上的有点那个味道,还还差一点点,就是,X的值是累积成的,如:
x1 = 428.^-1
x2 = x1 + 490.^-1
x3 = x2 + 472.^-1
......

我不知道怎么表达啊?

5 楼

y=[428,490,472,524,521,558,500,516,482,453,393,384];
y是一个12*1的矩阵,其元素分别为y[1],y[2]...y[12],即i=1...i=12
x[1]=1/y[1];
x[2]=x[1]+1/y[2];
...
这样就设一个循环
for i=1:12
x[0]=0;
x[i]=x[i-1]+1/y[i];
end
x1=[x[1],x[2],...x[12]]
plot(x1,y)
你可以试一下

6 楼

楼上的朋友,不行啊,
>> y=[428,490,472,524,521,558,500,516,482,453,393,384];
for i=1:12
x[0]=0;
x[i]=x[i-1]+1/y[i];
end
x1=[x[1],x[2],x[3],x[4],x[5],x[6],x[7],x[8],x[9],x[10],x[11],x[12]]
plot(x1,y)
??? x[0]=0;
     |
Error: Missing operator, comma, or semicolon.

我改了几种方式,但对Matlab的语法还没有理解,始终不行!

7 楼

try the followings:
x=zeors(1,12);
x(1,1)=1/y(1);
i=1;
while i<12
x(1,i+1)=x(1,1+i)+1/y(i+1);
i=i+1;
end

8 楼

我编写了一个VC程序,根据数据“428,490,472,524,521,558,500,516,482,453,393,384......”直接生成文件数据,麻烦点,但比较起来还是省时间。

y=[428,490,472,524,521,558,500,516,482,453,393,384];
x = [0.00233645 0.00437726 0.00649591 0.00840431 0.0103237 0.0121158 0.0141158 0.0160538 0.0181285 0.0203360 0.0228805 0.0254847]; 
plot(x,y)

我来回复

您尚未登录,请登录后再回复。点此登录或注册