Presentation is loading. Please wait.

Presentation is loading. Please wait.

DSP原理与应用 第10章 C55x典型应用系统设计

Similar presentations


Presentation on theme: "DSP原理与应用 第10章 C55x典型应用系统设计"— Presentation transcript:

1 DSP原理与应用 第10章 C55x典型应用系统设计 刘忠国:liuzhg@sdu.edu.cn
电话: ; 微信: jnliuzg 山东大学生物医学工程

2 网站: http://course.sdu.edu.cn/G2S/dsp.cc http://www.ti.com
任课教师:刘忠国 网站: TMS320C55x DSP CPU Reference Guide (SPRU371F, 2004年版) TMS320VC5509A Fixed-Point Digital Signal Processor-Data Manual (SPRS205K,2008年版) TMS320VC5503/5507/5509 DSP External Memory Interface (EMIF) Reference Guide (SPRU670) TMS320VC5507/5509 DSP Analog-to-Digital Converter (ADC) Reference Guide (SPRU586B)

3 第10章 C55x典型应用系统设计 10.1 典型DSP板的硬件设计 10.2 CPLD电路模块设计 10.3 DSP板测试程序
10.4 综合设计实例1: 自适应系统辨识 10.5 综合设计实例2: 数字式有源抗噪声耳罩

4 10.1 典型DSP板的硬件设计 10.1.1 概述 10.1.2基本电路模块 10.1.3 FLASH电路模块
SDRAM电路模块 数模转换电路 SD卡接口电路 USB接口电路 自启动电路模块

5 10.1 典型DSP板的硬件设计 10.1.1 概述 基于TMS320VC5509A的通用数字信号处理板:
包括VC5509A芯片、复位电路、时钟电路、JTAG接 口电路以及电源电路等基本电路模块。 通过EMIF外扩了FLASH、SDRAM等存储器模块。 通过McBSP0、McBSP1和I2C外扩了2片AIC23B,使 该系统具有4路模拟输入和4路模拟输出。

6

7 10.1.2基本电路模块 参考:图9-8 TPS767D301双路电源 1. 电源电路 ,Vref=1.1834V

8 参考:图9-10 手动复位电路 2.复位电路 Y = A 单施密特反相器芯片SN74AHC1G14 3.时钟电路

9 CPLD实现的FLASH高位地址扩展寄存器
S29AL008D: 8M bit (1Mx8Bit, 512K x16Bit) CMOS Flash 1为字模式 CE1 A[13:1] 参考图 9-16 C5509A PGE与S29AL008D连接示意图 CPLD实现的FLASH高位地址扩展寄存器

10 10.1.4 SDRAM电路模块 A0与A14在EMIF中异或输出, A0不用(A0=0),则该引脚就是A14
LDQM,UDQM这些信号线是为了实现字节访问和半字访问,LDQM控制低八位,UDQM控制高八位,这样当要按字节写的时候,就把高八位屏蔽掉。 A0与A14在EMIF中异或输出, A0不用(A0=0),则该引脚就是A14 字节使能位BE0n, BE1n Auto-Precharge 占用CE0, CE1两个CE空间 参考图9-19 C55x与64M位(4M×16) SDRAM的连接图

11 参考表2-24 C5509A存储器映射 C5509有SROM C5509A没有SROM, block block block
外部扩展存储空间(CE3) 当MPNMC=1时有效

12 10.1.5 数模转换电路 x1~x4为线性电压输入端; y1~y4为线性电压输出端
CS=0: 地址 CS=1: 地址 MODE=0 选择2线模式 参考图9-29 McBSP和AIC23B的数据接口接线图(两AIC23B为主模式) 表9-21 数字音频接口格式(地址: )寄存器的位MS=1

13 SD卡接口电路

14 USB接口电路 DSP芯片的USB相关引脚

15 自启动电路模块 系统复位时, 程序会自动跳转到0xFF8000处运行, 在这里固化着出厂时的引导程序。这段程序中系统会读取GPIO0~3的状态, 然后确定引导方式: 表10-1 GPIO引脚与系统上电引导方式表 GPIO0 GPIO1 GPIO2 GPIO3 说明 1 来自于Mcbsp0的串行EEPROM引导方式(24bit地址) USB接口引导方式 EHPI(多元引导)方式 EHPI(非多元引导)方式 来自于外部16bit异步内存的引导方式 来自于Mcbsp0的串行EEPROM引导方式(16bit地址) 并行EMIF引导方式(16bit异步内存) 来自Mcbsp0同步串行引导方式(16bit数据) 来自Mcbsp0同步串行引导方式(8bit数据)

