DSP实验二要点
DSP实验报告2(精)

实验报告2 ——DSP汇编语言编程基础一.实验目的1、了解DSP 的寻址方式;2、了解DSP 的汇编语言与C 语言混合编程。
二、实验器材1、安装有CCS 的PC 机一台;三、实验内容1、建立一个工程;2、用汇编语言编程实现一个可被C 程序调用的例程。
四、实验步骤1、汇编语言和C 语言混合编程:①运行CCS ,建立一个工程,取名exp2a ,并保存到c:\ti\myprojects\xxx\Experiment2 \目录下。
②编辑如下C 文件,取名exp2a.c 并保存到c:\ti\myprojects\xxx\Experiment2\exp2a\目录。
/* Assembly routine */extern int sum(int *);/* define x[] as global array */int x[2]={0x1234,0x4321};/* define result s as global variable */int s;void main(){s = sum (x); /* return sum product */}③编辑如下汇编文件,取名exp2_sum.asm 并保存到c:\ti\myprojects\xxx\Experiment2\ exp2a\目录。
* * * * * * * * * * * * * * * * * * * * * * * * * * * * ** exp2_sum.asm SUM subroutine* called by exp2a.c* Input: Array pointer* Output: Return sum result in T0* * * * * * * * * * * * * * * * * * * * * * * * * * * * *.global _sum_summov *AR0+,AC0 ; AC0 = x[1]add *AR0+,AC0 ; AC0 = x[1]+x[2]mov AC0,T0ret ; Return T0.end④编辑如下链接命令文件,取名link.cmd 并保存到c:\ti\myprojects\xxx\Experiment2 \exp2a\目录。
DSP实验指导书(2)

