我是数字通信的初学者,我对脉冲整形滤波器有疑问。
例如,我有一个正交族$ \{s_1,...,s_N \}$。我们能否将脉冲整形滤波器$g$保持为升余弦滤波器的正交性,也就是说族$ \{ g(n) \ast s_1(n),...,g(n) \ast s_N (n) \}$是正交的吗?
我是数字通信的初学者,我对脉冲整形滤波器有疑问。
例如,我有一个正交族$ \{s_1,...,s_N \}$。我们能否将脉冲整形滤波器$g$保持为升余弦滤波器的正交性,也就是说族$ \{ g(n) \ast s_1(n),...,g(n) \ast s_N (n) \}$是正交的吗?
假设您有两个信号,假设它们使用相同的脉冲整形滤波器$p(t)$,并假设它们的代码$\mathbf{s}_1$和$\mathbf{s}_2$是正交的($<\mathbf{s}_1,\mathbf{s}_2>=0$ ) 和长度$N$。两个脉冲整形信号是$x_1(t)=\sum_n s_1[n]p(t-nT)$和$x_2(t)=\sum_ks_2[k]p(t-kT)$,其中符号$s_1 [n]$表示向量$\mathbf{s}_1$的$n^{th}$元素。所以我们要测试脉冲整形信号是否正交,我们需要计算内积:
$<x_1(t), x_2(t)>=\int x_1(t)x_2^*(t)dt=\int \bigg[\sum_{n=1}^N s_1[n]p(t-nT )\bigg]\bigg[\sum_{k=1}^N s_2[k]p(t-kT) \bigg]^* dt$
将积分拉入内部并分配共轭:
$=\sum_n \sum_k s_1[n] s_2^*[k] \int p(t-nT)p^*(t-kT) dt$
假设我们有零 ISI,即所有$n \neq k$的$\int p(t-nT)p^*(t-kT)dt=0$,并且让脉冲的能量为$E_p $我们得到:
$=NE_p \sum_n \sum_k s_1[n] s_2^*[k]$
我们需要看看这是否可以等于零。首先,很明显$NE_p \neq 0$所以现在我们检查什么时候可以$\sum_n \sum_k s_1[n] s_2^*[k]=0$?我们可以将其分解为:$\sum_n s_1[n] \sum_k s_2^*[k]$。如果$\sum_k s_2^*[k] =0$,那么我们都准备好了,整个事情都变成了$0$。对于具有$\pm1$元素的代码,这相当于$1$的数量与$-1$的数量相等。
但是,并非所有正交码都是这种情况。以任何 Hadamard 矩阵为例,它的代码之一是所有$1$的代码,其余的 $1$ 的数量与$ -1$的设计相同。
全 1 的代码如何成为正交集的一部分?这就是分解项$\sum_n s_1[n] \sum_k s_2^*[k]$ 有帮助的地方。假设$\mathbf{s}_2$是所有$1$的代码(所以总和$\neq 0$,我们称之为总和值$S_2^*$),另一个代码$\mathbf{s}_1 $ “保存”正交性,因为那样我们将有$\sum_n s_1[n] S_2^*=S_2^* \sum_n s_1[n]=0$。
添加一些有助于理解要点的代码。查看相关矩阵很有帮助,因此您可以直观地看到“泄漏”干扰的数量。正如您所期望的那样,矩形脉冲几乎是完美的,并且 RRC 允许通过少量非对角线元素。增加滤波器长度可以进一步将这些下推到 RRC 和矩形脉冲表现相似的点。MATLAB代码:
% parameters
sps = 10;
span = 6;
rolloff = 0.25;
codeLength = 4;
H = hadamard(codeLength)/sqrt(codeLength); % normalize so that unit norm
H_up = upsample(H, sps);
rrcPulse = rcosdesign(rolloff, span, sps, 'sqrt'); % pulse filter
rectPulse = rectpulse(1, sps)/sqrt(sps); % normalize
% x(:, n) is the n^th pulse shaped signal
for n = 1:codeLength
x1(:, n) = conv(rrcPulse, H_up(:, n)); % RRC pulse shaped
x2(:, n) = conv(rectPulse, H_up(:, n)); % rectangular pulse shaped
end
R1 = x1'*x1; % correlation matrix for RRC pulse
val = maxk(R1(:), codeLength+1);
maxOffDiagonalVal1 = val(end); % this is the max interference from a different code
R2 = x2'*x2; % correlation matrix for rectangular pulse
val = maxk(R2(:), codeLength+1);
maxOffDiagonalVal2 = val(end); % this is the max interference from a different code
figure
imagesc(R1)
xlabel('Signal #')
ylabel('Signal #')
title('Correlation Matrix (RRC)')
c = colorbar;
c.Label.String = 'Correlation';
figure
imagesc(R2)
xlabel('Signal #')
ylabel('Signal #')
title('Correlation Matrix (Rect)')
c = colorbar;
c.Label.String = 'Correlation';
通常对于脉冲整形滤波器和任何正交码族:否。
更新:请参阅@Engineer 的答案,我通过排除 Walsh 代码集中的第一行(所有 1 行)来确认其余行的余额为 1 和 0 确实都是正交的。
*第二次更新:@MBaz 在这里指出,使用 Root-Raised Cosine 滤波,整个代码集将保持正交:Orthogonal Codes for Band Limited Channel
详细的数学证明以及可以保持正交性的标准将是一个更好的答案,但是由于没有人提交过,我至少在这里提供了一个模拟结果,该结果演示了一个正交族的特定示例,其中在脉冲整形之后升余弦滤波器不保持正交性。(考虑到升余弦滤波器的零 ISI 特性,原始信号当然可以在没有失真的采样位置提取,因此提取的信号在采样后仍然是正交的,但问题具体在于脉冲波形本身($g(n)*s_n(n)$)
正交信号的正式定义是它们的内积(也称为点积)为零。
考虑 Hadarmard $H_4$矩阵的一个简单情况,每一行形成一组四个正交沃尔什码:
$\begin{bmatrix}1 & 1 & 1 & 1\\1 & -1 & 1 & -1\\1 & 1 & -1 & -1\\1 & -1 & -1 & 1\end{bmatrix }$
在脉冲整形之前,很容易确认正交性,例如在第 1 行和第 2 行之间使用索引乘积和总和的点积:
$$(1\times1)+(1\times-1)+(1\times1)+(1\times-1) = 0$$
同样在第 1 行和第 4 行之间: $$(1\times1)+(1\times-1)+(1\times-1)+(1\times1) = 0$$
使用升余弦滤波器对该组进行仿真的结果表明,在前两行的情况下保持正交性,但不在第 1 行和第 4 行之间。前两行在上采样 10 后得到的波形和下图显示了带升余弦滤波器的脉冲整形(解码原始信号的样本位置在样本 50、60、70 和 80):
这两个波形的计算点积为$4.4E-16$。(足够接近零,所以正交)。
第 1 行与第 3 行同样相当低,为 9.1E-16 美元(再次正交)。
然而 ,第 1 行与第 4 行是$-0.465$,这是一个非常强的相关性,并且显然不再正交。
显示脉冲形状的第 1 行和第 4 行的图如下所示。
点积是逐个样本的乘积,然后是结果的总和(或积分)。每个波形对的乘积图可以进一步了解正交性的损失。注意脉冲形状的第 1 行和第 2 行的乘积非常对称,曲线下的正负面积相似,而脉冲形状的第 1 行和第 4 行的乘积具有明显更大的负面积,从而破坏了正交性这种情况: