生成一段matlab代码,它可以完成以下要求:设输入信号是一个频率1Hz、功率为1的余弦信源,,设载波频率10 Hz,调频器的压控振荡系数为5Hz/V,载波平均功率为1W,画出 FM信号的波形,FM信号的振幅谱,并用鉴频器解调后的信号波形,并与输入信号比较。
时间: 2023-02-06 20:24:08 浏览: 167
【matlab代码】生成不同调频累加信号.m
以下是可以完成上述要求的 Matlab 代码:
```
% 设定参数
fs = 1000; % 采样频率
T = 1/fs; % 采样周期
t = 0:T:1; % 时间向量
f0 = 1; % 输入信号频率
fc = 10; % 载波频率
kf = 5; % 调频器的压控振荡系数
Pc = 1; % 载波平均功率
% 生成输入信号
x = cos(2*pi*f0*t);
% 生成载波信号
c = cos(2*pi*fc*t);
% 计算调制信号
fm = kf*x; % 调制信号的频率分量
m = sqrt(2*Pc/fc)*cos(2*pi*fc*t + 2*pi*fm.*t); % 调制信号的幅度分量
% 生成 FM 信号
y = m.*c;
% 画出 FM 信号的波形
subplot(3, 1, 1);
plot(t, y);
xlabel('时间');
ylabel('幅度');
title('FM 信号的波形');
% 画出 FM 信号的振幅谱
subplot(3, 1, 2);
Y = fft(y);
P2 = abs(Y/length(Y));
P1 = P2(1:length(Y)/2+1);
P1(2:end-1) = 2*P1(2:end-1);
f = fs*(0:(length(Y)/2))/length(Y);
plot(f, P1);
xlabel('频率');
ylabel('幅度');
title('FM 信号的振幅谱');
% 用鉴频器解调后的信号波形
x_demod = y.*c; % 乘法解调
subplot(3, 1, 3);
plot(t, x_demod);
xlabel('时间');
ylabel('幅度');
title('鉴频器解调后的信号波形');
% 与输入信号比较
figure;
plot(t, x, 'r', t, x_demod, 'b');
阅读全文