DSP原理及应用实验指导书电气与电子工程学院实验六QDMA 读写实验一、实验目的:1.了解QDMA原理;2.熟悉QDMA的接口的配置;3.掌握QDMA的操作.二、实验内容:1.DSP 初始化;2.QDMA 配置;三、实验背景知识:QDMA 控制器可以在没有CPU参与的情况下完成存储器影射空间中的数据传输. 这些数据的传输可以是在片内存储器、片内外设或是外部器件之间,而且是在CPU操作后台进行的.QDMA 控制器的主要特点:1.后台操作:DMA 控制器可以独立于CPU工作.2.高吞吐率:可以以CPU时钟的速度进行数据吞吐.3.6个通道:DMA 控制器可以控制6 个独立通道的传输.4.辅助通道:该通道允许主机口向CPU的存储器空间进行请求.辅助通道与其他通道间的优先级可以设置.5.通道分割〔即Split-channel〕操作:利用单个通道就可以与一个外设间同时进行数据的读取和写入,与存在两个DMA 通道的效果一样.6.多帧〔Multiframe〕传输:传送的每个数据块可以含有多个数据帧.7.优先级可编程:每一个通道对于CPU的优先级是可编程确定的.8.可编程的地址产生方式:每个通道的源地址寄存器和目标地址寄存器对于每次读和写传输都是可配置的.地址可以是常量、递增、递减,或是设定地址索引值.9.自动初始化:每传送完一块数据,DMA 通道会自动重新为下一个数据块的传送做好准备.10.事件同步:读、写和帧操作都可以由指定的事件触发.11.中断反馈:当一帧或一块数据传送完毕,或是出现错误情况时,每一个通道都可以向CPU发送中断.四、实验要求:通过本实验,了解QDMA接口的配置及应用.五、实验程序功能与结构说明:➢QDMA 实验包含文件本次实验我们使用Test2011里面的0502的QDMA工程文件.1.main.c:实验的主程序,包含了系统初始化,系统时钟设置,QDMA通道CACHE 以及定时器设置,运行DMA 转移函数等;2.C6x.c:对SEED-DEC6713 各项资源操作的函数集,主要包含系统初始化函数,对CPLD 的各个控制函数.3.vecs.asm:包含定时器中断的中断向量表.4.linkd:声明了系统的存储器配置与程序各段的连接关系.➢程序流程图六、实验准备:1.将DSP 仿真器与计算机连接好;2.将DSP 仿真器的JTAG插头与SEED-DEC6713 单元的J2 相连接;3.打开SEED-DEC6713 的电源.观察SEED-DTK_MBoard单元的+5V,+3.3V,+15V, -15V 的电源指示灯以及SEED_DEC6713的电源指示灯D1、D3 是否均亮;若有不亮的,请断开电源,检查电源.七、实验步骤:1.打开CCS,进入CCS 的操作环境.2.装入QDMA.pjt 工程文件.3.打开main.c 程序,运行并下载程序.4. 设置断点,打开0x20000和0x21000开始的存储空间,运行程序.5.观察相关存储单元值的变化,验证QDMA相关原理.大家可以通过设置不同QDMA_S_OPT寄存器的值来观察其他的数据搬移效果实验七定时器控制实验一、实验目的:1.了解TMS320VC6713 的定时器;2.熟悉定时器各寄存器的配置;3.掌握TMS320VC6713 的中断结构和对中断的处理流程;4.学会C 语言中断程序设计,以及运用中断程序控制程序流程二、实验内容:1.系统初始化;2.定时器中断初始化;三、实验背景知识:TMS320C6713 片内集成了2 个32BIT 的通用TIMER,TIMER的原理框如下图.这些时钟有两种信号模式,可以用内部或外部时钟源做为时钟计数.这些时钟有两个PIN 脚:输入和输出PIN脚,可以用做时钟输入和时钟输出;也可以用做GPIO.在SEED-DEC6713 中,2 个TIMER配置为:z TIMER0 配置为外部扩展空间或内部使用;z TIMER1 配置为外部扩展空间或内部使用;本实验采用的定时器是TIMER1.四、实验要求:通过本实验,熟悉中断的结构及用中断程序控制程序流程,掌握定时器的应用.五、实验程序功能与结构说明:➢LED实验包含文件1.DEC6713_Timer.c:实验的主程序,包含了系统初始化,定时器中断初始化,定时器中断程序等.2.DEC6713.c:对SEED-DEC6713 各项资源操作的函数集,主要包含系统初始化函数,对CPLD 的各个控制函数.3.vecs.asm: 包含定时器中断的中断向量表.4.SEED_DEC6713d: 声明了系统的存储器配置与程序各段的连接关系.5.DEC6713.gel:系统初始化程序➢程序流程图Main 程序流程图定时器中断流程图六、实验准备:首先将光盘下03. Examples of Program \ 04. SEED_DTK-EPD实验程序目录下的3.2.7 Timer的文件夹拷贝到D:盘根目录下.1.将DSP 仿真器与计算机连接好;2.将DSP 仿真器的JTAG插头与SEED-DEC6713 单元的J2 相连接;3.打开SEED-DTK6713 的电源.观察SEED-DTK_MBoard 单元的+5V,+3.3V,+15V,-15V 的电源指示灯以及SEED_DEC6713 的电源指示灯D1、D3 是否均亮;若有不亮的,请断开电源,检查电源.七、实验步骤:1.打开CCS,进入CCS 的操作环境.2.装入time.pjt 工程文件, 添加DEC6713.gel 文件.3.装载time.out 文件,进行调试.4.打开DEC6713_Timer.c,在程序的第163行"TimerEventHandler<>;"处设置断点.5.运行程序,程序会停在断点处,表明已进入定时器中断.此时观察CCS 下方的"Stdout"窗口,会看到"Count:1".继续运行程序,程序每次都会停在断点处,连续进入中断60次后,退出主程序.如下图所示:提示:实验者可根据自己的需要改变周期寄存器的值,从而控制每次进中断的时间.实验八PLL锁相环实验一、实验目的:1.了解TMS320VC6713 的PLL锁相环;2.熟悉锁相环各寄存器的配置;3.掌握锁相环初始化的过程操作二、实验内容:1.系统初始化2.锁相环初始化3.改变锁相环的相关寄存器的值观察实验结果的变化情况三、实验背景知识:1.锁相环由锁相环乘法器<PLLM>、分频器<OSCDIV1、D0、D1、D2、D3>和复位控制器等部分组成,可通过软件进行配置,见图8-1.锁相环的输入参考时钟为来自CLKIN引脚的外部晶体振荡器的输入信号<CLKMODE0 = 1>,通过使用可配置的乘法器和分频器,在DSP内部,锁相环可灵活方便地修改输入的时钟信号,最后生成的时钟被传送到DSP内核、外围设备和其它的DSP内部模块2.锁相环模式<PLLEN=1>,当系统要使用分频器D0和乘法器的时候,进行此初始化过程.•在PLLCSR寄存器中,设置PLLEN=0<禁用模式>•等待最慢的PLLOUT信号或者参考时钟源<CLKIN>四个周期•在PLLCSR寄存器中,设置PLLRST=1<PLL被复位>•如果有必要,对PLLDIV0和PLLM编程•如果有必要,对PLLDIV1-n编程,必须执行此操作来使分频器更新比例系数•等待锁相环正确地复位•在PLLCSR寄存器中,设置PLLRST=0,使锁相环退出复位状态•等待锁相环锁定•在PLLCSR寄存器中,设置PLLEN=1来使能锁相环模式四、实验要求:通过本实验,熟悉锁相环的结构和功能及初始化过程中相关寄存器的配置,掌握锁相环的应用.五、实验程序功能与结构说明:实验中通过软件对锁相环和锁相环控制寄存器进行初始化,通过对锁相环和其相关寄存器的正确配置,产生DSP各个模块或者外围设备所需要的时钟信号.六、实验准备:1.将DSP 仿真器与计算机连接好;2.将DSP 仿真器的JTAG插头与SEED-DEC6713 单元的J2 相连接;3.打开SEED-DTK6713 的电源.观察SEED-DTK_MBoard 单元的+5V,+3.3V,+15V,-15V 的电源指示灯以及SEED_DEC6713 的电源指示灯D1、D3 是否均亮;若有不亮的,请断开电源,检查电源.七、实验步骤::1.打开CCS,进入CCS操作环境2.打开Test2001文件里面的SpeedUSB.pjt工程文件3.编译、下载main.c文件4.结合上节定时器实验,修改相关寄存器,观察输出的快慢变化。
DSP实验报告定时器2

