MATLAB编写下列要求的代码:首先生成AM已调信号然后对AM已调信号进行采样最后实现AM信号数字正交解调。解调出原始信号
% 生成AM信号 fc = 100; % 载波频率 fm = 10; % 基带信号频率 fs = 500; % 采样频率 t = 0:1/fs:1; % 时间序列 m = cos(2pifmt); % 基带信号 Ac = 1; % 载波幅度 c = Accos(2pifc*t); % 载波信号 AM = (1+m).*c; % AM已调信号
% 采样 Ts = 1/fs; % 采样周期 n = 0:1/fs:1-Ts; % 采样时刻 AM_sampled = interp1(t, AM, n); % 线性插值法进行采样
% 数字正交解调 fc_hat = fc; % 假设接收端已知载波频率 I = AM_sampled.cos(2pifc_hatn); % I路信号 Q = AM_sampled.sin(2pifc_hatn); % Q路信号 [b, a] = butter(6, 2fm/fs); % 低通滤波器设计 I_filtered = filter(b, a, I); % I路信号低通滤波 Q_filtered = filter(b, a, Q); % Q路信号低通滤波 m_hat = I_filtered - 1iQ_filtered; % 数字正交解调后的基带信号
% 绘图 figure; subplot(2, 2, 1); plot(t, AM); title('AM已调信号'); xlabel('时间/s'); ylabel('幅度');
subplot(2, 2, 2); stem(n, AM_sampled); title('采样后的AM信号'); xlabel('时间/s'); ylabel('幅度');
subplot(2, 2, 3); plot(n, I); hold on; plot(n, Q); title('I/Q路信号'); xlabel('时间/s'); ylabel('幅度'); legend('I路信号', 'Q路信号');
subplot(2, 2, 4); plot(n, real(m_hat)); hold on; plot(n, m); title('数字正交解调后的基带信号'); xlabel('时间/s'); ylabel('幅度'); legend('解调后信号', '原始信号');
原文地址: https://www.cveoy.top/t/topic/bxJd 著作权归作者所有。请勿转载和采集!