主要内容gydF4y2Ba

dsp。FIRHalfbandInterpolatorgydF4y2Ba

半带内插器gydF4y2Ba

描述gydF4y2Ba

的gydF4y2Badsp。FIRHalfbandInterpolatorgydF4y2Ba系统对象™执行使用两个上采样因子对输入信号的有效多相内插。您可以使用gydF4y2Badsp。FIRHalfbandInterpolatorgydF4y2Ba实现两带滤波器组的合成部分,以合成来自低通和高通子带的信号。gydF4y2Badsp。FIRHalfbandInterpolatorgydF4y2Ba使用FIR等纹波设计构造半带滤波器和多相实现对输入进行滤波。gydF4y2Ba

要增加采样并插值数据,请执行以下操作:gydF4y2Ba

  1. 创建gydF4y2Badsp。FIRHalfbandInterpolatorgydF4y2Ba对象并设置其属性。gydF4y2Ba

  2. 调用带参数的对象,就好像它是一个功能。gydF4y2Ba

要了解有关系统对象如何工作的更多信息,请参见gydF4y2Ba什么是系统对象?gydF4y2Ba

创建gydF4y2Ba

描述gydF4y2Ba

firhalfbandinterpgydF4y2Ba=dsp.firhalfBand内插器gydF4y2Ba返回FIR半带插值滤波器,gydF4y2BafirhalfbandinterpgydF4y2Ba,使用默认设置。在默认设置下,System对象使用半频带频率对输入数据进行上采样和插值gydF4y2Ba11025.gydF4y2Ba赫兹,过渡的宽度gydF4y2Ba4.1gydF4y2Ba和的阻带衰减gydF4y2Ba80gydF4y2BadB。gydF4y2Ba

例子gydF4y2Ba

firhalfbandinterpgydF4y2Ba= dsp.FIRHalfbandInterpolator(gydF4y2Ba名称、值gydF4y2Ba)gydF4y2Ba返回一个半带插值器,带有由一个或多个指定的附加属性gydF4y2Ba名称、值gydF4y2Ba对参数。gydF4y2Ba

例子:gydF4y2Bafirhalfbandinterp = dsp.FIRHalfbandInterpolator(“规范”,“滤波器阶数和阻带衰减”)gydF4y2Ba创建一个FIR半带插值对象,滤波器阶数设置为52,阻带衰减设置为80 dB。gydF4y2Ba

属性gydF4y2Ba

全部展开gydF4y2Ba

除非另有说明,属性是gydF4y2BanontunablegydF4y2Ba,这意味着您不能在调用对象之后更改它们的值。对象在调用时锁定,而gydF4y2Ba释放gydF4y2Ba函数将解锁它们。gydF4y2Ba

如果一个属性是gydF4y2Ba可调gydF4y2Ba,您可以随时更改它的值。gydF4y2Ba

有关更改属性值的更多信息,请参阅gydF4y2Ba在MATLAB中使用系统对象进行系统设计gydF4y2Ba.gydF4y2Ba

过滤器设计参数,指定为字符向量。当你设定gydF4y2Ba规格gydF4y2Ba为了满足下列条件之一,您可以选择三个可用的设计参数中的两个来设计FIR半带滤波器。gydF4y2Ba

  • “过渡宽度和阻带衰减”gydF4y2Ba——过渡宽度和阻带衰减是设计参数。gydF4y2Ba

  • “滤波器阶和阻带衰减”gydF4y2Ba——滤波器阶数和阻带衰减是设计参数。gydF4y2Ba

  • “滤镜顺序和过渡宽度”gydF4y2Ba–过滤器顺序和过渡宽度是设计参数。gydF4y2Ba

采用最优等纹波滤波器设计方法设计了滤波器。gydF4y2Ba

当您设置gydF4y2Ba规格gydF4y2Ba到gydF4y2Ba“系数”gydF4y2Ba时,直接指定半带滤波器系数gydF4y2Ba分子gydF4y2Ba财产。gydF4y2Ba

过滤顺序,指定为偶数正整数。gydF4y2Ba

依赖gydF4y2Ba

此属性在设置gydF4y2Ba规格gydF4y2Ba要么gydF4y2Ba“滤波器阶和阻带衰减”gydF4y2Ba或者gydF4y2Ba“滤镜顺序和过渡宽度”gydF4y2Ba.gydF4y2Ba

