DSP实验二.

合集下载

dsp原理与应用实验报告总结

dsp原理与应用实验报告总结

dsp原理与应用实验报告总结DSP(Digital Signal Processing)数字信号处理是利用数字技术对信号进行处理和分析的一种方法。

在本次实验中,我们探索了DSP的原理和应用,并进行了一系列实验以验证其在实际应用中的效果。

以下是对实验结果的总结与分析。

实验一:数字滤波器设计与性能测试在本实验中,我们设计了数字滤波器,并通过性能测试来评估其滤波效果。

通过对不同类型的滤波器进行设计和实现,我们了解到数字滤波器在信号处理中的重要性和应用。

实验二:数字信号调制与解调本实验旨在通过数字信号调制与解调的过程,了解数字信号的传输原理与方法。

通过模拟调制与解调过程,我们成功实现了数字信号的传输与还原,验证了调制与解调的可行性。

实验三:数字信号的傅里叶变换与频谱分析傅里叶变换是一种重要的信号分析方法,可以将信号从时域转换到频域,揭示信号的频谱特性。

本实验中,我们学习了傅里叶变换的原理,并通过实验掌握了频谱分析的方法与技巧。

实验四:数字信号的陷波滤波与去噪处理陷波滤波是一种常用的去除特定频率噪声的方法,本实验中我们学习了数字信号的陷波滤波原理,并通过实验验证了其在去噪处理中的有效性。

实验五:DSP在音频处理中的应用音频处理是DSP的一个重要应用领域,本实验中我们探索了DSP在音频处理中的应用。

通过实验,我们成功实现了音频信号的降噪、均衡和混响处理,并对其效果进行了评估。

实验六:DSP在图像处理中的应用图像处理是另一个重要的DSP应用领域,本实验中我们了解了DSP在图像处理中的一些基本原理和方法。

通过实验,我们实现了图像的滤波、边缘检测和图像增强等处理,并观察到了不同算法对图像质量的影响。

通过以上一系列实验,我们深入了解了DSP的原理与应用,并对不同领域下的信号处理方法有了更深刻的认识。

本次实验不仅加深了我们对数字信号处理的理解,也为日后在相关领域的研究与实践提供了基础。

通过实验的结果和总结,我们可以得出结论:DSP作为一种数字信号处理的方法,具有广泛的应用前景和重要的实际意义。

DSP实验

DSP实验

DSP实验实验一存储器访问实验修改程序中指针room和room2指向的地址,分别改为0x0080、0x008F,0x0100、0x010F,0x0400、0x040F,查看view-memory 中结果如何?并思考为什么?答:将程序中0x0060; 0x006F; 分别改为0x0080、0x008F,0x0100、0x010F,0x0400、0x040F即可。

观察view-memory发现:1)改成0x0080、0x008F时,view-memory 中从0x0080开始的地址没有变化,因为从0x0080到0x00FF之间属于非法区域,不可以读写数据。

2)改成0x0100、0x010F时,view-memory 中从0x0100开始的地址没有变化,而是会跳到0x0200到0x020F,即从0x0200到0x020F的数据都显示0xAAAA,因为x0200到0x020F属于保留区域。

3)改成0x0400、0x040F时,view-memory 中从0x0400开始的地址没有变化,而是会跳到0x0300到0x030F,即从0x0300到0x030F的数据都显示0xAAAA,因为0x0400到0x040F属于保留区域。

