用matlab产生一个频率1Hz、功率为1的余弦信源,设载波频率10 Hz,A=2,请给出以下三个问题的matlab代码并写好注释 (1)AM信号的波形; (2)AM信号的功率谱密度; (3)相干解调...
时间: 2024-02-06 20:10:17 浏览: 61
以下是三个问题的Matlab代码:
(1) 产生AM信号的波形
```matlab
% 设置参数
fs = 1000; % 采样率
fc = 10; % 载波频率
fm = 1; % 信号频率
A = 2; % 振幅
% 产生余弦信源
t = 0:1/fs:1; % 时间序列
x = A*cos(2*pi*fm*t); % 信源
% 产生调制信号
y = (1+A*x).*cos(2*pi*fc*t);
% 绘制波形
plot(t, y);
xlabel('Time (s)');
ylabel('Amplitude');
title('AM signal waveform');
```
(2) AM信号的功率谱密度
```matlab
% 设置参数
fs = 1000; % 采样率
fc = 10; % 载波频率
fm = 1; % 信号频率
A = 2; % 振幅
% 产生余弦信源
t = 0:1/fs:1; % 时间序列
x = A*cos(2*pi*fm*t); % 信源
% 产生调制信号
y = (1+A*x).*cos(2*pi*fc*t);
% 计算功率谱密度
[Pxx, f] = pwelch(y,[],[],[],fs);
% 绘制功率谱密度图
plot(f, Pxx);
xlabel('Frequency (Hz)');
ylabel('Power spectral density');
title('AM signal power spectral density');
```
(3) 相干解调
```matlab
% 设置参数
fs = 1000; % 采样率
fc = 10; % 载波频率
fm = 1; % 信号频率
A = 2; % 振幅
% 产生余弦信源
t = 0:1/fs:1; % 时间序列
x = A*cos(2*pi*fm*t); % 信源
% 产生调制信号
y = (1+A*x).*cos(2*pi*fc*t);
% 产生解调信号
z = y.*cos(2*pi*fc*t);
% 设计低通滤波器
[b,a] = butter(6,2*fm/fs);
% 低通滤波
w = filter(b,a,z);
% 绘制解调后的波形
plot(t, w);
xlabel('Time (s)');
ylabel('Amplitude');
title('Demodulated signal waveform');
```
阅读全文