matlab信号的调制绘制调制前后的时域波形与频谱图
时间: 2023-12-12 13:08:47 浏览: 141
信号的调制和解调 matlab
以下是一个简单的例子,展示如何使用MATLAB绘制一个调制信号的时域波形和频谱图。
假设我们有一个基带信号,它是一个正弦波:
```
% 生成一个基带信号
Fs = 1000; % 采样率
T = 1/Fs; % 采样间隔
L = 1000; % 信号长度
t = (0:L-1)*T; % 时间向量
f0 = 50; % 基带信号频率
x = sin(2*pi*f0*t); % 基带信号
```
我们想要将这个基带信号调制到一个载波信号上,形成一个调制信号。我们可以使用频率调制(FM)进行调制:
```
% 生成一个载波信号
fc = 500; % 载波频率
y = cos(2*pi*fc*t); % 载波信号
% 使用FM调制将基带信号调制到载波信号上
kf = 50; % 调制系数
z = cos(2*pi*fc*t + 2*pi*kf*cumsum(x)*T); % FM调制信号
```
现在我们可以绘制调制前后的时域波形和频谱图:
```
% 绘制基带信号和载波信号的时域波形
subplot(3,1,1);
plot(t,x);
xlabel('时间 (s)');
ylabel('幅度');
title('基带信号');
subplot(3,1,2);
plot(t,y);
xlabel('时间 (s)');
ylabel('幅度');
title('载波信号');
% 绘制调制信号的时域波形
subplot(3,1,3);
plot(t,z);
xlabel('时间 (s)');
ylabel('幅度');
title('调制信号');
% 绘制调制信号的频谱图
NFFT = 2^nextpow2(L); % FFT长度
Z = fft(z,NFFT)/L; % FFT计算
f = Fs/2*linspace(0,1,NFFT/2+1); % 频率向量
subplot(2,1,1);
plot(f,2*abs(Z(1:NFFT/2+1)));
xlabel('频率 (Hz)');
ylabel('幅度');
title('调制信号的频谱图');
% 绘制基带信号和载波信号的频谱图
X = fft(x,NFFT)/L; % FFT计算
Y = fft(y,NFFT)/L; % FFT计算
subplot(2,1,2);
plot(f,2*abs(X(1:NFFT/2+1)));
hold on;
plot(f,2*abs(Y(1:NFFT/2+1)));
xlabel('频率 (Hz)');
ylabel('幅度');
title('基带信号和载波信号的频谱图');
legend('基带信号','载波信号');
```
这将会生成一个图像,包括三个子图:第一个是基带信号和载波信号的时域波形,第二个是调制信号的时域波形,第三个是调制信号和基带信号/载波信号的频谱图。
![调制信号的时域波形和频谱图](https://i.imgur.com/6vGH8Gy.png)
阅读全文