主要内容

采用Farrow结构的分数延迟滤波器

这个例子展示了如何设计使用Farrow结构实现的数字分数阶延迟滤波器。数字分数延迟(fracDelay)滤波器是微调信号采样瞬间的有用工具。例如,它们通常出现在数字调制解调器的同步中,其中延迟参数随时间而变化。这个例子说明了Farrow结构,一种实现时变FIR fracDelay滤波器的流行方法。

理想分数延迟滤波器

理想分数阶延迟滤波器是一种线性相位全通滤波器。它的脉冲响应是一个时移离散sinc函数,对应于一个非因果滤波器。由于脉冲响应是无限的,它不能由时间上的有限移位引起。因此,它是不可实现的,必须是近似的。

法罗结构

为了计算分数延迟滤波器的输出,我们需要估计现有离散时间样本之间的输入信号值。特殊插值滤波器可用于计算任意点的新样本值。其中,基于多项式的滤波器特别令人感兴趣,因为一种特殊结构-Farrow结构cture-允许简单处理系数。特别是,Farrow结构的可调性使其非常适合于实际硬件实现。

最大平坦FIR近似(拉格朗日插值)

拉格朗日插值是一种时域方法,它导致了基于多项式的滤波器的一种特殊情况。输出信号用M次多项式近似。最简单的情况(M=1)对应于线性插值。让我们设计和分析一个线性分数延迟滤波器,该滤波器将单位延迟按不同的分数分割:

Nx=1024;Nf=5;yw=0(Nx,Nf);transferFuncEstimator=dsp.TransferFunctionEstimator(...“光谱平均值”,25,“FrequencyRange”,“单向的”); arrplot相位显示=dsp.ArrayPlot(“打印类型”,“线路”,“YLimits”, 1.5 [0],...“YLabel”,“相位延迟”,“SampleIncrement”,1/512); arrPlotMag=dsp.ArrayPlot(“打印类型”,“线路”,“YLimits”,[-10 1],...“YLabel”,‘震级(dB)’,“SampleIncrement”, 1/512);fracDelay = dsp.VariableFractionalDelay;xw = randn (Nx、Nf);transferFuncEstimator (xw yw);w = getFrequencyVector (transferFuncEstimator, 2 *π);w = repmat (w 1 Nf);抽搐,toc<2 yw=分形延迟(xw,[0.2 0.4 0.6 0.8]);H=传递函数估计器(xw,yw);arrPlotMag(20*log10(abs(H)))arrPlotPhaseDelay(-angle(H)。/w)终止release(transferFuncEstimator) release(arrPlotMag) release(arrPlotPhaseDelay) release(fracDelay)

对于任何延迟值,理想滤波器都应该具有平坦的幅值响应和平坦的相位响应。这种近似只对最低频率是正确的。这意味着在实践中需要对信号进行过采样,以使线性分数阶延迟正确工作。在这里,你应用两个不同的分数延迟到一个正弦波,并使用时间范围覆盖原始正弦波和两个延迟版本。采样率为1000hz,延迟0.2个采样点,对应0.2 ms的延迟。

范围=时间范围(“采样器”,1000,...“YLimits”,[-1 1],...“时间跨度源”,“财产”,...“时间跨度”,.02); 正弦波(“频率”,50,“样品性能框架”,Nx);tic,toc<2x=sine();y=fractdelay(x,[2.8]);%延迟0.2 ms和0.8 ms范围([x,y(:,1),y(:,2)])终止发布(范围);发布(延迟)

可以设计高阶拉格朗日插值器。让我们比较一下三次拉格朗日插值器和线性拉格朗日插值器:

FarrowFractDelay=dsp.VariableFractElLay(...“插值法”,“法罗”,“最大延迟”,1025);
Nf=2;yw=0(Nx,Nf);xw=randn(Nx,Nf);H=transferFuncEstimator(xw,yw);w=getFrequencyVector(transferFuncEstimator,2*pi);w=repmat(w,1,Nf);tic,总有机碳<2%运行2秒yw(:,1)=分形延迟(xw(:,1),0.4);%延迟0.4毫秒yw(:,2)=法拉第延迟(xw(:,2),1.4);%延迟1.4毫秒H = transferFuncEstimator (xw yw);arrPlotMag (20 * log10 (abs (H))) arrPlotPhaseDelay(打开(角(H)) / w)。终止release(transferFuncEstimator) release(arrPlotMag) release(arrPlotPhaseDelay) release(fracDelay)

当使用拉格朗日近似时,增加多项式的阶数会稍微增加有用带宽,微分滤波器的长度,即脉冲响应的块数(“系数”属性的行数)等于多项式的长度(“系数”属性的列数)。其他的设计方法可以用来克服这个限制。还要注意三阶滤波器的相位延迟是如何在直流时从0.4采样移到1.4采样的。由于三次拉格朗日插值器是一个三阶滤波器,它可以实现的最小延迟为1。由于这个原因,请求的延迟是1.4 ms,而不是本例中的0.4 ms。

正弦= dsp。SineWave (“频率”,50,“样品性能框架”,Nx);tic,toc<2 x=sine();y1=fractdelay(x,0.4);y2=farrowfractdelay(x,1.4);范围([x,y1,y2])终止发布(范围);发布(延迟)

时变分数延迟

Farrow结构相对于直接形式FIR的优势在于其可调性。在许多实际应用中,延迟是时变的。对于每个新的延迟,我们需要在直接形式实现中使用一组新的系数,但对于Farrow实现,多项式系数保持不变。

抽搐,toc<5 x=正弦();如果toc<1延迟=1;埃尔塞夫toc<2延迟=1.2;埃尔塞夫toc<3延迟=1.4;埃尔塞夫toc<4延迟=1.6;其他的延迟= 1.8;终止y=延迟(x,延迟);范围([x,y])终止发布(范围);发布(延迟)

相关的话题