我有以下代碼:繪製正弦波的集合
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