数据类型:gydF4y2Ba单身的gydF4y2Ba|gydF4y2Ba双gydF4y2Ba|gydF4y2BaINT8gydF4y2Ba|gydF4y2Baint16gydF4y2Ba|gydF4y2Baint32gydF4y2Ba|gydF4y2Baint64gydF4y2Ba|gydF4y2Bauint8gydF4y2Ba|gydF4y2Bauint16gydF4y2Ba|gydF4y2BaUINT32gydF4y2Ba|gydF4y2BaUINT64gydF4y2Ba

用dB表示的阻带衰减,指定为正实标量。gydF4y2Ba

依赖gydF4y2Ba

此属性在设置gydF4y2Ba规格gydF4y2Ba要么gydF4y2Ba“滤波器阶和阻带衰减”gydF4y2Ba或者gydF4y2Ba“过渡宽度和阻带衰减”gydF4y2Ba.gydF4y2Ba

数据类型:gydF4y2Ba单身的gydF4y2Ba|gydF4y2Ba双gydF4y2Ba|gydF4y2BaINT8gydF4y2Ba|gydF4y2Baint16gydF4y2Ba|gydF4y2Baint32gydF4y2Ba|gydF4y2Baint64gydF4y2Ba|gydF4y2Bauint8gydF4y2Ba|gydF4y2Bauint16gydF4y2Ba|gydF4y2BaUINT32gydF4y2Ba|gydF4y2BaUINT64gydF4y2Ba

过渡宽度,单位为Hz,指定为正实标量。以Hz为单位的过渡宽度值必须小于输入采样率的1/2。gydF4y2Ba

依赖gydF4y2Ba

此属性在设置gydF4y2Ba规格gydF4y2Ba要么gydF4y2Ba“过渡宽度和阻带衰减”gydF4y2Ba或者gydF4y2Ba“滤镜顺序和过渡宽度”gydF4y2Ba.gydF4y2Ba

数据类型:gydF4y2Ba单身的gydF4y2Ba|gydF4y2Ba双gydF4y2Ba|gydF4y2BaINT8gydF4y2Ba|gydF4y2Baint16gydF4y2Ba|gydF4y2Baint32gydF4y2Ba|gydF4y2Baint64gydF4y2Ba|gydF4y2Bauint8gydF4y2Ba|gydF4y2Bauint16gydF4y2Ba|gydF4y2BaUINT32gydF4y2Ba|gydF4y2BaUINT64gydF4y2Ba

半带FIR滤波器的系数,指定为行向量。必须符合FIR系数半带脉冲响应格式。有关此格式的详细信息,请参阅gydF4y2Ba半带滤波器gydF4y2Ba和gydF4y2BaFIR半带滤波器设计gydF4y2Ba.如果过滤器的一半的顺序,gydF4y2Ba(长度(分子)- 1)/ 2gydF4y2Ba是偶数,从第一个系数开始的其他系数必须是零除了中心系数必须是1.0。如果滤波器一半的阶数是奇数,那么以1.0为中心的0交替序列从第二个系数开始。gydF4y2Ba

依赖gydF4y2Ba

此属性在设置gydF4y2Ba规格gydF4y2Ba到gydF4y2Ba“系数”gydF4y2Ba.gydF4y2Ba

数据类型:gydF4y2Ba单身的gydF4y2Ba|gydF4y2Ba双gydF4y2Ba|gydF4y2BaINT8gydF4y2Ba|gydF4y2Baint16gydF4y2Ba|gydF4y2Baint32gydF4y2Ba|gydF4y2Baint64gydF4y2Ba|gydF4y2Bauint8gydF4y2Ba|gydF4y2Bauint16gydF4y2Ba|gydF4y2BaUINT32gydF4y2Ba|gydF4y2BaUINT64gydF4y2Ba

输入采样率Hz,指定为正实标量。输入采样率默认为44100hz。如果将过渡宽度指定为滤波器设计参数之一,则过渡宽度不能超过输入采样率的1/2。gydF4y2Ba

数据类型:gydF4y2Ba单身的gydF4y2Ba|gydF4y2Ba双gydF4y2Ba

