dsp。DigitalDownConverter
将数字信号从中频(IF)带转换到基带并对其进行抽取
描述
的dsp。DigitalDownConverter
目标将数字信号从中频(IF)带转换到基带并对其进行抽取。
对输入信号进行数字下变频:
创建
dsp。DigitalDownConverter
对象并设置其属性。调用带参数的对象,就像调用函数一样。
要了解有关System对象如何工作的更多信息,请参见什么是系统对象?
创建
描述
返回一个数字下变频器(DDC)系统对象™,dwnConv
= dsp。DigitalDownConverterdwnConv
。
返回一个DDC对象,dwnConv
= dsp。DigitalDownConverter (名称,值
)dwnConv
,使用指定的属性名字
设置为指定的价值
。您可以以任意顺序指定附加的名称-值对参数,如(Name1
,Value1
、……以
,家
).
属性
除非另有说明,否则属性是nontunable,这意味着在调用对象之后不能更改它们的值。对象在调用时被锁定,而释放
函数将它们解锁。
如果一个属性可调,您可以随时更改其值。
有关更改属性值的详细信息,请参见利用系统对象在MATLAB中进行系统设计。
SampleRate
- - - - - -输入信号的采样率
30000000
(默认)|积极的标量
将此属性设置为一个正标量值,该值大于或等于控件的值的两倍CenterFrequency
财产。
数据类型:单
|双
DecimationFactor
- - - - - -大量毁灭的因素
One hundred.
(默认)|正整数标量|正整数向量
将此属性设置为正整数标量,或1 × 2或1 × 3的正整数向量。
将此属性设置为标量时,对象将自动为三个过滤阶段中的每个阶段选择抽取因子。
当您将此属性设置为1 × 2向量时,该对象将绕过第三个筛选阶段,并将第一个和第二个筛选阶段的抽取因子分别设置为第一个和第二个向量元素中的值。这两个元素DecimationFactor
向量必须大于1。
当你将这个属性设置为1 × 3向量时,我的抽取因子我过滤阶段。的第一个和第二个元素DecimationFactor
Vector必须大于1,第三个元素必须是1或2。
数据类型:双
MinimumOrderDesign
- - - - - -最小阶滤波器设计
真正的
(默认)|假
当您将此属性设置为真正的
,该对象设计的滤波器具有满足通带纹波、阻带衰减、通带频率和阻带频率规格的最小阶数PassbandRipple
,StopbandAttenuation
,带宽
,StopbandFrequencySource
,StopbandFrequency
属性。
当您将此属性设置为假
类中指定的顺序来设计过滤器NumCICSections
,SecondFilterOrder
,ThirdFilterOrder
属性。滤波器设计满足通带和阻带频率规格,您可以使用带宽
,StopbandFrequencySource
,StopbandFrequency
属性。
数据类型:逻辑
NumCICSections
- - - - - -CIC抽取器的分段数
3.
(默认)|正整数标量
以正整数标量指定的CIC抽取数的分段数。
依赖关系
属性设置时应用此属性MinimumOrderDesign
财产假
。
数据类型:双
SecondFilterOrder
- - - - - -CIC补偿滤波级的阶数
12
(默认)|正整数标量
CIC补偿滤波器级的阶数,指定为正整数标量。
依赖关系
属性设置时应用此属性MinimumOrderDesign
财产假
。
数据类型:双
ThirdFilterOrder
- - - - - -第三级过滤器的阶数
10
(默认)|偶正整数
第三级滤波器的阶数,指定为一个偶数正整数标量。当你设置DecimationFactor
属性设置为1 × 2向量,则对象忽略ThirdFilterOrder
属性,因为绕过了第三个筛选阶段。
依赖关系
属性设置时应用此属性MinimumOrderDesign
财产假
。
数据类型:双
带宽
- - - - - -输入信号的双边带宽,单位为Hz
200000
(默认)|正整数标量
输入信号的双边带宽,单位为Hz,指定为正整数标量。对象将滤波器级联的通带频率设置为在中指定的值的一半带宽
财产。将此属性的值设置为小于SampleRate
/DecimationFactor
。
数据类型:双
StopbandFrequencySource
- - - - - -阻带频率源
汽车
(默认)|财产
指定阻带频率的源为其中之一汽车
|财产
。当您将此属性设置为汽车
,对象将级联滤波器响应的截止频率设置为近似Fc=
赫兹,米中指定的总抽取因子是否为SampleRate
/米/ 2DecimationFactor
财产。对象计算阻带频率为F停止=Fc+太瓦/ 2
。TW为级联响应的过渡带宽,计算为2×(Fc- - - - - -Fp)
,通带频率,Fp,等于
。带宽
/ 2
StopbandFrequency
- - - - - -阻带频率,单位为Hz
150000
(默认)|积极的标量
以Hz为单位的阻带频率,指定为正标量。
依赖关系
属性设置时应用此属性StopbandFrequencySource
财产财产
。
数据类型:双
PassbandRipple
- - - - - -级联响应的通带纹波,单位为dB
0.1
(默认)|积极的标量
级联响应的通带纹波,以dB为单位,指定为正标量。当你设置MinimumOrderDesign
财产真正的
中指定的通带纹波,该对象设计滤波器以使级联响应满足PassbandRipple
财产。
依赖关系
属性设置时应用此属性MinimumOrderDesign
财产真正的
。
数据类型:双
StopbandAttenuation
- - - - - -级联响应的阻带衰减,单位为dB
60
(默认)|积极的标量
级联响应的阻带衰减,单位为dB,指定为正标量。当你设置MinimumOrderDesign
财产真正的
,该对象设计滤波器,使级联响应满足您在StopbandAttenuation
财产。
依赖关系
属性设置时应用此属性MinimumOrderDesign
财产真正的
。
数据类型:双
振荡器
- - - - - -振荡器类型
正弦波
(默认)|以区域
|输入端口
|没有一个
指定振荡器为其中之一正弦波
|以区域
|输入端口
|没有一个
。当您将此属性设置为正弦波
,目标频率向下转换输入信号,使用从正弦三角函数的样本中获得的复指数。当您将此属性设置为以区域
,该对象使用数控振荡器(NCO)获得的复指数进行频率下变频。当您将此属性设置为输入端口
,对象利用复振荡器信号进行频率下变频;z
,将其作为输入传递给对象。当您将此属性设置为没有一个
,对象中的混频器阶段不存在,对象充当三级级联抽取器。
CenterFrequency
- - - - - -输入信号的中心频率,单位为Hz
14000000
(默认)|积极的标量
输入信号的中心频率,单位为Hz,指定为小于或等于的一半值的正标量SampleRate
财产。中指定的通带中心频率向下转换输入信号CenterFrequency
财产,0
赫兹。
依赖关系
属性设置时应用此属性振荡器
财产正弦波
或以区域
。
数据类型:双
NumAccumulatorBits
- - - - - -NCO累加器位数
16
(默认)|正整数
NCO累加器的位数,指定为范围内的正整数[128]
。
依赖关系
属性设置时应用此属性振荡器
财产以区域
。
数据类型:双
NumQuantizedAccumulatorBits
- - - - - -NCO量化累加器位数
12
(默认)|正整数
NCO量化累加器位的个数,指定为范围内的整数标量[128]
。属性中指定的值必须小于属性中指定的值NumAccumulatorBits
财产。
依赖关系
属性设置时应用此属性振荡器
财产以区域
。
数据类型:双
高频振动
- - - - - -NCO的抖动控制
真正的
(默认)|假
当您将此属性设置为真正的
中指定的抖动位的个数NumDitherBits
属性将用于对NCO信号施加抖动。
依赖关系
属性设置时应用此属性振荡器
财产以区域
。
NumDitherBits
- - - - - -NCO抖动位数
4
(默认)|正整数
属性中指定的累加器位位数小于整数标量NumAccumulatorBits
财产。
依赖关系
属性设置时应用此属性振荡器
财产以区域
和抖动属性真正的
。
数据类型:双
定点属性
FiltersInputDataType
- - - - - -每个滤波器级输入的数据类型
和输入一样
(默认)|自定义
在第一、第二和第三(如果没有绕过)筛选器阶段的输入处指定数据类型为之一和输入一样
|自定义
。该对象根据在此属性中设置的值在每个筛选器阶段的输入处转换数据。
CustomFiltersInputDataType
- - - - - -每个滤波器级输入的定点数据类型
numerictype([], 16岁,15)
(默认)|数值类型
OutputDataType
- - - - - -输出数据类型
和输入一样
(默认)|自定义
将输出的数据类型指定为和输入一样
|自定义
。
CustomOutputDataType
- - - - - -输出的定点数据类型
numerictype([], 16岁,15)
(默认)|数值类型
使用
描述
输入参数
x
- - - - - -数据输入
列向量|矩阵
数据输入,指定为列向量或矩阵。输入长度x
必须是抽取因子的倍数。时的数据类型x
是双
或单
的数据类型y
和…一样吗x
。时的数据类型x
的数据类型为y
定义为OutputDataType
财产。
输入只有在其数据类型为时才能具有多个通道双
或单
。输入可以是数据类型双
,单
,有符号整数,或有符号定点(fi
对象)。
数据类型:单
|双
|int8
|int16
|int32
|int64
|fi
复数支持:金宝app是的
z
- - - - - -振荡器信号
列向量|矩阵
振荡器信号用于频率下转换输入信号,指定为列向量或矩阵。这个输入必须是复杂的。的长度z
一定等于的长度x
。z
可以双
,单
,有符号整数,或有符号定点(fi
对象)。
依赖关系
此输入在设置时应用振荡器
财产输入端口
。
数据类型:单
|双
|int8
|int16
|int32
|int64
|fi
复数支持:金宝app是的
输出参数
y
-下转换和下采样信号
列向量|矩阵
下转换和下采样信号,作为列向量或矩阵返回。的长度y
等于的长度x
除以DecimationFactor
。时的数据类型x
是双
或单
的数据类型y
和…一样吗x
。时的数据类型x
是定点类型,数据类型是y
定义为OutputDataType
财产。
数据类型:单
|双
|int8
|int16
|int32
|int64
|fi
复数支持:金宝app是的
对象的功能
要使用对象函数,请指定System对象作为第一个输入参数。例如,释放system对象的系统资源obj
,使用以下语法:
发行版(obj)
特定于dsp。DigitalDownConverter
getDecimationFactors |
得到数字下变频器各滤波级的抽取系数 |
getFilterOrders |
得到数字下变频或数字上变频滤波器级联的阶数 |
getFilters |
获取数字下变频器或数字上变频器滤波器级联对象的句柄 |
fvtool |
可视化数字下变频器或数字上变频器滤波器级联的频率响应 |
groupDelay |
数字下变频器或数字上变频器滤波器级联的组延迟 |
visualizeFilterStages |
显示数字下变频或数字上变频滤波器级联响应 |
generatehdl |
生成量化DSP滤波器的HDL代码(要求)滤波器设计HDL编码器) |
例子
上转换和下转换正弦波信号
创建一个数字up转换器对象,将1 KHz的正弦信号以20倍的倍数up采样,并将其转换为50 KHz。创建一个数字下变频对象,将信号向下转换为0 Hz,并以20倍的倍数进行采样。
创建一个正弦波发生器,以6 KHz的采样率获得1 KHz的正弦波信号。
Fs = 6e3;%采样率sin = dsp。SineWave (“频率”, 1000,“SampleRate”,…Fs,“SamplesPerFrame”, 1024);X = sin ();%生成信号
创建一个DigitalUpConverter
对象。使用最小阶滤波器设计并将通带纹波设置为0.2 dB,阻带衰减设置为55 dB。设置双面信号带宽为2khz。
upConv = dsp。DigitalUpConverter (…“InterpolationFactor”, 20岁,…“SampleRate”Fs,…“带宽”2 e3,…“StopbandAttenuation”现年55岁的…“PassbandRipple”, 0.2,…“CenterFrequency”, 50 e3);
创建一个DigitalDownConverter
对象。使用最小阶滤波器设计并将通带纹波设置为0.2 dB,阻带衰减设置为55 dB。
dwnConv = dsp。DigitalDownConverter (…“DecimationFactor”, 20岁,…“SampleRate”Fs * 20,…“带宽”3 e3,…“StopbandAttenuation”现年55岁的…“PassbandRipple”, 0.2,…“CenterFrequency”, 50 e3);
创建一个频谱估计器来可视化上行转换前、上行转换后和下行转换后的信号频谱。
Window = hamming(floor(length(x)/10));图;pwelch (x,窗口、[][],Fs,“中心”)标题(基带信号x的频谱)
向上转换信号并可视化频谱
xUp = upConv(x);% up转换window = hamming(floor(length(xUp)/10));图;pwelch (xUp窗口、[][],20 * Fs,“中心”);标题(向上转换信号的频谱xUp)
向下转换信号并可视化频谱
xDown = dwnConv(xUp);% down转换window = hamming(floor(length(xDown)/10));图;pwelch (xDown窗口、[][],Fs,“中心”)标题(下转换信号的频谱xDown)
可视化抽取滤波器的响应
visualizeFilterStages (dwnConv)
获取抽取因子
得到各滤波级的抽取因子dsp。DigitalDownConverter
系统对象™。
创建一个dsp。DigitalDownConverter
系统对象,使用默认设置。使用getDecimationFactors
函数,获得对象各阶段的抽取因子。
dwnConv = dsp。DigitalDownConverter
dwnConv = dsp。DigitalDownConverter与属性:DecimationFactor: 100 MinimumOrderDesign:真带宽:200000 StopbandFrequencySource: 'Auto' PassbandRipple: 0.1000阻带衰减:60振荡器:'Sine wave' CenterFrequency: 14000000 SampleRate: 30000000显示所有属性
M = getDecimationFactors(dwnConv)% #好吧
M =1×325 2 2
的DecimationFactor
属性设置为100。输出米
默认情况下是一个1 × 3的向量,其中向量中的每个元素都是整体抽取因子的一个因子。
当你设置DecimationFactor
对于一个1 × 2的向量,该对象绕过第三个过滤阶段,并将第一和第二过滤阶段的抽取因子分别设置为第一个和第二个向量元素中的值。
dwnConv。DecimationFactor = [10 10]
dwnConv = dsp。DigitalDownConverter与属性:DecimationFactor: [10 10] MinimumOrderDesign: true带宽:200000 StopbandFrequencySource: 'Auto' PassbandRipple: 0.1000 stopband衰减:60振荡器:'Sine wave' CenterFrequency: 14000000 SampleRate: 30000000显示所有属性
M = getDecimationFactors(dwnConv)
M =1×210 10
的输出getDecimationFactors
函数现在是一个1 × 2的向量。
更多关于
不动点
下面的框图表示带符号不动点输入的DDC算法。
王
输入的字长是多少FL
是输入长度的分数。每个过滤器的输入被强制转换为过滤器输入数据类型。在
dsp。DigitalDownConverter
对象中指定过滤器输入数据类型FiltersInputDataType
和CustomFiltersInputDataType
属性。在数字变频技术块中指定过滤器输入的数据类型阶段的输入参数。振荡器输出被强制转换为等于输入字长加1的字长。分数长度等于输入单词长度减1。
在CIC抽取器的输出处的缩放包括粗增益和细增益调整。粗增益是使用
reinterpretcast
(定点设计师)功能上的CIC十进制输出。采用全精度乘法实现了良好的增益。
下图描述了粗增益和细增益操作。
若归一化增益为G(其中0
WLcic
CIC抽取器输出的字长是多少FLcic
为CIC十进制数输出的分数长度。F1 = abs(nextpow2(G))
,表示使用位移位(粗增益)实现的G部分。F2
=过滤器输入数据类型指定的分数长度。fg = fi((2^F1)*G, true, 16)
,这表明剩余的增益不能通过位移位(精细增益)来实现。
算法
数字下变频通过将输入信号与具有指定中心频率的复指数相乘来进行下变频。该算法使用三个抽取滤波器的级联对频率下变频信号进行下采样。在这种情况下,滤波器级联由CIC抽取器、CIC补偿器和第三FIR抽取级组成。下面的框图显示了数字下变频的结构。
缩放部分归一化CIC增益和振荡器功率。它还可以包含一个校正因子,以达到所需的纹波规格。当您指定通过输入端口的振荡器信号时,归一化因子不包括振荡器功率因子。根据您设置抽取因子的方式,该块将绕过第三个过滤器阶段。当输入数据类型为double或single时,该算法实现一个N-部分CIC抽取滤波器作为FIR滤波器的响应,对应于级联的N货车车厢过滤器。该算法用FIR滤波器模拟CIC滤波器,以便您可以使用浮点数据运行模拟。当输入数据类型为定点时,该算法实现了具有实际梳状和积分器部分的真正CIC滤波器。
这个框图表示具有单精度或双精度浮点输入的DDC算法。
定点操作的详细信息请参见不动点。
扩展功能
C/ c++代码生成
使用MATLAB®Coder™生成C和c++代码。
使用注意事项和限制:
看到MATLAB代码生成中的系统对象(MATLAB编码器)。
当输入信号的数据类型为时,该对象还金宝app支持使用英特尔AVX2技术生成SIMD代码单
或双
。
SIMD技术显著提高了生成代码的性能。
HDL代码生成
使用HDL Coder™为FPGA和ASIC设计生成Verilog和VHDL代码。
该对象支持使用Filte金宝appr Design HDL Coder™产品生成HDL代码。有关工作流和限制,请参见生成过滤系统对象的HDL代码(滤波器设计HDL编码器)。
版本历史
在R2012a中引入
Abrir比如
Tiene una versión modificada de este ejemploo。是否对所有的修改进行了修改?
MATLAB编程
在MATLAB中,该函数对应于一个最基本的函数:
在MATLAB中,用MATLAB编写了仿真程序。Los navegadores web no admit commandos de MATLAB。
你亦可选择下列网址:
如何获得最佳的网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家网站没有针对您所在位置的访问进行优化。