文档库 最新最全的文档下载
当前位置:文档库 › 抽取滤波器

抽取滤波器

抽取滤波器
抽取滤波器

6 到 14-Bit Delta Sigma ADC 数据表 DelSigMulti V 1.2

001-65734 Rev. **

Single Slope 8-Bit ADC Data Sheet

Copyright ? 2009-2010 Cypress Semiconductor Corporation. All Rights Reserved.

调制器顺序抽取

率分辨率

采样

(CLK=2 MHz)

采样

(CLK=8 MHz)

抽取滤波器

数量

SC

模块闪存RAM

通道

(I/O 引脚)

CY8C28x45, CY8C28x43, CY8C28x52, CY8C28x33, CY8C28x23

132615625.062500.02214832

1647.57812.531250.02215632 112893906.315625.02218552

125610.51953.17812.52218552 232815625.062500.02218752 264107812.531250.02221672 2128123906.315625.02221672 2256141953.17812.52221672 132615625.062500.03618063

1647.57812.531250.03619263 112893906.315625.03623493

125610.51953.17812.53623493 232815625.062500.03621563 264107812.531250.03625793 2128123906.315625.03625793 2256141953.17812.53625793 132615625.062500.04820074

1647.57812.531250.04821674 112893906.315625.048271114

125610.51953.17812.548271114 232815625.062500.04824374 264107812.531250.048298114 2128123906.315625.048298114 2256141953.17812.548298114

Cypress Semiconductor Corporation?198 Champion Court?San Jose,CA95134-1709?408-943-2600

请参考应用笔记“Analog - ADC Selection”(模拟 - ADC 选择)AN2239 以获取其他转换器。

特性与概述

6-bit 到 14-bit 分辨率

2 到 4 通道同步采样

无符号或有符号 2 的补码格式的数据

最大采样率为 65,500 sps(在 6 比特分辨率情况下)、7812 sps(在 14-bit分辨率情况下)

硬件中完全实施了 Sinc2 滤波器,降低了 CPU 开销和抗锯齿要求

用户可选择 1st 阶或 2nd 阶调制器以提高信噪比

内部和外部参考选项定义的输入范围

不需要数字模块

通过配置向导,可以轻松选择彼此全部同步的 2、3 或 4 通道 delta-sigma ADC 测量

抽取滤波器的内部定时器不允许使用数字模块

DelSigMulti 用户模块是积分转换器,需要 32 到 256 个积分周期才能生成单一个输出采样。 更改复用输入会使得更改后的前两个采样失效。 此 DelSigMulti 用户模块最多支持 4 通道同时同步 delta-sigma ADC 采样。

通过配置向导,可以轻松选择每个通道使用的模拟模块数和每个通道的抽取滤波器过采样率。

在放置模块之前,请读取“参数”一节。

Note 如果仅需要 1 个通道或需要多个不同步通道,则应当使用常规“DelSig”、“DelSigPlus”用户模块。

Figure 1.单通道 DelSigMulti 方框图

功能说明

如图 1 所示,DelSigMulti 用户模块由三个主要功能组成:

调制器

Sinc2 抽取滤波器

定时发生器

每个组件提供一些选项,可以调整这些选项来实现给定应用场合的性能与资源利用之间的合适平衡。

调制器

调制器是 1-bit 过采样电路,它以所产生的 1 和 0 密度的形式表示输入电压。 低通抽取滤波器通过将多个 1-bit 样品转换为具有较高分辨率的样品,将调制器输出降低到最终的采样率。 通常,抽取速率越高(即过采样率越高),则分辨率结果越高,但是其他因素(例如调制器的阶)也会影响分辨率结果。

Delta-Sigma 转换器的主要优点是调制器可提供“噪声整形”。 通常,信号采样中固有的量化噪声是一种大致均匀分布的噪声(白噪声),其频率介于“DC”与采样频率一半(即奈奎斯特频率)之间。 简单而言,delta-sigma 调制器将某些量化噪声从较低频率转换为较高频率,之后会由抽取过滤器进行衰减。二阶调制器需要两个开关电容模拟 PSoC 模块,它对噪声整形的效果要好于仅需要一个模拟 PSoC 模块的一阶调制器。 由于最高抽取速率为 256X,因此与一阶调制器相比,二阶调制器将有效分辨率提高了 3.5-bit。

Figure 2.DelSigMulti 一阶调制器图示

模拟模块配置为积分器。 比较器的输出极性对参考复用器进行配置,以便在输入中增减参考电压,并置入积分器中。 此参考电压控制将积分器输出拉回到零的企图。 一位比较器输出也会馈入到 sinc2 抽取滤波器中。

请注意,1-bit 过采样率由四分发生器确定,四分发生器生成控制开关电容 (SC) PSoC 模块的 φ1 和 φ2时钟。 输出速率的确定方法是:将数据除以 4 以获得 1-bit 过采样率,接着将结果除以抽取速率以获得最终采样率。

Equation 1

下面的规格表中给出了可以使用的最高数据时钟频率。 对于 8 MHz 的数据时钟和 256 的抽取速率,采样率为:

Equation 2

二阶调制器的构造方法是:将一阶调制器的模拟输出馈送到类似的 PSoC 模块中,并修改反馈排列,以便第二个模块的 1-bit 比较器输出反馈回这两个模块,如图所示:

Figure 3.DelSigMulti 二阶调制器图示

由于模拟比较器总线在模拟 PSoC 模块阵列的列中垂直运行,二阶调制器的模块必须一个摞一个地放置。

DelSigMulti 的范围是通过 ±V Ref 建立的。 您可以在 PSoC Designer“全局资源”窗口中设置 V Ref。对于固定量程,V Ref 设置为 ±V Bandgap,对于 CY8C29x66 系列 PSoC 设备,设置为 ±1.6 V Bandgap。 对于可调整量程,V Ref 设置为 ±Port 2[6]。 要提供比率计量程,则 V Ref 设置为 ±V DD/2。 表 1 给出了完整选项列表:

Table 1.针对 Ref Mux 全局参数设置的输入电压范围

RefMux 设置Vdd = 5 伏Vdd = 3.3 伏

(Vdd/2) ± BandGap 1.2 < V in < 3.80.35 < V in < 2.95

(Vdd/2) ± (Vdd/2)0 < V in < 50 < V in < 3.3

BandGap ± BandGap0 < V in < 2.60 < V in < 2.6

(1.6*BandGap) ± (1.6*BandGap)0 < V in < 4.16NA

Sinc 2 抽取过滤器

抽取过滤器的响应由下列 z 域关系提供:

Equation 3

本节中绘制的频率域传输函数将频率标准化,以使输出采样率 F nom 等于 1.0。 -3 dB 点出现在紧靠 0.318×F nom 上方,函数的零点出现在 F nom 的每个整数倍处。 由于 1-bit 采样率比额定输出速率高 32 到 256,奈奎斯特限制为比 F nom 高 4 到 7 个八度,因而极大降低了对防锯齿滤波器的要求。 在图形右侧,用粗垂直线显示了抽取速率为 256 的 1-bit 奈奎斯特频率。 虽然实现较高抽取速率是可能的,但是由于设备本底噪声的存在,它们带来的好处有限。 对于 14-bit 拓扑、抽取速率为 256 的二阶调制器,分辨率受信噪比限制。 要在 DC 或慢速移动信号测量中获取可重复的 14-bit 分辨率,需要对多个输出采样值求平均值,或者应用更复杂的信号处理技术。

Figure 4.Sinc 2 抽取过滤器幅度响应,包含 -3dB 点和奈奎斯特频率

(2*BandGap) ± BandGap 1.3 < V in

< 3.9

NA

(2*BandGap) ± P2[6](2.6 - V P2[6]) < V in < (2.6 + V P2[6])NA

P2[4] ± BandGap (V P2[4] - 1.3) < V in < (V P2[4] + 1.3)(V P2[4] - 1.3) < V in < (V P2[4] + 1.3)P2[4] ± P2[6]

(V P2[4]-V P2[6]) < V in < (V P2[4]+V P2[6])

(V P2[4]-V P2[6]) < V in < (V P2[4]+V P2[6])

RefMux 设置

Vdd = 5 伏

Vdd = 3.3 伏

与早先的 DELSIG8 和 DELSIG11 不同,此用户模块在硬件中完整实施传输函数的分子和分母。 这需要改进的“类型 2”抽取滤波器。 该滤波器既可用于一阶调制器拓扑,也可用于二阶调制器拓扑。 抽取滤波器通过在 1-bit 采样率下运行的双积分器实现传输函数的分母。 分子由在额定输出采样率下运行的双微分器(第二差分运算符)实现。 DelSigMulti 用户模块使用的 CPU 开销和中断延迟限制为大约 80 周期或更少,以便从 I/O 空间中的抽取滤波器寄存器检索样品数据。 类型 2 抽取滤波器实际上是为 n 比特转换

器生成从 0 到 2n -1 的无符号值。

中断服务例程可以配置为将此转换为从 -2n-1 到 +2n-1-1 的 2 的补码值。

Table 2.

Delta Sigma ADC 功能表

时序发生器和要求

