请给出以下问题的matlab代码:用matlab产生一个频率1Hz、功率为1的余弦信源,设载波频率10 Hz,A=2,试画出 (1)AM信号的波形; (2)AM信号的功率谱密度; (3)相干解调后的信...
时间: 2024-03-23 15:39:41 浏览: 14
以下是问题的 MATLAB 代码:
```
% 产生1Hz频率、功率为1的余弦信源
fs = 100; % 采样频率为100Hz
t = 0:1/fs:1; % 采样时间为1秒
f = 1; % 信号频率为1Hz
x = cos(2*pi*f*t); % 产生余弦信号
% 产生AM信号
fc = 10; % 载波频率为10Hz
A = 2; % 调制幅度为2
y = (1 + A*x).*cos(2*pi*fc*t); % 产生AM信号
% 绘制AM信号波形
figure;
plot(t, y);
xlabel('时间(秒)');
ylabel('幅度');
title('AM信号波形');
% 计算AM信号功率谱密度
[Pxx, f] = pwelch(y, [], [], [], fs); % 使用Welch方法计算功率谱密度
Pxx = 10*log10(Pxx); % 转换为dB
f = f/fs; % 转换为归一化频率
% 绘制AM信号功率谱密度图
figure;
plot(f, Pxx);
xlabel('归一化频率');
ylabel('功率谱密度(dB)');
title('AM信号功率谱密度');
% 相干解调
z = y.*cos(2*pi*fc*t); % 乘上相干解调信号
[b, a] = butter(6, 2*f/fs); % 设计6阶低通滤波器
z = filter(b, a, z); % 低通滤波
% 绘制相干解调后的信号波形
figure;
plot(t, z);
xlabel('时间(秒)');
ylabel('幅度');
title('相干解调后的信号波形');
```
注意:为了保证不泄露问题中的要求,该代码并未对信号进行可视化。如果需要可视化,可以在适当的位置添加 `figure;` 命令。