% 设置参数 fs = 1000; % 采样频率 f1 = 50; % 信号频率1 f2 = 100; % 信号频率2 amp1 = 1; % 信号1振幅 amp2 = 0.5; % 信号2振幅 % 生成信号 t = linspace(0, 1, fs); x1 = amp1*sin(2*pi*f1*t); x2 = amp2*sin(2*pi*f2*t); x = x1 + x2; % 计算频谱 N = length(x); f = (0:N-1)*(fs/N); X = fft(x)/N; X = X(1:N/2+1); X(2:end-1) = 2*X(2:end-1); % 画图 figure; subplot(2,1,1); plot(t, x); title('时域信号'); xlabel('时间 (秒)'); ylabel('幅度'); subplot(2,1,2); plot(f, abs(X)); title('频域信号'); xlabel('频率 (赫兹)'); ylabel('幅度');检查上述代码能否运行,如不能把修改结果重新发我
时间: 2024-02-18 16:02:24 浏览: 106
这段代码是可以运行的,但是需要注意的是,如果你想把这段代码复制到MATLAB命令窗口中运行,需要把代码中的中文注释改成英文注释,否则会报错。修改后的代码如下:
```matlab
% Set parameters
fs = 1000; % Sampling frequency
f1 = 50; % Signal frequency 1
f2 = 100; % Signal frequency 2
amp1 = 1; % Signal 1 amplitude
amp2 = 0.5; % Signal 2 amplitude
% Generate signals
t = linspace(0, 1, fs);
x1 = amp1*sin(2*pi*f1*t);
x2 = amp2*sin(2*pi*f2*t);
x = x1 + x2;
% Calculate spectrum
N = length(x);
f = (0:N-1)*(fs/N);
X = fft(x)/N;
X = X(1:N/2+1);
X(2:end-1) = 2*X(2:end-1);
% Plot
figure;
subplot(2,1,1);
plot(t, x);
title('Time domain signal');
xlabel('Time (s)');
ylabel('Amplitude');
subplot(2,1,2);
plot(f, abs(X));
title('Frequency domain signal');
xlabel('Frequency (Hz)');
ylabel('Amplitude');
```
请注意,这段代码在运行前需要先打开MATLAB软件。你可以将代码复制到命令窗口中,或者将代码保存到.m文件中,通过运行.m文件来执行代码。
阅读全文