向模拟调制器提供 φ1 和 φ2 时钟的四分时钟发生器也会向抽取滤波器提供位时钟。 对应于输出采样率的抽取因子由字时钟确定。 字时钟由抽取滤波器内部定时器生成。类型 2 抽取滤波器是 Sinc 2 滤波器的全硬件版本。 其体系结构使您可以选择将内部定时器用于抽取和中断目的。 要计算有效分辨率,请使用下列等式: 单一调制器: (log2(抽取滤波器速率) - 1) × 1.5 双调制器: (log2(抽取滤波器速率) - 1) × 2

数据格式位可以加权为有符号(2s 补码输出)或无符号(偏移二进制数据)数值。

Table 3.

抽取滤波器数据输出移位特性

Delta Sigma ADC

DELSIG8、 DELSIG11DelSig

DelSigPlus

DelSigMulti

分辨率8、116-146-146-14数字模块11-200模拟模块1-2

1-2

1-2

2-8支持的部件

CY8C24/27/29,而非 CY8C24x94、 CY8C28x45CY8C28x45

CPU 开销和中断延迟高

抽取速率

调制器类型

有效分辨率

移位

32单6432双8264单8 (7.5)464双102128单95128双122256单11(10.5)5256

14

2

直流和交流电气特性

The following values are indicative of expected performance and based on initial characterization data. 除非另外指定了 T A = -40、25、85 和 125°C、V dd = 5.0V。

Table 4. 5.0V 结果汇总

参数典型值限制单位备注8 比特、24MHz CPU 时钟、1 MHz 数据时钟、高功率

增益-2.64822%FSR

偏移-47.007213mV

DNL0.161<1LSB

INL0.27LSB

信噪比45.86dB

8 比特、24MHz CPU 时钟、2 MHz 数据时钟、高功率

增益-2.31682%FSR

偏移-62.350713mV

DNL0.069<1LSB

INL0.172LSB

信噪比45.86dB

The following values are indicative of expected performance and based on initial characterization data. 除非另外指定了 T A = -40、25、85 和 125°C、V dd = 3.3V。

Table 5. 3.3V 结果汇总

参数典型值限制单位备注

8 比特、24MHz CPU 时钟、1 MHz 数据时钟、高功率

增益-2.71822%FSR

偏移-40.13345mV

DNL<1LSB

INL LSB

信噪比dB

8 比特、24MHz CPU 时钟、2 MHz 数据时钟、高功率

增益-2.82192%FSR

偏移-42.80735mV

DNL0.064<1LSB

INL0.161LSB

信噪比46.02dB

布置

如果 DelSigMulti 用户模块是在工具栏中选择的或者是通过在选择器视图中双击其图标选择的,将打开一个选择窗口,该窗口给出了选择适当拓扑的指南。 稍后可以通过右键单击位置视图中的用户模块并从上下文菜单中选择”用户模块选择选项...”, 来更改拓扑。

一阶调制器设计需要一个 PSoC 模拟模块。 名为“ADC”的模拟模块可以放置在任何开关电容 PSoC 模块中。

二阶调制器设计使用两个开关电容 PSoC 模块:ADC0 和 ADC1。 由于连接它们的模拟比较器总线在模拟阵列的每列中垂直运行,开关电容 PSoC 模块必须一个摞一个地垂直放置。

虽然有大量可用于模拟模块的位置,但是 DelSigMulti 还使用 PSoC 设备的唯一硬件抽取过滤器。 抽取滤波器是在放置模拟模块时自动分配的;不需要附加操作。 因此,给定配置中只能放置 DelSigMulti 用户模块的一个实例。 通过动态重新配置,可以同时加载(激活)多个配置,不执行阻止两个 DelSigMulti 用户模块同时运行的检查。 如果发生这种情况,则两个实例似乎都可以工作;但是,只有一个最近加载的实例可以控制抽取过滤器。 两个中断仍可以运行,但是可能会有干扰。

参数和资源

放置 DelSigMulti 实例后,必须配置下列一些参数才能正确操作:输入信号复用器选择、时钟相位和轮询选择。

DataFormat0/1/2/3

此参数可以采用无符号(默认值)或有符号值。 对于 n 比特分辨率,无符号数据采用的值为从零到 2n-1。 有符号数据范围为从 -2n-1 到 +2n-1-1。 0/1/2/3 代表使用的 delta-sigma ADC 通道的数量。时钟 Phase0/1/2/3

时钟相位的选择用于将一个模拟 PSoC 模块的输出与另一个模块的输入同步。 开关电容模拟 PSoC 模块使用两相位时钟(φ1、φ2)获取并传输信号。 通常,DelSigMulti 的输入是在 φ1 上采样的。

这便产生一个问题:许多用户模块在 φ1 期间将其输出自动归零,仅在 φ2 期间给出有效输出。 如果此类模块的输出馈送到 DelSigMulti 的输入,则 DelSigMulti 对中间值采样。 时钟相位选择允许交换相位,因此输入信号是在 φ2 期间获取的。 0/1/2/3 代表使用的 delta-sigma ADC 通道的数量。PosInput0/1/2/3

此参数确定单端输入的信号源,或差分输入的同相输入。 0/1/2/3 代表使用的 delta-sigma ADC 通道的数量。

NegInput0/1/2/3 和 NegInputGain0/1/2/3

NegInput 选择差分信号对的反相输入源。 如果使用单端输入,则可以将此参数设置为任意合法值。

通过将 NegInputGain 参数设置为“断开连接”(零增益),可以断开单端输入与转换器的连接。

NegInputGain 调整反相输入相对于同相输入的增益(请参见上述 NegInput 参数)。 对于单端输入,此参数应当采用“断开连接”值。 对于差分输入,NegInputGain 可以设置为 1.000。 如果需要,应用于反相输入的增益还可以按 1/16th 增量在 0.0625 与 1.9375 之间相对于同相输入进行调整。

0/1/2/3 代表使用的 delta-sigma ADC 通道的数量。

中断生成控制

当选中 PSoC Designer 中的 启用中断生成控制 复选框时,有两个附加参数变为可用。 以下菜单提供了此功能:项目 > 设置 > 芯片编辑器 当多个覆盖层用于由多个用户模块跨覆盖层共享的中断时,中断生成控制是非常重要的:

中断 API

IntDispatchMode

InterruptAPI

InterruptAPI 参数允许有条件生成用户模块的中断处理程序和中断矢量表条目。 选择“启用”可生成中断处理程序和中断矢量表条目。 选择“禁用”可不生成中断处理程序和中断矢量表条目。

如果项目有多个覆盖层,其中一个模块资源由不同的覆盖层使用,则选择时一定要加以注意。 选择以仅为实际需要它们的覆盖层生成中断,以节省代码空间。

IntDispatchMode

IntDispatchMode 参数用于指定如何为同一模块中但不同覆盖层中的多个用户模块所共享的中断处理中断请求。 当您选择 ActiveStatus 时,固件在为共享中断请求提供服务之前测试哪个覆盖层处于活动。 每次请求共享中断时,都会进行此测试。 这会增加延迟,还会生成为共享中断请求提供服务的不确定过程,但是不需要任何 RAM。 当您选择 OffsetPreCalc 时,仅当最初加载覆盖层时,固件才会计算共享中断请求的来源。 此计算减少了中断延迟,并生成为共享中断请求提供服务的不确定过程,但是耗费了一字节 RAM。

应用程序编程接口

应用程序编程接口 (API) 例程作为用户模块一部分提供,以允许编程人员在较高分辨率下处理模块。 本节指定每个函数的接口和“包括”文件给出的相关常量。

每次放置用户模块时,都会向其分配一个实例名称。 默认情况下,PSoC Designer 将 DelSigMulti_1 分配给此用户模块在给定项目中的第一个实例。 它可以更改为符合标识符语法规则的任何唯一值。 分配的实例名称成为每个全局函数名称、变量和常量符号的前缀。 在下面的说明中,为了清晰起见,实例名称已简写为 DelSigMulti。

Note 此处就像在所有用户模块 API 中一样,可以通过调用 API 函数更改 A 和 X 寄存器的值。 如果在调用之后仍需要这些值,则调用函数需负责在调用之前保留 A 和 X 的值。 选择此“寄存器是易失的”策略是为了提高效率,从 PSoC Designer 1.0 版开始就已经强制实施了此策略。 C 编译器会自动考虑这一要求。 汇编语言编程人员还必须确保他们的代码遵循策略。 虽然一些用户模块 API 函数可以保留 A 和 X 不变,但是不保证将来它们也会这样做。

DelSigMulti_Start

说明:

对此用户模块执行所有必需的初始化,并设置开关电容 PSoC 模块的电源级别。 所有通道都是在相同电源级别下配置的。

C 原型:

void DelSigMulti_Start(BYTE bfPowerSetting)

汇编:

mov A, bfPowerSetting

lcall DelSigMulti_Start

参数:

bPowerSetting: 一字节有四个 2-bit位字段,每个字段分别指定每个通道的电源级别。 在复位和配置之后,分配给 DelSigMulti 的模拟 PSoC 模块关闭电源。 下表列出了 C 和 汇编及其相关值。

符号名称掩码

DelSigMulti_CH0_OFF00h

DelSigMulti_CH0_LOWPOWER01h

DelSigMulti_CH0_MEDPOWER02h

DelSigMulti_CH0_HIGHPOWER03h

DelSigMulti_CH1_OFF00h

DelSigMulti_CH1_LOWPOWER04h

