f = linspace(-fs/2, fs/2, NFFT);
%% 需要同学们自己生成调制信号、载波信号以及已调信号
s_m=cos(2*pi*fm*t); %基带信号
S_m=t2f(s_m,NFFT); %傅里叶变换
s_c=cos(2*pi*fc*t); %sin信号
S_c=t2f(s_c,NFFT); %傅里叶变换
wc=3*2*pi*fm/fs; %解调器低通滤波器截止频率,3fm
lbf_hn=fir1(32,wc/pi); %低通滤波器系统函数,FIR滤波器
freqz(lbf_hn, 1, 1024, fs);
s_cor_temp = 2 * s_AM .* s_c;
S_cor_temp = t2f(s_cor_temp, NFFT);
dem_cor_out = filter(lbf_hn, 1, s_cor_temp);
S_cor_out = t2f(dem_cor_out, NFFT);
s_uncor_temp = hilbert(s_AM); % 非相干乘法器输出
S_uncor_temp = t2f(s_uncor_temp, NFFT); % 非相干乘法器频域
dem_uncor_out = filter(lbf_hn, 1, s_uncor_temp); % 非相干输出
S_uncor_out = t2f(dem_uncor_out, NFFT); % 非相干频域
%% 画图,至少需要呈现这些图,并能与DSB调制方式、SSB调制方式进行比较
plot(f,abs(S_m));grid on;
plot(f,abs(S_c));grid on;
plot(f,abs(S_AM));grid on;
plot(t, s_cor_temp);grid on;
xlabel('t(s)');xlim([0, 10]);
plot(t, dem_cor_out);grid on;
xlabel('t(s)');xlim([0, 10]);
plot(f, abs(S_cor_temp));grid on;
xlabel('f(HZ)');xlim([-25, 25]);
plot(f, abs(S_cor_out));grid on;
xlabel('f(HZ)');xlim([-10, 10]);
plot(t, abs(s_uncor_temp));grid on;
xlabel('t(s)');xlim([0, 10]);
plot(t, abs(dem_uncor_out));grid on;
xlabel('t(s)');xlim([0, 10]);
plot(f, abs(S_uncor_temp));grid on;
xlabel('f(HZ)');xlim([-25, 25]);
plot(f, abs(S_uncor_out));grid on;
xlabel('f(HZ)');xlim([-10, 10]);
[s, fdsb] = T2F(t, sDSB);
sUSB = 0.5 * (mt .* cos(wc * t) - imag(hilbert(mt)) .* sin(wc * t)); % SSB 上边带
[s, fusb] = T2F(t, sUSB);
sLSB = 0.5 * (mt .* cos(wc * t) + imag(hilbert(mt)) .* sin(wc * t)); % SSB 下边带
[s, flsb] = T2F(t, sLSB);
yt = sAM .* 2 .* ct; % 乘法器输出
[f1, sf1] = T2F(t, yt); % 傅里叶变换
[t_cor_dem_, cor_dem] = lpf(f1, sf1, 2 * fm); % 低通滤波,得到相关解调信号
[f2, sf2] = T2F(t_cor_dem_, cor_dem); % 傅里叶变换
yt = sDSB .* 2 .* cos(wc * t + pi / 8); % 乘法器输出
[f, sf] = T2F(t, yt); % 傅里叶变换
[t_cor_dem_, cor_dem] = lpf(f, sf, 2 * fm); % 低通滤波,得到相关解调信号
plot(t_cor_dem_, cor_dem);
title('解调器输出信号,解调载波相差pi/8');
yt = sDSB .* 2 .* cos(wc * t + pi / 4); % 乘法器输出
[f, sf] = T2F(t, yt); % 傅里叶变换
[t_cor_dem_, cor_dem] = lpf(f, sf, 2 * fm); % 低通滤波,得到相关解调信号
plot(t_cor_dem_, cor_dem);
title('解调器输出信号,解调载波相差pi/4');
yt = sDSB .* 2 .* cos(wc * t + pi / 3); % 乘法器输出
[f, sf] = T2F(t, yt); % 傅里叶变换
[t_cor_dem_, cor_dem] = lpf(f, sf, 2 * fm); % 低通滤波,得到相关解调信号
plot(t_cor_dem_, cor_dem);
title('解调器输出信号,解调载波相差pi/3');
yt = sDSB .* 2 .* cos(wc * t + pi / 2); % 乘法器输出
[f, sf] = T2F(t, yt); % 傅里叶变换
[t_cor_dem_, cor_dem] = lpf(f, sf, 2 * fm); % 低通滤波,得到相关解调信号
plot(t_cor_dem_, cor_dem);
title('解调器输出信号,解调载波相差pi/2');
axis([0, 0.01, -0.5, 0.5]);
% 实验扩展1、AM和DSB信号的功率谱的区别是什么?
% (2)AM调制和双边带DSB调制所占带宽基本相同。
% (1)包络不同。AM波的包络正比于调制信号f(t),而DSB波的包络则正比于|f(t)|。
% (2)DSB调制存在反相。既DSB信号的高频载波相位在调制电压零交点处(调幅电压正负交替时)要突变180度。DSB信号的相位反映了调制信号的极性。因此,严格的讲DSB信号已非单纯的振幅调制信号,而是既调幅又调相的信号。
% (3)AM调制有调幅度,而DSB则不存在调幅度的说法。
% (4)DSB调制功率利用率高于AM。这是由于DSB信号不含载波。