主要内容

dsp。ComplexBandpassDecimator

使用单边(复杂)带通decimator提取频率子带

描述

dsp。ComplexBandpassDecimator系统对象™使用单向、多级、复杂带通抽取器提取频率的特定子带。对象使用指定的参数确定感兴趣的带宽CenterFrequencyDecimationFactor而且带宽值。

使用复带通decimator提取频率子带:

  1. 创建dsp。ComplexBandpassDecimator对象并设置其属性。

  2. 使用参数调用对象,就像调用函数一样。

有关系统对象如何工作的详细信息,请参见什么是系统对象?

创建

描述

bpdecim= dsp。ComplexBandpassDecimator创建一个System对象,该对象使用单向、多级、复杂带通抽取滤波器随时间对输入的每个通道进行过滤。对象使用默认的中心频率、抽取因子和带宽值确定感兴趣的带宽。

例子

bpdecim= dsp。ComplexBandpassDecimator (d属性创建复杂带通抽取器对象DecimationFactor属性设置为d

例子

bpdecim= dsp。ComplexBandpassDecimator (d足球俱乐部属性创建复杂带通抽取器对象DecimationFactor属性设置为d,以及CenterFrequency属性设置为足球俱乐部

例子

bpdecim= dsp。ComplexBandpassDecimator (d足球俱乐部Fs属性创建复杂带通抽取器对象DecimationFactor属性设置为d,CenterFrequency属性设置为足球俱乐部,以及SampleRate属性设置为Fs

例子:dsp.ComplexBandpassDecimator (48 e3/1e3 2 e3 48 e3);

bpdecim= dsp。ComplexBandpassDecimator (名称,值将每个指定属性设置为指定值创建一个复杂的带通十进制对象。将每个属性名用引号括起来。您可以将此语法用于以前的任何输入参数组合。

例子:dsp.ComplexBandpassDecimator (48 e3/1e3 2 e3 48 e3, CenterFrequency, 1 e3);

属性

全部展开

除非另有说明,属性为nontunable,这意味着在调用对象后不能更改它们的值。对象在调用时锁定,而释放功能解锁它们。

如果属性为可调,您可以随时更改其值。

有关更改属性值的详细信息,请参见使用系统对象的MATLAB系统设计

所需频带的中心频率(以Hz为单位),指定为范围[-]中的一个实数、有限数值标量SampleRate/ 2,SampleRate/ 2)。

可调:是的

数据类型:|

过滤器设计参数,指定为:

  • “大量毁灭因素”对象指定抽取因子大量毁灭的因素财产。所关注的带宽(BW)按以下公式计算:

    B W F 年代 / D

    在哪里

    • Fs——通过指定的采样率SampleRate财产。

    • D——抽取因子。

  • “带宽”对象指定通过的带宽带宽财产。抽取因子(D)按以下公式计算:

    D 地板上 F 年代 B W + T W

    在哪里

    • Fs——通过指定的采样率SampleRate财产。

    • BW——兴趣带宽。

    • 太瓦属性指定的过渡宽度TransitionWidth财产。

  • 抽取因子和带宽参数指定抽取因子和感兴趣的带宽DecimationFactor而且带宽属性。

用来降低输入信号带宽的因子,指定为正整数。输入信号的帧大小(行数)必须是抽取因子的倍数。

依赖关系

设置时应用此属性规范要么“大量毁灭因素”抽取因子和带宽

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

滤波器的阻带衰减,以dB为单位,指定为有限正标量。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

滤波器的过渡宽度(以Hz为单位),指定为正标量。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

感兴趣的频带的宽度,指定为以Hz为单位的正标量。

依赖关系

设置时应用此属性规范要么“带宽”抽取因子和带宽

数据类型:|

滤波器的通带纹波,指定为正标量,单位为dB。

依赖关系

设置时应用此属性规范要么“带宽”抽取因子和带宽

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

标志来最小化复杂过滤器系数的数量,指定为:

  • 真正的多级滤波器的第一级是以指定的中心频率为中心的带通(复系数)。第一阶段之后是一个混合阶段,外差信号到直流。接下来是其余的滤波阶段,都是实系数。

  • 输入信号首先通过多级滤波器的不同阶段。所有级都是带通(复系数)。然后,如果信号外差到直流MixToBaseband真正的,抽取产生的频偏为非零。

将信号混合到基带的标志,指定为:

  • 真正的——物体将滤波后抽取的信号外差到直流。这个混合阶段在滤波器的输出采样率下运行。

  • 物体跳过混合阶段。

依赖关系

设置时应用此属性MinimizeComplexCoefficients

输入信号的采样率(以Hz为单位),指定为正标量。

数据类型:|

使用

描述

y= bpdecim (x对实或复输入信号进行滤波,x,以产生输出,y.输出包含System对象属性指定的频率子带。System对象随着时间的推移对输入信号的每个通道进行独立过滤。的帧大小(第一个维度)x一定是抽取因子的倍数。

输入参数

全部展开

数据输入,指定为向量或矩阵。输入中的行数必须是抽取因子的倍数。

数据类型:|
复数支持:金宝app是的

输出参数

全部展开

复带通抽取器的输出,以矢量或矩阵的形式返回。输出包含System对象属性指定的频率子带。输出信号中的行数(帧大小)为1/D乘以输入信号中的行数,其中D是抽取因子。通道(列)的数量不会改变。

输出的数据类型与输入的数据类型相同。输出信号总是复数的。

数据类型:|
复数支持:金宝app是的

对象的功能

要使用对象函数,请将System对象指定为第一个输入参数。例如,释放system对象的系统资源obj,使用这种语法:

发行版(obj)

全部展开

成本 复杂带通抽取器的实现成本
freqz 多速率多级滤波器的频率响应
信息 关于过滤器的信息系统对象
visualizeFilterStages 可视化过滤阶段
一步 运行系统对象算法
释放 释放资源并允许更改系统对象属性值和输入特征
重置 重置的内部状态系统对象

例子

全部折叠

计算复杂带通抽取器的实现成本成本函数。

创建一个dsp。ComplexBandpassDecimator对象。设置DecimationFactor到12岁,CenterFrequency到5000赫兹,和SampleRate到44100赫兹。

cbp = dsp.ComplexBandpassDecimator(12,5000,44100)
CBP = dsp。ComplexBandpassDecimator与属性:CenterFrequency: 5000规格:“抽取因子”DecimationFactor: 12 stopband衰减:80 TransitionWidth: 100 MinimizeComplexCoefficients: true SampleRate: 44100

计算的实现成本海关与边境保护局使用成本函数。

成本(cbp)
c =带字段的结构:NumCoefficients: 201 NumStates: 379 RealMultiplicationsPerInputSample: 44.3333 RealAdditionsPerInputSample: 43.8333

计算复带通抽取器的复频率响应freqz函数。

创建一个dsp。ComplexBandpassDecimator对象。设置DecimationFactor到12岁,CenterFrequency到5000赫兹,和SampleRate到44100赫兹。计算并显示频率响应。

cbp = dsp.ComplexBandpassDecimator(12,5000,44100);[h,f] = freqz(cbp);情节(f, 20 * log10 (abs (h)))网格包含(的频率(赫兹)) ylabel (“h (dB)”

图中包含一个轴对象。axis对象包含一个line类型的对象。

通过复带通抽取器对输入信号进行滤波,并在频谱分析仪中可视化滤波后的频谱。

初始化

创建一个dsp。ComplexBandpassDecimator系统对象™,中心频率设置为2000hz,感兴趣的带宽设置为1000hz,采样率设置为48khz。抽取因子计算为采样率与感兴趣的带宽之比。抽取器的输入是一个正弦波,帧长为1200个样本,音调为1625 Hz, 2000 Hz和2125 Hz。创建一个简介范围可视化的信号频谱。

Fs = 48e3;Cf = 2000;Bw = 1000;D = Fs/BW;framength = 1200;bpdecim = dsp.ComplexBandpassDecimator(D,CF,Fs);光谱分析仪(“SampleRate”Fs / D,...“方法”“韦尔奇”...“YLimits”, 40 [-120],...“FrequencyOffset”、CF);音调= [1625 2000 2125];Sin = dsp。SineWave (“SampleRate”Fs,“频率”、音调...“SamplesPerFrame”, FrameLength);

可视化过滤阶段

使用visualizeFilterStages函数,您可以使用FVTool可视化每个单独的过滤级的响应。

visualizeFilterStages (bpdecim)

{

显示过滤器信息

信息函数显示有关带通抽取器的信息。

流(' % s '信息(bpdecim))
总体抽取因子:48带宽:1000 Hz滤波器数量:5实际乘法每个输入样本:14.708333实际增加每个输入样本:13.833333系数数量:89滤波器:滤波器1:dsp。FIRDecimator - Decimation Factor: 2 Filter 2: dsp。FIRDecimator - Decimation Factor: 2 Filter 3: dsp。FIRDecimator - Decimation Factor: 2 Filter 4: dsp。FIRDecimator - Decimation Factor: 3 Filter 5: dsp。FIRDecimator -抽取因子:2

输入和滤波信号

构造一个for循环以运行1000次迭代。在每次迭代中,输入噪声正弦波的1200个样本(一帧),并对输入信号的每一帧应用复带通decimator。在频谱分析仪中可视化输入和输出频谱,sa

index = 1:1000 x = sum(sin(),2) + 1e-4*randn(FrameLength,1);Z = bpdecim(x);sa (z);结束

带通decimator的中心频率为2000hz,带宽为1000hz,分别通过1625hz、2000hz、2125hz三种正弦波音。

将抽取器的中心频率改为2400hz并对信号进行滤波。

释放(bpdecim);bpdecim。CenterFrequency = 2400
Bpdecim = dsp。ComplexBandpassDecimator与属性:中心频率:2400规格:“抽取因子”DecimationFactor: 48 stopband衰减:80 TransitionWidth: 100 MinimizeComplexCoefficients: true SampleRate: 48000

配置频谱分析仪以显示感兴趣的带宽,[-1900,2900]Hz。

释放(sa)股价。FrequencyOffset = 2400;

输入数据并过滤信号。

index = 1:1000 x = sum(sin(),2) + 1e-4 * randn(FrameLength,1);Z = bpdecim(x);sa (z);结束

2000 Hz和2125 Hz的音调将通过抽取器,而1625 Hz的音调将被过滤掉。

算法

通过对低通原型滤波器进行复频移变换,设计了复带通抽取器。在这种情况下,低通原型是一个多速率,多级有限脉冲响应(FIR)滤波器。所期望的频移只适用于第一级。随后的阶段缩放所需的频移通过各自的累积抽取因子。详细信息请参见复杂带通滤波器设计而且变焦FFT

扩展功能

版本历史

在R2018a中引入