16 自启动电路模块

17 第10章 C55x典型应用系统设计 10.1 典型DSP板的硬件设计 10.2 CPLD电路模块设计 10.3 DSP板测试程序
10.4 综合设计实例1: 自适应系统辨识 10.5 综合设计实例2: 数字式有源抗噪声耳罩

18 10.2 CPLD电路模块设计 10.2.1 概述 10.2.2 复位逻辑 10.2.3 控制寄存器的地址生成 10.2.4 用户寄存器
FLASH高位地址寄存器 控制寄存器数据的输出

19 10.2 CPLD电路模块设计 概述 利用小 规模逻 辑 器 件 译 码 的方式 己 不 能满 足 DSP 系统的要求。 同吋 DSP 系统中经常需要 外部专 门的快速逻辑控制电路的配合,这可由 CPLD 来 实现。 CPLD 是 Complex Programmable Logic Device 的简 称, 其时序严格 、速 度较快 、可编程性好, 非常适合 于实现译码和逻辑控制专门电路。 XILINX(赛灵思)公司的CPLD芯片XC95144XL, 用于: DSP复位逻辑控制; 外部存储器FLASH高位地址扩展; 系统外扩等。 CPLD代码使用VHDL语言编写。 VHDL (VHSIC Hardware Description Language(VHSIC硬件描述语言)。VHSIC(Very High Speed Integrated Circuit的缩写) 还有verilog HDL语言

20 输入 输出 输入 XC95144XL输入输出引脚的定义 DSP_CE2n 100-pin TQFP(81 user I/O pins)
输入 输出 DSP_CE2n 输入 100-pin TQFP(81 user I/O pins) 144-pin TQFP (117 user I/O pins) 144-CSP (117 user I/O pins) XC95144XL输入输出引脚的定义

21 10.2.2 复位逻辑 1. 输入信号: 2.输出信号: 电源芯片复位信号PWR_RSTn; 按键复位信号BTN_RST;
外部复位信号X_RSTn; 2.输出信号: VC5509A芯片系统复位信号DSP_RSTn; FLASH芯片复位信号FLASH_RSTn; 复位指示灯信号DSP_RSTn_LED。

22 SystemResetn<='0‘ when PWR_RSTn='0' or X_RSTn= '0' or BTN_RST = '1'
3. 代码: SystemResetn<='0‘ when PWR_RSTn='0' or X_RSTn= '0' or BTN_RST = '1' else '1'; DSP_RSTn<= '0' when SystemResetn = '0' DST_RST_LED<='0‘ when SystemResetn='0' FLASH_RSTn<='0‘ when SystemResetn='0' 输入信号 4.功能: 当PWR_RSTn(低电平有效)、X_RSTn(低电平有效) 、BTN_RST (高电平有效)有一个有效时, 即产生有效的复位信号DSP_RSTn (低电平有效)、FLASH_RSTn(低电平有效) 、DSP_RSTn_LED (低电平有效)。

23 控制寄存器的地址生成 用户寄存器和FLASH高位地址寄存器FHA与VC5509A通过EMIF接口联系, 其地址分别为0x400601、0x400602。 地址生成代码(由XC95144产生): CE2首字地址0x400000 REGCEn<='0' when DSP_CE2n='0' and DSP_ADDRH(13 downto 10)="0011" else '1'; GENERATE_ADDR: process(DSP_ADDRL) begin case DSP_ADDRL(4 downto 1) is when "0001"=> ChipEnables <=" “ ; -- USER REG 0x400601 when "0010"=> ChipEnables <=" “ ; -- FLASH REG 0x400602 when others=> ChipEnables <=" “ ; end case; end process; USER_REGCS<='1' when ChipEnables(0)='1' and REGCEn='0' else '0'; -- FLASH_REGCS<=1' when ChipEnables(1)='1' and REGCEn='0‘ else '0'; -- 符号后面是注释

24 用户寄存器 用户寄存器用于控制LED灯和读拨码开关状态, 长度为8位。高4位对应引脚USER_SW4~USER_SW1,用于读拨码开关状态; 低4位对应引脚USER_LED4~USER_LED1, 用于控制LED灯。 代码: process(SystemResetn, USER_REGCS, DSP_DQ , DSP_AWEn) begin if SystemResetn='0' then USER_REG(3 downto 0)<="1010"; elsif DSP_AWEn'EVENT and DSP_AWEn = '1' then _↑ ¯ if (USER_REGCS = '1') then USER_REG(3 downto 0) <= DSP_DQ(3 downto 0); end if; end process; USER_REG(7 downto 4) <= USER_SW(4 downto 1); read SW state USER_LED(4 downto 1)<=not USER_REG(3 downto 0);-- output LED state 符号后面是注释 取反

25 10.2.5 FLASH高位地址寄存器 该模块用于生成FLASH的高位地址信号A18~A13。 代码:
FLASH_CEn<= DSP_CE1n; FLASH_WEn<= DSP_AWEn; FLASH_OEn<= DSP_AOEn; process(SystemResetn, FHA_REGCS,DSP_DQ,DSP_AWEn) begin if SystemResetn = '0' then FHA_REG (5 downto 0) <= "000000"; -- elsif DSP_AWEn'EVENT and DSP_AWEn = '1' then -- _ _↑ ¯ ¯ if (FHA_REGCS = '1') then -- FHA_REG (5 downto 0) <= DSP_DQ(5 downto 0); end if; end process; FLASH_ADDR(18 downto 13) <= FHA_REG (5 downto 0);

26 10.2.6 控制寄存器数据的输出 下列代码可将对应控制寄存器中的内容送出供DSP读取: Multiplex多路复用
-- Mux the read data from all the registers and output for reads process(DSP_ADDRL,USER_REG,FLASH_REG) begin case DSP_ADDRL(4 downto 1) is when "0001" => MuxD <= USER_REG; when "0010" => MuxD <= "00" & FLASH_REG; when others => MuxD <= "ZZZZZZZZ"; end case; end process; DSP_DQ <= MuxD when (REGCEn = '0') and (DSP_AREn = '0') and (DSP_AOEn = '0') else "ZZZZZZZZ"; 高阻状态

27 第10章 C55x典型应用系统设计 10.1 典型DSP板的硬件设计 10.2 CPLD电路模块设计 10.3 DSP板测试程序
10.4 综合设计实例1: 自适应系统辨识 10.5 综合设计实例2: 数字式有源抗噪声耳罩

28 10.3 DSP板测试程序 10.3.1 LED灯和拨码开关测试程序 10.3.2 LED灯和拨码开关测试程序
SDRAM测试程序 FLASH测试程序 AIC23B测试程序

29 10.3 DSP板测试程序 10.3.1 LED灯和拨码开关测试程序
对于LED灯和拨码开关的操作是通过对CPLD上的用 户寄存器USER_REG进行读写来完成的。 用户寄存器地址为0x400601, 各位的定义: 7 6 5 4 3 2 1 SW4 SW3 SW2 SW1 LED4 LED3 LED2 LED1 R-x R-x R-x R-x R/W-0 R/W-0 R/W-0 R/W-0 测试程序功能:让LED灯依次点亮(1:亮;0:灭), 然后再依次熄灭。然后让LED灯闪烁3次, 最后循环读取SW1~SW4的值送LED1~LED4显示。

30 (1:亮;0:灭) for(i = 0; i < 8; i++) //将LED灯依次点亮,再依次熄灭
{ //因数组已定义LEDcode[8]={0,1,3,7,15, 7, 3,1,0} LedDisp(LEDcode[i]); Delay_ms(300) ; //延时300ms函数 } for(i = 0;i < 0x03;i++) //让LED灯闪烁3次 { LedDisp(0x00); //该函数将0送USER_REG中使灯全灭 Delay_ms(300); LedDisp(0x0F); //将0F送USER_REG中使灯全亮 while(1) //循环读取拨码开关的键值,送LED显示 readvalue = SwithRead();// SwithRead读取拨码开关的值 LedDisp(readvalue); //送LED灯显示 (1:亮;0:灭)

31 LED灯和拨码开关测试程序 GPIO0~GPIO3与拨码开关相连,在系统复位时用于 选择系统引导方式,当系统引导完毕后即可作为普通 GPIO来使用。 GPIO4、GPIO6、GPIO7以及XF连接了LED灯,输 出为0时点亮LED灯,输出为1时关闭LED灯。 注意: C5509A 的PGE封装无GPIO5引脚(BGA封装有) 测试程序功能: 先让GPIO4、XF、GPIO6、GPIO7闪烁3次, 然后循环检测GPIO0~GPIO3的值, 依次送GPIO4、XF、GPIO6和GPIO7显示。 以下程序所用到的函数部分可在CSL安装目录的库文件中查找:\C55xxCSL\lib\csl55xx.src, 类似前面用到的: D:\ti\ccsv5\tools\compiler\c5500_4.4.1\lib\rtssrc.zip(解压)

32 GPIO_RSET(IODIR,0xF0); //使GPIO0-3为输入,GPIO4-7为输出
for(i = 0;i<0x03;i++) { GPIO_RSET(IODATA,0x0f); //使GPIO4-7都输出0, 使3灯亮 CHIP_FSET(ST1_55,XF,0); //XF灯也点亮 Delay_ms(300); GPIO_RSET(IODATA,0xff); //3灯全灭 CHIP_FSET(ST1_55,XF,1); //XF灯也熄灭 } while(1) readvalue=GPIO_RGET(IODATA) & 0x0F; //读取GPIO0-3的值 GPIO_RSET(IODATA,readvalue<<4); //给GPIO4(6, 7)赋值 CHIP_FSET(ST1_55,XF,(readvalue & 0x02) >> 1); //将GPIO1的值与GPIO5(C5509A PGE无)对应, 赋给XF //GPIO_RSET设置IODIR值为0xF0 //设置IODATA值为0x0f 无GPIO5引脚 //CHIP_FSET设置ST1_55的XF=0 有关函数或宏定义在片上支持库安装文件夹C55xxCSL的csl55xx.src中 #define GPIO_RSET(Reg,Val) _PREG_SET(GPIO_ADDR(##Reg),Val) #define _PREG_SET(PregAddr, Val) PREG16(PregAddr)=(Uint16)Val #define PREG16(addr) (*(volatile ioport Uint16*)(addr)) #define CHIP_FSET(Reg,Field,Val) _CHIP_##Reg##_FSET(##Field,Val) 在csl55xx.src中依次可追究出对ST1_55的XF位清0 GPIO_RGET(IODATA)的追源: #define GPIO_RGET(Reg) _PREG_GET(GPIO_ADDR(##Reg)) #define _PREG_GET(PregAddr) PREG16(PregAddr) #define PREG16(addr) (*(volatile ioport Uint16*)(addr))

33 SDRAM测试程序 SDRAM占用两个空间: CE0和CE1, FLASH与SDRAM复用CE1空间。当CE1_1寄存器中的MTYPE为001b时, 表示CE1空间为16位异步存储器; 当MTYPE为011b时, 表示CE1空间为16位SDRAM。 测试程序功能:首先配置好EMIF,然后向SDRAM中写入1000个数据,接着将写入的数据读出,验证读出的数据是否正确,并对错误的数据个数进行计数。

34 EMIF_config(&emiffig); //初始化SDRAM
psrc = (Uint16 * )0x200000; //指向将要读写的地址 for(ii = 0;ii < 1000;ii++) //向对应地址中写入数据 { * psrc++ = ii; } psrc = (Uint16 * )0x200000; //重新指向将要读写的地址 if((* psrc) != (ii - 1)) error++; * psrc++; if(error == 0) printf("SDRAM test completed! No Error!"); while(1); //*psrc = ii; //psrc++;

35 FLASH测试程序 测试程序功能: 首先配置好EMIF,然后擦除整片FLASH。接着进行写操作, 先在0x 开始的地址写入1000个数据,然后在0x 开始的地址写入1000个数据。最后读取两块数据, 验证数据是否正确,并对错误的个数进行计数。 EMIF_config(&emiffig);//配置EMIF success = Flash_Erase_all();//需要大约14s才能擦除完毕 if(success == 1) printf("Flash erase successfully!!\n"); Flash_Write_init();//向flash中写入数据,有换页操作 for(ii=0;ii<1000;ii++) { Flash_Write(0x ii,ii); }

36 for(ii = 0;ii < 1000;ii++)
{ Flash_Write(0x ii, ii+1); //写入的数据与上面略有不同 } Flash_Write_end(); for(ii = 0;ii < 1000;ii++) //读取写入flash中的数据,并验证 if(Flash_Read(0x ii) != (ii - 1)) error++; if(Flash_Read(0x ii) != ii+1) error++; if(error == 0) printf("FLASH test completed! No Error!"); while(1);

37 AIC23B测试程序 板上共有2片AIC23B。控制接口部分使用I2C总线, 两个芯片的地址分别为0x1A和0x1B;数字接口部 分使用了两个McBSP接口:McBSP和McBSP1。 测试程序功能:首先对AIC23B进行初始化,配置 启动McBSP0和McBSP1,然后进入一个循环。在 循环中,等待数据接收,待接收完毕后将其存入 一个数组,再将接收到的数据发送出去。

38 //AIC23_Init()定义见实验Lab0701, Lab0702的aic23.c程序
AIC23_Init(); //AIC23B初始化, hMcbsp0=MCBSP_open(MCBSP_PORT0, MCBSP_OPEN_RESET); //打开McBSP0 hMcbsp1=MCBSP_open(MCBSP_PORT1, MCBSP_OPEN_RESET); //打开McBSP1 MCBSP_config(hMcbsp0, &McbspConfig);//配置McBSP0 MCBSP_config(hMcbsp1, &McbspConfig);//配置McBSP1 MCBSP_start(hMcbsp0, MCBSP_RCV_START|MCBSP_XMIT_START, 0x3000); //开启McBSP0发送和接收 MCBSP_start(hMcbsp1, MCBSP_RCV_START|MCBSP_XMIT_START, 0x3000); //开启McBSP1发送和接收 用结构体McbspConfig

39 while(1) {for(i=0;i<LENGTH;i++) {while(!MCBSP_rrdy(hMcbsp0)) {}; //判断是否有数据收到,若无则 等待 aic23data = MCBSP_read32(hMcbsp0); //接收数据 aic0R[i]=(unsigned int) aic23data & 0xffff;//AIC23B0右声道数 据 aic0L[i]=(unsigned int)(aic23data>>16)&0xffff;//AIC23B1左 声道数据 while(!MCBSP_xrdy(hMcbsp0)){};//判断是否准备好发送,若无则等 待 MCBSP_write32(hMcbsp0,aic23data);//发送数据 while(!MCBSP_rrdy(hMcbsp1)){};//判断是否有数据收到,若无则等 待 aic23data=MCBSP_read32(hMcbsp1); //接收数据 aic1R[i]=(unsigned int)aic23data&0xffff;//AIC23B1右声道数据 aic1L[i]=(unsigned int)(aic23data>>16)&0xffff;//AIC23B1左 声道数据 while(!MCBSP_xrdy(hMcbsp1)){};//判断是否准备好发送,若没有则 等待 MCBSP_write32(hMcbsp1,aic23data);//发送数据 }

40 第10章 C55x典型应用系统设计 10.1 典型DSP板的硬件设计 10.2 CPLD电路模块设计 10.3 DSP板测试程序
10.4 综合设计实例1: 自适应系统辨识 10.5 综合设计实例2: 数字式有源抗噪声耳罩

41 10.4 综合设计实例1:自适应系统辨识 基于LMS算法的自适应滤波器

42 自适应系统辨识算法 算法收敛后,N为辨识长度 :

43 辨识系统硬件设计

44 辨识系统软件设计 1.主程序

45 #include "5509.h" // 5509片上资源声明 #include "util.h" #include "math.h" int n_iden,N_iden; //声明辨识计数器和辨识时间长度 int L; // 声明滤波器阶数 int timer_flag; // 声明定时器状态标志位 float Fs,Ts; // 声明采样频率与采样时间 float Mu;// 声明收敛因子 float *w; // 声明自适应滤波器系数指针 float *x; // 声明自适应滤波器参考输入向量指针 float desizedSignal; // 声明期望信号 float ErrorSignal; // 声明误差信号 int whiteNoise; // 声明白噪声信号

46 void PLL_Init(); //声明锁相环配置函数
void wait(unsigned int cycles); //声明延时函数 void SDRAM_Init(); //声明存储器配置函数 void AIC23_Init(); //声明AIC23B配置函数 void INTR_Init(); //声明中断初始化函数 void TIMER_Init(); //声明定时器初始化函数 void TIMER_Start(); //声明定时器启动函数 void interrupt Timer(); //声明定时器中断服务程序 void LMS_Filter(); //声明自适应滤波程序

47 void main() { int temp; /* */ /* VC5509A初始化 */ /* */ PLL_Init(144); //锁相环配置,CPU时钟频率设置为144MHz wait(30); //延时 SDRAM_Init(); //存储器配置 INTR_Init(); //中断初始化 TIMER_Init(); //定时器初始化 /* */ /* 变量初始化 */ n_iden=0; // 辨识计数器清0 N_iden=8000; //辨识时间长度赋值

48 L=200; // 滤波器阶数赋值 Fs=2000; // 采样频率赋值 Ts=1/Ts; // 计算采样时间 timer_flag=0; //定时器状态标志位初始化 Mu=0.01;//收敛因子赋值 TIMER_Start();//启动定时器 while(n_iden 1 <N_iden) { if(timer_flag==1) timer_flag=0; whiteNoise=rand()-0x4000; //生成白噪声信号,取值范围-16384至+16383 Write(pMCBSP0->dxr2, whiteNoise); //发送噪声数据到AIC23B(0)左输出通道

49 while(!ReadMask(pMCBSP0-> spcr2, SPCR2_XRDY)); //是否准备好接收数据, 若无则等待
temp=Read(pMCBSP0->ddr2); //通过AIC23B(0)左输入通道引脚读取待辨识系统的输出信号 desizedSignal=(float)temp/32768; //对输入信号进行类型转换及归一化得到期望信号 LMS_Filter();//调用LMS自适应滤波程序 n_iden= n_iden+1; } while(1){}; //辨识完成,可取滤波器系数作为待辨识系统的冲击响应

50 2.自适应滤波子程序 LMS_Filter()
{PC55XX_MCSP pMCBSP0=(PC55XX_MCSP)C55XX_MSP0_ADDR; int i; float alpha; for(i=L;i<0;i--) //构造当前时刻参考信号向量 { x[i] = x[i-1]; } x[0]=(float)whiteNoise/32768; //对白噪声信号进行类型转换及归一化得到参考信号 float y=0.0; for(i=0;i<L;i++) //滤波器计算 { y = y + w[i]*x[i]; } ErrorSignal = desizedSignal - y; alpha=Mu*ErrorSignal; for(i=0;i<L;i++) //更新滤波器系数 { w[i]=w[i]+ alpha*x[i]; } }

51 3.定时器中断服务程序 4. 其它程序 void interrupt Timer() //中断服务程序 { timer_flag=1; }
本例主要代码放在main函数中,定时器中断服务 程序只是设置timer_flag=1,告知主程序新的采样 时间到。 4. 其它程序 限于本书篇幅,其它程序模块不再赘述。

52 第10章 C55x典型应用系统设计 10.1 典型DSP板的硬件设计 10.2 CPLD电路模块设计 10.3 DSP板测试程序
10.4 综合设计实例1: 自适应系统辨识 10.5 综合设计实例2: 数字式有源抗噪声耳罩

53 10.5 综合设计实例2:数字式有源抗噪声耳罩 概述 工作原理:利用传声器监测待消除的噪声信号,由控制器进行处理后发出一个与原噪声信号幅度相同、相位相反的反噪声信号,使二者相互抵消,从而达到消除噪声的目的 特点:低频抗噪效果好、重量轻、透气性好、不影响正常通讯等

54 系统工作原理和控制算法 1. 工作原理 图10-17 有源耳罩(单耳)示意图

55 S(z)为次级通道,包括反噪声输出通道的数模转换、重构滤波、功率放大器、扬声器,从扬声器Y到误差传声器M2的声通道,以及误差信号通道的传声器、放大、抗混叠滤波、模数转换等环节。
P(z)为初级通道,包括参考噪声信号通道的模数转换、抗混叠滤波、放大、传声器,从参考传声器M1到误差传声器M2的声通道,以及误差信号通道的传声器、放大、抗混叠滤波、模数转换等环节。 W(z)为控制器,通常取有限冲击响应(FIR)结构。 2.控制算法 次级通道S(z) 的模型,需要进行估计或辨识。 为叙述简单起见,本系统采用有源噪声控制中常用的FXLMS算法。 图10-18 FXLMS算法


Download ppt "DSP原理与应用 第10章 C55x典型应用系统设计"

Similar presentations


Ads by Google