通过双通道滤波器组重建
这个例子展示了如何设计完美重建双通道滤波器,也被称为正交镜像滤波器(QMF)银行。QMF银行使用权力互补的过滤器。
有几个数字信号处理应用中,信号首先分为低频和高频部分波段,后来这些部分波段组合重构原始信号。一个这样的应用程序子带编码(SBC)。
首先模拟完美重建进程通过过滤信号的比例和时间转移的冲动。然后画出输入、输出和错误信号的幅度谱完整的系统的传递函数。完美重建的有效性是通过这个例子描述的滤波器组。
完美的重建
据说一个系统实现完美重建当系统的输出等于输入信号或延迟相同的版本。下面是一个完美的重建过程的框图,使用理想的过滤分离信号的低频和高频分量,并完全恢复信号。完美的重建过程需要四个过滤器,两个低通滤波器( 和 )和两个高通滤波器( 和 )。此外,这个过程需要downsampler和upsampler之间的两个低通,高通滤波器。自分析过滤器单元增益,合成滤波器补偿前面upsamplers通过上涨2。
完美重建双通道滤波器组
DSP系统工具箱™提供了一个专门的函数firpr2chfb
设计的四个过滤器需要实现一个冷杉完美重建双通道滤波器组。的firpr2chfb
功能设计的四种FIR滤波器分析(
和
)和合成(
和
)双通道完全重构滤波器组的部分。设计对应的正交滤波器称为power-symmetric滤波器,这需要为了实现完美的重建。
设计一个滤波器组过滤器的订单99,低通和高通滤波器的通带边缘0.45和0.55,分别为:
N = 99;[LPAnalysis, HPAnalysis LPSynthsis HPSynthesis] = firpr2chfb (N, 0.45);
这些过滤器的大小反应是策划如下:
fvt = fvtool (LPSynthsis HPAnalysis LPAnalysis, 1, 1, 1, HPSynthesis, 1);fvt。颜色= (1 1 1);传奇(fvt“Hlp低通杀害多人者”,“水马力高通杀害多人者”,…“Glp低通插值器”,“Ghp高通插入器”);
注意分析路径由一个后跟downsampler过滤,这是一个杀害多人者,和合成路径由一个upsampler后跟一个过滤器,这是一个插入器。DSP系统工具箱提供了dsp.SubbandAnalysisFilter
和dsp.SubbandSynthesisFilter
对象来实现滤波器的分析部分和合成部分银行,分别。
%分析部分analysisFilter = dsp。SubbandAnalysisFilter (LPAnalysis HPAnalysis);%合成部分synthFilter = dsp。SubbandSynthesisFilter (LPSynthsis HPSynthesis);
为了一个例子,让p(n)表示的信号
让信号x(n)被定义为
请注意:由于MATLAB®使用集中的索引,δ(n)= 1时n= 1。
x = 0 (50, 1);x (1:3) = 1;x (8) = 2;x (16:18) = 3;x (24:26) = 4;x (32:34) = 3;x (40:42) = 2;x (48:50) = 1;sigsource = dsp.SignalSource (“SignalEndAction”,循环重复的,…“SamplesPerFrame”,50);sigsource。信号= x;
将模拟的结果,我们需要四个范围:
比较输入信号和重建的输出。
测量输入信号和重建的输出之间的误差
情节的大小反应整个系统。
绘制整个系统的相位响应。
%比较输入信号和重建的输出范围sigcompare = dsp.ArrayPlot (“NumInputPorts”2,“ShowLegend”,真的,…“标题”,的输入和重构信号,…“ChannelNames”,{输入信号的,重构信号的});%绘制输入之间的均方根误差范围和重建信号errorPlot = timescope (“标题”,均方根误差的,“SampleRate”, 1…“TimeUnits”,“秒”,“YLimits”(-0.5 - 2),…“TimeSpanSource”,“属性”,“时间间隔”,100,…“TimeSpanOverrunAction”,“滚动”);%计算传递函数分析和级联的%的合成子带滤波器tfestimate = dsp.TransferFunctionEstimator (“FrequencyRange”,“中心”,…“SpectralAverages”,50);%范围绘制的幅度响应传递函数估计magplot = dsp.ArrayPlot (“PlotType”,“行”,…“YLabel”,“级响应(dB)”,…“标题”,级响应的传递函数的估计,…“XOffset”,-25,“包含”,的频率(赫兹),…“YLimits”5 [5]);%范围绘制估计的相位响应传递函数phaseplot = dsp.ArrayPlot (“PlotType”,“行”,…“YLabel”,的相位响应(度),…“标题”,“估计传递函数的相位响应”,…“XOffset”,-25,“包含”,的频率(赫兹),…“YLimits”180年[-180]);
模拟完美重建
输入信号通过子带过滤器和重建的输出。情节上的结果范围。
为i = 1:10 0%作为输入在每个迭代中使用相同的信号。输入= sigsource ();%的分析(嗨,lo) = analysisFilter(输入);%的合成重建= synthFilter(嗨,lo);%赔偿延迟造成的过滤器和比较%的信号。由于输入信号周期,比较当前%的输入和输出信号的帧。sigcompare(输入(2:结束),重建(1:end-1));%情节之间的误差信号呃= rms(输入(2:结束)——重建(1:end-1));errorPlot(错);%估计传递函数的级联Txy = tfestimate(输入(2:结束),重建(1:end-1));magplot (20 * log10 (abs (Txy)));phaseplot(角(Txy) * 180 / pi);结束
释放(errorPlot);
释放(magplot);
释放(phaseplot);
完美重建输出分析
前两个情节显示双通道滤波器组的完全重构原始信号x(n]。初始误差在第二个情节是由于延迟过滤器。第三和第四块显示整个系统有一个magniude dB和相位响应0°的反应,从而保护信号的频率特性。