我有以下代码:绘制正弦波的集合
Fs = 1000;
T = 1/Fs;
L = 1000;
t = (0:L-1)*T;
k = 25:1:50;
m = 1:1:25;
其中k
和m
对应。我想绘制从产生的25个正弦波:
x = m*sin(2*pi*k*t);
我想过使用一个for
循环,需要从m
每次k
一个值,这样做,但我不知道该如何继续。
我有以下代码:绘制正弦波的集合
Fs = 1000;
T = 1/Fs;
L = 1000;
t = (0:L-1)*T;
k = 25:1:50;
m = 1:1:25;
其中k
和m
对应。我想绘制从产生的25个正弦波:
x = m*sin(2*pi*k*t);
我想过使用一个for
循环,需要从m
每次k
一个值,这样做,但我不知道该如何继续。
下面是一个非常基本的绘图解决方案。您会注意到,很难看到情节中发生了什么,因此您可能需要考虑其他方式来呈现这些数据。
function q45532082
Fs = 1000;
T = 1/Fs;
L = 1000;
t = (0:L-1)*T;
k = 26:1:50;
m = 1:1:25;
%% Plotting
assert(numel(m) == numel(k)); % We make sure that the number of elements is the same.
figure(); hold on; % "hold" is needed if you want to see all curves at the same time.
for ind1 = 1:numel(m)
plot(t,m(ind1)*sin(2*pi*k(ind1)*t));
end
这是结果:
注意,元素的k
和m
在你的代码的数量是不同的,所以我不得不去改变它。
使用的plot
的功能,还可以绘制所有正弦波没有环:
Fs = 1000;
T = 1/Fs;
L = 1000;
t = (0:L-1)*T;
k = 26:1:50;
m = 1:1:25;
x = m.*sin(2.*pi.*bsxfun(@times,t.',k)); %this results in an L*25 matrix, each column is data of one wave
% or, if you have version 2016b or newer:
% x = m.*sin(2.*pi.*t.'*k);
plot(t,x) % plot all sines at ones
和@Dev-iL noted,我也不得不改变k
。
L = 1000
与结果太拥挤,所以我L = 50
这里绘制它:
X = M * SIN(2 * PI ** K * T) – Mohammad
请使用[编辑]链接添加其他信息或包含更正。 –
我需要25个正弦波,我可以逐一绘制它们然后将它们加在一起,但需要很长时间,这就是为什么我想要做一个循环。 – Mohammad