通信原理实践(六)——基带传输

时间:2024-09-11 00:06:08

一、基带传输引入

1、从数字带通传输说起

通信原理实践(六)——基带传输

以上系统可以等价为:

通信原理实践(六)——基带传输

这里“等价”的假设条件是
•信号通过滤波器不失真
•不存在码间串扰

意义:可以通过评估基带传输系统来获得数字带通传输系统性能

 

2、两个模型SNR的关系

(1)假设带通传输系统中,2PSK信号功率为1/2,占用带宽为2,噪声功率为20(带宽2 )

通信原理实践(六)——基带传输

(2)其等效基带传输系统的参数为基带功率1,占用带宽 ,噪声功率为20(带宽 )

(3)带通系统信噪比为时,其等效基带传输系统的信噪比为2

 

3、数字基带传输学习理由

通信原理实践(六)——基带传输

 

4、教材中的2PSK传输系统分析

通信原理实践(六)——基带传输

 

5、发送(成型)滤波器

通信原理实践(六)——基带传输

 

6、码间串扰

(1)压缩了信号带宽必然带来时域信号的延长,带来了码元之间的干扰

通信原理实践(六)——基带传输

(2)带宽越窄,拖尾就越长

(3)寻求一种发送波形(成形滤波器),使得在其他码元的位置,拖尾的值为0,即无码间串扰

(4)无码间串扰条件

通信原理实践(六)——基带传输

(5)经常使用的成形滤波器

通信原理实践(六)——基带传输

 

7、最佳接受滤波器

通信原理实践(六)——基带传输

通信原理实践(六)——基带传输

(1)发送滤波器与接收滤波器共轭匹配

(2)接收滤波器后的抽样点必须满足无码间干扰条件。因此,发送滤波器和接收滤波器(以及信道)的串联必须满足Nyquist第一准则

(3)发送滤波器和接收滤波器在工程中通常使用根升余弦滤波器(SRRC)

8、一个demo

通信原理实践(六)——基带传输

sym_rate = 1000;                                           % 数据率1000bps
sa_per_sym = 8; % 采样率除以数据率
% 即一个码元长度有多少个采样点 fs = sym_rate * sa_per_sym; % 采样率
rolloff = 0.5; % 滚降系数
N = 100; % 比特数据长度 % 设计根升余弦滤波器,阶数为span*sa_per_sym, 滤波器延迟为 span*sa_per_sym/2 个样点
span = 20;
flt_b = rcosdesign(rolloff, span, sa_per_sym, 'sqrt');
flt_delay = span * sa_per_sym / 2; % 发送
bits = randint(N,1); % 信源产生随机
bb_ori = -2*bits + 1; % 码型变换(注意是一个bit对应一个点)
bb_pulse = upsample(bb_ori, sa_per_sym); % 插0获得冲激序列 s_t = filter(flt_b, 1, bb_pulse); % 冲激序列通过成形滤波器获得发送波形 pow_s = 1/sa_per_sym; % 基带发送信号的功率
B = (1 + rolloff) * sym_rate / 2; % 基带发送信号带宽(成形后) % 接收
r_t = s_t; % 无噪声情况
r_match_t = filter(flt_b, 1, r_t); % 匹配滤波器 %抽样判决
decision_idx = (1+(flt_delay+flt_delay)):sa_per_sym:length(r_match_t);
r_sampled = r_match_t(decision_idx); recv_bits = zeros(length(r_sampled),1);
recv_bits(r_sampled < 0) = 1;

 

PS:低通噪声信号生成:

function n_t=lowlimit_noise(N,fs,B,n_pow)
% 产生特定功率的带限高斯白噪声
% 输入: N - 产生的噪声的长度
% fs - 仿真采样率
% B - 低通噪声的带宽
% n_pow - 低通噪声的功率
% 输出: n_t - 带限噪声 %低通阶数
filter_b_L = 4000;
%低通设计
filter_b = fir1(filter_b_L,B/(fs/2));
%全带宽功率
n_fullband_pow = fs*n_pow/(2*B);
%产生噪声信号
noise_t = sqrt(n_fullband_pow) * randn(N + filter_b_L ,1);
%信号经过低通滤波器
n_t=filter(filter_b,1,noise_t);
%滤除前面的零状态响应
n_t = n_t(end-N+1:end); end