我想通过随后以因子 I=5 进行上采样,然后以因子 D=9 进行下采样来进行采样率转换。
我设计了一个长度为 M 的奈奎斯特采样率转换滤波器 h(),使用 matlab 的 filterbuilder 工具用于插值因子 I=5,抽取因子 D=9。由于 D > I,我选择了滤波器的归一化截止频率为 1/9,将滤波器规格下的“Band”设置为 9。
然后我计算 I 个多相滤波器 pk(n),其长度为 K=M/I,根据以下公式对 h() 进行采样:
pk(n) = h(k + n*I),对于 k=0,...,I-1 和 n=0,...,K-1。
然后我只计算每个多相滤波器的输出样本,这些样本通过下采样操作进行采样。换句话说,我通过对多相滤波器 yk[] 的输出进行采样,根据以下公式计算输出 y[m]:
y[m] = yk[ floor( m * D / I ) ]
k = ( m * D ) modulo I
因此,我不计算输出中未使用的 yk[] 样本。
我首先应用这些多相滤波器对图像的行进行采样率转换。然后我应用相同的过滤器对列进行采样率转换。
但是,我得到一个失真的输出图像,它仍然清楚地包含别名:
有谁知道如果我在概念上做错了什么?