程序如下:/*;***********************************************************************;* 北京达盛科技有限公司;* 研发部;*;* ;*;*--------------------------------------------- 文件信息---------------*文件名称:mem.c*文件标示:*摘要:本文件内容为tms320lf2407 dsp的存贮器操作练习程序把* 数据空间从0x0060开始的8个地址空间,填写入0xAAAA的* 数值,然后读出,并存储到0X0068开始的8个地址空间**************************************************************//************************文件预处理***************************/#include "e100_2407.h"/*************************************************************//********************全局变量定义与初始化*********************//*************************************************************//*******************函数、子程序声明与定义********************/void sys_ini() //系统初始化子程序{/*关总中断*/asm(" setc INTM");/*抑制符号位扩展*/asm(" clrc SXM");/*累加器中结果正常溢出*/asm(" clrc OVM");/*禁止看门狗*/* WDCR=0x00E8;/*CLKIN=15M,CLKOUT=30M*/* SCSR1=0x0200;}/*************************************************************//*****************中断服务子程序声明与定义********************/ interrupt void nothing() //哑中断子程序{return;}/*************************************************************//**************************主程序*****************************/void main(void){int i;volatile unsigned int *room = (volatile unsigned int *)0x0060;volatile unsigned int *room2= (volatile unsigned int *)0x006F;sys_ini();/*将0xAAAA写入从数据空间的地址0x0060开始的8个单元中*/for(i=0;i<8;i++){*room=0xAAAA;room++;}/*从0x0060开始的8个空间读出数据依次写入从0x0068开始的8个单元中*/ for(i=0;i<8;i++){*room2=*(room-1);room--;room2--;}}/***************************结束******************************/实验二I/O端口控制实验1)将提供的实验程序运行,并观察实验结果2)修改程序使得可以将开关的状态保存到数据存储空间0x0060单元3)让数据存储空间0x0061单元的低八位来控制发光二极管的显示答:1)实验结果:八个开关控制的发光二极管亮灭为:0x00AA=10101010(1代表亮,0代表灭)2)在sys_ini();的前面加上一段程序:volatile unsigned int *room = (volatile unsigned int *)0x0060; 并将port0004=port0004;改成*room=port0004;3)在sys_ini();的前面加上一段程序:volatile unsigned int *room = (volatile unsigned int *)0x0061; 并将port0004=port0004;改成port0004=*room;程序如下:/*;***********************************************************************;* 北京达盛科技有限公司;* 研发部;*;* ;*;*--------------------------------------------- 文件信息---------------*文件名称:io.c*文件标示:*摘要:本文件内容为tms320lf2407 dsp的IO空间操作练习程序*************************************************************//************************文件预处理***************************/#include "e100_2407.h"/*************************************************************//********************全局变量定义与初始化*********************/ioport short port0004; //输入端口地址定义/*************************************************************//*******************函数、子程序声明与定义********************/void sys_ini() //系统初始化子程序{/*关总中断*/asm(" setc INTM");/*抑制符号位扩展*/asm(" clrc SXM");/*累加器中结果正常溢出*/asm(" clrc OVM");/*禁止看门狗*/* WDCR=0x00E8;/*CLKIN=15M,CLKOUT=30M*/* SCSR1=0x0200;}/*************************************************************/ /*****************中断服务子程序声明与定义********************/ interrupt void nothing() //哑中断子程序{return;}/*************************************************************/ /**************************主程序*****************************/ void main(void){sys_ini();for(;;){/*将io空间的0004地址的值赋予io空间的0004地址*/port0004=port0004;}}/***************************结束******************************/实验三定时器实验1)阅读程序,理解程序,预测实验结果。

DSP实验二、TMS320F28335 按键输入 控制LED亮灭

DSP实验二、TMS320F28335 按键输入 控制LED亮灭

继续我的第二个实验;实现按键控制LED亮灭:功能描述:上电默认LD3亮;触动一次按键SW12,LD3灭再按一次按键SW12,LD3亮再触动一次按键SW12,LD3灭再按一次按键SW12,LD3亮。

实现每触动一次按键,LED执行一次由亮到灭,或者由灭到亮,也就是实现一次状态反转。

电路连接说明:LD3 设置为通用GPIO 上拉输出初始化后默认为输出LD3亮状态;LD3控制LED灯的负极,如下图;SW12 设置为通用GPIO 上拉输入该引脚应用滤波功能,且仅在按键抬起时控制LD3状态发生变化。

按键电路如上图,GPIO53须输出0,当按键按下时,读取GPIO50端口值,为0,当按键未按下时,GPIO50因为上上拉作用,其端口值为1。

程序设计说明:按键的读取采用实时扫描的方式(非中断方式),功能要求在按键抬起后发生LED状态翻转;所以要记录上一次按键值,并且将当前值==0&&上一次值==1时,做为按键抬起有效,控制LED发生状态翻转。