DelSigMulti_CH1_MEDPOWER08h

DelSigMulti_CH1_HIGHPOWER0Ch

DelSigMulti_CH2_OFF00h

DelSigMulti_CH2_LOWPOWER10h

DelSigMulti_CH2_MEDPOWER20h

符号名称掩码

DelSigMulti_CH2_HIGHPOWER30h

DelSigMulti_CH3_OFF00h

DelSigMulti_CH3_LOWPOWER40h

DelSigMulti_CH3_MEDPOWER80h

DelSigMulti_CH3_HIGHPOWER C0h

返回值:

副作用:

可以通过此函数的此实现或将来实现修改 A 和 X 寄存器。 这适用于大型存储器模型中的所有 RAM 页指针寄存器。 如果需要,调用函数负责通过调用 fastcall16 函数保留值。

DelSigMulti_Stop

说明:

将开关电容 PSoC 模块的功耗级别设置为关闭。

C 原型:

void DelSigMulti_Stop(void)

汇编:

lcall DelSigMulti_Stop

参数:

返回值:

副作用:

可以通过此函数的此实现或将来实现修改 A 和 X 寄存器。 这适用于大型存储器模型中的所有 RAM 页指针寄存器。 如果需要,调用函数负责通过调用 fastcall16 函数保留值。

DelSigMulti_SetPower

说明:

设置 UM 的每个通道的开关电容 PSoC 模块的功耗级别。

C 原型:

void DelSigMulti_SetPower(BYTE bPowerSetting)

汇编:

mov A, bPowerSetting

lcall DelSigMulti_SetPower

bPowerSetting: 一字节有四个 2-bit位字段,每个字段分别指定每个通道的功耗级别。 在复位和配置之后,分配给 DelSigMulti 的模拟 PSoC 模块关闭电源。 下表列出了 C 和 汇编及其相关值。

符号名称掩码

DelSigMulti_CH0_OFF00h

DelSigMulti_CH0_LOWPOWER01h

DelSigMulti_CH0_MEDPOWER02h

DelSigMulti_CH0_HIGHPOWER03h

DelSigMulti_CH1_OFF00h

DelSigMulti_CH1_LOWPOWER04h

DelSigMulti_CH1_MEDPOWER08h

DelSigMulti_CH1_HIGHPOWER0Ch

DelSigMulti_CH2_OFF00h

DelSigMulti_CH2_LOWPOWER10h

DelSigMulti_CH2_MEDPOWER20h

DelSigMulti_CH2_HIGHPOWER30h

DelSigMulti_CH3_OFF00h

DelSigMulti_CH3_LOWPOWER40h

DelSigMulti_CH3_MEDPOWER80h

DelSigMulti_CH3_HIGHPOWER C0h

返回值:

副作用:

可以通过此函数的此实现或将来实现修改 A 和 X 寄存器。 这适用于大型存储器模型中的所有 RAM 页指针寄存器。 如果需要,调用函数负责通过调用 fastcall16 函数保留值。

DelSigMulti_StartAD

说明:

激活此用户模块的中断,开始采样。

C 原型:

void DelSigMulti_StartAD(void)

汇编

lcall DelSigMulti_StartAD

返回值:

副作用:

可以通过此函数的此实现或将来实现修改 A 和 X 寄存器。 这适用于大型存储器模型中的所有 RAM 页指针寄存器。 如果需要,调用函数负责通过调用 fastcall16 函数保留值。

DelSigMulti_StopAD

说明:

通过中断禁用关闭 A/D。 模拟电源仍提供给模拟模块。

C 原型:

void DelSigMulti_StopAD(void)

汇编:

lcall DelSigMulti_StopAD

参数:

返回值:

副作用:

可以通过此函数的此实现或将来实现修改 A 和 X 寄存器。 这适用于大型存储器模型中的所有 RAM 页指针寄存器。 如果需要,调用函数负责通过调用 fastcall16 函数保留值。

DelSigMulti_fIsDataAvailable

说明:

检查新 ADC 采样数据是否已就绪。 标志是在 ADC 产生的结果已就绪的情况下设置的。 此 API 函数允许用户检查标志。 将针对整个 UM 检查数据可用性。 所有通道都同步,因此所有数据同时是新数据或旧数据。 因此,仅进行一项检查,该检查适用于所有通道的所有采样数据。 用户必须使用另一个 API 函数清除此标志。

C 原型:

BYTE DelSigMulti_fIsDataAvailable(void)

汇编:

lcall DelSigMulti_fIsDataAvailable

cmp A, 0

jz.DataNotAvailable

参数:

如果已转换每个通道的数据,且这些数据准备读取,则返回非零值。 如果尚未转换每个通道的数据且这些数据未就绪,则返回零。

副作用:

可以通过此函数的此实现或将来实现修改 A 和 X 寄存器。 这适用于大型存储器模型中的所有 RAM 页指针寄存器。 如果需要,调用函数负责通过调用 fastcall16 函数保留值。 当前,仅修改 CUR_PP 页指针寄存器。

DelSigMulti_GetAllDataClearFlag

说明:

此函数用于使用一个函数检索通道的数据。 RAM 阵列指针传递到此函数中,此函数将 ADC 结果放入该 RAM 阵列。 用户必须确保其 RAM 阵列大小适合 ADC 通道的数量和分辨率。 此函数还清除 ADC 数据已就绪的标志。可以调用 DelSigMulti_fIsDataAvailable() 以验证在调用此函数之前数据采样已就绪。

C 原型:

void DelSigMulti_GetAllDataClearFlag(BYTE* pbRamBuffer)

汇编:

mov A,>pbRamBuffer

mov X,

lcall DelSigMulti_GetAllDataClearFlag

参数:

pbRamBuffer: 此参数确定 ADC 采样数据复制到的 RAM 位置。 复制的数据为 ADC 结果。 用户必须确保 RAM 阵列类型与 ADC 结果的数据类型相匹配。 ADC 通道数据放置在首先从通道 0 数据开始的用户阵列中,字节顺序为 MSB 优先。 例如,如果 UM 有三个无符号 10-bit 数据通道,则此阵列按下列顺序将六个字节复制到用户阵列: Ch0_Result_MSB、Ch0_Result_LSB、Ch1_Result_MSB、

Ch1_Result_LSB、Ch2_Result_MSB、Ch2_Result_LSB.。如果用户拥有的阵列类型不同于 BYTE 类型,则用户应将传递给的函数的阵列指针强制转换成 BYTE 指针。

返回值:

副作用:

可以通过此函数的此实现或将来实现修改 A 和 X 寄存器。 这适用于大型存储器模型中的所有 RAM 页指针寄存器。 如果需要,调用函数负责通过调用 fastcall16 函数保留值。 当前,仅修改 CUR_PP 页指针寄存器。

DelSigMulti_iGetData

DelSigMulti_cGetData

说明:

以有符号 8-bit或 16-bit 2 的补码格式返回转换的数据。 请注意,用户模块 DataFormat 参数决定了基本表示。 当基本表示是无符号数据时,调用有符号格式函数不会更改数据值。可以调用

DelSigMulti_fIsDataAvailable() 以验证数据采样已就绪。 通道编号会传递给此函数。

CHAR DelSigMulti_cGetData(BYTE bChannelNumber)// use for 8-bit resolution or lower INT DelSigMulti_iGetData(BYTE bChannelNumber)// use for 9-bit resolution or higher 汇编:

mov A, [bChannelNumber]

lcall DelSigMulti_cGetData; Result will be in A

- or -

mov A, [bChannelNumber]

lcall DelSigMulti_iGetData; LSB will be in A, MSB in X upon return

参数:

bChannelNumber: 此参数确定返回哪个通道的数据。

返回值:

以 8-bit或 16-bit 2 的补码格式返回转换的数据采样。

副作用:

可以通过此函数的此实现或将来实现修改 A 和 X 寄存器。 这适用于大型存储器模型中的所有 RAM 页指针寄存器。 如果需要,调用函数负责通过调用 fastcall16 函数保留值。 当前,仅修改 CUR_PP 页指针寄存器。

DelSigMulti_bGetData

DelSigMulti_wGetData

说明:

以 8-bit或 16-bit 无符号格式返回转换的数据。 请注意,用户模块 DataFormat 参数决定了基本表示。 当基本表示是有符号数据时,调用无符号格式函数不会更改数据值。可以调用

DelSigMulti_fIsDataAvailable() 以验证数据采样已就绪。 通道编号会传递给此函数。

C 原型:

BYTE DelSigMulti_bGetData(BYTE bChannelNumber)// use for 8-bit resolution or lower WORD DelSigMulti_wGetData(BYTE bChannelNumber)// use for 9-bit resolution or higher 汇编:

mov A, [bChannelNumber]

lcall DelSigMulti_bGetData; Result will be in A

- or -

mov A, [bChannelNumber]

lcall DelSigMulti_wGetData; LSB will be in A, MSB in X upon return

参数:

bChannelNumber: 此参数确定返回哪个通道的数据。

返回值:

根据该函数,以 8-bit或 16-bit 无符号格式返回转换的数据采样。

副作用:

可以通过此函数的此实现或将来实现修改 A 和 X 寄存器。 这适用于大型存储器模型中的所有 RAM 页指针寄存器。 如果需要,调用函数负责通过调用 fastcall16 函数保留值。 当前,仅修改 CUR_PP 页指针寄存器。

