基于Matlab的模拟调制与解调(开放实验)一、实验目的(一)了解AM、DSB和SSB 三种模拟调制与解调的基本原理(二)掌握使用Matlab进行AM调制解调的方法1、学会运用MATLAB对基带信号进行AM调制2、学会运用MATLAB对AM调制信号进行相干解调3、学会运用MATLAB对AM调制信号进行非相干解调(包络检波)(三)掌握使用Matlab进行DSB调制解调的方法1、学会运用MATLAB对基带信号进行DSB调制2、学会运用MATLAB对DSB调制信号进行相干解调(四)掌握使用Matlab进行SSB调制解调的方法1、学会运用MATLAB对基带信号进行上边带和下边带调制2、学会运用MATLAB对SSB调制信号进行相干解调二、实验环境MatlabR2020a三、实验原理(一)滤波法幅度调制(线性调制)(二)常规调幅(AM)1、AM表达式2、AM波形和频谱3、调幅系数m(三)抑制载波双边带调制(DSB-SC)1、DSB表达式2、DSB波形和频谱(四)单边带调制(SSB)(五)相关解调与包络检波四、实验过程(一)熟悉相关内容原理 (二)完成作业已知基带信号()()()sin 10sin 30m t t t ππ=+,载波为()()cos 2000c t t π= 1、对该基带信号进行AM 调制解调(1)写出AM 信号表达式,编写Matlab 代码实现对基带进行进行AM 调制,并分别作出3种调幅系数(1,1,1m m m >=<)下的AM 信号的时域波形和幅度频谱图。
代码 基带信号fs = 10000; % 采样频率 Ts = 1/fs; % 采样时间间隔t = 0:Ts:1-Ts; % 时间向量m = sin(10*pi*t) + sin(30*pi*t); % 基带信号载波信号fc = 1000; % 载波频率c = cos(2*pi*fc*t); % 载波信号AM调制Ka = [1, 0.5, 2]; % 调制系数m_AM = zeros(length(Ka), length(t)); % 存储AM调制信号相干解调信号r = zeros(length(Ka), length(t));绘制AM调制信号的时域波形和幅度频谱图figure;for i = 1:length(Ka)m_AM(i, :) = (1 + Ka(i)*m).*c; % AM调制信号subplot(3, 2, i);plot(t, m_AM(i, :));title(['AM调制信号(Ka = ' num2str(Ka(i)) ')']);xlabel('时间');ylabel('幅度');ylim([-2, 2]);subplot(3, 2, i+3);f = (-fs/2):fs/length(m_AM(i, :)):(fs/2)-fs/length(m_AM(i, :));M_AM = fftshift(abs(fft(m_AM(i, :))));plot(f, M_AM);title(['AM调制信号的幅度频谱图(Ka = ' num2str(Ka(i)) ')']);xlabel('频率');ylabel('幅度');r(i, :) = m_AM(i, :) .* c; % 相干解调信号end绘制相干解调信号的时域波形和幅度频谱图figure;for i = 1:length(Ka)subplot(length(Ka), 1, i);plot(t, r(i, :));title(['相干解调信号(Ka = ' num2str(Ka(i)) ')']);xlabel('时间');ylabel('幅度');end图像(2)编写Matlab代码实现对AM调制信号的相干解调,并作出图形。
(3*)编写Matlab代码实现对AM调制信号的包络检波,并作出图形。
代码定义时间和信号t = 0:0.0001:0.1;m = sin(10*pi*t) + sin(30*pi*t);c = cos(2000*pi*t);计算AM调制信号s = (1+m).*c;包络检波env = envelope(s);绘图figure;subplot(3,1,1);plot(t, m);title('基带信号');xlabel('时间(秒)');ylabel('幅度');subplot(3,1,2);plot(t, c);title('载波信号');xlabel('时间(秒)');ylabel('幅度');subplot(3,1,3);plot(t, s);hold on;plot(t, env, 'r');title('AM调制信号及其包络'); xlabel('时间(秒)');ylabel('幅度');legend('AM调制信号', '包络'); 图像2、对该基带信号进行DSB调制解调(1)写出DSB信号表达式,编写Matlab代码实现对基带进行DSB调制,并分别作出DSB信号的时域波形和幅度频谱图。
代码基带信号fs = 10000; % 采样频率Ts = 1/fs; % 采样时间间隔t = 0:Ts:1-Ts; % 时间向量m = sin(10*pi*t) + sin(30*pi*t); % 基带信号载波信号fc = 1000; % 载波频率c = cos(2*pi*fc*t); % 载波信号DSB调制m_DSB = m .* c; % DSB调制信号% 绘制DSB调制信号的时域波形和幅度频谱图figure;subplot(2, 1, 1);plot(t, m_DSB);title('DSB调制信号');xlabel('时间');ylabel('幅度');subplot(2, 1, 2);f = (-fs/2):fs/length(m_DSB):(fs/2)-fs/length(m_DSB); M_DSB = fftshift(abs(fft(m_DSB)));plot(f, M_DSB);title('DSB调制信号的幅度频谱图');xlabel('频率');ylabel('幅度');相干解调r = m_DSB .* c; % 相干解调信号绘制相干解调信号的时域波形和幅度频谱图figure;subplot(2, 1, 1);plot(t, r);title('相干解调信号');xlabel('时间');ylabel('幅度');subplot(2, 1, 2);R = fftshift(abs(fft(r)));plot(f, R);title('相干解调信号的幅度频谱图');xlabel('频率');ylabel('幅度');图像(2)编写Matlab代码实现对DSB调制信号的相干解调,并作出图形。
3、对该基带信号进行SSB调制解调(1)写出SSB信号表达式,编写Matlab代码实现对基带进行SSB调制,并分别作出上边带调制和下边带调制信号的时域波形和幅度频谱图。
基带信号fs = 10000; % 采样频率Ts = 1/fs; % 采样时间间隔t = 0:Ts:1-Ts; % 时间向量m = sin(10*pi*t) + sin(30*pi*t); % 基带信号载波信号fc = 1000; % 载波频率c = cos(2*pi*fc*t); % 载波信号SSB调制(上边带调制)m_H = hilbert(m); % m(t) 的希尔伯特变换m_SSB_upper = m .* cos(2*pi*fc*t) - real(m_H) .* sin(2*pi*fc*t);绘制上边带调制信号的时域波形和幅度频谱图figure;subplot(2, 1, 1);plot(t, m_SSB_upper);title('上边带调制信号');xlabel('时间');ylabel('幅度');subplot(2, 1, 2);f = (-fs/2):fs/length(m_SSB_upper):(fs/2)-fs/length(m_SSB_upper); M_SSB_upper = fftshift(abs(fft(m_SSB_upper)));plot(f, M_SSB_upper);title('上边带调制信号的幅度频谱图');xlabel('频率');ylabel('幅度');SSB调制(下边带调制)m_SSB_lower = m .* cos(2*pi*fc*t) + imag(m_H) .* sin(2*pi*fc*t);绘制下边带调制信号的时域波形和幅度频谱图figure;subplot(2, 1, 1);plot(t, m_SSB_lower);title('下边带调制信号');xlabel('时间');ylabel('幅度');subplot(2, 1, 2);M_SSB_lower = fftshift(abs(fft(m_SSB_lower)));plot(f, M_SSB_lower);title('下边带调制信号的幅度频谱图');xlabel('频率');ylabel('幅度');相干解调(上边带调制)r_upper = m_SSB_upper .* cos(2*pi*fc*t);绘制上边带相干解调信号的时域波形和幅度频谱图figure;subplot(2, 1, 1);plot(t, r_upper);title('上边带相干解调信号');xlabel('时间');ylabel('幅度');subplot(2, 1, 2);R_upper = fftshift(abs(fft(r_upper)));plot(f, R_upper);title('上边带相干解调信号的幅度频谱图');xlabel('频率');ylabel('幅度');相干解调(下边带调制)r_lower = m_SSB_lower .* cos(2*pi*fc*t);绘制下边带相干解调信号的时域波形和幅度频谱图figure;subplot(2, 1, 1);plot(t, r_lower);title('下边带相干解调信号');xlabel('时间');ylabel('幅度');subplot(2, 1, 2);R_lower = fftshift(abs(fft(r_lower)));plot(f, R_lower);title('下边带相干解调信号的幅度频谱图'); xlabel('频率');ylabel('幅度');图像(2)编写Matlab代码实现对SSB调制信号的相干解调,并作出图形。