主要程序如下:while(1){EALLOW;last_Key_SW12 = new_Key_SW12; //保存旧值new_Key_SW12 = Key_SW12();//读取新值if( last_Key_SW12==0 && new_Key_SW12==1)LD3_TOGGLE();EDIS;}经实际测试,上述程序可以实现LD3的翻转,基本达到设计要求。

但是在测试过程中,时好时坏,有时能够看见LED快速翻转,说明按键有抖动的情况,这里可以考虑IO口滤波,即在初始化时,设置IO采样周期以及量化串口,设置如下:采样周期设置为200时,不再出现抖动现象,按键稳定操作。

源程序如下:#include"DSP2833x_Device.h"// DSP2833x Headerfile Include File#include"DSP2833x_Examples.h"// DSP2833x Examples Include File#define LD3_ON() GpioDataRegs.GPACLEAR.bit.GPIO0 = 1#define LD3_OFF() GpioDataRegs.GPASET.bit.GPIO0 = 1#define LD3_TOGGLE() GpioDataRegs.GPATOGGLE.bit.GPIO0 = 1#define LD4_ON() GpioDataRegs.GPBCLEAR.bit.GPIO34 = 1#define LD4_OFF() GpioDataRegs.GPBSET.bit.GPIO34 = 1#define Key_SW12() GpioDataRegs.GPBDAT.bit.GPIO50/** main.c*/int main(void) {unsigned char last_Key_SW12=1;//保留上一次扫描结果,上电默认为未按下状态unsigned char new_Key_SW12=1;//保留当前扫描结果,上电默认为未按下状态InitSysCtrl();DINT;IER = 0x0000;IFR = 0x0000;InitPieCtrl();InitPieVectTable();InitGpio();EALLOW;//GPIO0 LD3 控制LED负极GpioCtrlRegs.GPAMUX1.bit.GPIO0 = 0;//0 gpio modeGpioCtrlRegs.GPADIR.bit.GPIO0 = 1;//1 output 0 inputGpioCtrlRegs.GPAPUD.bit.GPIO0 = 0;//1 enable pullup 0 disable pullup//GPIO34 LD4 控制LED负极GpioCtrlRegs.GPBMUX1.bit.GPIO34 = 0;//0 gpio modeGpioCtrlRegs.GPBDIR.bit.GPIO34 = 1;//1 output 0 inputGpioCtrlRegs.GPBPUD.bit.GPIO34 = 0;//1 enable pullup 0 disable pullup//GPIO50 按键矩阵SW12输入端GpioCtrlRegs.GPBMUX2.bit.GPIO50 = 0;//0 gpio modeGpioCtrlRegs.GPBDIR.bit. GPIO50 = 0;//1 output 0 inputGpioCtrlRegs.GPBPUD.bit. GPIO50 = 0;//1 enable pullup 0 disable pullup GpioCtrlRegs.GPBCTRL.bit.QUALPRD2= 200;//采样周期=2*Tsysclkout*200GpioCtrlRegs.GPBQSEL2.bit.GPIO50 = 2;//采样窗内3次采样结构相同//GPIO53 按键矩阵负极输出0GpioCtrlRegs.GPBMUX2.bit.GPIO53 = 0;//0 gpio modeGpioCtrlRegs.GPBDIR.bit. GPIO53 = 1;//1 output 0 inputGpioCtrlRegs.GPBPUD.bit. GPIO53 = 0;//1 enable pullup 0 disable pullup GpioDataRegs.GPBCLEAR.bit.GPIO53 = 1;LD3_ON();//默认输出亮状态LD4_OFF();EDIS;while(1){EALLOW;last_Key_SW12 = new_Key_SW12; //保存旧值new_Key_SW12 = Key_SW12();//读取新值if( last_Key_SW12==0 && new_Key_SW12==1) LD3_TOGGLE();EDIS;}}。

DSP实验报告定时器2

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实验二 拨码开关实验

DSP实验二 拨码开关实验

《DSP技术》课程实验报告学生姓名:所在班级:指导教师:记分及评价:项目满分5分得分一、实验名称拨码开关实验二、实验目的1.了解DSP开发系统的组成和结构2.了解IO的基本编程方法三、实验内容1. 2812CPU板的JUMP1的1和2脚短接,拨码开关SW1的第二位置ON。

2.E300板上的开关SW4的第二位置ON,其余OFF;SW5开关全部置ON;其余开关全部置OFF。

3.运行Code Composer Studio (CCS)(CCS3.3需要“DEBUG→Connect”)4. 用“Project\open”打开系统项目文件路径为“c:\DSP_examep\DSP281X_examples\e300_02_switch\Example_281x_switch.pjt”双击该文件5、输入主要程序。

6、编译程序并装载。

7.单击“Debug-GoMain”跳到主程序的开始;8. 单击“Debug\RUN”运行程序。

需要判断是高电平亮,还是低电平亮,可以使用中断调试。

在运行状态,在需要设置断点的位置的右边,双击,就可以产生红点。

表明设置了断点。

在view目录下,(如右边图所示:)打开watch window,(此项是用来检查和编辑变量或C表达式可以不同格式显示变量值,还可以显示数值、结构或指针等包含多个元素的变量),在本实验中观察temp变量的变化。

步骤:在debug目录下点run,在断点处,程序会停下来,可以观察temp变量的值。

(也可按“F10”单步运行程序,观察temp变量的值。

)9. 任意拨动E300底板上的拨动开关,观察LED和拨动开关的对应情况。

(LED1-LED7分别对应DSP数据总线的D0-D7)10.单击“Debug \ Halt”暂停持续运行,开关将对灯失去控制.11.关闭所有窗口,本实验完毕.四、实验程序与结果分析实验程序:#include "DSP281x_Device.h" // DSP281x Headerfile Include File#include "DSP281x_Examples.h" // DSP281x Examples Include Filevoid main(void){unsigned int temp;temp = 0;DINT;InitSysCtrl();InitPieCtrl();IER = 0x0000;IFR = 0x0000;InitPieVectTable();for(;;){asm(" nop ");temp = *(int *)0x2200&0x00ff;if(temp!=0x80){temp=(temp<<1)&0x00ff;asm(" nop ");* (int *)0x2200 = temp;}else * (int *)0x2200 =0x01;asm(" nop ");}}结果分析:多次拨动E300底板上的拨码开关,观察LED亮灭后,我们发现拨动开关的对LED1-LED7分别对应DSP数据总线的D0-D7,并且LED低电平时导通。

DSP实验报告_6

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实验报告最终版
PLL_Init(20);
SDRAM_init();
InitCTR();
PLL_Init(20);
SDRAM_init();
InitCTR();
//直流电机
//unsigned char dbScanCode,dbOld;
//unsigned char dbOld;
dbScanCode=dbOld=0;
在PWM调速时,占空比a是一个重要参数。以下三种方法都可以改变占空比的值:
(1)定宽调频法:这种方法是保持t1不变,只改变t2,这样使周期T(或频率)也随之改变。
(2)调宽调频法:这种方法是保持t2不变,只改变t1,这样使周期T(或频率)也随之改变。
(3)定频调宽法:这种方法是使周期T(或频率)保持不变。而改变t1和变t2。
2)设置CCS软件,点击debug—connect将试验箱和CCS软件连接。
3)右键单击project添加本实验程序,编译,将对应文件夹的*.out文件下载,点击debug-run运行程序。
·按键盘“1”键,进入直流电机程序,按键盘“3-6”键可以改变直流电机转速,按“7”或“8”键改变电机旋转方向。
键盘的扫描码由DSP得CTRKEY给出,当有键盘输入时,读此端口得到扫描码,当无键按下时,读此端口的结果为0。CTRCLKEY。读取的方法如下:
nScanCode=CTRKEY;nnn=CTRCLKEY;//nScanCode中为扫描码
对于高速运行的DSP,在两次读键盘之间可能需要增加延时语句。键盘连接原理如下:
ioport unsigned int *prsc0;
int nCursorCount;
void InitInterrupt();
void InitMcBSP();