实验二DSP系统定时器的使用一、实验目的:1、掌握5402 DSP片上定时器的初始化设置及应用;2、掌握DSP系统中实现定时的原理及方法;3、了解5402 DSP中断寄存器IMR、IFR的结构和使用;4、掌握5402 DSP系统中断的初始化设置过程和方法;5、掌握在C语言中嵌入汇编语句实现数字I/O的方法。
二、实验原理:1、定时器及其初始化在5402内部包括两个完全相同的定时器:定时器0和定时器1。
每个定时器分别包括3个寄存器:定时器周期寄存器PRD、定时器寄存器TIM、定时器控制寄存器TCR,其中TCR 寄存器中包括定时器分频系数TDDR、定时器预分频计数器PSC两个功能寄存器。
通过PRD 和TDDR可以设置定时器的初始值,TIM(16bits)和PSC(4bits)是用于定时的减法计数器。
CLKOUT是定时器的输入时钟,最大频率为100Mhz。
定时器相当于20bit的减法计数器。
定时器的结构如图1所示。
图1 定时器的组成框图定时器的定时周期为:CLKOUT×(TDDR+1)×(PRD+1)其中,CLKOUT为时钟周期,TDDR和PRD分别为定时器的分频系数和时间常数。
在正常工作情况下,当TIM减到0后,PRD中的时间常数自动地加载到TIM。
当系统复位或者定时器单独复位时,PRD中的时间常数重新加载到TIM。
同样地,每当复位或PSC减到0后,定时器分频系数TDDR自动地加载到PSC。
PSC在CLKOUT作用下,作减1计数。
当PSC 减到0时,产生一个借位信号,令TIM作减l计数。
TIM减到0后,产生定时中断信号TINT,传送至CPU和定时器输出引脚TOUT。
例如:欲设置定时器0的定时周期为1ms,当DSP工作频率为100Mhz时,通过上式计算可得出:TDDR=15,PRD=6520。
2、定时器的使用下面是一段定时器应用程序,每检测到一次中断,ms+1,利用查询方式每计500个数就令XF引脚的电平翻转一次,在XF引脚输出一矩形波信号,因定时器1ms中断一次,故500ms就使LED翻转一次,这样LED指示灯就不停地闪烁。
DSP实验报告_6

