主要内容

双通道滤波器组使用Halfband杀害多人者和Halfband插入器

双通道滤波器组是一个通用的特殊情况声道输出滤波器组,有两个过滤器分支。使用halfband实现滤波器的分析部分银行杀害多人者。使用halfband实现合成滤波器组的一部分插入器。

这些特性实现halfband杀害多人者和halfband插入器在DSP系统工具箱™。

双通道分析滤波器组接受一个宽带信号作为输入,将这个信号分为低通和高通滤波子带信号。双通道合成滤波器组接受低通和高通滤波子带信号作为输入并重建这两个部分波段宽带信号使用。

使用FIR halfband或IIR halfband过滤器过滤器银行。每个过滤器都有自己的优点和缺点,你的选择应该取决于应用程序的计算需求。IIR滤波器系数需要少于FIR滤波器来执行类似的过滤操作。IIR滤波器工作速度更快,需要更少的内存空间。然而,FIR滤波器总是稳定的。当数字滤波器的系数是对称的或反对称,过滤器展品线性相位响应。

使用一个音频文件输入的功率谱和比较滤波器组输出与输入信号。然后比较成本的同时实现FIR和IIR halfband滤波器。

注意:如果您正在使用R2016a或更早的版本中,用等效替换每个调用对象一步语法。例如,obj (x)就变成了步骤(obj, x)

注意:audioDeviceWriter系统不支持对象™在MATLAB在线。金宝app

冷杉Halfband双通道滤波器组

设置音频文件阅读器和设备的作家。创建冷杉halfband杀害多人者和插入器设计一个最低订购量滤波器过渡宽度为2000赫兹和80分贝的阻带衰减。最后,建立了频谱分析仪显示滤波器组的输入和输出的功率谱。

房颤= dsp.AudioFileReader (“speech_dft.mp3”,“SamplesPerFrame”,1024);美联社= audioDeviceWriter (“SampleRate”,AF.SampleRate);filterspec =“过渡宽度和阻带衰减”;TW = 2000;Astop = 80;firhalfbanddecim = dsp.FIRHalfbandDecimator (“规范”filterspec,“StopbandAttenuation”Astop,“TransitionWidth”TW,“SampleRate”,AF.SampleRate);firhalfbandinterp = dsp.FIRHalfbandInterpolator (“规范”filterspec,“StopbandAttenuation”Astop,“TransitionWidth”TW,“SampleRate”AF.SampleRate / 2,“FilterBankInputPort”,真正的);SpecAna =简介(“SampleRate”AF.SampleRate,“PlotAsTwoSidedSpectrum”假的,“ShowLegend”,真的,“ChannelNames”,{输入信号的,过滤后的输出信号的});

一次读取音频1024个样本。滤波器的输入得到低通和高通子带信号的两倍。这是分析滤波器组的一部分。使用冷杉halfband插入器合成滤波器组。显示正在运行的功率谱的音频输入和输出合成滤波器组。使用音频设备输出的作家。

~结束房颤(AF) audioInput = ();(xlo xhigh] = firhalfbanddecim (audioInput);audioOutput = firhalfbandinterp (xlo xhigh);spectrumInput = [audioInput audioOutput];SpecAna (spectrumInput);美联社(audioOutput);结束释放(AF);释放(美联社);释放(SpecAna);

IIR Halfband双通道滤波器组

建立了IIR halfband杀害多人者和插入器。最低订购量的过滤器,过渡宽度2000赫兹,80分贝的阻带衰减。设置频谱分析仪显示的功率谱输入和输出滤波器组。

房颤= dsp.AudioFileReader (“speech_dft.mp3”,“SamplesPerFrame”,1024);美联社= audioDeviceWriter (“SampleRate”,AF.SampleRate);filterspec =“过渡宽度和阻带衰减”;TW = 2000;Astop = 80;iirhalfbanddecim = dsp.IIRHalfbandDecimator (“规范”filterspec,“StopbandAttenuation”Astop,“TransitionWidth”TW,“SampleRate”,AF.SampleRate);iirhalfbandinterp = dsp.IIRHalfbandInterpolator (“规范”filterspec,“StopbandAttenuation”Astop,“TransitionWidth”TW,“SampleRate”AF.SampleRate / 2,“FilterBankInputPort”,真正的);SpecAna =简介(“SampleRate”AF.SampleRate,“PlotAsTwoSidedSpectrum”假的,“ShowLegend”,真的,“ChannelNames”,{输入信号的,过滤后的输出信号的});

一次读取音频1024个样本。滤波器的输入信号得到低通和高通滤波子带信号的两倍。这是分析滤波器组的一部分。用IIR halfband插入器合成滤波器组。显示正在运行的功率谱的音频输入和输出合成滤波器组。使用音频设备输出的作家。

~结束房颤(AF) audioInput = ();(xlo xhigh] = iirhalfbanddecim (audioInput);audioOutput = iirhalfbandinterp (xlo xhigh);spectrumInput = [audioInput audioOutput];SpecAna (spectrumInput);美联社(audioOutput);结束释放(AF);释放(美联社);释放(SpecAna);

比较成本

比较的成本实现FIR和IIR halfband杀害多人者使用成本函数。你可以看到,IIR halfband杀害多人者在计算上更有效率。

成本(firhalfbanddecim)
ans =结构体字段:NumCoefficients: 27 NumStates: 50 MultiplicationsPerInputSample: 13.5000 AdditionsPerInputSample: 13
成本(iirhalfbanddecim)
ans =结构体字段:NumCoefficients: 5 NumStates: 7 MultiplicationsPerInputSample: 2.5000 AdditionsPerInputSample: 5

比较的成本实现FIR和IIR halfband插入器。再次计算成本实现IIR halfband插入器相比要少得多的计算成本实现IIR halfband杀害多人者。

成本(firhalfbandinterp)
ans =结构体字段:NumCoefficients: 26 NumStates: 25 MultiplicationsPerInputSample: 26 AdditionsPerInputSample: 25
成本(iirhalfbandinterp)
ans =结构体字段:NumCoefficients: 5 NumStates: 7 MultiplicationsPerInputSample: 5 AdditionsPerInputSample: 10

比较群延迟

你也可以比较的群延迟FIR和IIR halfband过滤器。

使用fvtool显示的群延迟响应FIR halfband和IIR halfband过滤器在杀害多人者。冷杉halfband滤波器具有线性相位响应的群延迟25样品。IIR halfband滤波器的非线性相位响应,特别是在滤波器的截止频率。一个恒定的群延迟确保所有相同的频率成分被推迟。

h = fvtool (firhalfbanddecim iirhalfbanddecim,“分析”,“grpdelay”);传奇(h,“冷杉Halfband杀害多人者”,“IIR Halfband杀害多人者”)

{“字符串”:“图图1:群延迟包含一个坐标轴对象。坐标轴对象与标题群延迟包含2线类型的对象。这些对象代表冷杉Halfband杀害多人者,IIR Halfband杀害多人者。”、“特克斯”:“群延迟”、“乳胶”:[]}

同样在插入器,冷杉halfband滤波器具有线性相位响应,而IIR halfband滤波器非线性相位响应。

h = fvtool (firhalfbandinterp iirhalfbandinterp,“分析”,“grpdelay”);传奇(h,“冷杉Halfband插入器的,“IIR Halfband插入器的)

{“字符串”:“图图2:群延迟包含一个坐标轴对象。坐标轴对象与标题群延迟包含2线类型的对象。这些对象代表冷杉Halfband插入器,IIR Halfband插入器。”、“特克斯”:“群延迟”、“乳胶”:[]}

另请参阅

对象

相关的话题