合成滤波器组,指定为其中之一gydF4y2Ba错误的gydF4y2Ba或者gydF4y2Ba符合事实的gydF4y2Ba.如果该物业gydF4y2Ba错误的gydF4y2Ba,gydF4y2Badsp。FIRHalfbandInterpolatorgydF4y2Ba为当调用算法的单个载体 - 或矩阵值的输入的内插滤波器。如果此属性为gydF4y2Ba符合事实的gydF4y2Ba,gydF4y2Badsp。FIRHalfbandInterpolatorgydF4y2Ba是一个综合滤波器组,算法接受两个输入,低通和高通子带来合成。gydF4y2Ba

不动点性质gydF4y2Ba

系数的字和分数长度,指定为符号或无符号gydF4y2BanumerictypegydF4y2Ba对象。默认的,gydF4y2Banumerictype(1,16)gydF4y2Ba对应于具有16位系数和基于系数值确定的分数长度的有符号数字类型对象,以提供最佳精度。gydF4y2Ba

此属性是不可调优的。gydF4y2Ba

输出的字长与输入的字长相同。计算输出的分数长度,使输出的整个动态范围可以表示而不溢出。有关输出的分数长度如何计算的详细信息,请参见gydF4y2BaFIR滤波器中避免溢出的定点精度规则gydF4y2Ba.gydF4y2Ba

输出定点运算的舍入方法,指定为字符向量。有关舍入模式的更多信息,请参见gydF4y2Ba精度和范围gydF4y2Ba.gydF4y2Ba

用法gydF4y2Ba

描述gydF4y2Ba

例子gydF4y2Ba

ygydF4y2Ba= firhalfbandinterp (gydF4y2Bax1gydF4y2Ba)gydF4y2Ba由两个和内插的输入信号上采样gydF4y2Bax1gydF4y2Ba使用FIR半带内插器,gydF4y2BafirhalfbandinterpgydF4y2Ba.gydF4y2Ba

例子gydF4y2Ba

ygydF4y2Ba= firhalfbandinterp (gydF4y2Bax1gydF4y2Ba,gydF4y2Bax2gydF4y2Ba)gydF4y2Ba实现了一个半带合成滤波器组的输入gydF4y2Bax1gydF4y2Ba和gydF4y2Bax2gydF4y2Ba.gydF4y2Bax1gydF4y2Ba是半带分析滤波器组的低通输出和gydF4y2Bax2gydF4y2Ba为半带分析滤波器组的高通输出。gydF4y2Badsp。FIRHalfbandInterpolatorgydF4y2Ba实现一个合成滤波器组仅当gydF4y2Ba“FilterBankInputPort”gydF4y2Ba属性设置为gydF4y2Ba符合事实的gydF4y2Ba.gydF4y2Ba

输入参数gydF4y2Ba

全部展开gydF4y2Ba

数据输入到FIR内插器半带,指定为列向量或矩阵。这个信号是一个半带分析滤波器组的低通输出。如果输入信号是一个矩阵,该矩阵的每一列被视为一个独立的信道。gydF4y2Ba

数据类型:gydF4y2Ba单身的gydF4y2Ba|gydF4y2Ba双gydF4y2Ba|gydF4y2BaINT8gydF4y2Ba|gydF4y2Baint16gydF4y2Ba|gydF4y2Baint32gydF4y2Ba|gydF4y2Baint64gydF4y2Ba|gydF4y2Bauint8gydF4y2Ba|gydF4y2Bauint16gydF4y2Ba|gydF4y2BaUINT32gydF4y2Ba|gydF4y2BaUINT64gydF4y2Ba|gydF4y2BafigydF4y2Ba
复数支持:金宝appgydF4y2Ba是的gydF4y2Ba

第二个数据输入到综合滤波器组,指定为列向量或矩阵。这个信号是半带分析滤波器组的高通输出。如果输入信号是一个矩阵,该矩阵的每一列被视为一个独立的信道。gydF4y2Ba

两个输入的大小、数据类型和复杂性必须相同。gydF4y2Ba

数据类型:gydF4y2Ba单身的gydF4y2Ba|gydF4y2Ba双gydF4y2Ba|gydF4y2BaINT8gydF4y2Ba|gydF4y2Baint16gydF4y2Ba|gydF4y2Baint32gydF4y2Ba|gydF4y2Baint64gydF4y2Ba|gydF4y2Bauint8gydF4y2Ba|gydF4y2Bauint16gydF4y2Ba|gydF4y2BaUINT32gydF4y2Ba|gydF4y2BaUINT64gydF4y2Ba|gydF4y2BafigydF4y2Ba
复数支持:金宝appgydF4y2Ba是的gydF4y2Ba