实验一: 闪灯实验熟悉DSP 软硬件测试系统实验目的1.了解SHARC 系列高性能数字信号处理器的程序开发过程和编程语言;2.熟悉集成开发工具VisualDSP++, 学会使用VisualDSP++进行SHARC 系列ADSP 的程序开发、编译与调试;3.掌握SHARC 系列ADSP 的程序加载设计和加载过程。
实验内容利用波形产生信号板, 结合FPGA 编程技术和程序编程器, 编写测试ADSP21065L 和FPGA 之间硬件连接的应用程序, 同时完成应用程序的加载和脱机操作, 在信号指示灯“HL2”上产生可调周期的脉冲信号, “点亮”与“熄灭”指示灯HL2。
实验要求通过DSP 编程, 在其FLAG11引脚上模拟如下波形的周期信号:要求:(1) 500H T ms >,500L T ms >. (2) 并用示波器查看波形, 测量信号周期。
实验步骤1. 熟悉电路图, 清楚波形产生电路板ADSP21065L 与可编程FPGA 器件之间的连接关系;2. 编写FPGA 程序。
在FPGA 内部将ADSP21065L 的标志引脚FLAG11(引脚号26)设置为输出, 作为FPGA 的输入信号, 在FPGA 内部编程将该信号直接输出在发FPGA 的37引脚号上, 设置37引脚为输出信号, 驱动板上的HL2 LED 指示灯;3. 启动VisualDsp++4.5,选择project 工程选项菜单, 创建一个名称为Test.dpj 的工程文件, 选择处理器的型号为ADSP-21065L ;4.弹出一个对话框, 选择是否需要加入VDSP kernel ,选择“NO ”;5. 在工程中加入以下参考源文件:\exp1\test(boot)\ boot1.asm 和boot1.ldf 6.编译, 链接调试, 生成可执行文件。
7.运行程序, 可以看到波形发生电路板上的指示灯“HL2”不断闪动。
8. 利用示波器观测系统时钟,并测量产生信号的波形和周期。
DSP实验报告(二)

DSP实验报告(二)实验二应用FFT对信号进行频谱分析一、实验目的1、在理论学习的基础上,通过本次实验,加深对快速傅里叶变换的理解,熟悉FFT算法及其程序的编写。
2、熟悉应用FFT对典型信号进行频谱分析的方法。
3、了解应用FFT进行信号频谱分析过程中可能出现的问题,以便在实际中正确应用FFT。
二、实验原理与方法①一个连续信号的频谱可以用它的傅立叶变换表示为+ Xa(jW)=-jWtx(t)edtòa-如果对该信号进行理想采样,可以得到采样序列x(n)=xa(nT)同样可以对该序列进行z变换,其中T为采样周期X(z)=+ x(n)z-n+ -令z为ejw,则序列的傅立叶变换X(ejw)=x(n)ejwn-其中ω为数字频率,它和模拟域频率的关系为w=WT=W/fs式中的是采样频率。
上式说明数字频率是模拟频率对采样率的归一化。
同模拟域的情况相似。
数字频率代表了序列值变化的速率,而序列的傅立叶变换称为序列的频谱。
序列的傅立叶变换和对应的采样信号频谱具有下式的对应关系。
1X(e)=Tjw+ - w-2pXa(j)T即序列的频谱是采样信号频谱的周期延拓。
从式可以看出,只要分析采样序列的谱,就可以得到相应的连续信号的频谱。
注意:这里的信号必须是带限信号,采样也必须满足Nyquist定理。
在各种信号序列中,有限长序列在数字信号处理中占有很重要的地位。
无限长的序列也往往可以用有限长序列来逼近。
有限长的序列可以使用离散傅立叶变换。
当序列的长度是N时,定义离散傅立叶变换为:X(k)=DFT[x(n)]=其中W=e2pj-NN-1n=0WNkn它的反变换定义为:1x(n)=IDFT[X(k)]=N根据式和,则有N-1n=0X(k)WNknX(z)|z=Wnk=NN-1n=0x(n)WNnk=DFT[x(n)]j2pN可以得到X(k)2pk的点,就NN是将单位圆进行N等分以后第k个点。
所以,X(k)是z变换在单位圆上的等距采样,或者说是序列傅立叶变换的等距采样。
DSP技术 实验二报告模板

