主要内容

dsp。DCBlocker

阻止输入信号的直流分量(偏移量)

描述

dsp。DCBlocker系统对象™去除输入信号的每个通道(列)的直流偏移。该操作会随着时间的推移运行,以持续估计和消除直流偏置。

要阻断输入信号的直流分量:

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

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

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

创建

描述

例子

dcblker= dsp。DCBlocker创建一个DC blocker System对象,dcblker,以阻止直流分量从每个通道(列)的输入信号。

例子

dcblker= dsp。DCBlocker (名称,值创建一个DC blocker System对象,dcblker,将每个指定的属性设置为指定的值。将每个属性名用单引号括起来。

例子:dcblker = dsp.DCBlocker(“算法”、“冷杉”)

属性

全部展开

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

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

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

估计直流偏置的算法,具体为:

  • “信息检索”——该对象使用基于窄的低通椭圆滤波器的递归估计。的订单属性设置筛选器的顺序,而NormalizedBandwidth属性设置其带宽。该算法通常比FIR算法占用更少的内存,效率更高。

  • “杉”该对象使用基于有限数量的过去输入样本的非递归移动平均估计。的长度属性设置样本的数量。FIR滤波器具有线性相位响应,不会对信号造成任何相位失真。IIR过滤器需要更少的内存,实现起来更有效率。

  • “中投”—对象使用CIC抽取器,抽取因子为1,其微分延迟使用NormalizedBandwidth属性计算。它使用两个部分,以确保第一副瓣衰减至少低于滤波器的主瓣25 dB。该算法需要定点输入,可用于HDL代码生成。

  • “减的意思”——对象计算输入矩阵各列的平均值,并从输入中减去平均值。此方法不保留输入之间的状态。

您可以通过使用fvtool函数。

IIR或CIC滤波器的标准化带宽,指定为大于0或小于1的实标量。用归一化带宽估计输入信号的直流分量。

依赖关系

此属性仅在设置算法财产“信息检索”“中投”

用于估计直流电平的低通IIR椭圆滤波器的阶数,指定为大于3的整数。

依赖关系

此属性仅在设置算法财产“信息检索”

FIR算法用于估计运行均值的过去输入样本的数量,指定为一个正整数。

依赖关系

此属性仅在设置算法财产“杉”

使用

描述

例子

dcblkerOut= dcblker (输入从输入的每个通道(列)中移除直流组件并返回输出。

输入参数

全部展开

输入到直流阻断器对象的数据,指定为向量、矩阵或N- d数组。

例子:t =(0:0.001:100)”;X = sin(30* t) + 1;

数据类型:||int8|int16|int32|fi
复数的支持:金宝app是的

输出参数

全部展开

去掉直流分量的信号,以矢量、矩阵或N- d数组。的output dimensions match the input dimensions.

数据类型:||int8|int16|int32|fi
复数的支持:金宝app是的

对象的功能

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

发行版(obj)

全部展开

fvtool 显示DSP滤波器的频率响应
一步 运行系统对象算法
释放 释放资源并允许更改系统对象属性值和输入特征
重置 使内部状态复位系统对象

例子

全部折叠

请注意如果你正在使用R2016a或更早的版本,用等价的步骤语法替换每个对象调用。例如,obj(x)变成step(obj,x)。

使用IIR、FIR去除输入信号的直流分量,并减去均值估计算法。

创建一个信号组成一个15赫兹的音调,一个25赫兹的音调,和一个直流偏置。

t =(0:0.001:100)”;X = sin30 *t + 0.33*cos(50* t) + 1;

为三种估计算法创建三个DC阻塞对象。

dc1 = dsp。DCBlocker (“算法”“信息检索”“秩序”6);dc2 = dsp。DCBlocker (“算法”“杉”“长度”, 100);dc3 = dsp。DCBlocker (“算法”“减的意思”);

对于每一秒的时间,将输入信号通过直流阻断器。通过实现1秒增量的直流阻断器,您可以观察到收敛时间的差异。

Idx = 1:100 range = ((1:100) + 1000*(Idx -1));日元= dc1 (x(范围);% IIR估计y2 = dc2 (x(范围);%冷杉估计y3 = dc3 (x(范围);%减去的意思结束

绘制三个直流阻滞器在第一秒的输入和输出数据,并显示每个信号的平均值。三种算法类型的平均值表明冷杉减去的意思算法收敛得更快。

情节(t (1:1000) x (1:1000),...t (1:1000), y1,...t(1:1000)、y2、...t(1:1000)、y3);包含(的时间(秒)) ylabel (“振幅”)传说(sprintf (“输入直流:% .3f”意思是(x)),...sprintf (“IIR DC: % .3f”意味着(y1)),...sprintf (“冷杉DC: % .3f”意味着(y2)),...sprintf (“减去平均直流:% .3f”,意味着(y3)));

图中包含一个轴对象。轴对象包含4个类型为line的对象。这些对象代表输入DC:1.000, IIR DC:0.011, FIR DC:-0.000,减去平均值DC:-0.000。

请注意如果你正在使用R2016a或更早的版本,用等价的步骤语法替换每个对象调用。例如,obj(x)变成step(obj,x)。

将一个带有直流偏置的输入信号的频谱与应用直流阻断器后的相同信号的频谱进行比较。使直流阻断器使用冷杉估计算法。

创建一个由三个音调组成的输入信号,其直流偏移量为1。采样频率设置为1khz,信号持续时间设置为100秒。

fs = 1000;t = (0:1 / fs: 100)”;x =罪(30 *π* t) + 0.67 *罪(40 *π* t) + 0.33 * sin(50 *π* t) + 1;

创建一个使用FIR算法估计直流偏移的DC阻塞对象。

dcblker = dsp。DCBlocker (“算法”“杉”“长度”, 100);

创建功率单元设置为的频谱分析仪瓦分贝频率范围是30 [-30]显示输入信号的频率响应。使用克隆函数,创建第二个频谱分析仪以显示输出的响应。然后,使用标题频谱分析仪的属性来标记它们。

hsa = dsp。简介(“SampleRate”fs,...“PowerUnits”“瓦分贝”“FrequencySpan”“启动和停止频率”...“StartFrequency”, -30,“StopFrequency”30岁的“YLimits”20 [-200],...“标题”信号频谱的);hsb =克隆(hsa);hsb。Title =“直流屏蔽后的信号频谱”

传递输入信号,x,通过直流阻断器产生输出信号,y

y = dcblker (x);

使用第一频谱分析仪显示输入信号的频率特性。15、20、25赫兹的音调和直流分量清晰可见。

hsa (x)

使用第二频谱分析仪显示输出信号的频率特性。已拆卸直流组件。

hsb (y)

算法

全部展开

直流阻断器从输入信号中减去直流分量。您可以通过使用IIR, FIR, CIC或减去平均值算法来估计直流分量。

参考文献

直接转换战术软件定义接收机的基带算法性能评估:I/Q不平衡校正、图像抑制、直流去除和信道化亚2002。

扩展功能

介绍了R2014a