DSP实验指导书输入输出

DSP实验指导书输入输出
c)点击File,选择Load Program,选中所要下载的*.out文件,点击“OK”则系统将可执行文件下载到实验板上的片外程序区中。之后就可对程序进行调试仿真。
7).程序单步执行
按F8,就可观察到程序单步运行的状态,并可观察D2的发光情况。
8).程序全速运行
按F5,就可观察到程序在全速运行状态下,D2的发光情况。并用示波器观察I/O管脚的波形。如果D2的闪烁不明显,可修改延时子程序。
GEL_MapAdd(0x1000,1,0xF000,1,1);/* External SRAM */
}
menuitem "F2407 DEBUGGER";
hotmenu flash_disable()
{
*(int *)SCSR2 = MP;
}
hotmenu flash_enable()
{
*(int *)SCSR2 = MC;
delay(1000);/* 延时子程序 */
delay(1000);/* 延时子程序 */
asm(" clrcxf");
*PADATDIR=*PADATDIR&0x0FF00;// IOPA端口设置为输出方式
*PBDATDIR=*PBDATDIR&0x0FF00;
*PCDATDIR=*PCDATDIR&0x0FF00;
}
SECTIONS
{
.vectors:>VECS PAGE 0
.text:>FLASH PAGE 0
.cinit :>FLASH PAGE 0
.data :>FLASH PAGE 0
.stack :>B0 PAGE 1
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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 型滤波器设计带通滤波器,并分别绘制所设计滤波器的幅频和相频特性图。

相关文档
最新文档