DelSigMulti_ClearFlag

说明:

复位数据可用标志。

C 原型:

void DelSigMulti_ClearFlag(void)

汇编:

lcall DelSigMulti_ClearFlag

参数:

返回值:

副作用:

可以通过此函数的此实现或将来实现修改 A 和 X 寄存器。 这适用于大型存储器模型中的所有 RAM 页指针寄存器。 如果需要,调用函数负责通过调用 fastcall16 函数保留值。 当前,仅修改 CUR_PP 页指针寄存器。

固件源代码样本

此示例重复上一情形,但是使用 API 函数而不是直接引用全局变量。

下面是汇编语言示例:

include "DelSigMulti.inc"

include "m8c.inc"

export _main

_main:

M8C_EnableGInt; enable global interrupts

mov A,DelSigMulti_CH0_HIGHPOWER | DelSigMulti_CH1_HIGHPOWER; Establish power setting...

call DelSigMulti_Start; and initialize

call DelSigMulti_StartAD; Commence sampling process

mainloop:

call DelSigMulti_fIsDataAvailable; Retrieve the status byte

cmp A, 0

jz mainloop; spin lock until(data is Available)

mov A,>RamBuffer

mov X,

call DelSigMulti_GetAllDataClearFlag; fastcall convention places ADC results in RAM array defined by RamBuffer pointer

call ProcessSample; pass the sample to the dummy fcn

jmp mainloop

ProcessSample:

...; (do something useful with the data)

ret

等效的 C 代码:

#include // part specific constants and macros

#include "PSoCAPI.h" // PSoC API definitions for all User Modules

BYTE * RamBuffer;

void main(void)

{

M8C_EnableGInt;

DelSigMulti_Start(DelSigMulti_CH0_HIGHPOWER|DelSigMulti_CH1_HIGHPOWER);

DelSigMulti_StartAD();

while(1) {

if( DelSigMulti_fIsDataAvailable() ) {

DelSigMulti_GetAllDataClearFlag(RamBuffer); // copy ADC data to

// buffer before processing

}

}

}

配置寄存器

下面一节详述了此用户模块更改的寄存器。

模拟寄存器、1st 二阶调制器

Table 6.“ADC”模拟开关电容 PSoC 模块使用的寄存器

寄存器76543210 ADC_CH0/1/2/3_CR010010000

ADC_CH0/1/2/3_CR1PosInput0/1/2/3InvertingGain0/1/2/3

ADC_CH0/1/2/3_CR201000000

ADC_CH0/1/2/3_CR31110NegInput0/1/2/3电源

PosInput0/1/2/3 选择单端输入信号或差分输入信号的同相输入。 NegInput0/1/2/3 选择差分输入的反相输入。 只要 InvertingGain0/1/2/3 字段设置为零,反相输入就会断开连接。 电源/功耗是通过 DelSigMulti_Start 和 DelSigMulti_SetPower API 函数设置的。 0/1/2/3 代表使用的 delta-sigma ADC 通道的数量。

模拟寄存器、2nd 二阶调制器

Table 7.“ADC0”和“ADC1”模拟开关电容 PSoC 模块所使用的寄存器

寄存器76543210 ADC0_CH0/1/2/3_CR010001000

ADC0_CH0/1/2/3_CR1PosInput0/1/2/3InvertingGain0/1/2/3

ADC0_CH0/1/2/3_CR201000000

ADC0_CH0/1/2/3_CR31110NegInput0/1/2/3电源

寄存器76543210 ADC1_CH0/1/2/3_CR010010000

ADC1_CH0/1/2/3_CR1LinkToADC000000

ADC1_CH0/1/2/3_CR200000000

ADC1_CH0/1/2/3_CR3111000电源

PosInput0/1/2/3 选择单端输入信号或差分输入信号的同相输入。 NegInput0/1/2/3 选择差分输入的反相输入。 只要 InvertingGain0/1/2/3 字段设置为零,反相输入就会断开连接。 LinktoADC0 由模块位置确定,它将 ADC0 模块的输出连接到 ADC1 PSoC 模块的“A”输入电容。 电源是通过 DelSigMulti_Start 和 DelSigMulti_SetPower API 函数设置的。 0/1/2/3 代表使用的 delta-sigma ADC 通道的数量。

抽取滤波器控制寄存器

Table 8.抽取控制寄存器

位76543210 DECx_DH数据高字节

DECx_DL数据低字节

DEC_CR0ACC_IGEN ICLKS ACE_IGEN DCLKS0 DEC_CR10IDEC ICLKS3ICLKS2ICLKS1DCLKS3DCLKS2DCLKS1 DECx_CR0POL GOOO GOOE0DATA_IN

DEC_CR3DEC1_EN CLK_IN1DEC0_EN CLK_IN0

DEC_CR4DEC3_EN CLK_IN3DEC2_EN CLK_IN2

DEC_CR50DSCLK

DECx_CR模式数据输出移位数据格式抽取速率

抽取滤波器是用于实现 Sinc2 滤波器的专用硬件。 它由三个控制寄存器和两个数据输出寄存器组成。DCol 选择将连接的列比较器。 DCLKSEL 选择用于控制抽取滤波器定时的数字时钟。 这两个参数都是在设备编辑器中设置的。 DEC_CR2 中的移位是根据抽取速率设置的,在 DEC_CR2 中也进行了指定,其目的是最大程度地减少软件中必须完成的对齐数据。

数字模块寄存器

Table 9.数字模块控制寄存器

位76543210 DxCxxCR0启用

此寄存器在使用时配置有附加数字模块,以便通过调用函数 DelSigMulti_StartAD. 启动此 UM 的生成时钟。另外,此寄存器用于通过调用函数 DelSigMulti _StopAD 停止生成时钟。

版本历史记录

版本创作者说明

1.2DHA增加了 DRC,以检查源时钟在数字源和模拟源中是否不同。

改进了 GetAllDataClearFlagAPI 实现。

改进了时钟选择 DRC。

Note PSoC Designer 5.1 在所有用户模块数据表中提供了一个版本历史记录。 这一部分概要说明了当前与以前的用户模块版本之间的差异。

Document Number: 001-65734 Rev. **Revised December 3, 2010 Page 19 of 19 Copyright ? 2009-2010 Cypress Semiconductor Corporation. The information contained herein is subject to change without notice. Cypress Semiconductor Corporation assumes no responsibility for the use of any circuitry other than circuitry embodied in a Cypress product. Nor does it convey or imply any license under patent or other rights. Cypress products are not warranted nor intended to be used for medical, life support, life saving, critical control or safety applications, unless pursuant to an express written agreement with Cypress. Furthermore, Cypress does not authorize its products for use as critical components in life-support systems where a malfunction or failure may reasonably be expected to result in significant injury to the user. The inclusion of Cypress products in life-support systems application implies that the manufacturer assumes all risk of such use and in doing so indemnifies Cypress against all charges.

PSoC Designer? and Programmable System-on-Chip? are trademarks and PSoC? is a registered trademark of Cypress Semiconductor Corp. All other trademarks or registered trademarks referenced herein are property of the respective corporations.

Any Source Code (software and/or firmware) is owned by Cypress Semiconductor Corporation (Cypress) and is protected by and subject to worldwide patent protection (United States and foreign), United States copyright laws and international treaty provisions. Cypress hereby grants to licensee a personal, non-exclusive, non-transferable license to copy, use, modify, create derivative works of, and compile the Cypress Source Code and derivative works for the sole purpose of creating custom software and or firmware in support of licensee product to be used only in conjunction with a Cypress integrated circuit as specified in the applicable agreement. Any reproduction, modification, translation, compilation, or representation of this Source Code except as specified above is prohibited without the express written permission of Cypress.

Disclaimer: CYPRESS MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS MATERIAL, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. Cypress reserves the right to make changes without further notice to the materials described herein. Cypress does not assume any liability arising out of the application or use of any product or circuit described herein. Cypress does not authorize its products for use as critical components in life-support systems where a malfunction or failure may reasonably be expected to result in significant injury to the user. The inclusion of Cypress' product in a life-support systems application implies that the manufacturer assumes all risk of such use and in doing so indemnifies Cypress against all charges.

低通插值滤波器说明书

The University of South China 数字信号处理课程设计 说明书 学院名称 指导教师 班级 学号 学生姓名 2010年6 月

