根升余弦脉冲整形峰值

信息处理 过滤器 调制 有限脉冲响应 正交
2022-02-02 06:21:05

我正在使用 FIR 滤波器为 IQ 调制器生成 Root Raised Cosine 脉冲。

如何根据脉冲的滚降因子预测输出的峰值?

知道 :

  • FIR 抽头是根升余弦脉冲,峰值为 1.0
  • 滤波器的输入是 I 或 Q 通道,值为 +1 或 -1,通过在每个符号之间添加 0 进行上采样

通过实验,我可以看到根据输入序列和滚降因子,峰值输出会有所不同。但我无法从理论上预测它。

该图说明了我的问题(虽然这个特定的序列可能不会产生我想要预测的最大峰值):

RRC脉冲整形信号

1个回答

您可以根据滤波器的脉冲响应得出输出信号峰值的上限。输出由下式给出

(1)y[n]=k=0N1h[k]x[nk]

其中是长度为的脉冲响应,是输入信号。我们有h[k]Nx[k](1)

(2)|y[n]|=|k=0N1h[k]x[nk]|k=0N1|h[k]||x[nk]||x[n]|maxk=0N1|h[k]|

由于在您的情况下,输出信号的峰值幅度保证小于所有滤波器系数的绝对值之和。|x[n]|max=1

但是,由于您的输入信号被上采样了一个因子(即,它在两个信号值之间有零),我们可以提出一个改进的(即更严格的)界限:LL1

|y[n]|maxl=0,1,L1k=0N1L|h[l+kL]|

因为在和中,只有每个滤波器系数乘以非零输入值。(1)(2)Lth

以下 Matlab/Octave 脚本显示了边界的计算:

h = randn(50,1); % 一些脉冲响应
x = 兰迪([-1,1],1,20); % 输入信号
L = 10; % 插值因子
x = [x;zeros(L-1,20)]; x=x(:); % 插值 x
y = 过滤器(h,1,x); % 计算输出信号
p = 最大值(绝对值(y));% 峰值

% 计算界限
b = 零(L,1);
对于 i = 1:L, b(i) = sum(abs(h(i:L:end))); 结尾
b = 最大值(b);

% 显示峰值和界限
[p,b]

脚本的几次运行表明边界非常紧密。