主要内容

dsp。DCBlocker

从输入信号阻断直流分量(偏移量)

描述

dsp。DCBlocker系统对象™从输入信号的每个通道(列)移除直流偏移。该操作持续运行一段时间,以不断估计和消除直流偏移。

阻塞输入信号的直流分量:

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

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

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

创建

描述

例子

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

例子

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

例子:dcblker = dsp.DCBlocker('Algorithm','FIR')

属性

全部展开

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

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

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

估计直流偏置的算法,指定为下列之一:

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

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

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

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

函数可以可视化IIR、FIR和CIC响应fvtool函数。

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

依赖关系

属性时才应用此属性算法财产“信息检索”“中投”

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

依赖关系

属性时才应用此属性算法财产“信息检索”

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

依赖关系

属性时才应用此属性算法财产“杉”

使用

描述

例子

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

输入参数

全部展开

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

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

数据类型:||int8|int16|int32|fi
复数支持:万博1manbetx是的

输出参数

全部展开

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

数据类型:||int8|int16|int32|fi
复数支持:万博1manbetx是的

对象的功能

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

发行版(obj)

全部展开

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

例子

全部折叠

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

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

创建一个由15hz音调,25hz音调和直流偏移组成的信号。

T = (0:0.001:100)';X = sin(30* t) + 0.33*cos(50* t) + 1;

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

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

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

Idx = 1:100范围= (1:1000)+ 1000*(Idx -1);Y1 = dc1(x(range));% IIR估计Y2 = dc2(x(range));% FIR估计值Y3 = dc3(x(range));减去平均值结束

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

情节(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 (减去平均DC:%.3f,意味着(y3)));

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

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

在施加直流阻滞剂后,比较具有直流偏置的输入信号的频谱与相同信号的频谱。使直流屏蔽器能够使用冷杉估计算法。

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

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

创建一个DC阻塞器对象,该对象使用FIR算法来估计DC偏移。

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

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

hsa =光谱分析仪(“SampleRate”fs,...“方法”,“韦尔奇”,...“AveragingMethod”,“指数”,...“SpectrumUnits”,“瓦分贝”,“FrequencySpan”,“start-and-stop-frequencies”,...“StartFrequency”, -30,“StopFrequency”30岁的“YLimits”20 [-200],...“标题”,信号频谱的);HSB =克隆(hsa);hsb。Title =“直流阻滞剂后的信号频谱”

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

Y = dcblker(x);

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

hsa (x)

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

hsb (y)

算法

全部展开

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

参考文献

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

扩展功能

版本历史

在R2014a中引入