主要内容

使用产结构分数延迟滤波器

这个例子展示了如何设计数字分数延迟滤波器使用法罗结构实现。数字分数延迟滤波器都是有用的工具来调整采样信号的瞬时值。例如通常发现在数字调制解调器的同步延迟参数随时间变化的地方。这个例子说明了法罗结构,一个受欢迎的方法实现时变冷杉分数延迟滤波器。

理想分数延迟滤波器

理想的分数延迟滤波器是一个线性相位allpass过滤器。其脉冲响应时移离散sinc函数对应于一个非因果滤波器。由于脉冲响应是无限的,它不能由有限转变因果。因此不可以实现的,必须近似。

法罗结构

计算分数延迟滤波器的输出,我们需要估计的值输入信号之间现有的离散样本。特殊插值过滤器可用于计算任意点的新样本值。其中,polynomial-based过滤器是特别感兴趣的,因为一个特殊的结构-法罗结构允许系数的简单处理。特别是,法罗结构的可调谐性使其适合于实际的硬件实现。

Maximally-Flat冷杉近似(拉格朗日插值)

拉格朗日插值是一种时域方法导致的一个特例polynomial-based过滤器。输出信号近似多项式的学位。最简单的情况下(= 1)对应于线性插值。我们设计和分析一个线性分数延迟滤波器分离单元的延迟由不同的分数:

Nx = 1024;Nf = 5;yw = 0 (Nx、Nf);transferFuncEstimator = dsp.TransferFunctionEstimator (“SpectralAverages”25岁的“FrequencyRange”,“单向的”);arrPlotPhaseDelay = dsp.ArrayPlot (“PlotType”,“行”,“YLimits”,1.5 [0],“YLabel”,的相位延迟,“SampleIncrement”,1/512);arrPlotMag = dsp.ArrayPlot (“PlotType”,“行”,“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 = fracDelay (xw [0 0.2 0.4 0.6 0.8]);H = transferFuncEstimator (xw yw);arrPlotMag (20 * log10 (abs (H))) arrPlotPhaseDelay(角(H) / w)。结束发行版(fracDelay)发布(transferFuncEstimator)发布(arrPlotMag)

发行版(arrPlotPhaseDelay)

任何延迟,价值理想滤波器应该都平级响应和平坦的相位延迟响应。只有最低的频率近似是正确的。这意味着在实践中线性分式的信号需要over-sampled延迟正常工作。你两个不同的分数延迟应用于正弦波和使用时间范围覆盖原来的正弦波和两个延迟版本。延迟0.2样本采样率为1000 Hz,对应于0.2毫秒的延迟。

范围= timescope (“SampleRate”,1000,“YLimits”[1],“时间间隔”只有,“TimeSpanOverrunAction”,“滚动”);正弦= dsp.SineWave (“频率”,50岁,“SamplesPerFrame”Nx);抽搐,toc < 2 x = sin ();y = fracDelay (x)。2。8]);%推迟了0.2和0.8女士女士范围([x, y (: 1), y (:, 2)))结束发布(fracDelay)发布(范围);

可以设计高阶拉格朗日插值器。让我们来比较一下一立方与一个线性拉格朗日插值器:

farrowFracDelay = dsp.VariableFractionalDelay (“InterpolationMethod”,“法罗”,“MaximumDelay”,1025);Nf = 2;yw = 0 (Nx、Nf);xw = randn (Nx、Nf);H = transferFuncEstimator (xw yw);w = getFrequencyVector (transferFuncEstimator, 2 *π);w = repmat (w 1 Nf);抽搐,toc < 2% 2秒yw (: 1) = fracDelay (xw (: 1), 0.4);% 0.4毫秒延迟yw (:, 2) = farrowFracDelay (xw (:, 2), 1.4);% 1.4毫秒延迟H = transferFuncEstimator (xw yw);arrPlotMag (20 * log10 (abs (H))) arrPlotPhaseDelay(打开(角(H)) / w)。结束发行版(fracDelay)发布(transferFuncEstimator)发布(arrPlotMag)

发行版(arrPlotPhaseDelay)

增加多项式的顺序稍微增加了有用的带宽使用拉格朗日近似。微分滤波器的长度,即块脉冲响应的数量(“系数”属性)的行数等于多项式的长度(“系数”属性的列数)。其他设计方法可以用来克服这种限制。也注意到三阶滤波器的相位延迟转移从0.4到1.4的样品在直流。由于立方拉格朗日插值器是一个三阶滤波器,它可以达到的最小延迟1。出于这个原因,延误女士要求是1.4而不是0.4毫秒。

正弦= dsp.SineWave (“频率”,50岁,“SamplesPerFrame”Nx);抽搐,toc < 2 x = sin ();日元= fracDelay (x, 0.4);y2 = farrowFracDelay (x, 1.4);范围([x, y1, y2])结束发布(fracDelay)发布(范围);

时变分数延迟

法罗的优势结构直接形式冷杉驻留在它的可调性。在许多实际应用,延迟是时变的。为每个新延迟我们需要一套新的系数法罗的直接形式实现,但实现多项式系数保持不变。

抽搐,toc < 5 x = sin ();如果toc < 1延迟= 1;elseiftoc < 2延迟= 1.2;elseiftoc < 3延迟= 1.4;elseiftoc < 4延迟= 1.6;其他的延迟= 1.8;结束y = farrowFracDelay (x,延迟);范围((x, y))结束发布(fracDelay)发布(范围);

相关的话题