fs = 10000; % 采样率 t = 0:1/fs:1; % 时间序列 Ac = 1; % 载波幅度 fc = 1000; % 载波频率 % 基带信号m(t) mt = sin(10*pi*t) + sin(30*pi*t); % DSB调制 st = Ac * mt .* cos(2*pi*fc*t); % 绘制时域波形 subplot(2,1,1) plot(t, st) xlabel('时间') ylabel('幅度') title('DSB调制信号时域波形') % 绘制幅度频谱图 subplot(2,1,2) f = -fs/2:1/(length(t)-1):fs/2; % 频率序列 Sf = fftshift(abs(fft(st))); plot(f, Sf) xlabel('频率') ylabel('幅度') title('DSB调制信号幅度频谱图')显示错误使用 plot 矢量长度必须相同。 出错 qq1 (line 23) plot(f, Sf),请修改代码
时间: 2024-03-24 17:41:02 浏览: 84
第三章 FC-FS协议分析.pdf
这个错误通常是由于f和Sf的长度不一致导致的。可以尝试将f和Sf的长度都设置为length(t),即:
```matlab
% 设置参数
fs = 10000; % 采样率
t = 0:1/fs:1; % 时间序列
Ac = 1; % 载波幅度
fc = 1000; % 载波频率
% 基带信号m(t)
mt = sin(10*pi*t) + sin(30*pi*t);
% DSB调制
st = Ac * mt .* cos(2*pi*fc*t);
% 绘制时域波形
subplot(2,1,1)
plot(t, st)
xlabel('时间')
ylabel('幅度')
title('DSB调制信号时域波形')
% 绘制幅度频谱图
subplot(2,1,2)
f = -fs/2:fs/length(t):fs/2-fs/length(t); % 频率序列
Sf = fftshift(abs(fft(st)));
plot(f, Sf)
xlabel('频率')
ylabel('幅度')
title('DSB调制信号幅度频谱图')
```
这样修改后,再次运行代码,应该就可以正确绘制出DSB调制信号的幅度频谱图了。
阅读全文