设计一个按因子I=5的内插器,要求镜像滤波器通带最大衰减为 0.1dB ,阻带最小衰减为30dB ,过渡带宽不大于20/π,设计FIR 滤波器系数h(n) 一、初始设计 (1) 幅度指标 可以两种方式给出。第一种,叫做绝对指标,它提出了对幅度回应函数|H (jw)| 的要求。这些指标一般可直接用于FIR 滤波器。第二种方法叫做相对指标,它以分贝(dB )值的形式提出要求,其定义为: 0|)(|| )(|log 20max 10≥-=jw jw e H e H dB 经过定义中所包含的归一化,所有滤波器的相对幅频特性最高处的值为0dB ,由于定义式中有一个负号,幅频特性小的地方,其dB 值反而是正的。 绝对指标: [0,wp]段叫通带,δ1是在理想通带中能接受的振幅波动或(容限) [ws, ]段叫做阻带,δ2是阻带中能接受的振幅波动或(容限) [wp,ws]叫做过渡带,在此段上幅度回应通常没有限制,也可以给些弱限制。 低通滤波器的典型幅度指标 相对指标(dB ): p R 是通带波动的dB 值; s A 是阻带衰减的dB 值。 由于绝对指标中的)1(|)(|1max δ+=jw H ,因此 011log 201 1 10 >+--=δδp R , ) (ωj e G c ω 1 1+ p 1- p s p s

11log 201 2 10 >>+-=δδs A 逆向的关系为 20 20 1101101p p R R --+-= δ 20 20 1210 10 )1(s s A A --≈+=δδ (2)低通FIR 滤波器阶数的估计 π ωωδδ2/)(6.1413)lg(20p s s p N ---≈ (3)滤波器结构分析: 整数倍内插器的 FIR 直接实现 整数I 倍内插是在已知的相邻两个原采样点之间等间隔插入I-1个新的采样值。对已知的采样序列)(11T n x 进行D/A 转移,得道原来的模拟信号)(t x a ,然后再对)(t x a 进行较高采样率的采样得到)(22T n y ,这里 21IT T = I 为大于1的整数,称为内插因子。 整数倍内插是先在已知采样序列)(11T n x 的相邻两个样点之间等间隔插入I-1个0值点,然后进行低通滤波器,即可获得I 倍内插的结果。内插方案如图所示: )(11T n x )(22T n v )(22T n y 图中↑ I 表示在)(11T n x 相邻样点之间插入I-1个0值采样,称为零值内插器。 )(11T n x 、)(22T n y 的傅里叶变换为:)(1 jw e X 、)(2jw e Y ,二者均为周期函数,若二 者都用模拟频率Ω表示,则 (1jw e X =)(1T j e X Ω,周期为11/2T sa π=Ω; )(2jw e Y =)(2T i e Y Ω,周期为2sa Ω=112)//(2/2sa I I T T Ω==ππ。 )(22T n v =?? ??? ±±=其它当 02,,0n )(212I I I T n x ↑ I )(22T n h

多相滤波器的设计概要

摘要 软件雷达是现代雷达的重要发展方向。其中数字化中频接收系统是关键技术之一。本论文以某雷达数字化接收系统为背景,主要研究其中的关键技术——多相滤波器的原理及设计与仿真。为了更好的理解,本文同时对数字滤波器作了简单的介绍,包括滤波器的定义、分类与实现方式。对无线电中的两个最基础的概念内插与抽取也做了介绍。对多相滤波器的原理进行了详细的说明,从公式推导上进行了理论实现的方法与可能。讨论了多相滤波如何实现信道化。最后介绍了数字滤波器的设计步骤并实现了多相滤波器的MATLAB仿真。 关键词:多相滤波器、软件无线电、数字滤波器。 Abstract Software radar is an important developing direction of modern radar. Which digital intermediate frequency receiving system is the key technical one. This paper taking a radar system for background, digital receiving main research key technology - multiphase the principle of filter and design and simulation. In order to better understanding of digital filter, the paper also makes brief introduction, including the definition, classification and filter implementation. The two most basic to radio the concept interpolation and extract presented also. The principle of multiphase filter for a detailed instructions from the formula, the method to realize the theory with possible. Discusses how to realize the multiphase filtering channelized. At last, the paper introduces the design procedures of the digital filter and realize the multiphase filter MATLAB simulation. Keywords: multiphase filter, software radio, digital filters

数字滤波器的MATLAB设计与实现.

数字滤波器的MATLAB设计与实现 数字滤波器的MATLAB设计与实现 类别:电子综合 引言 随着信息时代和数字世界的到来,数字信号处理已成为今一门极其重要的学科和技术领域。数字信号处理在通信、语音、图像、自动控制、雷达、军事、航空航天、医疗和家用电器等众多领域得到了广泛的应用。在数字信号处理应用中,数字滤波器十分重要并已获得广泛应用。 1 数字滤波器的设计1.1 数字滤波器设计的基本步骤数字滤波器根据其冲激响应函数的时域特性,可分为两种,即无限长冲激响应(IIR)滤波器和有限长冲激响应(FIR)滤波器。IIR滤波器的特征是,具有无限持续时间冲激响应。种滤波器一般需要用递归模型来实现,因而有时也称之为递归滤波器。FIR滤波器的冲激响应只能延续一定时间,在工程实际中可以采用递归的方式实现,也可以采用非递归的方式实现。数字滤波器的设计方法有多种,如双线性变换法、窗函数设计法、插值逼近法和Chebyshev逼近法等等。随着MATLAB软件尤其是MATLAB的信号处理工作箱的不断完善,不仅数字滤波器的计算机辅助设计有了可能,而且还可以使设计达到最优化。数字滤波器设计的基本步骤如下:(1)确定指标在设计一个滤波器之前,必须首先根据工程实际的需要确定滤波器的技术指标。在很多实际应用中,数字滤波器常常被用来实现选频操作。因此,指标的形式一般在频域中给出幅度和相位响应。幅度指标主要以两种方式给出。第一种是绝对指标。它提供对幅度响应函数的要求,一般应用于FIR滤波器的设计。第二种指标是相对指标。它以分贝值的形式给出要求。在工程实际中,这种指标最受欢迎。对于相位响应指标形式,通常希望系统在通频带中人有线性相位。运用线性相位响应指标进行滤波器设计具有如下优点:①只包含实数算法,不涉及复数运算;②不存在延迟失真,只有固定数量的延迟;③长度为N 的滤波器(阶数为N-1),计算量为N/2数量级。因此,本文中滤波器的设计就以线性相位FIR滤波器的设计为例。(2)逼近确定了技术指标后,就可以建立一个目标的数字滤波器模型。通常采用理想的数字滤波器模型。之后,利用数字滤波器的设计方法,设计出一个实际滤波器模型来逼近给定的目标。(3)性能分析和计算机仿真上两步的结果是得到以差分或系统函数或冲激响应描述的滤波器。根据这个描述就可以分析其频率特性和相位特性,以验证设计结果是否满足指标要求;或者利用计算机仿真实现设计的滤波器,再分析滤波结果来判断。 1.2 滤波器的MATLAB设计(1)MATLAB MATLAB是一套用于科学计算的可视化高性能语言与软件环境。它集数值分析、矩阵运算、信号处理和图形显示于一体,构成了一个界面友好的用户环境。它的信号处理工具箱包含了各种经典的和现代的数字信号处理技术,是一个非常优秀的算法研究与辅助设计的工具。在设计数字滤波器时,通常采用MATLAB来进行辅助设计和仿真。(2)FIR滤波器的MATLAB设计下面以设计线性相位FIR滤波器为例介绍具体的设计方法。线性相位FIR滤波器通常采用窗函数法设计。窗函数法设

FPGA实现FIR抽取滤波器的设计之欧阳家百创编

FPGA实现FIR抽取滤波器的设计 欧阳家百(2021.03.07) FIR(fini te impulse response)滤波器是数字信号处理系统中最基本的元件,它可以在保证任意幅频特性的同时具有严格的线性相频特性,同时其单位冲激响应是有限的,没有输入到输出的反馈,系统稳定。因此,FIR滤波器在通信、图像处理、模式识别等领域都有着广泛的应用。在工程实践中,往往要求对信号处理要有实时性和灵活性,而已有的一些软件和硬件实现方式则难以同时达到这两方面的要求。随着可编程逻辑器件的发展,使用FPGA 来实现FIR滤波器,既具有实时性,又兼顾了一定的灵活性,越来越多的电子工程师采用FPGA器件来实现FIR滤波器。 1 FIR滤波器工作原理 在进入FIR滤波器前,首先要将信号通过A/D器件进行模数转换,使之成为8bit的数字信号,一般可用速度较高的逐次逼进式A/D转换器,不论采用乘累加方法还是分布式算法设计FIR 滤波器,滤波器输出的数据都是一串序列,要使它能直观地反应出来,还需经过数模转换,因此由FPGA构成的FIR滤波器的输出须外接D/A模块。FPGA有着规整的内部逻辑阵列和丰富的连线资源,特别适合于数字信号处理任务,相对于串行运算为主导

的通用DSP芯片来说,其并行性和可扩展性更好,利用FPGA乘累加的快速算法,可以设计出高速的FIR数字滤波器。 2 16阶滤波器结构 在滤波过程中实现抽取,对于抽取率为N的抽取滤波器而言,当进来N个数据时滤波器完成1次滤波运算,输出1次滤波结果。抽取滤波器的结果和先滤波后抽取的结果是一致的,只是对于同样的数据,进行滤波运算的次数大大减少。在数字系统中采用拙取滤波器的最大优点是增加了每次滤波的可处理时间,从而达到实现高速输入数据的目的。采样数据与滤波器系数在控制电路的作用下,分别对应相乘并与前一个乘积累加,经过多次(有多少阶就要多少次)反复的乘累加最后输出滤波结果,将相同系数归类,16阶滤波器公式: 乘法器的数量减少一半,但加法器的数量增多了,但相对乘法运算来说,加法运算所占用的资源少的多,运算的速度也快得多。 3 滤波器系数的求取 使用Matlab集成的滤波器设计工具FDAtool,可以完成多种滤波器的数值设计、分析与评估,设计16阶低通滤波器参数如下: 采样频率:Fs为50MHz,滤波器归一化截止频率:Fc为0.4MHz,输入数据位宽:8位,输出数据宽度:16位FDAtool

数字滤波器的优化设计

数字滤波器的优化设计浅析 201120003025 何志会

数字滤波器的优化设计浅析 摘要 当前,在数字信号处理和电子应用技术领域,数字滤波器以其精度高、灵活性好、便于大规模集成等突出优点,占据了至关重要的地位。按冲击响应持续时间,数字滤波器可分为有限冲击响应(FIR)滤波器和无限冲击响应(IIR)滤波器。传统的数字滤波器的设计方法有窗函数法、频率采样法和等波动最佳逼近法等。但是随着时代的发展,应用领域的广泛增加、信号处理要求变高以及计算复杂程度的不断提高,对于数字滤波器软件和硬件的要求也越来越专业、复杂。因此,数字滤波器的优化设计也显得更加重要。近年来,国内外对数字滤波器的优化算法进行了较多的研究,提出了很多优化方法和算法,如:人工鱼群算法、粒子群算法、遗传算法、最小P误差法、小波逼近法等。这些算法大大提高了数字滤波器的应用范围,使结果更加逼近于目标函数。硬件上,FPGA以其体积小、速度快、重量轻、功耗低、可靠性高、成本低等优点在数字滤波器上得到应用,具有很好的发展前景。 关键词:数字滤波器;优化;算法

Optimization design of FIR digital filter Abstract At present, the digital filter with its high precision, flexibility, ease of large-scale integration and other advantages, occupies a crucial position in the field of digital signal processing and application of technology.According to the duration of the impulse response, digital filter can be divided into finite impulse response (FIR) filters and infinite impulse response (IIR) filter. Traditional methods of digital filter design use window function method, sampling method, frequency fluctuations and the best approximation method. But with the development of the times, a wide range of applications increases, the signal processing requirements of high change and increasing complexity of the calculations for the digital filter software and hardware ,requirements have become more specialized and complex. Therefore, the digital filter design optimization is even more important. In recent years, domestic and international digital filter optimization algorithm for more research, made a lot of optimization methods and algorithms, such as: artificial fish school algorithm, particle swarm optimization, genetic algorithm, the smallest P error method, wavelet approximation method . These algorithms greatly improve the application of digital filters, so that the results more close to the target function. Hardware, FPGA with its small size, fast, light weight, low power consumption, high reliability and low cost have been applied in the digital filter, with good prospects for development. Key words:Digital filter ;Optimization;;algorithm

FIR数字滤波器设计及MATLAB使用【重点】

cheng 《数字信号处理》 课程设计报告 FIR数字滤波器设计及MATLAB实现 专业:通信工程 班级:通信1101班 组次:第9组 姓名及学号: 姓名及学号:

目录 一、设计目的 (3) 二、设计任务 (3) 三、设计原理 (3) 3.1窗函数法 (3) 3.2频率采样法 (4) 3.3最优化设计 (5) 3.3.1等波纹切比雪夫逼近准则 (5) 3.3.2仿真函数 (6) 四、设计过程 (7) 五、收获与体会 (13) 参考文献 (13)

FIR 数字滤波器设计及MATLAB 实现 一、设计目的 FIR 滤波器:有限长单位冲激响应滤波器,是数字信号处理系统中最基 本的元件,它可以在保证任意幅频特性的同时具有严格的线性相频特性,同时其单位抽样响应是有限长的,因而滤波器是稳定的系统。因此,FIR 滤波器在通信、图像处理、模式识别等领域都有着广泛的应用。滤波器设计是根据给定滤波器的频率特性,求得满足该特性的传输函数。 二、设计任务 FIR 滤波器设计的任务是选择有限长度的()h n ,使传输函数()jw H e 满足一定的幅度特性和线性相位要求。由于FIR 滤波器很容易实现严格的线性相位,所以FIR 数字滤波器设计的核心思想是求出有限的脉冲响应来逼近给定的频率响应。 设计过程一般包括以下三个基本问题: (1) 根据实际要求确定数字滤波器性能指标; (2) 用一个因果稳定的系统函数去逼近这个理想性能指标; (3) 用一个有限精度的运算去实现这个传输函数。 三、设计原理 FIR 滤波器设计的任务是选择有限长度的()h n ,使传输函数()jw H e 满足一定的幅度特性和线性相位要求。由于FIR 滤波器很容易实现严格的线性相位,所以FIR 数字滤波器设计的核心思想是求出有限的脉冲响应来逼近给定的频率响应。 设计过程一般包括以下三个基本问题: (1) 根据实际要求确定数字滤波器性能指标; (2) 用一个因果稳定的系统函数去逼近这个理想性能指标; (3) 用一个有限精度的运算去实现这个传输函数。 3.1窗函数法 设计FIR 数字滤波器的最简单的方法是窗函数法,通常也称之为傅立叶级数法。FIR 数字滤波器的设计首先给出要求的理想滤波器的频率响应()jw d H e ,设计一个FIR 数字滤波器频率响应()jw H e ,去逼近理想的滤波响应()jw d H e 。然而,

数字滤波器的设计及实现

数字滤波器的设计及实现 【一】设计目的 1. 熟悉IIR 数字滤波器和FIR 数字滤波器的设计原理和方法; 2. 学会调用MATLAB 信号处理工具箱中的滤波器设计函数设计各种IIR 和FIR 数字滤波器,学会根据滤波要求确定滤波器指标参数; 3. 掌握用IIR 和FIR 数字滤波器的MA TLAB 实现方法,并能绘制滤波器的幅频特性、相频特性; 4. 通过观察滤波器的输入、输出信号的时域波形及其频谱,建立数字滤波的概念。 【二】设计原理 抑制载波单频调幅信号的数学表达式为 []))(2cos())(2cos(2 1)2cos()2cos()(000t f f t f f t f t f t s c c c ++-==ππππ (2.1) 其中,)2cos(t f c π称为载波,c f 为载波频率,)2cos(0t f π称为单频调制信号,0f 为调制正弦波信号频率,且满足0c f f >。由(2.1)式可见,所谓抑制载波单频调制信号,就是两个正弦信号相乘,它有2个频率成分:和频c f +0f ,差频c f -0f ,这两个频率成分关于载波频率c f 对称。所以,1路抑制载波单频调幅信号的频谱图是关于载波频率c f 对称的两根谱线。 复合信号st 产生函数mstg 清单: function st=mstg %产生信号序列st ,并显示st 的时域波形和频谱 %st=mstg 返回三路调幅信号相加形成的混合信号,长度N=800 N=800; %信号长度N 为800 Fs=10000;T=1/Fs;Tp=N*T; %采样频率Fs=10kHz ,Tp 为采样时间 t=0:T:(N-1)*T;k=0:N-1;f=k/Tp; fc1=Fs/10; %第1路调幅信号载波频率fc1=1000Hz fm1=fc1/10; %第1路调幅信号的调制信号频率fm1=100Hz fc2=Fs/20; %第2路调幅信号载波频率fc2=500Hz fm2=fc2/10; %第2路调幅信号的调制信号频率fm2=50Hz fc3=Fs/40; %第3路调幅信号载波频率fc3=250Hz fm3=fc3/10; %第3路调幅信号的调制信号频率fm3=25Hz xt1=cos(2*pi*fm1*t).*cos(2*pi*fc1*t); %产生第1路调幅信号 xt2=cos(2*pi*fm2*t).*cos(2*pi*fc2*t); %产生第2路调幅信号 xt3=cos(2*pi*fm3*t).*cos(2*pi*fc3*t); %产生第3路调幅信号 st=xt1+xt2+xt3; %三路信号相加,得到复合信号

FPGA实现FIR抽取滤波器的设计

FPGA实现FIR抽取滤波器的设计 FIR(fini te impulse response)滤波器是数字信号处理系统中最基本的元件,它可以在保证任意幅频特性的同时具有严格的线性相频特性,同时其单位冲激响应是有限的,没有输入到输出的反馈,系统稳定。因此,FIR滤波器在通信、图像处理、模式识别等领域都有着广泛的应用。在工程实践中,往往要求对信号处理要有实时性和灵活性,而已有的一些软件和硬件实现方式则难以同时达到这两方面的要求。随着可编程逻辑器件的发展,使用FPGA来实现FIR滤波器,既具有实时性,又兼顾了一定的灵活性,越来越多的电子工程师采用FPG A器件来实现FIR滤波器。 1 FIR滤波器工作原理 在进入FIR滤波器前,首先要将信号通过A/D器件进行模数转换,使之成为8bit的数字信号,一般可用速度较高的逐次逼进式A/D转换器,不论采用乘累加方法还是分布式算法设计FIR滤波器,滤波器输出的数据都是一串序列,要使它能直观地反应出来,还需经过数模转换,因此由FPGA构成的FIR滤波器的输出须外接D/A模块。FPGA有着规整的内部逻辑阵列和丰富的连线资源,特别适合于数字信号处理任务,相对于串行运算为主导的通用DSP芯片来说,其并行性和可扩展性更好,利用FPGA乘累加的快速算法,可以设计出高速的FIR数字滤波器。

2 16阶滤波器结构 在滤波过程中实现抽取,对于抽取率为N的抽取滤波器而言,当进来N个数据时滤波器完成1次滤波运算,输出1次滤波结果。抽取滤波器的结果和先滤波后抽取的结果是一致的,只是对于同样的数据,进行滤波运算的次数大大减少。在数字系统中采用拙取滤波器的最大优点是增加了每次滤波的可处理时间,从而达到实现高速输入数据的目的。采样数据与滤波器系数在控制电路的作用下,分别对应相乘并与前一个乘积累加,经过多次(有多少阶就要多少次)反复的乘累加最后输出滤波结果,将相同系数归类,16阶滤波器公式: 乘法器的数量减少一半,但加法器的数量增多了,但相对乘法运算来说,加法运算所占用的资源少的多,运算的速度也快得多。 3 滤波器系数的求取 使用Matlab集成的滤波器设计工具FDAtool,可以完成多种滤波器的数值设计、分析与评估,设计16阶低通滤波器参数如下:

抽取滤波器

6 到 14-Bit Delta Sigma ADC 数据表 DelSigMulti V 1.2 001-65734 Rev. ** Single Slope 8-Bit ADC Data Sheet Copyright ? 2009-2010 Cypress Semiconductor Corporation. All Rights Reserved. 调制器顺序抽取 率分辨率 采样 率 (CLK=2 MHz) 采样 率 (CLK=8 MHz) 抽取滤波器 数量 SC 模块闪存RAM 通道 (I/O 引脚) CY8C28x45, CY8C28x43, CY8C28x52, CY8C28x33, CY8C28x23 132615625.062500.02214832 1647.57812.531250.02215632 112893906.315625.02218552 125610.51953.17812.52218552 232815625.062500.02218752 264107812.531250.02221672 2128123906.315625.02221672 2256141953.17812.52221672 132615625.062500.03618063 1647.57812.531250.03619263 112893906.315625.03623493 125610.51953.17812.53623493 232815625.062500.03621563 264107812.531250.03625793 2128123906.315625.03625793 2256141953.17812.53625793 132615625.062500.04820074 1647.57812.531250.04821674 112893906.315625.048271114 125610.51953.17812.548271114 232815625.062500.04824374 264107812.531250.048298114 2128123906.315625.048298114 2256141953.17812.548298114 Cypress Semiconductor Corporation?198 Champion Court?San Jose,CA95134-1709?408-943-2600

实验三FIR数字滤波器的设计-7页word资料

实验三 FIR数字滤波器的设计 一、实验目的 1.掌握用窗函数法,频率采样法及优化设计法设计FIR滤波器的 原理及方法,熟悉响应的计算机编程; 2.熟悉线性相位FIR滤波器的幅频特性和相频特性; 3.了解各种不同窗函数对滤波器性能的影响。 二、实验原理与方法 线性相位实系数FIR滤波器按其N值奇偶和h(n)的奇偶对称性分为四种: 1、h(n)为偶对称,N为奇数 H(e jω)的幅值关于ω=0,π,2π成偶对称。 2、h(n)为偶对称,N为偶数 H(e jω)的幅值关于ω=π成奇对称,不适合作高通。 3、h(n)为奇对称,N为奇数 H(e jω)的幅值关于ω=0,π,2π成奇对称,不适合作高通和低通。 4、h(n)为奇对称,N为偶数

H(e jω) ω=0、2π =0,不适合作低通。 (一) 窗口法 窗函数法设计线性相位FIR滤波器步骤 ?确定数字滤波器的性能要求:临界频率{ωk},滤波器单位脉冲响应 长度N; ?根据性能要求,合理选择单位脉冲响应h(n)的奇偶对称性,从而确 定理想频率响应H d (e jω)的幅频特性和相频特性; ?求理想单位脉冲响应h d(n),在实际计算中,可对H d(e jω)按M(M远 大于N)点等距离采样,并对其求IDFT得h M (n),用h M (n)代替h d (n); ?选择适当的窗函数w(n),根据h(n)= h d(n)w(n)求所需设计的FIR 滤波器单位脉冲响应; ?求H(e jω),分析其幅频特性,若不满足要求,可适当改变窗函数形式或长度N,重复上述设计过程,以得到满意的结果。 窗函数的傅式变换W(e jω)的主瓣决定了H(e jω)过渡带宽。W(e jω)的旁瓣大小和多少决定了H(e jω)在通带和阻带范围内波动幅度,常用的几种窗函数有: ?矩形窗 w(n)=R N(n); ?Hanning窗; ?Hamming窗 ;

FIR数字滤波器设计与实现

FIR 数字滤波器设计与实现 一.摘要:数字滤波器是一种具有频率选择性的离散线性系统,在信号数字处理中有着广泛的应 用。其中FIR 滤波器是一种常用的滤波器,它在保证幅度特性满足技术要求的同时,很容易做到严格的线性相位特性,在语音分析、图像处理、雷达监测等对信号相位要求高的领域有着广泛的应用,能实现IIR 滤波器不能实现的许多功能。 二.关键词:FIR 窗函数系统函数MATLAB 三.内容提要: 数字滤波器的功能就是把输入序列通过一定的运算变换成输出序列,因此数字滤波器的结构系 统中就必须包括一定数量和性能的运算器件和运算单元,而运算器件和运算单元的配置必须由数字滤波器的结构特点和性能特点来决定,因此在进行FIR 数字滤波器的设计之前,有必要介绍和总结FIR 数字滤波器的基本结构和相关特性(包括频响曲线(幅度和相位),单位冲激响应等),在介绍完其基本结构和相关特性后,就进行FIR 数字滤波器的设计和实现。 (一)FIR 滤波器的基本结构 在讨论任何一种滤波器时,都要着重分析其系统函数,FIR 滤波器的系统函数为: n N n z n h z H ∑-==1 0)()(。从该系统函数可看出,FIR 滤波器有以下特点: 1)系统的单位冲激响应h(n)在有限个n 值处不为零; 2)系统函数H(z)在|z|>0处收敛,极点全部在z=0处(稳定系统); 3)结构上主要是非递归结构,没有输出到输入的反馈,但有些结构中(例如频率抽样结构)也包 含有反馈的递归部分。 1.FIR 滤波器实现的基本结构有: 1) 横截型(卷积型、直接型) a.一般FIR 滤波器的横截型(直接型、卷积型)结构: 若给定差分方程为: 。则可以直接由差分方程得出FIR 滤波器结构如 下图所示: 这就是FIR 滤波器的横截型结构,又称直接型或卷积型结构。 b .线性相位FIR 滤波器的横截型结构

