【发布时间】:2014-03-21 05:44:14
【问题描述】:
让我们考虑以下等式
x(t)=sum(a(i)*sin(2*pi*f(i)*t+b(i)*cos(2*pi*f(i)*t))
其中 i=1,2,......m 和频率 f=[f1,f2,.....fm] 和 t=[t1,t2,....tn]
我想通过sin(2*pi*f(i)*t)和cos(2*pi*f(i)*t)创建矩阵,显然它是维度为NX2*m的矩阵,我尝试了以下代码
function [amplitudes]=determine_amplitudes(y,f,t,n,m);
X=zeros(n,2*m);
for i=1:n
for k=1:m
if mod(k,2)==1
X(i,k)=sin(2*pi*f(k)*t(i));
else
X(i,k)=cos(2*pi*f(k)*t(i);
end
end
end
end
我使用 mod 运算符来确定如果 k 是奇数索引,那么应该写入 sin 值,否则写入 cosine 值,但问题是我不确定给定矩阵的维度是否为 NX2*m,所以如何创建这样的矩阵,以便不超过频率数组边界的索引,回想频率数组跟随f=[f1,f2,..fm],所以我的问题很简单是如何在 2*m 位置应用 m 频率,谢谢帮助
更新:
假设 m=3,频率 f=[12.5 13.6 21.7]
那么我们有以下矩阵,也假设
n=4 t=[0.01 0.02 0.03 0.04]
sin(2*pi*f(1)*t(1)) cos(2*pi*f(1)* t(1)) sin(2*pi*f(2)*t(1)) cos(2*pi*f(2)*t(1)) sin(2*pi*f(3)*t(1)) cos(2*pi*f(3)*t(1))
【问题讨论】:
-
我认为最终的 matix 的大小将是
nXm,因为使用if条件它只是选择 sin 或 cos 项之一,不是吗? -
不不,选择正弦或余弦是,但好的,我会更新我的问题以澄清它
-
我已经更新了,请查看并感谢回复
-
对不起必须有2*m个分量,没有空格,应该是sin(f(1) cos(f(1)) sin(f(2) cos(f(2))等等
-
f有三个值,怎么会有f(4)?