共计 12554 个字符,预计需要花费 32 分钟才能阅读完成。
文章和代码曾经归档至【Github 仓库:communication-system-simulation】或者公众号【AIShareLab】回复 通信零碎仿真 也可获取。
数字基带传输零碎设计
一、我的项目原理概述
1.1 基带信号概念形容
基带信号是由信源产生的,没有通过调制,蕴含了要传输的信息的信号。
1.2 数字基带传输零碎概念形容
在某些具备低通个性的有线信道中,特地是在传输间隔不太远的状况下,基带信号能够不通过载波调制而间接进行传输,这样的传输零碎,称为数字基带传输零碎。
1.3 数字基带传输零碎框图(AWGN 信道)
图 1 数字基带传输零碎框图(应用 drawio 绘制)
(1)发送滤波器(信道信号造成器):将发送的码元映射为基带波形,产生适宜信道传输的基带信号波形。发送滤波器用于压缩输出信号频带,将传输码变换为合适于信道传输的基带信号波形。
(2)传输信道:容许基带信号通过的媒介,个别会产生噪声造成信号衰减。对于 AWGN 信道,是加性的零均值合乎高斯分布的噪声。
(3)承受滤波器:用来接管信号,尽可能滤除信道噪声和 ISI 对系统性能的影响,对信道个性进行均衡,使输入的基带波形有利于抽样裁决。
(4)抽样裁决器:在传输个性不现实及噪声背景下,在特定抽样时刻对接管滤波器输入波形进行抽样裁决,以复原或再生基带信号。
(5)位定时提取(定时脉冲和同步提取):用来抽样的位定时脉冲依附同步提取电路从接管信号中提取信号,位定时的精确与否将间接影响裁决成果。
二、相干代码设计思路及代码实现
2.1 滤波器局部
2.1.1 根升余弦匹配滤波型
1. 设计原理
确定现实升余弦滤波器的频域表达式,对给定的现实滤波器的频率响应进行抽样,其中频率抽样距离 $\Delta f=\frac{1}{N T}$,失去 $H(k \Delta f)$。计算抽样值的幅度响应,开平方后可得平方根升余弦的幅度响应:abs 函数取幅度响应,利用 sqrt 函数开平方得 $H w s q r t=\sqrt{H(k \Delta f)}$。
对幅度响应进行离散傅里叶反变换,并取实部即可。咱们针对公式进行了代码的编写。
这里离散傅里叶反变换公式如下:
$$
\tilde{x}(n)=\frac{1}{N} \sum_{k=0}^{N-1} \tilde{X}(k) e^{j \frac{2 \pi}{N} n k}
$$
2. 流程图
图 2 频率抽样法设计 FIR 平方根升余弦滤波器流程
3. 代码实现
% 采纳频率抽样法设计平方根升余弦个性的匹配滤波器
% alpha: 滚降因子
% L: 为 FIR 滤波器的长度
function SendFilter=MatchSendFilter(alpha,L)
Tc = 4;
fs = 1;% 抽样频率为 1
for m = 1 : L
n = abs(fs * (m - (L - 1) / 2) / L);
if n <= (1 - alpha) / 2 / Tc
Hd(m) = sqrt(Tc);
elseif n > (1 - alpha) / 2 / Tc && n <= (1 + alpha) / 2 / Tc
Hd(m) = sqrt(Tc / 2 * (1 + cos(pi * Tc / alpha * (n - (1 - alpha) / 2 / Tc))));
elseif n > (1 + alpha) / 2 / Tc
Hd(m) = 0;
end
end
% 离散傅里叶反变换
for n=0:M-1
hn(n+1)=0;
for k=0:N-1
hn(n+1)=hn(n+1)+H(k+1)*exp(1j*2*pi/M*(n+1)*(k+1));
end
hn(n+1)=1/M*hn(n+1);
SendFilter(m) = hn(n+1);
end
SendFilter = real(SendFilter);
fid=fopen('sendfilter.bin.txt','w'); % 将滤波器的单位冲激响应的无关参数存入文件?
fwrite(fid,SendFilter,'double');
fclose(fid);
end
2.1.2 根升余弦匹配滤波型
1. 设计原理
利用窗函数设计 FIR 数字滤波器是在时域上进行的。Blackman 窗的时域表达式为
$$
w(n)=\left[0.42-0.5 \cos \left(\frac{2 \pi n}{N-1}\right)+0.08 \cos \left(\frac{4 \pi n}{N-1}\right)\right] R_{N}(n)
$$
由升余弦滚降滤波器的单位冲激响应失去 FIR 滤波器的设计公式为:
$$
h(n T)=h_{d}(t) \mid t=n T \cdot w(n)
$$
由此失去对于原点偶对称的无限长单位冲激响应,将其向右移位 $\tau=\frac{N-1}{2}$,失去因果的 FIR 滤波器。
2. 流程图
图 3 用窗函数法设计 FIR 升余弦滚降滤波器流程图
3. 代码实现
% 采纳窗函数设计法设计升余弦个性的非匹配滤波器
% alpha: 滚降因子
% L: 为 FIR 滤波器的长度
function SendFilter=NonMatchSendFilter(alpha,L)
Tc=4;
n=-(L-1)/2:(L-1)/2;
A=sin(pi*n/Tc);
B=pi*n/Tc;
C=cos(alpha*pi*n/Tc); D=1-4*alpha^2*n.^2/Tc^2; hd=A./B.*C./D;
hd((L+1)/2)=1;
SendFilter=rand(length(hd));
for n=0:L-1
w=0.42-0.5*cos(2*pi*n/(L-1))+0.08*cos(4*pi*n/(L-1)) %Blackman 窗
SendFilter(n+1)=hd(n+1)*w;
end
fid=fopen('sendfilter.txt','w'); % 将滤波器的单位冲激响应的无关参数存入文件
fwrite(fid,SendFilter,'double'); % 写入数据
fclose(fid);
end
2.2 数字基带零碎局部
2.2.1 发送信号生成
1. 设计原理
输出参数:N: 传输码元个数 A: 一个比特周期的抽样点数 SourceOutput: 双极性二进制信源输入 输入参数:ProcessedSource: 发送滤波器输出信号
传入发送滤波器的信号为生成的双极性二进制信号经抽样后的,抽样公式为
$$
\text {ProcessedSource}(\mathrm{n})=\sum_{l=0}^{L-1} \text {SourceOutput(l) } \delta\left(n-l T_{b}\right)
$$
序列只在 $\text {ProcessedSource}(\mathrm{n})$ 只在 $n=l \cdot T_{b}$ 时有值,值为 $\text {SourceOutput(l) }$,再在序列中除抽取外的其它地位插入零值点,失去发送滤波器的输出序列。
2. 代码实现
function an = SourceSignal(N)
%function an = SourceSignal(N,seed)
% 双极性信源信号产生输出参数为 N,seed 为随机种子,管制随机数的生成
%rng(seed)
an =rand(1,N);
for i = 1:N
if an(i)< 0.5
an(i)=-1;
elseif an(i)>=0.5
an(i)=1;
end
end
end
2.2.2 信源输入
1. 设计原理
输出参数:N:传输码元个数
输入参数:SourceOutput: 生成的双极性二进制信源
输出为要生成的序列的长度 N,利用 matlab 中的 rand 函数产生范畴在 0 到 1 的有 L 个随机数的序列,再通过判断,将随机序列中大于 0.5 的输入 1,小于 0.5 的输入 -1。针对码元个数,定义 1×A* L 的序列 dn,对矩阵 dn 每隔 A 插入数值,这样就发送了残缺的信号。
2. 代码实现
function dn=SendSignal(an,A)
% 发送信号生成
% 输出参数为双极性信源信号 an,A 为一个比特周期的抽样点数
L=length(an);% 获取序列的码元个数
dn=zeros(1,A*L);
for i=1:L
dn(A*(i-1)+1)=an(i);% 插入零点
end
end
2.2.3 信道噪声信号
1. 设计原理
输出参数:SNR:
信噪比 ChannelInput: 发送滤波器输入信号
输入参数:Noise: 产生的信道噪声
已知信噪比 SNR 和均匀比特能量 $E_{b}$ 可由公式 $sigm =\frac{N_{0}}{2}=\frac{E_{b} / 10^{S N R / 10}}{2}$ 计算出热噪声的功率 谱密度. 在 Matlab 中生成一个均值为 $\mathrm{a}$ , 方差为 $\mathrm{b}$ 的随机矩阵的办法为将 randn 产生的后果 乘以标准差, 而后加上冀望均值。所以要产生均值为 0 , 方差为 $\frac{N_{0}}{2}$ 的高斯随机序列, 公式为
$$
noise =\operatorname{randn}(\operatorname{size}(ChannelInput)) * \operatorname{sqrt}\left(\frac{N_{\mathrm{o}}}{2}\right)
$$
2. 代码实现
% 信道噪声信号的产生
% SNR: 信噪比
% ChannelInput: 发送滤波器输入信号
function Noise=GuassNoise(SNR,ChannelInput)
L = length(ChannelInput);
Eb = 0;
for i = 1 : L
Eb = Eb + ChannelInput(i)^2;
end
Eb = Eb / L;
% 通过信噪比和计算出的均匀每比特能量 Eb 来计算 N0
N0 = Eb / (10^(SNR / 10));
% 计算出噪声的功率谱密度,开方
StandardDeviation = sqrt(N0 / 2);
Noise = 0 + StandardDeviation * randn(1,L);
end
2.2.4 眼图绘制
1. 设计原理
输出参数:ReceiveFilterOutput: 接管滤波器输入信号 A: 一个比特周期内的抽样点数 N:传输码元个数 输入参数:每屏信号显示 4 个码元周期的眼图
眼图能够了解为一系列信号在示波器的叠加
2. 流程图
图 4 眼图绘制流程图
3. 代码实现
% 眼图的绘制,每屏显示 4 个码元周期的眼图
% A: 一个比特周期内的抽样点数
% N: 传输码元个数
%ReceiveFilterOutput: 接管滤波器输入信号
function EyeDiagram(A,N,ReceiveFilterOutput)
figure;
for i = 1 : 4 : N / 4
EyePattern = ReceiveFilterOutput((i - 1) * A + 1 : (i + 3) * A);
plot(EyePattern,'b');
hold on
end
title('眼图');
end
2.2.5 抽样信号与裁决信号的产生
1. 设计原理
输出参数:A:一个比特周期内的抽样点数 N:传输码元个数 ReceiveFilterOutput: 接管滤波器输入信号
输入参数:SamplingSignal: 抽样信号 JudgingSignal: 裁决信号
对接管滤波器输入信号进行抽样裁决:先在接管滤波器输入信号的对应点处抽样失去抽样信号。再对抽样信号以零为门限进行裁决,大于等于 0 则裁决为 1,小于零则裁决为 -1。
2. 代码实现
% 抽样信号和裁决信号的生成
% A: 一个比特周期内的抽样点数
% N: 传输码元个数
%ReceiveFilterOutput: 接管滤波器输入信号
function [JudgingSignal,SamplingSignal] = JudgeAndSample(A,N,ReceiveFilterOutput)
for i = 0 : N - 1
SamplingSignal(i + 1) =
ReceiveFilterOutput(A * i + 1);
if SamplingSignal(i + 1) >= 0
JudgingSignal(i + 1) = 1;
elseif SamplingSignal(i + 1) < 0
JudgingSignal(i + 1) = -1;
end
end
end
2.2.6 星座图的绘制
1. 设计原理
输出参数:SamplingSignal: 抽样后失去的信号 输入:星座图
将在发送序列 SourceOutput 为 1 时对应的抽样序列的值放入序列 strong(i)中,- 1 对应的抽样序列值放入 weak(i)中,绘制两个序列的散点图。在 Matlab 中可用 scatterplot 函数绘制星座图。点越靠近 1 或 - 1 证实受到噪声的烦扰越小。
2. 流程图
图 5 星座图流程图
3. 代码实现
% 星座图的绘制
% SamplingSignal: 抽样后失去的信号
function StarsDiagram(SamplingSignal)
N = length(SamplingSignal);
m = 1;
n = 1;
for i = 1 : N
if SamplingSignal(i) < 0
weak(m) = SamplingSignal(i);
m = m + 1;
elseif SamplingSignal(i) >= 0
strong(n) = SamplingSignal(i);
n = n + 1;
end
end
figure
plot(weak,zeros(1,length(weak)),'.r');
hold on
plot(strong,zeros(1,length(strong)),'.b');
title('星座图');
end
三、性能测试
3.1 滤波器性能测试
据后面原理所述, FIR 滤波器的群延时为 $\tau=\frac{N-1}{2}$ , 扭转滤波器的阶数 N 与滚降系数 $\alpha$ , 测试其第一零点带宽 (单位为 $\mathrm{Hz}$ ) 与第一旁瓣衰减 (单位为 $\mathrm{dB}$ )。
3.1.1 滤波器时域个性钻研
(一)扭转滤波器滚降系数, 察看两种发送滤波器的时域单位冲激响应波形的特点(见表 1)。
剖析: 扭转滤波器滚降系数, 从 0 和 1 之间以 0.1 为步长逐步增大, 别离失去匹配滤波器 和非匹配滤波器的单位冲激响应波形图, 察看到, 两种波形都是对于对称中心 $\frac{N-1}{2}$ 对称的, 形 状基本相同, 然而非匹配滤波器的幅值稍高于匹配滤波器的幅值。随着滚降系数的增大, 非匹 配滤波器的单位冲激响应幅值变动不大, 而匹配滤波器的幅值随着 $\alpha$ 的增大也增大。
(当 $\alpha$ 变动时, 图像间区别并不大, 所以取变动较为显著的两个值时的图像)
表 1 N=31 时扭转 $\alpha$ 两种滤波器单位冲激响应图像
$\alpha$ | 非匹配滤波器 | 匹配滤波器 |
---|---|---|
0.1 | ||
0.9 |
(二)扭转滤波器长度,察看两种发送滤波器的时域单位冲激响应波形的特点。
剖析:扭转滤波器的长度,使其在 31~51 之间以 2 为步长增大,别离绘制出不同滤波器长度下两种滤波器单位冲激响应波形。
察看失去,当 $\alpha$ 肯定,逐步增大 N 值时,匹配滤波器和非匹配滤波器的形态和幅值均无显著变动。
3.1.2 滤波器频域个性钻研
(一)从图像钻研滚降系数对于滤波器频域个性的影响(见表 2 与表 3)。
扭转 $\alpha$,别离绘制非匹配滤波器和匹配滤波器的归一化幅频特性、增益曲线。从频域剖析,在 $\alpha$ 取值较小时,应用窗函数法设计的非匹配滤波器的幅频特性曲线更加平滑,而频率抽样法设计的匹配滤波器的旁瓣多,非匹配滤波器的阻带最小衰减更大,所以非匹配滤波器的性能要优于匹配滤波器。随着 $\alpha$ 的增大,匹配滤波器的幅频特性曲线逐步平滑,两种滤波器的衰减都更快,性能变好。
代码实现:
% freqz 的 for 循环实现
function [Hf,w] = freqz(N,hn)
w=0:0.01*pi:pi;
L=length(w);
Hf=zeros(1,L);
for w=1:L
for n=1:N
Hf0=hn(n)*exp(-j*(pi*((w-1)/(L-1)))*(n-((N+1)/2)));
Hf(w)=Hf0+Hf(w);
end end
Hf=real(Hf);
y=abs(Hf);
% 归一化
y=(y-min(y))/(max(y)-min(y));
w=0:0.01*pi:pi;
plot(w,y);
title(['滤波器归一化幅频特性曲线'])
axis([0 pi 0 1]);
plot(w,20*log10(y));
title('滤波器归—化增益曲线')
end
表 2 $\alpha$ = 0.1,N = 33 时两种滤波器频域波形比拟
非匹配滤波器 | 匹配滤波器 | |
---|---|---|
归一化幅频特性曲线 | ||
归一化增益曲线 |
表 3 $\alpha$ = 0.6,N = 33 时两种滤波器频域波形比拟
非匹配滤波器 | 匹配滤波器 | |
---|---|---|
归一化幅频特性曲线 | ||
归一化增益曲线 |
(二)从图像钻研滤波器长度对滤波器频域个性的影响
扭转 N,别离绘制非匹配滤波器和匹配滤波器的归一化幅频特性、增益曲线。从频域剖析,非匹配滤波器的性能要优于匹配滤波器。扭转 N 值对滤波器个性影响不大。
(三)具体数据钻研滚降系数、滤波器长度对滤波器个性的影响
(1)升余弦滚降滤波器(非匹配型)性能钻研
扭转滤波器长度,使其在 31\~51 间取 10 个点,扭转滚降系数,使其在 0\~1 之间取 10 个点,测量滤波器的第一零点带宽和阻带最小衰减。
由测量数据可剖析得,(1) 横向比拟,当 N 不变,随着 α 的增大,第一零点带宽和阻带最小衰减都增大,且减少成果比拟显著,然而在 α =0.2 时是一个非凡的点,其值忽然减小。(2)纵向比拟,当 α 不变,随着 N 的增大,阻带最小衰减有所增加,但增量较小,而第一零点带宽有点稳定。
具体数据见表 4。
实践上计算第一零点带宽的公式为: $\frac{1+\alpha}{2 T_{c}}$ ,
代码实现:
%% 测试滚降系数 α
N=31;
for a=0.05:0.1:0.95
%% 测试滤波器长度 N
%a=0.5;
%for N = 31:2:51
%h=MatchSendFilter(a,N);% 测试匹配滤波器
h=NonMatchSendFilter(a,N);% 测试非匹配滤波器
[Hw,w]=freqz(N,h);
%% 求第一零点带宽
wq=min(w):max(w)/length(w)/1000:max(w);
% 对幅频响应进行插值,可失去多的点,后果更为准确
Hx=interp1(w,Hw,wq);
for i=2:length(Hx) if((abs(Hx(i))<abs(Hx(i-1)))&&(abs(Hx(i))<abs(Hx(i+1)))&&(abs(Hx(i))<0.1))
disp(['第一零点带宽为',num2str(wq(i)),'rad/s']);
break;
end
end
%% 求阻带最小衰减
dbi=20*log(abs(Hx)/max(abs(Hx)));
for j = i:length(dbi)
if((dbi(j)>dbi(j-1))&&(dbi(j)>dbi(j+1)))
disp(['阻带最小衰减为',num2str(dbi(j)),'dB']);
break;
end
end
fprintf('\n');
end
表 4 滚降系数、滤波器长度对非匹配滤波器影响测试后果
N=31 | $\alpha$ | 0 | 0.1 | 0.2 | 0.3 | 0.4 | 0.5 | 0.6 | 0.7 | 0.8 | 0.9 |
---|---|---|---|---|---|---|---|---|---|---|---|
第一零点带宽 (Hz) | 0.240 | 0.240 | 0.198 | 0.243 | 0.250 | 0.268 | 0.279 | 0.291 | 0.303 | 0.315 | |
阻带最小衰减 (dB) | 75.25 | 76.37 | 41.15 | 85.62 | 24.92 | 97.12 | 99.64 | 103.87 | 105.10 | 107.18 |
N=35 | $\alpha$ | 0 | 0.1 | 0.2 | 0.3 | 0.4 | 0.5 | 0.6 | 0.7 | 0.8 | 0.9 |
---|---|---|---|---|---|---|---|---|---|---|---|
第一零点带宽 (Hz) | 0.228 | 0.228 | 0.189 | 0.233 | 0.250 | 0.257 | 0.269 | 0.282 | 0.293 | 0.306 | |
阻带最小衰减 (dB) | 75.33 | 76.79 | 36.84 | 89.07 | 24.06 | 98.85 | 103.71 | 105.44 | 108.10 | 110.08 |
N=43 | $\alpha$ | 0 | 0.1 | 0.2 | 0.3 | 0.4 | 0.5 | 0.6 | 0.7 | 0.8 | 0.9 |
---|---|---|---|---|---|---|---|---|---|---|---|
第一零点带宽 (Hz) | 0.208 | 0.208 | 0.180 | 0.219 | 0.250 | 0.244 | 0.256 | 0.267 | 0.279 | 0.292 | |
阻带最小衰减 (dB) | 75.31 | 77.53 | 32.06 | 96.15 | 23.05 | 104.27 | 106.20 | 109.75 | 111.47 | 111.97 |
N=51 | $\alpha$ | 0 | 0.1 | 0.2 | 0.3 | 0.4 | 0.5 | 0.6 | 0.7 | 0.8 | 0.9 |
---|---|---|---|---|---|---|---|---|---|---|---|
第一零点带宽 (Hz) | 0.195 | 0.194 | 0.177 | 0.211 | 0.250 | 0.234 | 0.246 | 0.258 | 0.271 | 0.283 | |
阻带最小衰减 (dB) | 75.30 | 78.47 | 29.55 | 97.38 | 22.49 | 106.00 | 109.98 | 112.04 | 112.03 | 112.03 |
(2)平方根升余弦滤波器(匹配型)性能钻研
扭转滤波器长度,使其在 31\~51 间取 10 个点,扭转滚降系数,使其在 0\~1 之间取 10 个点,测量滤波器的第一零点带宽和阻带最小衰减。测量数据如表 5 所示。
由测量数据可剖析得,当 N 不变,随着 α 的增大,第一零点带宽增大,阻带最小衰减虽有稳定,但总体出现增长趋势。相比拟之下,当 α 不变,随着 N 的增大,第一零点带宽和阻带最小衰减都有所稳定,但整体呈减少的趋势。
表 5 滚降系数、滤波器长度对匹配滤波器的影响测试后果
N=31 | $\alpha$ | 0 | 0.1 | 0.2 | 0.3 | 0.4 | 0.5 | 0.6 | 0.7 | 0.8 | 0.9 |
---|---|---|---|---|---|---|---|---|---|---|---|
第一零点带宽 (Hz) | 0.129 | 0.161 | 0.161 | 0.163 | 0.193 | 0.194 | 0.211 | 0.226 | 0.226 | 0.258 | |
阻带最小衰减 (dB) | 16.69 | 29.64 | 24.45 | 25.53 | 41.48 | 30.48 | 42.68 | 38.85 | 32.09 | 58.13 |
N=35 | $\alpha$ | 0 | 0.1 | 0.2 | 0.3 | 0.4 | 0.5 | 0.6 | 0.7 | 0.8 | 0.9 |
---|---|---|---|---|---|---|---|---|---|---|---|
第一零点带宽 (Hz) | 0.143 | 0.143 | 0.161 | 0.171 | 0.179 | 0.200 | 0.200 | 0.229 | 0.229 | 0.257 | |
阻带最小衰减 (dB) | 16.96 | 17.01 | 33.28 | 29.94 | 34.99 | 38.47 | 30.19 | 48.71 | 34.58 | 54.12 |
N=41 | $\alpha$ | 0 | 0.1 | 0.2 | 0.3 | 0.4 | 0.5 | 0.6 | 0.7 | 0.8 | 0.9 |
---|---|---|---|---|---|---|---|---|---|---|---|
第一零点带宽 (Hz) | 0.146 | 0.146 | 0.154 | 0.171 | 0.182 | 0.195 | 0.208 | 0.219 | 0.235 | 0.244 | |
阻带最小衰减 (dB) | 17.14 | 19.09 | 31.50 | 31.24 | 39.60 | 35.45 | 44.74 | 37.91 | 48.96 | 39.56 |
N=51 | $\alpha$ | 0 | 0.1 | 0.2 | 0.3 | 0.4 | 0.5 | 0.6 | 0.7 | 0.8 | 0.9 |
---|---|---|---|---|---|---|---|---|---|---|---|
第一零点带宽 (Hz) | 0.137 | 0.138 | 0.157 | 0.175 | 0.177 | 0.196 | 0.207 | 0.216 | 0.235 | 0.240 | |
阻带最小衰减 (dB) | 17.30 | 18.48 | 30.89 | 45.73 | 31.18 | 41.67 | 46.75 | 37.52 | 49.96 | 45.15 |
(3)升余弦滤波器、平方根升余弦滤波器第一零点带宽图像比照(见图 6)。
实践上计算第一零点带宽的公式为: $\frac{1+\alpha}{2 T_{c}}$ , 从图像剖析看出, 平方根升余弦滤波器的第一 零点带宽测量值更贴近理论值。
图 6 平方根升余弦、升余弦滤波器第一零点带宽比照图
3.2 数字基带零碎性能测试
3.2.1 码间烦扰的钻研
这里咱们次要验证无码间烦扰条件。这里咱们应用非匹配滤波型滤波器进行测试, 不失 一般性, 滤波器参数抉择为 $\mathrm{N}=31, \alpha=0.33$ , 认为 $T=f_{s}=1$。在无噪声状况下, 以不同 的传输速率下传输 1000 个比特, 察看失去的眼图以及星座图。(抽样时刻为 $n=k T b \quad(k \in N)$ 时 )
1. 假如加性噪声不存在, 传输比特速率是 $\mathrm{R_b}=1 / \mathrm{Tc}$ 的 1000 个二进制比特, 比特距离为 $\mathrm{T_b}=4 \mathrm{~T}$ , 基带零碎采纳非匹配滤波器, 失去的眼图和星座图见图 7。
图 7 $\mathrm{T_b}$=4T 时的眼图与星座图
2. 假如加性噪声不存在,传输 1000 个二进制比特,基带零碎不采纳匹配滤波器,比特距离为 Tb=3T,Tb=5T,Tb=8T, 画出接管滤波器的输入信号波形和眼图,判断有无码间烦扰。从实践方面解释试验景象。抽样后进行裁决,计算误比特率。失去的眼图与星座图见图 8。
图 8 眼图与星座图(从左至右每列 $\mathrm{T_b}$ 别离为 3,5,8)
理论剖析:
(1) 察看上图中不同码元周期下输入信号的眼图, 当码元周期从 3s 开始减少时, 输入 信号的眼图成型越来越好, 然而在 $\mathrm{T}=4 \mathrm{~s}$ 和 $\mathrm{T}=8 \mathrm{~s}$ 时, 输入信号是没有码间烦扰的。这是因为 当 $T_{b}==k T_{c}$ 时无码间烦扰。也就是说, 比特距离为无码间烦扰整数倍的状况下, 输入仍旧 无码间烦扰, 否则有码间烦扰, 并且眼图睁开水平不大。
(2) 在理论剖析中, 咱们尝试了使码元周期不变, 而扭转升余弦滤波器的滚降系数, 发 现了一个乏味的景象。随着滚降因数的减少, 会呈现“眼皮变薄”的乏味景象。如图 9 所示:
图 9 $T_{b}=4$ (从左至右每列 $\alpha$ 别离为 0.4,0.6,0.8)
剖析:
(1)依据奈奎斯特第一准则:
$$
\sum_{\mathrm{m}=-\infty}^{\infty} \mathrm{X}\left(\mathrm{f}-\frac{m}{T}\right)=\mathrm{Ts} \quad|\mathrm{f}| \leq \frac{1}{T}
$$
依据公式, 当码元速率越大时, 滤波器频谱平移越大, 裁决码间烦扰的区间也越大, 与 此绝对应, 当码元速率越小时, 频谱平移越小, 受到烦扰的区间也越小, 而且当 $2 \mathrm{w}>1 / T$(滤波器带宽的两倍大于码元速率 ) 时, 存在滤波器波形可实现零碎没有码间烦扰。
所以当码元周期太小时, 无奈满足 $2 \mathrm{w}>1 / \mathrm{T}$ 的条件, 无奈造成可观的眼图。又因为升余弦滤波器的常数 $\mathrm{Tc}=4$ , 所以刚好在码元周期等于 4 和 8 , 也就是 4 的倍数时, 零碎才没有码间烦扰。
(2) 随着滚降因子的增大, 升余弦滚降滤波器的旁瓣逐步削弱, 旁瓣衰减逐步增大, 在码元周期不变的状况下, 抽样失去的信号旁瓣逐步削弱, 在眼图中显示出“眼皮变薄”。
3.2.2 噪声对系统的影响
咱们仅钻研无码间烦扰状况下噪声对系统的影响, 联合前一节的探讨, 传输 1000 个二进制比特, 取 $T_{b}=4$。基带零碎别离抉择匹配滤波器模式和非匹配滤波器模式, 依据要求, 抉择滤波器滚降系数 $\alpha=0.33$, $\mathrm{~N}=31$。
咱们先从直观的星座图与眼图动手, 传输 1000 个比特, 取 SNR 别离为 $1 \mathrm{~dB}, 5 \mathrm{~dB}$ , $10 \mathrm{~dB}$, $20 \mathrm{~dB}$ , 失去相应的复原数字信息序列, 察看失去的眼图与星座图。见表 6。
表 升余弦和根升余弦的抗噪性能比照($\alpha$=0.33,N=31)
SNR/ 零碎 | 非匹配模式 | 匹配模式 |
---|---|---|
1dB | 误码率:2% | <br/> 误码率:0 |
10dB | <br/> 误码率:0 | <br/> 误码率:0 |
20dB | <br/> 误码率:0 | <br/> 误码率:0 |
SNR/ 零碎 | 非匹配模式 | 匹配模式 |
---|---|---|
1dB | ||
10dB | ||
20dB |
实践剖析:
(1)非匹配滤波型零碎误比特率更高,而匹配滤波型误比特率较低,且与理论值吻合较好。这与匹配滤波型滤波器的性质无关——在信号受到加性高斯白噪声的毁坏时,脉冲响应与信号相匹配的滤波器可使抽样点处输入信噪比最大。
(2)尽管星座图中散点并不聚拢于 1 和 -1,然而因为发送信号是双极性信号,裁决门限为 0,对于烦扰的容限大,所以裁决失去的误码率任然为 0。如果发送信号为单极性信号,裁决门限为 0.5,对于烦扰的容限小,雷同星座图的聚散水平下,单极性信号误码率要大于双极性信号。
理论剖析:
(1)随着信号信噪比的增大,匹配模式和非匹配模式的误码率都逐步缩小,最初为 0,并且星座图越聚拢于 x = 1 和 - 1 的点。
(2)雷同的信噪比下,匹配模式比非匹配模式的零碎误码率更低,星座图的散点更聚拢于 x = 1 和 - 1 的点。
(3)眼图的眼睛张开越大信息的传输品质越高。
四、遇到的问题与解决方案
1、用窗函数法设计 FIR 滤波器时,若分母为 0,则会溢出,利用 Matlab 编程计算时会失去不合乎预期的后果,此时绘出的单位冲击响应如图 10 所示。
图 10 不思考分母为 0 的点时的单位冲激响应
图 11 问题失去解决后的单位冲击响应
为了解决分母为 0 溢出的问题, 咱们提出了如下解决方案。
利用洛必达法令。当 $\left(1-4 \alpha^{2} t^{2} / T_{c}^{2}\right) \rightarrow 0$ 时, $\lim _{\frac{2 \alpha}{T_{c}}} \frac{\cos \pi t / T_{c}}{1-4 \alpha^{2} t^{2} / T_{c}^{2}}=\frac{\pi}{4}$ , 所以
$$
\lim _{\frac{2 \alpha}{T_{c}}} \frac{\sin \pi t / T_{c}}{\pi t / T_{c}}\frac{\cos \pi t / T_{c}}{1-4 \alpha^{2} t^{2} / T_{c}^{2}}=\frac{\pi}{4} \cdot \frac{\sin \pi t / T_{c}}{\pi t / T_{c}}
$$
而升余弦滤波器的单位冲击响应在 $t=0$ 或 $t=\pm \frac{2}{\alpha}$ 时会呈现分母为 0 的状况。当 t=0 时, 应用洛必达法令能够得出 $\mathrm{h}(0)=1$ ; 当 $ t=\pm \frac{2}{\alpha}$ 时, $\mathrm{h}\left(\pm \frac{2}{\alpha}\right)=\frac{\alpha}{2} \sin \left(\frac{\pi}{2 \alpha}\right)$。增加如图 12 所示的代码即可。最初, 问题得以解决, 代码如下。
hd((L+1)/2)=1;
if mod (2, alpha)==0
hd (2/alpha+ (L+1)/2)=alpha/2*sin (pi/2/alpha);
hd (-2/alpha+ (L+1)/2) =alpha/2*sin (pi/2/alpha);
end
2、第一零点带宽和阻带最小衰减的测量。
第一零点带宽测量的代码设计利用了 Matlab 中的 find 函数,寻找幅频特性上第一个非常靠近 0 的点,当幅值小于一个很小的数时,可近似认为其为 0,为实现高精度的测量,应选取尽量多的点数。寻找阻带最小衰减的办法为从该点开始,寻找半个阻带内幅频特性的最大值。
编程实现:
[X,w]=freqz(SendFilter,1,5000000,'whole');
BWPosition=find(abs(X)<0.00001,1,'first');
BW=w(BWPosition)/(2*pi);
As=20*log10(max(abs(X(BWPosition:round(length(X)/2))))/max(abs(X)));
4、matlab 数组和信号点的对应问题
因为 Matlab 程序中数组下标是从 1 开始的,离散信号中每个点都是从 0 开始的,尤其是要在模仿滤波器数字化的时候,进行频谱周期延拓时特地关注这点。