FPGA实现FIR抽取滤波器的设计

FPGA实现FIR抽取滤波器的设计FIR(fini te impulse response)滤波器是数字信号处理系统中最基本的元件,它可以在保证任意幅频特性的同时具有严格的线性相频特性,同时其单位冲激响应是有限的,没有输入到输出的反馈,系统稳定。因此,FIR滤波器在通信、图像处理、模式识别等领域都有着广泛的应用。在工程实践中,往往要求对信号处理要有实时性和灵活性,而已有的一些软件和硬件实现方式则难以同时达到这两方面的要求。随着可编程逻辑器件的发展,使用FPG A来实现FIR滤波器,既具有实时性,又兼顾了一定的灵活性,越来越多的电子工程师采用FPGA器件来实现FIR滤波器。 1 FIR滤波器工作原理 在进入FIR滤波器前,首先要将信号通过A/D器件进行模数转换,使之成为8bit的数字信号,一般可用速度较高的逐次逼进式A/D转换器,不论采用乘累加方法还是分布式算法设计FIR滤波器,滤波器输出的数据都是一串序列,要使它能直观地反应出来,还需经过数模转换,因此由FPGA构成的FIR滤波器的输出须外接D/A模块。FPGA有着规整的内部逻辑阵列和丰富的连线资源,特别适合于数字信号处理任务,相对于串行运算为主导的通用DSP芯片来说,其并行性和可扩展性更好,利用FPGA乘累加的快速算法,可以设计出高速的FIR数字滤波器。