输出参数gydF4y2Ba

全部展开gydF4y2Ba

插值器的输出,以列向量或矩阵的形式返回。内插器输出中的行数是输入信号中的行数的两倍。gydF4y2Ba

数据类型:gydF4y2Ba单身的gydF4y2Ba|gydF4y2Ba双gydF4y2Ba|gydF4y2BaINT8gydF4y2Ba|gydF4y2Baint16gydF4y2Ba|gydF4y2Baint32gydF4y2Ba|gydF4y2Baint64gydF4y2Ba|gydF4y2Bauint8gydF4y2Ba|gydF4y2Bauint16gydF4y2Ba|gydF4y2BaUINT32gydF4y2Ba|gydF4y2BaUINT64gydF4y2Ba|gydF4y2BafigydF4y2Ba
复数支持:金宝appgydF4y2Ba是的gydF4y2Ba

目标函数gydF4y2Ba

要使用对象函数,请指定System对象作为第一个输入参数。例如,释放名为system的对象的系统资源gydF4y2BaobjgydF4y2Ba,使用下面的语法:gydF4y2Ba

释放(obj)gydF4y2Ba

全部展开gydF4y2Ba

freqzgydF4y2Ba 离散时间滤波器的频率响应gydF4y2Ba系统对象gydF4y2Ba
fvtoolgydF4y2Ba DSP滤波器的频率响应可视化gydF4y2Ba
信息gydF4y2Ba 信息过滤gydF4y2Ba系统对象gydF4y2Ba
成本gydF4y2Ba 估计实现过滤器的成本gydF4y2Ba系统对象gydF4y2Ba
多项式系数gydF4y2Ba 返回过滤器gydF4y2Ba系统对象gydF4y2Ba结构系数gydF4y2Ba
多相gydF4y2Ba 多速率滤波器的多相分解gydF4y2Ba
一步gydF4y2Ba 跑gydF4y2Ba系统对象gydF4y2Ba算法gydF4y2Ba
释放gydF4y2Ba 释放资源并允许更改gydF4y2Ba系统对象gydF4y2Ba属性值和输入特征gydF4y2Ba
重置gydF4y2Ba 使内部状态复位gydF4y2Ba系统对象gydF4y2Ba

例子gydF4y2Ba

全部崩溃gydF4y2Ba

创建一个低通半带插值滤波器上采样数据到44.1 kHz。指定过滤顺序为52,过渡宽度为4.1 kHz。gydF4y2Ba

FS = 44.1e3;InputSampleRate = FS / 2;订单= 52个;TW = 4.1e3;FILTERSPEC =gydF4y2Ba“滤镜顺序和过渡宽度”gydF4y2Ba;firhalfbandinterp = dsp.FIRHalfbandInterpolator(gydF4y2Ba......gydF4y2Ba“规范”gydF4y2Ba,过滤器规格,gydF4y2Ba'FilterOrder'gydF4y2Ba顺序gydF4y2Ba......gydF4y2Ba“过渡宽度”gydF4y2Ba,TW,gydF4y2Ba“SampleRate”gydF4y2Ba, InputSampleRate);gydF4y2Ba

画出脉冲响应。的第0阶系数被延迟26个样本,这是等于滤波器的群延迟。这就产生了一个因果半带滤波器。gydF4y2Ba

fvtool(firhalfbandinterp,gydF4y2Ba'分析'gydF4y2Ba,gydF4y2Ba'冲动'gydF4y2Ba);gydF4y2Ba

图形过滤器可视化工具-脉冲响应包含一个轴对象和其他类型的uitoolbar, uimenu对象。标题为脉冲响应的轴对象包含一个类型为stem的对象。gydF4y2Ba

绘制幅值和相位响应。gydF4y2Ba

fvtool(firhalfbandinterp,gydF4y2Ba'分析'gydF4y2Ba,gydF4y2Ba“频率”gydF4y2Ba);gydF4y2Ba