《DSP技术》课程实验报告学生姓名:所在班级:指导教师:记分及评价:一、实验名称:拨码开关实验二、实验目的了解DSP开发系统的组成和结构;了解IO的基本编程方法三、实验内容修改例子程序,实现以下功能:(1)调试例子程序,理解程序设计思想;(2)修改例子程序,实现每个拨码开关控制一种不同的LED花样显示。
(3)实现LED流水灯的功能,并且实现由拨码开关键值控制LED流水灯的频率(按键值与LED流水灯频率关系自定义,至少提供两种不同的LED流水灯变化的频率)(加分)四、实验程序与结果分析void Delay(int n){int i=0,j;for(j=0; j<n; j++)for(i=0;i<1000;i++);}void main(void){unsigned int temp,m;unsigned int temp1[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};temp = 0;InitSysCtrl();//初始化PLL,WatchDog,使能外围时钟,该初始化文件在"DSP281x_SysCtrl.c"中DINT;//关闭CPU中断// Initialize PIE control registers to their default state.// The default state is all PIE interrupts disabled and flags// are cleared.InitPieCtrl();IER = 0x0000;//关闭中断和清除所有中断标志IFR = 0x0000;// Initialize the PIE vector table with pointers to the shell Interrupt // Service Routines (ISR).InitPieVectTable();for(;;){asm(" nop ");temp = *(int *)0x2200&0x00ff;switch(temp){case 0xfe: * (int *)0x2200 = temp1[0];break;case 0xfd: * (int *)0x2200 = temp1[1];break;case 0xfb: * (int *)0x2200 = temp1[2];break;case 0xf7: * (int *)0x2200 = temp1[3];break;case 0xef: * (int *)0x2200 = temp1[4];break;case 0xdf: * (int *)0x2200 = temp1[5];break;case 0xbf: * (int *)0x2200 = temp1[6];break;case 0x7f: * (int *)0x2200 = temp1[7];break;}asm(" nop ");if(temp==1){for(m=0; m<8; m++){Delay(1200);* (int *)0x2200 = ~(1<<m);Delay(200);}}if(temp==3){for(m=0; m<8; m++){Delay(800);* (int *)0x2200 = ~(1<<m);Delay(100);}}//temp值输出0x2200地址的LED灯asm(" nop ");}}五、小结通过这次试验让我明白不同模块可以共用同一个地址,这应该是时分复用的功劳吧,其次0x200这地址允许读写操作,这次的试验箱改变以往地址低位在后的设计应该是别出心裁的,目的应该是考验学生对地址的理解。
DSP实验报告最终版

小组成员
一、实验说明:
为了保证生产质量、生产效率和生产的安全性,在钢铁企业的定期常规设备检修必不可少,在设备检修的过程中,为了保证检修人员的人身安全和设备的安全,通常需设置检修报警提示,如:检修警报、检修指示灯等。
本次实验设计钢铁企业的滚带传送装置的检修控制系统,需要检修时,首先停止传动皮带的工作,切换到检修警报,检修警报开始工作以保证检修人员和设备的安全。当检修工作完成后,停止警报装置,返回传动电机的正常工作状态。
南-绿
北-红
北-黄
北-绿
两个寄存器的地址均映射到2812DSP的扩展空间,CTRLR,DSP通过对该地址的写操作来修改二个寄存器各位的状态,当寄存器某位取‘1’时,相应提示灯被点亮,取‘0’则熄灭。当写入CTRLR的数据(8位有效值)的高两位为‘00’时,数据的低6位将写入EWR寄存器;高两位为‘01’时,数据的低6位将写入SNR寄存器。
图3 利用开关管对直流电动机进行PWM调速控制的原理图和输入输出电压波形 上图是利用开关管对直流电动机进行PWM调速控制的原理图和输入输出电压波形。图中,当开关管MOSFET的栅极输入高电平时,开关管导通,直流电动机电枢绕组两端有电压Us,t1秒后,栅极输入变为低电平,开关管截止,电动机电枢两端电压为0。T2秒后,栅极输入重新变为高电平,开关管的动作重复前面的过程。这样,对应着输入的高低电平,直流电动机电枢绕组两端的电压波形如图中所示。电动机的电枢绕组两端的电压平均值Uo为:
图中PWM输入对应ICETEK-CTR-A板上P4外扩插座第26引脚的S22信号,DSP将在此引脚上给出PWM信号开控制直流电机转速;图中的DIR输入引脚ICETEK-CTR-A板上P4外扩插座第29引脚的S14信号,DSP将在此引脚上给出高电平或低电平来控制直流电机的方向。从DSP输出的PWM信号和转向信号先经过2个与门和1个非门再与各个开关管的栅极相连。
DSP原理及应用——实验二

修改后请重新启动CCS软件。)
(3)请修改指令STH B,*(y) 和STL B,*(y+1)中的“*”为“@”,并添加DP 页指针赋值指令,以获取正确结果. 思考题二提示: 在程序调试运行之前,打开“Quick watch”窗口,输入标号“done-1”和 “AAA”,观察其地址是否相等.
实验二: 算术运算程序设计
• 1、实验要求: 用软件仿真的方法编译并调试实验 指导书P19-P22页的实验参考程序, 在存储器中观察正确结果。
• 2、实验步骤
仿照实验一操作步骤进行CCS软件仿真 设置,建立工程和文件,进行编译、装 载和仿真调试(也可参阅附件文档2), 结合思考题完成实验。写实验报告时自 行写出实验步骤。 注意:请按照实验指导书对程序进行修改 (保存好第1次建立的工程和文件),观 察clock的变化!!
• 3、实验程序——算术运算程序
(1)汇编主程序文件
(2)中断向量表文件
(3)链接命令表文件
• 进一步优化的汇编主程序文件:
• 4、实验思考题: (1)该程序完成了什么功能?解释主 程序每条汇编指令及伪指令的含义。 (2)如果在指令“ADD,A,B”前面添加 标号“AAA”,然后将指令“RPTB done1”改为“RPTB AAA”,调试结果正确否? 为什么该循环指令的终止地址要用 “done-1”而不直接用“AAA”? (注意:
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三 IIR 滤波器设计一、实验目的:1.认真复习滤波器幅度平方函数的特性,模拟低通滤波器的巴特沃思逼近、切比雪夫型逼近方法;复习从模拟低通到模拟高通、带通、带阻的频率变换法;从模拟滤波器到数字滤波器的脉冲响应不变法、双线性变换法的基本概念、基本理论和基本方法。
2掌握巴特沃思、切比雪夫模拟低通滤波器的设计方法;利用模拟域频率变换设计模拟高通、带通、带阻滤波器的方法.。
3.掌握利用脉冲响应不变法、双线性变换法设计数字滤波器的基本方法;能熟练设计巴特沃思、切比雪夫低通、带通、高通、带阻数字滤波器。
4.熟悉利用MATLAB 直接进行各类数字滤波器的设计方法。
二、实验内容a. 设计模拟低通滤波器,通带截止频率为10KHz,阻带截止频率为16KHz,通带最大衰减1dB,阻带最小衰减20dB。
(1) 分别用巴特沃思、切比雪夫I、切比雪夫II 型、椭圆型滤波器分别进行设计,并绘制所设计滤波器的幅频和相频特性图。
(2) 在通带截止频率不变的情况下,分别用n=3,4,5,6 阶贝塞尔滤波器设计所需的低通滤波器,并绘制其相应的幅频响应和相频响应图。
%%%%%%%%%----巴特沃思-----%%%%%%%clc;clear all;omegap=10000*2*pi;omegas=16*10^3*2*pi;Rp=1;As=20;[N,omegac]=buttord(omegap,omegas,Rp,As,'s');%低通的节次[b,a]=butter(N,omegac,'s');[H,w]=freqs(b,a);%设计滤波器的幅频和相频特性图subplot(211)plot(w/2*pi/1000,20*log10(abs(H)))title('巴特沃思幅频特性')Angle=angle(H);%相频subplot(212)plot(w/2*pi/1000,Angle)title('相频特性')%%%%%%%%%----切比雪夫I-----%%%%%%%[NI,omegacI]=cheb1ord(omegap,omegas,Rp,As,'s');%低通的节次[b1,a1]=cheby1(NI,Rp,omegacI,'s');%切比雪夫I模拟低通滤波器[H1,w1]=freqs(b1,a1);figuresubplot(211)plot(w1/2*pi/1000,20*log10(abs(H1)))title('切比雪夫I幅频特性')Angle1=angle(H1);%相频subplot(212)plot(w1/2*pi/1000,Angle1)title('相频特性')%%%%%%%%%----切比雪夫II-----%%%%%%%[NII,omegacII]=cheb2ord(omegap,omegas,Rp,As,'s');%低通的节次[b2,a2]=cheby2(NII,As,omegacII,'s');%切比雪夫II模拟低通滤波器%w0=[omegap,omegas];[H2,w2]=freqs(b2,a2);figuresubplot(211)plot(w2/2*pi/1000,20*log10(abs(H2)))title('切比雪夫II幅频特性')Angle2=angle(H2);%相频subplot(212)plot(w2/2*pi/1000,Angle2)title('相频特性')%%%%%%%%%----椭圆型滤波器-----%%%%%%%[Nt,omegact]=ellipord(omegap,omegas,Rp,As,'s');%低通的节次[bt,at]=ellip(Nt,Rp,As,omegact,'s');%椭圆型滤波器模拟低通滤波器%w0=[omegap,omegas];[H3,w3]=freqs(bt,at);figuresubplot(211)plot(w3/2*pi/1000,20*log10(abs(H3)))title('椭圆型滤波器幅频特性')Angle3=angle(H3);%相频subplot(212)plot(w2/2*pi/1000,Angle3)title('相频特性')(2)%%%%%%%%%----贝塞尔滤波器n=3、4、5、6-----%%%%%%% clc;clear all;omegap=10000*2*pi;Rp=1;As=20;for n=3:6[b,a]=besself(n,omegap);%低通的节次[H,w]=freqs(b,a);%设计滤波器的幅频和相频特性图figuresubplot(211)plot(w/2*pi/1000,20*log10(abs(H)))title('幅频特性')Angle=angle(H);%相频subplot(212)plot(w/2*pi/1000,Angle)title('相频特性')Endb. 设计模拟高通滤波器,通带截止频率为2000Hz,阻带截止频率1500Hz,通带最大衰减为3dB,阻带最小衰减为15dB。
(1) 分别用巴特沃思、切比雪夫I 型滤波器首先设计模拟低通滤波器,再通过频率转换成高通滤波器,并分别绘制所设计滤波器的幅频和相频特性图。
%%%%%%%%%----巴特沃思低通转化为高通-----%%%%%%%clc;clear all;omegap=2000*2*pi;omegas=1500*2*pi;Rp=3;As=15;[N,omegac]=buttord(omegap,omegas,Rp,As,'s');%低通的节次[b,a]=butter(N,omegac,'s');[bt,at]=lp2hp(b,a,omegac);%巴特沃思低通转化为高通[H,w]=freqs(bt,at);%设计滤波器的幅频和相频特性图subplot(211)plot(w/2*pi/1000,20*log10(abs(H)))title('巴特沃思幅频特性')Angle=angle(H);%相频subplot(212)plot(w/2*pi/1000,Angle)title('相频特性')%%%%%%%%%----切比雪夫I低通转化为高通-----%%%%%%% [NI,omegacI]=cheb1ord(omegap,omegas,Rp,As,'s');%低通的节次[b1,a1]=cheby1(NI,Rp,omegacI,'s');%切比雪夫I模拟低通滤波器[bg,ag]=lp2hp(b1,a1,omegacI);%切比雪夫I低通转化为高通w0=[omegap,omegas];[H1,w1]=freqs(bg,ag);figuresubplot(211)plot(w1/2*pi/1000,20*log10(abs(H1)))title('切比雪夫I幅频特性')Angle1=angle(H1);%相频subplot(212)plot(w/2*pi/1000,Angle1)title('相频特性')(2) 直接用巴特沃思、切比雪夫I 型滤波器设计高通滤波器,并分别绘制所设计滤波器的幅频和相频特性图。
%%%%%%%%%----巴特沃思高通滤波器-----%%%%%%%clc;clear all;omegap=2000*2*pi;omegas=1500*2*pi;Rp=3;As=15;[N,omegac]=buttord(omegap,omegas,Rp,As,'s');%低通的节次[b,a]=butter(N,omegac,'high','s');%直接高通系数[H,w]=freqs(b,a);%设计滤波器的幅频和相频特性图subplot(211)plot(w/2*pi/1000,20*log10(abs(H)))title('巴特沃思幅频特性')Angle=angle(H);%相频subplot(212)plot(w/2*pi/1000,Angle)title('相频特性')%%%%%%%%%----切比雪夫I低通转化为高通-----%%%%%%%[NI,omegacI]=cheb1ord(omegap,omegas,Rp,As,'s');%低通的节次[b1,a1]=cheby1(NI,Rp,omegacI,'high','s');%切比雪夫I%直接高通系数[H1,w1]=freqs(b1,a1);figuresubplot(211)plot(w1/2*pi/1000,20*log10(abs(H1)))title('切比雪夫I幅频特性')Angle1=angle(H1);%相频subplot(212)plot(w/2*pi/1000,Angle1);tille(‘相频特性’)c. 设计模拟带通滤波器,其通带带宽为B=2π×200rad/s,中心频率Ω0=2π×1000rad/s,通带内最大衰减为δ1=3dB,阻带Ωs1=2π×830rad/s,而Ωs2=2π×1200rad/s,阻带最小衰减δ2=15dB。
(1) 分别用巴特沃思、切比雪夫I 型滤波器首先设计模拟低通滤波器,再通过频率转换成带通滤波器,并分别绘制所设计滤波器的幅频和相频特性图。
%%%%%%%%%----巴特沃思低通转化为带通滤波器-----%%%%%%%clc;clear all;omegap1=900*2*pi;omegap2=2*pi*1100;omegas1=830*2*pi;omegas2=2*pi*1200;Rp=3;As=15;B=2*pi*200;omega0=2*pi*1000;omegap=[omegap1,omegap2];omegas=[omegas1,omegas2];[N,omegac]=buttord(omegap,omegas,Rp,As,'s');%低通的节次[z,p,k]=buttap(N);%零极点b=k*real(poly(z));a=real(poly(p));[b1,a1]=lp2bp(b,a,omega0,B);[H,w]=freqs(b1,a1);subplot(211)plot(w,abs(H))title('幅频特性')Angle=angle(H);%相频subplot(212)plot(w/2*pi/1000,Angle)title('相频特性')%%%%%%%%%----切比雪夫I低通转化为带通滤波器-----%%%%%%% clc;clear all;omegap1=900*2*pi;omegap2=2*pi*1100;omegas1=830*2*pi;omegas2=2*pi*1200;Rp=3;As=15;B=2*pi*200;omega0=2*pi*1000;omegap=[omegap1,omegap2];omegas=[omegas1,omegas2];[N,omegac]=cheb1ord(omegap,omegas,Rp,As,'s');%低通的节次[z,p,k]=cheb1ap(N,Rp);%零极点b=k*real(poly(z));a=real(poly(p));[b1,a1]=lp2bp(b,a,omega0,B);[H,w]=freqs(b1,a1);figuresubplot(211)plot(w,abs(H))title('幅频特性')Angle=angle(H);%相频subplot(212)plot(w/2*pi/1000,Angle)title('相频特性')(2) 直接用巴特沃思、切比雪夫I 型滤波器设计带通滤波器,并分别绘制所设计滤波器的幅频和相频特性图。