2 16阶滤波器结构 在滤波过程中实现抽取,对于抽取率为N的抽取滤波器而言,当进来N个数据时滤波器完成1次滤波运算,输出1次滤波结果。抽取滤波器的结果和先滤波后抽取的结果是一致的,只是对于同样的数据,进行滤波运算的次数大大减少。在数字系统中采用拙取滤波器的最大优点是增加了每次滤波的可处理时间,从而达到实现高速输入数据的目的。采样数据与滤波器系数在控制电路的作用下,分别对应相乘并与前一个乘积累加,经过多次(有多少阶就要多少次)反复的乘累加最后输出滤波结果,将相同系数归类,16阶滤波器公式: 乘法器的数量减少一半,但加法器的数量增多了,但相对乘法运算来说,加法运算所占用的资源少的多,运算的速度也快得多。 3 滤波器系数的求取 使用Matlab集成的滤波器设计工具FDAtool,可以完成多种滤波器的数值设计、分析与评估,设计16阶低通滤波器参数如下:

射频直采多相抽取信道化滤波器设计仿真

% author:张宗卫 % description:多相抽取滤波器设计仿真 % date:2020.2.2 %使用带通采样定律对射频信号直接采样,fs=6.2M,载波9.8M,经过采样后频谱搬移至2.6m, %针对目前比较流行的204B接口,数据随路时钟clk=fs/4,一个时钟周期传输四个采样点,特别适合%多相抽取滤波器设计,该仿真使用此滤波器结构设计了带通滤波器实现载波9.8M和9.79M信号的 %分离,适合用于信道化滤波器设计。 clc clear all load('Bpf2600Coe.mat')%导入滤波器参数,该滤波器为fc1经过带通采样后 fs=620*10e3;%采样频率 f1=980*10e3; f2=979*10e3; % step1 产生脉冲 L=600000; t=1/fs:1/fs:L/fs; am=zeros(1,L); TPulse=125; t1=(4/1000)*fs; t2=400000; t3=424800; for i=1:(4/1000)*fs am(i)=sin(2*pi*TPulse*t(i)); end for i=1:t1 ts(i)=sin(2*pi*TPulse*t(i)); end j=1; for i=t2+1:t3 am(i)=ts(j); j=j+1; end figure(1) plot(t,am,'r'); title('脉冲调制信号'); %step2 将脉冲信号加调制 fc1=sin(2*pi*f1*t)*2^14;% 调制1 fc2=sin(2*pi*f2*t)*2^14;% 调制2 fs1=am.*fc1; fs2=am.*fc2; %第一个脉冲为fc1频率的调制,第二个脉冲为fc2频率的调制 for i=1:L if(i

FIR数字滤波器设计与软件实现

实验二:FIR数字滤波器设计与软件实现 一、实验指导 1.实验目的 (1)掌握用窗函数法设计FIR数字滤波器的原理和方法。 (2)掌握用等波纹最佳逼近法设计FIR数字滤波器的原理和方法。(3)掌握FIR滤波器的快速卷积实现原理。 (4)学会调用MATLAB函数设计与实现FIR滤波器。 2.实验内容及步骤 (1)认真复习第七章中用窗函数法和等波纹最佳逼近法设计FIR数字滤波器的原理; (2)调用信号产生函数xtg产生具有加性噪声的信号xt,并自动显示xt及其频谱,如图1所示; 图1 具有加性噪声的信号x(t)及其频谱如图 (3)请设计低通滤波器,从高频噪声中提取xt中的单频调幅信号,要求信号幅频失真小于0.1dB,将噪声频谱衰减60dB。先观察xt的频谱,确定滤波器指标参数。

(4)根据滤波器指标选择合适的窗函数,计算窗函数的长度N,调用MATLAB函数fir1设计一个FIR低通滤波器。并编写程序,调用MATLAB快速卷积函数fftfilt实现对xt的滤波。绘图显示滤波器的频响特性曲线、滤波器输出信号的幅频特性图和时域波形图。(4)重复(3),滤波器指标不变,但改用等波纹最佳逼近法,调用MATLAB函数remezord和remez设计FIR数字滤波器。并比较两种设计方法设计的滤波器阶数。 提示:○1MATLAB函数fir1的功能及其调用格式请查阅教材; ○2采样频率Fs=1000Hz,采样周期T=1/Fs; ○3根据图1(b)和实验要求,可选择滤波器指标参数:通带截止频率fp=120Hz,阻带截至频率fs=150Hz,换算成数字频率,通带截止 频率 p 20.24 p f ωπ =T=π,通带最大衰为0.1dB,阻带截至频率 s 20.3 s f ωπ =T=π,阻带最小衰为60dB。 ○4实验程序框图如图2所示,供读者参考。

实验五IIR数字滤波器设计及软件实现

实验四:IIR数字滤波器设计及软件实现 一、实验内容及步骤 1、调用信号产生函数mstg产生由三路抑制载波调幅信号相加构成的复合信号 st,三路信号在时域混叠无法在时域分离,但频域是可分离的,所以可以通过滤波的方法在频域分离。 2、要求将st中三路调幅信号分离,通过观察st的幅频特性曲线,分别确定可 以分离st中三路抑制载波单频调幅信号的三个滤波器(低通、高通、带通)的通带截止频率和阻带截止频率。要求滤波器的通带最大衰减为0.1db,阻带最小衰减为60db. 3、编程序调用MATLAB滤波器设计函数ellipord和ellip分别设计三个椭圆滤 波器,并绘图显示其损耗函数曲线。 4、调用滤波器实现函数filter,用三个滤波器分别对信号产生函数mstg产生 的信号st进行滤波,分离出st中的三路不同载波频率的调幅信号yn1、yn2、yn3的,并绘图显示其时域波形,观察分离效果。 二、实验结果显示 原信号图形:

高通滤波器 输出波形

带通滤波器输出波形

低通滤波器输出波形

带阻滤波器输出波形

三、实验结论:由上面所绘图形可知,利用数字滤波器完全可以将时域混叠而频域未混叠的波形分开,达到滤波目的。 四、思考题 (1)请阅读信号产生函数mstg,确定三路调幅信号的载波频率和调制信号频率。答:第一路调幅信号的调制信号频率为100HZ,载波频率为1000HZ;第二路调幅信号的调制信号频率为50HZ,载波频率为500HZ;第三路调幅信号的调整信号频率为25HZ,载波频率为250HZ。 (2)信号产生函数mstg中采样点数N=1600,对st进行N点FFT可以得到6根理想谱线。如果取N=1800,可否得到6根理想谱线?为什么?N=2000呢?请改变函数mstg 中采样点数N的值,观察频谱图验证您的判断是否正确? 答: 因为信号st是周期序列,谱分析时要求观察时间为整数倍周期。分析可知,st的每个频率成分都是25Hz的整数倍。采样频率Fs=10kHz=25×400Hz,即在25Hz 的正弦波的1个周期中采样400点。所以,当N为400的整数倍时一定为st的整数个周期。因此,采样点数N=800和N=2000时,对st进行N点FFT可以得到6根理想谱线。如果取N=1000,不是400的整数倍,不能得到6根理想谱线。

基于内插滤波器符号同步的实现

基于内插滤波器符号同步的实现 陈卫东,孙 栋,张华冲 (中国电子科技集团公司第五十四研究所,河北石家庄050081) 摘 要:比较了同步采样和异步采样条件下符号同步实现方法的不同,在全数字接收机中需要采用内插方法来实现符号同步,内插滤波器是一种线性时变滤波器,在工程中可以采用多项式内插函数来近似,采用FARROW 结构实现。在此基础上介绍了内插法符号同步环路的结构,组成单元,其中详细介绍了内插控制器和定时误差检测器的原理。在AWGN 信道中针对QAM 64信号进行了仿真和实现,眼图和星座图恢复良好,该符号同步环路可以应用于侦察接收机的解调器中。 关键词:全数字接收机;内插滤波器;符号同步 中图分类号:TN914.42 文献标识码:A 文章编号:1003-3114(2009)06-53-3 Design of Symbol Synchronization Circuit Based on Interpolation C HE N Wei dong,SUN Dong,ZHANG Hua chong (The 54th Research Insti tute of CETC,Shijiazhuang Hebei 050081,China) Abstract :In traditional demodulator synchronization sampling is used.In all di g i tal recei ver based on the non synchronization samplin g timing recovery is achieved with the help of interpolator.Cubic interpolator,interpolation controller and Gardner Algoithm for symbol timing error detection are introduced in detail i n this paper.The performance of the design is well i n si mulation.The desi gn is implemented in XILINX FPGA and i t can be applied to demodulation for reconnaissance receiver. Key words:all digital receiver;interpolator;symbol synchronization 收稿日期:2009-09-01 作者简介:陈卫东(1968-),男,高级工程师。主要研究方向:通信信号处理、软件无线电。 0 引言 符号同步的主要任务是从接收到的信号中估计出恢复时钟相位与最佳采样位置的相位误差信息,并根据该信息,将本地采样时钟调整到能够对码元进行最佳检测的相位上,得到信号的最佳采样值,这些采样值中包含判决时刻的信号值。 传统的数字化解调器一般采用零中频方案,需要零中频信道单元把中频信号变换为I Q 两路零中频信号,再进行A/D 采样,定时恢复是通过调整AD 采样时钟相位来完成的,这种接收机定时恢复环路结构简单,但是环路包含模拟单元,模拟器件的非线性,稳定性较差,会对定时恢复的精度,可靠性造成影响。在全数字接收机中,A/D 采样在中频完成,数字下变频确保了I Q 幅度、相位的一致性,定时恢复环路完全在数字域实现。在具体实现中,整个环路可以在一片FPGA 芯片内完成,可靠性与稳定性得到了很大提高。符号同步是全数字接收机中的一个关键技术。 传统的解调器采用同步采样方式,即符号同步 环路锁定后,采样时钟频率是符号速率的整倍数,采样点中包含了判决时刻。在全数字接收机中,采用异步采样方式,即采样时钟频率与发送端时钟频率不相关,而是一个固定时钟频率,采样点中不包含判决时刻。由于采样不同步而引入的定时速率和相位误差,需要用数字信号处理的方法来补偿,即通过定时误差估值控制内插滤波器对采样得到的信号样本值进行插值运算,从而得到信号在最佳采样时刻的近似值。内插滤波器即是完成这一功能必须的环节。 1 内插原理 Gardner 在其文献中给出了速率转换模型来分析内插滤波器,该模型如图1 所示。 图1 内插滤波器速率转换模型 设发送的线性调制符号周期为T,T s 为采样周期。在全数字接收机中,由于T s 的定时来源于独立 工程实践及应用技术

相关文档