Figure Filter Visualization Tool-幅值响应(dB)和相位响应包含轴对象和uitoolbar、uimenu类型的其他对象。具有标题幅值响应(dB)和相位响应的轴对象包含线型对象。gydF4y2Ba

使用半带分析滤波器组和插值滤波器从语音信号中提取低频子带。gydF4y2Ba

请注意gydF4y2Ba:如果您使用的是R2016a或早期版本,请使用等效的gydF4y2Ba一步gydF4y2Ba语法。例如,gydF4y2BaOBJ(x)的gydF4y2Ba变成gydF4y2Ba步骤(OBJ,x)的gydF4y2Ba.gydF4y2Ba

笔记:gydF4y2Ba的gydF4y2Ba音频设备编写器gydF4y2Ba系统对象™不支持金宝appgydF4y2BaMATLAB在线gydF4y2Ba.gydF4y2Ba

设置音频文件读取器、分析滤波器组、音频设备写入器和插值滤波器。音频数据采样率为22050 Hz。半带滤波器的阶数为52,过渡宽度为2 kHz。gydF4y2Ba

AFR = dsp.AudioFileReader(gydF4y2Ba......gydF4y2Ba'speech_dft.mp3'gydF4y2Ba,gydF4y2Ba......gydF4y2Ba“样品性能框架”gydF4y2Ba, 1024);filtSpec =gydF4y2Ba“滤镜顺序和过渡宽度”gydF4y2Ba;订单= 52个;TW = 2000;firhalfbanddecim = dsp。FIRHalfbandDecimator (gydF4y2Ba......gydF4y2Ba“规范”gydF4y2Ba,过滤规格,gydF4y2Ba......gydF4y2Ba'FilterOrder'gydF4y2Ba顺序gydF4y2Ba......gydF4y2Ba“过渡宽度”gydF4y2Ba,TW,gydF4y2Ba......gydF4y2Ba“SampleRate”gydF4y2Ba, afr.SampleRate);firhalfbandinterp = dsp.FIRHalfbandInterpolator(gydF4y2Ba......gydF4y2Ba“规范”gydF4y2Ba,过滤规格,gydF4y2Ba......gydF4y2Ba'FilterOrder'gydF4y2Ba顺序gydF4y2Ba......gydF4y2Ba“过渡宽度”gydF4y2Ba,TW,gydF4y2Ba......gydF4y2Ba“SampleRate”gydF4y2Ba, afr.SampleRate / 2);adw = audioDeviceWriter (gydF4y2Ba“SampleRate”gydF4y2Ba,gydF4y2Ba......gydF4y2Baafr.SampleRate);gydF4y2Ba

查看半带滤波器的幅值响应。gydF4y2Ba

fvtool(firhalfbanddecim)gydF4y2Ba

图形过滤器可视化工具-幅度响应(dB)包含一个轴对象和其他类型的uitoolbar, uimenu对象。标题为“大小响应(dB)”的轴对象包含2个类型为line的对象。gydF4y2Ba

以1024个样本帧从音频文件中读取语音信号。将语音信号滤波成半频带频率为5512.5 Hz的低通和高通子频带。通过插值低通子带重构语音信号的低通近似。播放过滤后的输出。gydF4y2Ba

虽然gydF4y2Ba~isDone(afr) audioframe = afr();xlo = firhalfbanddecim (audioframe);ylow = firhalfbandinterp (xlo);adw (ylow);gydF4y2Ba终止gydF4y2Ba

等待音频文件播放到最后,然后关闭输入文件并释放音频输出资源。gydF4y2Ba

释放(AFR);释放(ADW);gydF4y2Ba

使用半带抽取和插补实现两通道滤波器组。此示例使用的音频文件的输入和显示,所述滤波器组输出的功率谱不从输入显著不同。gydF4y2Ba

请注意gydF4y2Ba:如果您使用的是R2016a或早期版本,请使用等效的step语法替换对对象的每个调用。例如,obj(x)变为step(obj,x)。gydF4y2Ba

请注意gydF4y2Ba:gydF4y2Ba音频设备编写器gydF4y2Ba在MATLAB联机中不支持系统对象™。金宝appgydF4y2Ba

设置音频文件读取器和设备写入器。构造FIR半带抽取器和内插器。最后,搭建频谱分析仪,显示滤波器组输入输出的功率谱。gydF4y2Ba

