前言
数字频带信号通常也称为数字调制信号,其信号频谱通常是带通型的,适合于在带通型信道中传输。数字调制是将基带数字信号变换成适合带通型信道传输的一种信号处理方式,正如模拟通信中的一样,可以通过对基带信号的频谱搬移来适应信道特性,也到同样的目的可以采用频率调制、相位调制的方式来达到同样的目的。
本文将主要通过 Matlab 来学习二进制的调制解调方式,包括 OOK、2PSK、2FSK,并分析和仿真这些调制系统。
一、OOK
1、表达式
OOK 信号波形
2、功率谱密度
OOK 信号的功率谱密度为:
3、调制框图
OOK 的调制框图如下图所示:
OOK 信号调制框图
二、2PSK
1、表达式
2PSK 信号波形如下图所示,其实现框图与 OOK 相同,只是输入是双极性的
2PSK 信号波形
2、功率谱密度
2PSK 信号的功率谱密度为:
1、表达式
2FSK 波形
四、MATLAB 仿真
以下代码使用 MATLAB 产生独立等概的二进制信源,并完成了下面三个功能:
- 画出 OOK 信号波形及其功率谱;
- 画出 2PSK 信号波形及其功率谱;
- 画出 2FSK 信号波形及其功率谱(设 ∣ f1−f2∣>>Ts1)。
1、MATLAB 源码
% 2ASK,2PSK clear all; close all; A = 1; fc = 2; % 2Hz; N_sample = 8; N = 500; % 码元数 Ts = 1; % 1 baud/s dt = Ts/fc/N_sample; % 波形采样间隔 t = 0 : dt : N*Ts-dt; T = dt * length(t); Lt = length(t); % 产生二进制信源 d = sign(randn(1, N)); dd = sigexpand((d+1)/2, fc*N_sample); gt = ones(1, fc*N_sample); % NRZ 波形 figure(1) subplot(221); % 输入 NRZ 信号波形(单极性) d_NRZ = conv(dd, gt); plot(t, d_NRZ(1:length(t))); axis([0 10 0 1.2]); xlabel('t/s'); ylabel('输入信号'); subplot(222); % 输入 NRZ 频谱 [f, d_NRZf] = T2F(t, d_NRZ(1:length(t))); plot(f, 10*log10(abs(d_NRZf).^2/T)); axis([-2 2 -50 10]); xlabel('f/Hz'); ylabel('输入信号功率谱密度(dB/Hz)'); %2ASK信号 ht = A*cos(2*pi*fc*t); s_2ask = d_NRZ(1:Lt).*ht; subplot(223) plot(t,s_2ask); axis([0 10 -1.2 1.2]); xlabel('t/s'); ylabel('2ASK'); [f, s_2askf]=T2F(t, s_2ask ); subplot(224) plot(f, 10*log10(abs(s_2askf).^2/T)); axis([-fc-4 fc+4 -50 10]); xlabel('f/Hz'); ylabel('2ASK功率谱密度(dB/Hz)'); figure(2) %2PSK信号 d_2psk = 2*d_NRZ-1; s_2psk = d_2psk(1:Lt).*ht; subplot(221) plot(t,s_2psk); axis([0 10 -1.2 1.2]); xlabel('t/s'); ylabel('2PSK'); subplot(222) [f, s_2pskf] = T2F(t, s_2psk); plot( f, 10*log10(abs(s_2pskf).^2/T) ); axis([-fc-4 fc+4 -50 10]); xlabel('f/Hz'); ylabel('2PSK功率谱密度(dB/Hz)'); % 2FSK % s_2fsk = Acos(2*pi*fc*t + int(2*d_NRZ-1) ); sd_2fsk = 2*d_NRZ-1; s_2fsk = A*cos(2*pi*fc*t + 2*pi*sd_2fsk(1:length(t)).*t ); subplot(223) plot(t, s_2fsk); axis([0 10 -1.2 1.2]);xlabel('t/s'); ylabel('2FSK') subplot(224) [f, s_2fskf] = T2F(t, s_2fsk); plot(f, 10*log10(abs(s_2fskf).^2/T)); axis([-fc-4 fc+4 -50 10]); xlabel('f/Hz'); ylabel('2FSK功率谱密度(dB/Hz)'); % 随机相位 2FSK fai = 2*pi*rand(1, N); fai_2fsk = sigexpand(fai, fc*N_sample); fai_2fsk = conv(fai_2fsk, gt); s_2fskd = A*cos(2*pi*fc*t + 2*pi*sd_2fsk(1:length(t)).*t + fai_2fsk(1:length(t)) ); figure(3) subplot(211); plot(t, s_2fskd); axis([0 10 -1.2 1.2]); xlabel('t/s'); ylabel('随机相位 2FSK'); [f, s_2fskdf] = T2F(t, s_2fskd); subplot(212); plot(f, 10*log10(abs(s_2fskdf).^2/T)); axis([-fc-4 fc+4 -50 10]); xlabel('f/Hz'); ylabel('随机相位 2FSK 功率谱密度(dB/Hz)');
2、仿真及结果
①、输入信号及频谱图
②、2ASK 调制
③、2PSK 调制
④、2FSK 调制
⑤、随机相位 2FSK 调制
五、资源自取