Error using plot Vectors must be the same length

2 ビュー (過去 30 日間)
Ha
Ha 2023 年 3 月 22 日
コメント済み: Matt J 2023 年 3 月 22 日
% Define time range
t = -0.2:0.0001:0.2;
% Calculate signal s(t)
s = cos(2*pi*10*t).*cos(27*pi*200*t);
% Plot s(t)
figure(1);
plot(t, s);
xlabel('Time (s)');
ylabel('Amplitude');
title('AM Modulated Signal s(t)');
% Calculate Fourier transform of s(t)
Fs = 10000; % Sampling frequency
S = fftshift(fft(s))/length(s);
size(S)
ans = 1×2
1 4001
f = (-Fs/2:Fs/2-1)/length(s);
size(f)
ans = 1×2
1 10000
% Plot two-sided spectrum of S(f)
figure(2);
plot(f, abs(S));
Error using plot
Vectors must be the same length.
xlabel('Frequency (Hz)');
ylabel('Magnitude');
title('Two-Sided Spectrum of S(f)');

回答 (1 件)

Torsten
Torsten 2023 年 3 月 22 日
移動済み: Matt J 2023 年 3 月 22 日
As you can see above, S and f have a different number of elements. So they cannot be plotted against each other.
  2 件のコメント
Ha
Ha 2023 年 3 月 22 日
I didn't understand what you mean..but what is wrong with the code? .. As for S.f, they have the same number of elements as shown in the code. Can the problem be solved?
Matt J
Matt J 2023 年 3 月 22 日
As for S.f, they have the same number of elements as shown in the code.
It is puzzling that you think so. Running the code clearly shows that length(S)=4001 while length(f)=10000
% Define time range
t = -0.2:0.0001:0.2;
% Calculate signal s(t)
s = cos(2*pi*10*t).*cos(27*pi*200*t);
% Calculate Fourier transform of s(t)
Fs = 10000; % Sampling frequency
S = fftshift(fft(s))/length(s);
f = (-Fs/2:Fs/2-1)/length(s);
length(S)
ans = 4001
length(f)
ans = 10000

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeDiscrete Fourier and Cosine Transforms についてさらに検索

タグ

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by