AF = dsp.AudioFileReader(gydF4y2Ba'speech_dft.mp3'gydF4y2Ba,gydF4y2Ba“样品性能框架”gydF4y2Ba,1024); AP=音频设备编写器(gydF4y2Ba“SampleRate”gydF4y2Ba,AF.SampleRate);过滤器规格=gydF4y2Ba“滤镜顺序和过渡宽度”gydF4y2Ba;订单= 52个;TW = 2000;firhalfbanddecim = dsp。FIRHalfbandDecimator (gydF4y2Ba......gydF4y2Ba“规范”gydF4y2Ba,过滤器规格,gydF4y2Ba'FilterOrder'gydF4y2Ba顺序gydF4y2Ba......gydF4y2Ba“过渡宽度”gydF4y2Ba,TW,gydF4y2Ba“SampleRate”gydF4y2Ba,AF.SampleRate);firhalfbandinterp=dsp.FIRHalfbandInterpolator(gydF4y2Ba......gydF4y2Ba“规范”gydF4y2Ba,过滤器规格,gydF4y2Ba'FilterOrder'gydF4y2Ba顺序gydF4y2Ba......gydF4y2Ba“过渡宽度”gydF4y2Ba,TW,gydF4y2Ba“SampleRate”gydF4y2Ba房颤。SampleRate / 2,gydF4y2Ba......gydF4y2Ba“FilterBankInputPort”gydF4y2Ba,true);SpecAna=dsp.SpectrumAnalyzer(gydF4y2Ba“SampleRate”gydF4y2Ba,AF.SampleRate,gydF4y2Ba......gydF4y2Ba“PlotAsTwoSidedSpectrum”gydF4y2Ba错误的gydF4y2Ba“还原倍率”gydF4y2Ba错误的gydF4y2Ba......gydF4y2Ba“ShowLegend”gydF4y2Ba,真的,gydF4y2Ba......gydF4y2Ba“ChannelNames”gydF4y2Ba,{gydF4y2Ba“输入信号”gydF4y2Ba,gydF4y2Ba过滤后的输出信号的gydF4y2Ba});gydF4y2Ba

读取音频1024个样本的时间。过滤输入以获得由两个因素抽选低通和高通子带信号。这是分析滤波器组。使用半带内插器作为合成滤波器组。显示音频输入的运行功率谱和合成滤波器组的输出。播放输出。gydF4y2Ba

虽然gydF4y2Ba〜isDone(AF)audioInput = AF();[×10,xhigh] = firhalfbanddecim(audioInput);audioOutput = firhalfbandinterp(×10,xhigh);spectrumInput = [audioInput audioOutput];SpecAna(spectrumInput);AP(audioOutput);gydF4y2Ba终止gydF4y2Ba释放(AF);释放(AP);释放(SpecAna);gydF4y2Ba

为采样频率为44.1 kHz的数据创建半频带插值滤波器。滤波器阶数为52,过渡宽度为4.1 kHz。使用过滤器上采样和插值多通道输入。gydF4y2Ba

Fs=44.1e3;过滤器规格=gydF4y2Ba“滤镜顺序和过渡宽度”gydF4y2Ba;订单= 52个;TW = 4.1e3;firhalfbandinterp = dsp.FIRHalfbandInterpolator(gydF4y2Ba......gydF4y2Ba“规范”gydF4y2Ba,过滤器规格,gydF4y2Ba......gydF4y2Ba'FilterOrder'gydF4y2Ba顺序gydF4y2Ba......gydF4y2Ba“过渡宽度”gydF4y2Ba,TW,gydF4y2Ba......gydF4y2Ba“SampleRate”gydF4y2BaFs);gydF4y2Ba
X = randn(1024,4);Y = firhalfbandinterp(X);gydF4y2Ba

更多关于gydF4y2Ba

全部展开gydF4y2Ba

算法gydF4y2Ba

全部展开gydF4y2Ba

参考文献gydF4y2Ba

[1]哈里斯F.J.gydF4y2Ba通信系统的多速率信号处理gydF4y2Ba, Prentice Hall, 2004, pp. 208-209。gydF4y2Ba

扩展功能gydF4y2Ba

定点转换gydF4y2Ba
使用fixed-point Designer™设计和模拟定点系统。gydF4y2Ba

介绍了在R2014bgydF4y2Ba