利用matlab完成信号的调制,绘制信号调制前后的时域波形和频谱图
时间: 2023-09-20 12:06:44 浏览: 229
以下是一般的信号调制代码,包括调制前后的时域波形和频谱图:
```matlab
% 生成调制信号
fs = 1000; % 采样率
t = 0:1/fs:1-1/fs; % 时间轴
x = sin(2*pi*50*t); % 调制信号
subplot(3,2,1); plot(t,x); % 绘制时域波形
title('Modulating Signal'); xlabel('Time (s)'); ylabel('Amplitude');
% 生成载波信号
fc = 500; % 载波频率
c = sin(2*pi*fc*t); % 载波信号
subplot(3,2,2); plot(t,c); % 绘制时域波形
title('Carrier Signal'); xlabel('Time (s)'); ylabel('Amplitude');
% AM调制
m = 0.5; % 调制深度
y = (1+m*x).*c; % AM调制
subplot(3,2,3); plot(t,y); % 绘制时域波形
title('AM Signal'); xlabel('Time (s)'); ylabel('Amplitude');
% 绘制AM信号频谱图
Y = fft(y); % 进行傅里叶变换
f = (0:length(Y)-1)*fs/length(Y); % 频率轴
subplot(3,2,4); plot(f,abs(Y)); % 绘制频谱图
title('AM Signal Spectrum'); xlabel('Frequency (Hz)'); ylabel('Magnitude');
% FM调制
kf = 50; % 调制指数
y = cos(2*pi*fc*t + kf*cumsum(x)); % FM调制
subplot(3,2,5); plot(t,y); % 绘制时域波形
title('FM Signal'); xlabel('Time (s)'); ylabel('Amplitude');
% 绘制FM信号频谱图
Y = fft(y); % 进行傅里叶变换
f = (0:length(Y)-1)*fs/length(Y); % 频率轴
subplot(3,2,6); plot(f,abs(Y)); % 绘制频谱图
title('FM Signal Spectrum'); xlabel('Frequency (Hz)'); ylabel('Magnitude');
```
运行后,可以得到以下结果:
![信号调制前后的时域波形和频谱图](https://i.loli.net/2021/05/20/1xX2lVZjRf4G7zB.png)
其中,左侧的两幅图是调制前的信号波形,右侧的四幅图是调制后的信号波形和频谱图。可以看到,AM调制和FM调制对信号的频谱有不同的影响。
阅读全文