基于数字滤波的单片机仿真和C语言开发课程设计
毕业设计(论文)-基于MATLAB的数字滤波器的设计与仿真模板
基于MATLAB的数字滤波器设计与仿真摘要:数字滤波器的实现是数字信号处理中的重要组成部分,设计过程较复杂,牵涉到模型逼近,指标选择,计算机仿真,性能分析及可行性分析等一系列的工作,本文从设计原理以及数学软件MA TLAB出发阐述数字滤波器的设计原理与方法。
应用MA TLAB语言设计数字滤波器时采用直接程序设计法、FDATool以及SPTool信号处理工具箱的设计方法,通过实例,给出了FIR程序设计法和使用信号处理工具箱中SPTool进行设计的仿真图形,并在MATLAB的Simulink环境下,调用所设计的FDATool滤波器进行了仿真。
关键词:MA TLAB;数字滤波器;FDATool;SPTool;Simulink;IIR;FIR;MATLAB-based Digital Filter Design and SimulationAbstract: The digital filter is one of the most significant applications of DSP. The design process is very complex involving the model approximation, parameter selection, computer simulation and performance analysis, feasibility analysis and a series of work. This article try to solve the hard problem in another way, making the benefit of the advanced software MATLAB and gives some basic MA TLAB advice to readers to help them to learn the information of using MA TLAB as a tool to design different kinds of digital filters.The design methods of direct programming, FDATool interface and SP Tool signal processing toolbox are introduced in designing digital filter with MATLAB in this article. The imulation figures are given by programming and SPTool signal processing toolbox. Further more, the designed FDA tool filter are called and simulated in SIMULINKKey words: MATLAB; Digital filter; FDATool ; SPTool ; IIR;FIR;1引言1.1数字滤波器的研究背景与意义当今,数字信号处理[1](DSP:Digtal Signal Processing)技术正飞速发展,它不但自成一门学科,更是以不同形式影响和渗透到其他学科;它与国民经济息息相关,与国防建设紧密相连;它影响或改变着我们的生产、生活方式,因此受到人们的普遍关注。
单片机c语言课程设计
单片机c语言课程设计一、课程目标知识目标:1. 让学生掌握单片机的基本原理和结构,理解C语言在单片机编程中的应用。
2. 培养学生运用C语言进行单片机程序设计和调试的能力。
3. 使学生了解单片机外围设备的接口技术,并能结合实际需求进行简单系统设计。
技能目标:1. 培养学生运用Keil等开发工具进行单片机C语言编程,完成程序设计、编译、下载和调试。
2. 培养学生分析问题和解决问题的能力,能够针对实际应用场景设计单片机控制系统。
3. 提高学生的动手实践能力,通过课程设计,独立完成一个具有实际应用价值的单片机控制系统。
情感态度价值观目标:1. 培养学生积极的学习态度,激发对单片机及嵌入式系统开发的兴趣。
2. 培养学生的团队合作意识,学会在项目中进行有效沟通和协作。
3. 增强学生的创新意识,鼓励他们在课程设计中勇于尝试新思路、新技术。
课程性质分析:本课程为单片机C语言课程设计,侧重于实践操作和实际应用,旨在帮助学生将所学理论知识与实际工程相结合,提高解决实际问题的能力。
学生特点分析:学生已具备一定的单片机原理和C语言基础,具有一定的编程和动手能力。
在此基础上,通过课程设计,提高学生的综合应用能力和创新能力。
教学要求:1. 结合课本内容,注重理论与实践相结合,强化学生的动手实践能力。
2. 以项目为导向,引导学生主动探索,培养学生的问题分析和解决能力。
3. 注重团队合作,培养学生的沟通能力和协作精神。
4. 关注学生的个体差异,实施差异化教学,提高全体学生的学习效果。
二、教学内容1. 单片机基础理论:回顾51单片机的结构、原理及其外围设备的工作原理,重点复习I/O口编程、定时器、中断系统等内容。
教材章节:第一章至第三章2. C语言编程基础:巩固C语言基本语法,包括数据类型、运算符、控制语句、函数等,结合单片机编程需求进行讲解。
教材章节:第四章至第六章3. 单片机C语言编程实践:学习使用Keil开发工具进行单片机C语言编程,掌握程序设计、编译、下载和调试的全过程。
数字滤波器的设计课程设计
数字滤波器的设计课程设计一、课程目标知识目标:1. 理解数字滤波器的概念、分类和工作原理;2. 掌握数字滤波器的设计方法和步骤;3. 学会使用计算机辅助设计软件(如MATLAB)进行数字滤波器的设计与仿真。
技能目标:1. 能够分析给定信号的频率特性,并根据需求选择合适的数字滤波器类型;2. 能够运用所学的数字滤波器设计方法,独立完成简单数字滤波器的参数计算和结构设计;3. 能够利用计算机辅助设计软件,对所设计的数字滤波器进行性能分析和优化。
情感态度价值观目标:1. 培养学生对数字信号处理技术的兴趣,激发其探索精神;2. 培养学生严谨的科学态度,强调理论与实践相结合;3. 培养学生团队协作意识,提高沟通与表达能力。
课程性质:本课程为电子信息工程及相关专业高年级的专业课程,旨在帮助学生掌握数字滤波器的基本原理和设计方法,培养实际工程应用能力。
学生特点:学生已具备一定的电子技术和信号处理基础知识,具有较强的学习能力和实践操作能力。
教学要求:结合课程性质和学生特点,注重理论教学与实际应用相结合,强化实践环节,提高学生的实际操作能力和工程素养。
通过本课程的学习,使学生能够将所学知识应用于实际工程项目中,达到学以致用的目的。
同时,注重培养学生的团队协作能力和沟通表达能力,提升其综合素质。
二、教学内容1. 数字滤波器概述- 定义、作用和分类- 基本工作原理2. 数字滤波器设计方法- 理论基础:Z变换、傅里叶变换- 设计步骤:需求分析、类型选择、参数计算、结构设计3. 常见数字滤波器设计- 低通滤波器- 高通滤波器- 带通滤波器- 带阻滤波器4. 计算机辅助设计软件应用- MATLAB滤波器设计工具箱介绍- 使用MATLAB进行数字滤波器设计与仿真5. 数字滤波器性能分析- 频率特性分析- 幅频特性与相频特性- 群延迟特性6. 实践项目与案例分析- 设计实例:基于实际需求的数字滤波器设计- 性能分析:对设计结果进行性能评估与优化教学内容安排与进度:1. 数字滤波器概述(2课时)2. 数字滤波器设计方法(4课时)3. 常见数字滤波器设计(4课时)4. 计算机辅助设计软件应用(2课时)5. 数字滤波器性能分析(2课时)6. 实践项目与案例分析(4课时)教材关联章节:1. 数字滤波器概述:《数字信号处理》第一章2. 数字滤波器设计方法:《数字信号处理》第三章3. 常见数字滤波器设计:《数字信号处理》第四章4. 计算机辅助设计软件应用:《MATLAB数字信号处理》第二章5. 数字滤波器性能分析:《数字信号处理》第五章三、教学方法1. 讲授法:- 在数字滤波器概述、设计方法及性能分析等理论部分,采用讲授法进行教学,系统地传授相关知识;- 结合多媒体课件,以图文并茂的形式,生动形象地展示滤波器的工作原理和设计步骤。
数字滤波器的仿真与实现毕业设计
3、数字滤波器的设计
A (f) A (f)
1 1
0 f f 0 f f
(a) (b)
A (f)A (f)
1 1
0 f f f 0 f f f
(c) (d)
图中四类滤波器的幅频特性
(a)低通(b)高通(c)带通(d)带阻
在电力系统微机保护和二次控制中,很多信号的处理与分析都是基于正旋基波和某些整次谐波而进行的,而系统电压电流信号(尤其是故障瞬变过程)中混有各种复杂成分,所以滤波器一直是电力系统二次装置的关键部件。目前微机保护和二次信号处理软件主要采用数字滤波器。传统的数字滤波器设计使用繁琐的公式计算,改变参数后需要重新计算,在设计滤波器尤其是高阶滤波器时工作量很大。利用MATLAB信号处理箱可以快速有效地实现数字滤波器的设计与仿真。
看到一个数字过滤,信号是由一系列数字,而不是电压或逆流.
以下图表显示了这种制度的基本格局:
滤波器是指用来对输入信号进行滤波的硬件或软件。如果滤波器的输入、输出都是离散信号,则该滤波器的冲击响应也必然是离散的,这样的滤波器定义为数字滤波器。数字滤波器的功能,就是把输入序列X通过一定的运算变换成输出序列Y。
在信号处理、过滤功能是一个不排除部分信息,如随机噪音、提取有用的信号部分,如部分地势在一定的频率范围.
以下方框图说明基本思路.
有两大类型的过滤,模拟以及数字.他们是完全不同的物理结构,如何工作.类比电子电路模拟用的过滤部分组成,例如由电阻、电容opamps和生产所需的过滤效果.这种过滤器被广泛使用的电路减少噪音等方面的应用,提高视频信号、图像均衡的高科技传真系统等众多领域.有完善的技术标准设计的模拟电路进行过滤特定要求.在各个阶段,是一个信号,是电机电压和过滤,目前直接的物理模拟量(例如声音或视频信号和变频器生产)处理.数码过滤用数字进行数值计算处理器的信号抽样值.处理器的可能通用计算机等PC或专业发展计划图(数字信号处理器)芯片.模拟信号必须先投入使用的取样和数码艺术发展局(模拟到数字转换器).由此二元多,占抽样连续输入信号的价值,转移到处理器,进行数字计算.这些计算通常涉及多方面的投入和增加产品价值的共同因素.如有必要,这些计算结果,现在是抽样信号值的过滤,产出通过发展援助委员会(类比数位转换器来)信号转换回模拟形式.
单片机技术及应用(基于Proteus的汇编和C语言版)教学标准作者何用辉
《单片机技术及应用》课程标准课程代码10010014470 课程类别必修课程类型理论+实践课程性质职业能力课课程学分 4 课程学时60修读学期第四学期核心课程是合作开发企业福建省和盛电力科技有限公司执笔人何用辉、施永贵审核人1.课程定位本课程是机电一体化技术专业核心课程,专业必修课程。
其功能是通过理论与实践相结合的教学方式,采取项目导向、任务驱动等教学方法,培养学生利用单片机进行机电控制系统应用设计能力、控制程序编写与调试能力和产品的制作、测试以及维护等能力。
本课程与前修课程《应用电子技术》、《C语言程序设计》、《电路板设计与制作》课程相衔接,共同培养学生进行单片机控制应用项目的设计、调试、维护以及工程技术文件的编制和归档能力,使学生掌握单片机控制应用系统或装置安装与调试的技能和电子电路综合应用能力;与后续课程《机电一体化技术与系统》、《实物专题》以及顶岗实习等课程相衔接,共同培养培养学生从事机电产品控制系统或装置的安装、调试、维护的基本职业能力和初步的机电产品开发与设计能力,同时培养学生诚实、守信、善于协作、爱岗敬业的职业道德和职业素质。
2.课程目标2.1 知识目标(1)了解单片机的基本概念、工作原理和应用领域;(2)熟悉常见单片机芯片的功能和引脚分布;(3)理解并掌握单片机系统结构和存储器结构组成;(4)掌握单片机的基本硬件结构及其控制使用方法;(5)了解单片机的指令系统和编程语言,熟悉C51语言语法及应用;(6)理解并掌握单片机应用常用接口电路及控制程序设计;(7)熟练掌握Keil和Proteus软件的使用方法;(8)初步学会单片机应用系统的开发步骤和设计方法;(9)掌握简单单片机应用系统的设计、编程与调试;(10)掌握单片机工程项目报告的书写格式。
(11)了解单片机在自动化领域中的典型应用。
2.2 能力目标2.2.1专业能力(1)熟悉单片机的内部资源,并能合理使用内部资源的能力;(2)具备单片机应用系统的初步应用分析和软硬件设计能力;(3)掌握简单单片机应用程序的设计与程序编写能力;(4)熟练使用开发工具进行单片机应用项目设计与调试的能力;(5)初步具备分析处理简单的单片机应用控制系统软硬件故障能力;(6)掌握单片机应用系统的安装和软硬件联调、故障诊断维护技能;(7)掌握单片机应用产品开发的基本流程和工艺;(8)具有资料整理和文件归档的能力。
单片机 一阶滤波器 c语言程序
单片机一阶滤波器 c语言程序下载提示:该文档是本店铺精心编制而成的,希望大家下载后,能够帮助大家解决实际问题。
文档下载后可定制修改,请根据实际需要进行调整和使用,谢谢!本店铺为大家提供各种类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by this editor. I hope that after you download it, it can help you solve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you! In addition, this shop provides you with various types of practical materials, such as educational essays, diary appreciation, sentence excerpts, ancient poems, classic articles, topic composition, work summary, word parsing, copy excerpts, other materials and so on, want to know different data formats and writing methods, please pay attention!单片机一阶滤波器C语言程序概述在嵌入式系统中,滤波器是一种常见的信号处理器件,用于去除信号中的噪声或者其他干扰。
基于MATLAB的数字滤波器的设计与仿真
一、课题简介本课题是基于MATLAB的数字滤波器的设计与仿真,采用MATLAB软件设计与仿真。
有限冲击响应数字滤波器(FIR)具有突出的优点:系统总是稳定的、易于实现线性相位、允许设计多通带(或多阻带)滤波器。
首先在了解有限冲击响应数字滤波器的基本概念和数学模型的前提下,给出有限冲击响应数字滤波器具有线性相位的条件,以及有限冲击响应数字滤波器的各种结构及其特点。
其次,由于在实际工程设计限冲击响应数字滤波的时候,窗函数设计法和频率采样法都存在设计精度不高,运算量大,边缘频率不容易确定的缺点。
而优化设计法恰能弥补上述方法的不足,能很好的逼近理想数字滤波器。
最后,在Simulink环境下建立一个数字滤波器系统仿真模型,用优化设计法和频率采样法分别设计相同指标的滤波器。
把原始信号和干扰信号同时输入,两种方法设计的滤波器分别在仿真模型中滤除干扰。
以仿真图的形式直观的给出滤波器的性能。
二、设计过程⒈有限长单位冲激响应(FIR)滤波器的基本结构⑴直接型:如图1-1可以看出直接型结构共需要N个乘法器,若系数不对称则不能设计线性相位。
图1-1 FIR滤波器的直接型结构⑵级联型:将H(z)分解成实系数二阶因子的乘积形式(1.1)这种结构的每一节控制一对共轭极点,因此调整传输零点方便,但是这种结构所需的系数和所需的乘法运算比直接型多,所以这种结构使用的比较少。
图1-2 FIR滤波器的级联型结构⑶频率抽样型:把一个有限长序列(长度为N点)的z变换H (z)在单位圆上作N等分抽样,就得到H(k),其主值序列就等于h(n)的离散傅里叶变换H(k)。
用H (k)表示的H(z)的内插公式为(1.2)(1.3)其中为梳状滤波器,为谐振器。
谐振器的极点正好与梳状滤波器的零点相抵消,保证了网络的稳定性。
N个并联谐振器与梳状滤波器级联后,得到图1-3的频率抽样结构。
图1-3 FIR滤波器的频率抽样型结构2.FIR数字滤波器的设计方法2.1窗函数设计法流程图如2-1所示:图2-1窗函数设计流程常用的窗函数有:矩形窗、汉宁窗、海明窗、布莱克曼窗、凯塞窗、三角窗等。
基于数字滤波的单片机仿真和C语言开发
目录1 软件介绍 (1)1.1 protues软件介绍 (1)1.2 Keil软件 (2)2 主要元器件介绍 (3)2.1 51单片机相关知识 (3)2.2ADC0808相关知识 (5)2.3 DAC0832相关知识 (5)3 数字滤波器设计原理及方法 (6)3.1中值滤波器设计原理计算法 (6)3.2 AD转换电路 (8)3.3 DA转换模块 (9)4 创新拓展模块 (9)4.1 2*2矩阵键盘 (9)4.2 增加的三类滤波器介绍 (11)5 整体电路图设计 (12)6 程序代码 (12)7 仿真结果及分析 (17)7.1 仿真波形图 (17)7.2 结果分析 (19)8 心得体会 (20)9 参考文献 (21)1.1 protues软件介绍Proteus ISIS是英国Labcenter公司开发的电路分析与实物仿真软件.它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:(1)实现了单片机仿真和SPICE电路仿真相结合.具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI 调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等.(2)支持主流单片机系统的仿真.目前支持的单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片.(3) 提供软件调试功能.在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如Keil C51 uVision2等软件.(4) 具有强大的原理图绘制功能.总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大.本章介绍Proteus ISIS软件的工作环境和一些基本操作.特点:支持ARM7,PIC ,AVR,HC11以及8051系列的微处理器CPU模型,更多模型正在开发中:交互外设模型有LCD显示、RS232终端、通用键盘、开关、按钮、LED等;强大的调试功能,如访问寄存器与内存,设置断点和单步运行模式;支持如IAR、Keil和Hitech等开发工具的源码C和汇编的调试;一键“make”特性:一个键完成编译与仿真操作;内置超过6000标准SPICE模型,完全兼容制造商提供的SPICE模型;DLL界面为应用提供特定的模式;基于工业标准的SPICE3F5混合模型电路仿真器.14种虚拟仪器:示波器、逻辑分析仪、信号发生器、规程分析仪等.Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用.Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起.运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统.如果你使用C语言编程,那么Keil几乎就是你的不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍.Keil C51开发系统基本知识Keil C51开发系统基本知识(1)系统概述Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面.另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解.在开发大型软件时更能体现高级语言的优势.下面详细介绍Keil C51开发系统各部分功能和使用. (2)Keil C51单片机软件开发系统的整体结构C51工具包的整体结构,uVision与Ishell分别是C51 for Windows和for Dos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程.开发人员可用IDE本身或其它编辑器编辑C或汇编源文件.也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS).ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中.Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解.在开发大型软件时更能体现高级语言的优势.2 主要元器件介绍2.1 51单片机相关知识1. MCS-51单片机的结构及编程方法MCS-51单片机的组成:CPU(进行运算、控制)、RAM(数据存储器)、ROM(程序存储器)、I/O口(串口、并口)、内23部总线和中断系统等.组成框图如下:8051单片机的组成框图(1)cpu中央处理器由运算器和控制器组成,是8位的cpu,具有布尔运算和8位寻址功能.运算器完成算术运算和逻辑运算.CPU根据PC中的地址将欲执行指令的指令码从存储器中取出,存放在IR中,ID对IR中的指令码进行译码,定时控制逻辑在OSC配合下对ID译码后的信号进行分时,以产生执行本条指令所需的全部信号.(2)存储器MCS-51单片机按程序存储器可分为内部无ROM型(如8031)和内部有ROM型(如8051)两种,连接时引脚有区别.程序存储器结构如右图所示:程序存储器:一般将只读存储器(ROM)用做程序存储器.可寻址空间为64KB,用于存放用户程序、数据和表格等信息.数据存储器:一般将随机存储器(RAM)用做数据存储器.可寻址空间为64KB.MCS-51数据存储器可分为片内和片外两部分.(3)特殊功能寄存器(SFR)MCS-51有21个特殊功能寄存器(也称为专用寄存器),包括算术运算寄存器、指针寄存器、I/O口锁存器、定时器/计数器、串行口、中断、状态、控制寄存器等,它们被离散地分布在内部RAM的80H~FFH地址单元中(不包括PC),共占据了128个存储单元,构成了SFR存储块.其字节地址可被8整除的SFR可位寻址.SFR反映了MCS-51单片机的运行状态.80C51内部结构(4)I/O接口I/O接口是MCS-51单片机对外部实现控制和信息交换的必经之路,用于信息传送过程中的速度匹配和增加它的负载能力.8051内部有4个8位并行接口P0, P1, P2, P3,有1个全双工的可编程串行I/O接口.(5)定时器/计数器8051内部有两个16位可编程序的定时器/计数器,均为二进制加1计数器,分别命名为T0和T1.(6)中断系统8051可处理5个中断源(2个外部,3个内部)发出的中断请求,并可对其进行优先权处理.外部中断的请求信号可以从P3.2, P3.3引脚上输入,有电平或边沿两种触发方式;内部中断源有3个,2个定时器/计数器中断源和1个串行口中断源.8051的中断系统主要由中断允许控制器IE和中断优先级控制器IP等电路组成.2.2ADC0808相关知识本次课程设计仿真使用的是ADC0808,ADC0808是采样分辨率为8位的、以逐次逼近原理进行模/数转换的器件.其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换.ADC0808是ADC0809的简化版本,功能基本相同.一般在硬件仿真时采用ADC0808进行A/D转换,实际使用时采用ADC0809进行A/D转换.ADC0808是CMOS单片型逐次逼近式A/D转换器,它有8路模拟开关、地址锁存与译码器、比较器、8位开关树型A/D转换器.ADC0808引脚图2.3 DAC0832相关知识根据对DAC0832的数据锁存器和DAC寄存器的不同的控制方式,DAC0832有三种工作方式:直通方式、单缓冲方式和双缓冲方式.主要性能如下:(1)分辨率为8位;(2)电流稳定时间1us;(3)可单缓冲、双缓冲或直接数字输入;(4)只需在满量程下调整其线性度;(5)单一电源供电(+5V~+15V);(6)低功耗,20mW.DAC0832引脚功能电路应用原理图DAC0832是采样频率为八位的D/A转换芯片,集成电路内有两级输入寄存器,使DAC0832芯片具备双缓冲、单缓冲和直通三种输入方式,以便适于各种电路的需要(如要求多路D/A异步输入、同步转换等).所以这个芯片的应用很广泛,关于DAC0832应用的一些重要资料见下图: D/A转换结果采用电流形式输出.若需要相应的模拟电压信号,可通过一个高输入阻抗的线性运算放大器实现.运放的反馈电阻可通过RFB端引用片内固有电阻,也可外接.DAC0832逻辑输入满足TTL 电平,可直接与TTL电路或微机电路连接.DAC0832的逻辑框图和引脚排列3 数字滤波器设计原理及方法3.1中值滤波器设计原理计算法数字滤波方法有很多种,如中值滤波、算术平均滤波、加权平均滤波,限幅滤波等等.本次课程设计我选用的是中值滤波.中值滤波是先对某一参数连续采样N次(一般N取奇数),然后把N次采样值按从小到大排列,取中间值为本次采样值.该滤波方法实际上是一种排序方法,我在此采用的是冒泡法排序.由于在冒泡法排序中,每出现一次前者数据大于后者数据,就要进行二者数据的交换.中值滤波是基于排序统计理论的一种能有效抑制噪声的非线性信号处理技术,中值滤波的基本原理是把数字图像或数字序列中一点的值用该点的一个邻域中各点值的中值代替,让周围的像素值接近的真实值,从而消除孤立的噪声点.方法是去某种结构的二维滑动模板,将板内像素按照像素值的大小进行排序,生成单调上升(或下降)的为二维数据序列.二维中值滤波输出为g(x,y)=med{f(x-k,y-l),(k,l∈W)} ,其中,f(x,y),g(x,y)分别为原始图像和处理后图像.W为二维模板,通常为2*2,3*3区域,也可以是不同的的形状,如线状,圆形,十字形,圆环形等.该算法的程序如下:#define N 11 //N值可根据实际情况调整char filter(){char value_buf[];char count,i,j,k,temp;for(count=0;count<N;count++) //获取数据{value_buf[count]=get_data();delay();}for(j=0;i<N-1;i++) //排序{k=j;for(j=i+1;j<N;j++)if(value_buf[j]<value_buf[k]);temp=value_buf[k];value_buf[k]=value_buf[j];value_buf[j]=temp;}return value_buf[(N-1)/2];}中值滤波能有效地克服偶然因素引起的波动或采样器不稳定引起的误码等脉冲干扰.对温度、液位等缓慢变化的被测参数采用此算法能收到良好的滤波效果,但对于流量、压力等快速变化的数据,不宜采用中位值滤波.3.2 AD转换电路ADC0808中,ADDA、ADDB、ADDC为模拟通道选择,编码为000~111分别选中IN0~IN7.ALE 为地址锁存信号,其上升沿锁存ADDA、ADDB、ADDC的信号,译码后控制模拟开关,接通八路模拟输入中相应的一路.CLK为输入时钟,为AD转换器提供转换的时钟信号,典型工作频率为640KHz.OE为输出允许信号,高电平时候打开三态输出缓存器,是转换后的数字量从D0~D7输出.EOC为转换结束信号,启动转换后EOC变为低电平,转换完成后EOC编程高电平.START为AD转换启动信号,正脉冲启动ADDA~ADDC选中的一路模拟信号开始转换,在其上跳变时,所有内部寄存器清零,在其下跳变时,开始进行AD转换.所以设计程序时,要先让START为0,在让START为1,最后让START为0.AD转换的程序如下:START = 0;START = 1;START = 0;while(EOC==0);OE = 1;a = P0;AD转换电路图3.3 DA转换模块DA0832有三种数模转换方法,直通方式、单缓冲方式、双缓冲方式,因为单片机输出后可以直接进行数模转换,所以这里我采用了不需要单片机控制的最为简单的直通方式,但是DA0832若用于直通方式.若用于直通方式下,则GND均接地,而VCC和ILE则接正电源.VREF是参考电源.IOUT1、IOUT2是两个输出端.DA0832输出的是电流,要利用运算放大器转换成电压信号.DA转换电路图4 创新拓展模块本次课设拓展模块设计了一个2*2矩阵键盘,通过矩阵键盘的控制达到中值、限幅、加权平均、滑动平均四种滤波器交替实现的目的.4.1 2*2矩阵键盘在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式.式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接.这样,一个端口(如P1口)就可以构成4*4=16个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显.由此可见,在需要的键数比较多时,采用矩阵法来做键盘是合理的.本次课设设计了一个2*2最简矩阵键盘.如下图所示:2*2矩阵键盘2*2矩阵键盘程序设计如下:uchar Keyscan(void) //判断按键{P1=0x3f;if(key1==0) //行扫描z1=1,z2=0;if(key2==0)z2=1,z1=0;if(z1==1)//列扫描{ P1=0xfc;if(key4==0)z3=1;if(key3==0)z3=2;}if(z2==1){P1=0xfc;if(key4==0)z3=3;if(key3==0)z3=4;}return z3;}4.2 增加的三类滤波器介绍1. 加权平均滤波在算术平均滤波和移动平均滤波中,N次采样值在输出结果中的权重是均等的,取1/N.用这样的滤波算法,对于时变信号会引入滞后,N值越大,滞后越严重.为了增加新采样数据在移动平均中的权重,以提高系统对当前采样值中所受干扰的灵敏度,可采用加权平均滤波,它是移动平均滤波算法的改进.加权平均滤波是对连续N次采样值分别乘上不同的加权系统之后再求累加和,加权系统一般先小后大,以突出后面若干采样的效果,加强系统对参数变化趋势的辨识.各个加权系统均为小于1的小数,且满足总和等于1的约束条件.这样,加权运算之后的累加和即为有效采样值.为方便计算,可取各加权系数均为整数,且总和为256,加权运算后的累加和除以256,即舍去低字节后便是有效采样值.2.限幅滤波限幅滤波的基本原理是把两次相邻时刻(n和n-1)的采样值Yn和Yn-1相减,求出其差值,以绝对值表示,然后将这个差值与两次采样允许的最大偏差值ΔY比较,如果两次采样值的差值超过了允许的最大偏差值ΔY,则认为发生了随机干扰,并认为最后一次采样值Yn非法,应予剔除.剔除Yn后,可用Yn-1代替Yn;若未超过允许的最大偏差值范围,则认为本次采样值有效.可用如下公式表示:|Yn-Yn-1|≤ΔY;则Yn有效|Yn-Yn-1|>ΔY;则Yn-1有效.3. 滑动平均滤把连续取N个采样值看成一个队列,队列的长度固定为N每次采样到一个新数据放入队尾,并扔掉原来队首的一次数据.(先进先出原则)把队列中的N个数据进行算术平均运算,就可获得新的滤波结果N值的选取:流量,N=12;压力:N=4;液面,N=4~12;温度,N=1~4.对周期性干扰有良好的抑制作用,平滑度高适用于高频振荡的系统.5 整体电路图设计整体电路图6 程序代码#include <reg51.h>#define uchar unsigned char#define A 0.005#define N 11sbit OE = P2^0;sbit START = P2^1;sbit EOC = P2^2;sbit key1=P1^0;sbit key2=P1^1;sbit key3=P1^6;sbit key4=P1^7;uchar a,z1,z2,z3,z4;uchar buf[N] ={0};void change(){int i;for(i=0;i<N-1;i++)buf[i]=buf[i+1];buf[N-1]=a;}uchar get_data(n){change();return buf[n];}uchar Keyscan(void) //判断按键{P1=0x3f;if(key1==0) //行扫描z1=1,z2=0;if(key2==0)z2=1,z1=0;if(z1==1) //列扫描{ P1=0xfc;if(key4==0)z3=1;if(key3==0)z3=2;}if(z2==1){P1=0xfc;if(key4==0)z3=3;if(key3==0)z3=4;}return z3;}uchar filter1() //中值滤波{uchar value_buff[N],temp;int count,j,k;for(count=0;count<N;count++)value_buff[count]=get_data(count);for(j=0;j<N-1;j++){ k=j;for(j=j+1;j<N;j++)if(value_buff[j]<value_buff[k]){temp=value_buff[k];value_buff[k]=value_buff[j];value_buff[j]=temp;}}return value_buff[(N-1)/2];}uchar filter2() //限幅滤波{ uchar new_value,value;value=get_data(N-2);new_value = get_data(N-1);if ( ( new_value - value > A ) || ( value - new_value > A ) ) return value;return new_value;}uchar filter3() //滑动平均滤波{uchar value_buff[N];int i=0;int count;int sum=0;value_buff[i++]=get_data(count);if(i==N)i=0;for(count=0;count<N;count++)sum+=value_buff[count];return (uchar)(sum/N);}uchar filter4() //加权平均滤波{uchar code coe[N] = {1,1,1,2,2,2,3,3,3,3,1100}; uchar code sum_coe = 1+1+1+2+2+2+3+3+3+3+1100; uchar count;uchar value_buf[N];int sum=0;for (count=0;count<N;count++){value_buf[count] = get_data(count);}for (count=0;count<N;count++)sum += value_buf[count]*coe[count];return (uchar)(sum/sum_coe); }uchar ADC0808_READ(void) {uchar res;START = 0;START = 1;START = 0;while(EOC==0);OE = 1;a = P0;z4=Keyscan();if(z4==1)res=filter1();if(z4==2)res=filter2();if(z4==3)res=filter3();if(z4==4)res=filter4();return res;}void main(){z3=1;while(1){P3 = ADC0808_READ();}}7 仿真结果及分析7.1 仿真波形图中值滤波波形图限幅滤波波形图滑动平均滤波波形图加权平均滤波波形图7.2 结果分析限幅滤波的效果是和A值有关的,一般情况下,A值越小,则代表允许的噪声要越小,限幅滤波很适用于使幅值突变的噪声.中值滤波由于要求中值,所用到的排序算法会大大消耗时间,因此延时比较严重,但是总的来说选择排序比冒泡排序的延时情况要好.加权递推平均算法和上面一样,因为会求平均值,因此也会有时候产生中间值,但是如果把当前值得权值设的很大,而越久远之前的权值设的越小,则可明显改善此问题,另外由于加权递推平均滤波中用到的乘法,因此会有一定的延时.8 心得体会大三下学期了,马上就要进入大四,此次课设也是大学仅剩的几个课设之一了,我想通过自己的努力,好好做一下,好好锻炼自己的专业能力.作为一名电信专业的大三学生,我觉得这个单片机是十分有意义的,而且是十分必要的.在已度过的大学时间里,我们大多数接触的是专业课.我们在课堂上掌握的仅仅是专业课的理论知识,学习单片机和智能仪器已经有一年了,已经掌握了单片机的原理和如何用汇编语言编写程序,但是很少有机会取实践.如何去锻炼我们的实践能力?如何把我们所学的专业基础课理论知识运用到实践中去呢?我想做类似的课程设计,就为我们提供了良好的实践平台,这样能使我们对单片机及其应用认识和应用更加熟练,为我们以后走向社会工作打下良好基础.在做单片机课程设计的过程中,我感触最深的当属查阅大量的设计资料了.为了让自己的设计更加完善,查阅这方面的设计资料是十分必要的,同时也是必不可少的.我们是在做一个符合要求的单片机课程设计,但我们不是艺术家,他们可以抛开实际尽情在幻想的世界里翱翔,而我们一切都要有据可依,有理可寻,不切实际的构想永远只能是构想,永远无法升级为设计.为了写好程序,完成任务需查阅很多的资料,首先要先搞懂原理,比如ADC0808是如何工作的,DAC0832又是如何工作的,只有搞懂这些才能更好的设计出一个完善的系统.最后,要做好这个课程设计,就必须做到:在设计程序之前,对所用单片机的内部结构有一个系统的了解,知道该单片机内有哪些资源;要有一个清晰的思路和一个完整的的软件流程图;在设计程序时,不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路;在设计过程中遇到问题是很正常的,但我们应该将每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题.另外,这次大作业让我感到了团队合作的重要性.在团队中,我们互帮互助,对整个单片机课程设计来说,这是至关重要的,缺少每一个人都会对我们的设计产生影响.单片机课程设计结束了,但是从中学到的知识会让我受益终身.发现、提出、分析、解决问题和实践能力的提高都会受益于我在以后的学习、工作和生活中.9 参考文献[1] 李正发.电工电子技术基础实验.北京:科学出版社2005[2] 李群芳,黄建.单片微型计算机与接口技术.北京:电子工业出版社2005[3] 周永金.模拟电子技术与应用.西安:陕西国防学院电子教研室 2005[4] 朱志伟.单片机及嵌入式系统的应用.北京:北京航空航天大学出版社 2010[5] 张毅刚.单片机原理及应用.北京:高等教育出版社2003。
数字带通滤波器c语言程序,实现数字滤波的C语言程序
数字带通滤波器c语⾔程序,实现数字滤波的C语⾔程序在⼯业过程控制系统中,由于被控对象的环境⽐较恶劣,⼲扰源⽐较多,仪器、仪表采集的信息常会受到⼲扰,所以在模拟系统中,为了消除⼲扰,常采⽤RC滤波电路,⽽在由⼯业控制计算机组成的⾃动检测系统中,为了提⾼采样的可靠性,减少虚假信息的影响,常常采⽤数字滤波的⽅法。
数字滤波的⽅法有很多种,可以根据不同的测量参数进⾏选择。
下⾯给出⼏种常⽤的数字滤波⽅法的C语⾔函数,这些函数有⼀定的通⽤性,⽤Turbo C 2.0编制⽽成,在研华PC-610/386机上均编译通过,适⽤于PC机及其兼容机。
1.程序判数滤波采样的信号,如因常受到随机⼲扰传感器不稳定⽽引起严重失真时,可以采⽤此⽅法。
⽅法是:根据⽣产经验确定两交采样允许的最⼤偏差△×,若先后两次采样的信号相减数值⼤于△×,表明输⼊的是⼲扰信号,应该去掉;⽤上次采样值作为本次采样值,若⼩于、等于△×表明没有受到⼲扰,本次采样值效。
该⽅法适⽤于慢变化的物理参数的采样,如温度、物理位置等测量系统。
程序判断滤波的C程序函数如下:floatprogram_detect_filter(float old_new_value[], float X){floatsample_value;if(fabs(old_new_value[1]_old_new_value[0])>X)sample_value=old_new_value[0];elsesample_value=old_new_value[1];retrun(sample_value);}函数调⽤需⼀个⼀维的两个元素的数组(old_new_value[2],⽤于存放上次采样值(old_new_value[0],)和本次采样值(old_new_value[1],),函数中sample_value表⽰有效采样值,X表⽰根据根据经验确定的两次采样允许的最⼤偏差△×。
单片机与仿真课程设计
单片机与仿真课程设计一、课程目标知识目标:1. 理解单片机的基本原理,掌握其内部结构和功能;2. 学会使用仿真软件进行单片机程序的编写、调试与运行;3. 了解单片机在实际应用中的技术要求和发展趋势。
技能目标:1. 能够运用C语言编写简单的单片机程序;2. 熟练使用仿真软件对单片机程序进行调试和运行;3. 培养学生动手实践能力,能够设计简单的单片机控制系统。
情感态度价值观目标:1. 培养学生对单片机与仿真技术的兴趣,激发学习热情;2. 培养学生的团队协作精神,增强合作意识;3. 培养学生严谨的科学态度,提高创新意识和解决问题的能力。
课程性质:本课程为实践性较强的课程,旨在通过理论教学与实践操作相结合,使学生掌握单片机与仿真的基本知识和技能。
学生特点:学生具备一定的电子技术基础和编程能力,对单片机有一定了解,但对仿真软件的使用和实际应用尚不熟悉。
教学要求:注重理论与实践相结合,强调动手实践,培养学生解决实际问题的能力。
将课程目标分解为具体的学习成果,以便在教学过程中进行有效指导和评估。
二、教学内容1. 单片机原理概述:介绍单片机的基本概念、发展历程、内部结构和工作原理。
教材章节:第一章 单片机概述内容:单片机的发展、分类、内部结构及工作原理。
2. 单片机编程语言:学习C语言在单片机编程中的应用,掌握基本语法和编程技巧。
教材章节:第二章 单片机编程语言内容:C语言基础、数据类型、运算符、控制语句等。
3. 仿真软件使用:介绍仿真软件的功能、操作方法和使用技巧。
教材章节:第三章 单片机仿真软件内容:仿真软件的安装与使用、程序编写、调试与运行。
4. 单片机接口技术:学习单片机与外围设备的连接方法,掌握常见接口电路的设计和应用。
教材章节:第四章 单片机接口技术内容:I/O接口、定时器、中断、串行通信等接口的应用。
5. 单片机控制系统设计:结合实际案例,培养学生设计简单单片机控制系统的能力。
教材章节:第五章 单片机控制系统设计内容:控制系统设计方法、硬件设计、软件设计、调试与优化。
单片机的C语言程序设计与应用基于Proteus仿真第三版教学设计
单片机的C语言程序设计与应用基于Proteus仿真第三版教学设计背景单片机是现代电子工程与电子应用领域中不可或缺的组件之一。
C语言是目前广泛应用于单片机编程的高级编程语言。
基于Proteus仿真平台的单片机程序设计在教学中,可以使学生在理论概念掌握的基础上,更好地理解C语言程序在单片机上的应用。
因此,本文将从教学设计的角度出发,介绍单片机C语言程序设计与应用基于Proteus仿真的教学设计。
教学内容与目标本教学设计旨在使学生了解单片机的基本概念与应用,学习C语言程序设计,掌握基于Proteus仿真平台进行单片机程序设计的方法。
具体教学内容包括:•单片机的基础知识•C语言语法与程序设计•基于Proteus仿真平台进行单片机程序设计•实验设计与实验报告撰写本教学设计的教学目标为:•学习单片机的基本概念与应用•掌握C语言的语法与程序设计•熟练掌握基于Proteus仿真平台进行单片机程序设计的方法•具备实验设计与实验报告撰写的能力教学步骤步骤一:介绍单片机基础知识在本教学设计中,首先进行的是单片机基础知识的介绍。
学生应该了解单片机的基本概念及其应用。
可以向学生介绍单片机的工作原理、主要构成以及应用范围等相关知识。
在授课过程中,教师可以使用文字、图片等多种方式让学生更好地理解与记忆。
步骤二:介绍C语言语法与程序设计在进行单片机程序设计之前,学生需要了解C语言的语法以及程序设计方法。
在授课过程中,可以通过讲解、示例演示等多种方式进行教学。
重点讲解C语言的基础语法、变量、运算符、流程控制等内容,同时引导学生进行实际的编程操作。
步骤三:基于Proteus仿真平台进行单片机程序设计在学生了解单片机的基本概念与C语言程序设计基础后,开始进行基于Proteus仿真平台的单片机程序设计。
在实际教学中,可以引导学生进行简单的电路设计,然后将设计好的电路与单片机进行连接。
随后,将设计好的程序烧录到单片机中,并在仿真平台上进行模拟。
数字滤波程序课程设计
数字滤波程序课程设计一、教学目标本课程的教学目标是使学生掌握数字滤波程序的基本原理和设计方法,培养学生运用数字信号处理技术解决实际问题的能力。
具体目标如下:1.知识目标:(1)了解数字滤波器的分类及特点;(2)掌握常见数字滤波算法及其实现;(3)熟悉数字滤波程序的设计流程。
2.技能目标:(1)能够运用编程语言实现数字滤波器;(2)能够针对具体信号选择合适的数字滤波器并进行设计;(3)具备分析数字滤波器性能的能力。
3.情感态度价值观目标:(1)培养学生对数字信号处理技术的兴趣;(2)培养学生团队协作、自主探究的学习精神;(3)培养学生关注实际问题,运用所学知识解决实际问题的意识。
二、教学内容本课程的教学内容主要包括以下几个部分:1.数字滤波器的基本概念:介绍数字滤波器的定义、分类及其特点;2.数字滤波算法:讲解常见的数字滤波算法,如线性滤波器、非线性滤波器等,并分析其优缺点;3.数字滤波程序设计:介绍数字滤波程序的设计流程,包括需求分析、滤波器选择、算法实现、性能分析等;4.实际应用案例:分析数字滤波器在实际信号处理中的应用,如音频处理、图像处理等。
三、教学方法为实现教学目标,本课程将采用以下教学方法:1.讲授法:用于讲解基本概念、算法和设计方法;2.案例分析法:通过分析实际应用案例,使学生更好地理解数字滤波器的应用;3.实验法:让学生动手实现数字滤波器,提高实际操作能力;4.讨论法:鼓励学生针对具体问题进行探讨,培养团队协作和自主探究精神。
四、教学资源为实现教学目标,我们将准备以下教学资源:1.教材:选用权威、实用的教材,为学生提供系统、科学的学习资料;2.参考书:提供相关领域的参考书籍,丰富学生的知识体系;3.多媒体资料:制作精美的课件,提高课堂教学效果;4.实验设备:准备计算机、编程环境等实验设备,确保学生能够动手实践。
五、教学评估本课程的教学评估将采用多元化、全过程的评价方式,以全面、客观地评价学生的学习成果。
基于matlab的数字滤波器设计及滤波仿真
(1)设计三个频率混合的信号y,频率可设为100Hz、1000Hz、10000Hz;
(2)设计3个巴特沃斯模拟滤波器,分别为低通、高通、带通;
(3)用双线性变换法将设计好的巴特沃斯滤波器转换为数字滤波器;
(4)对混合信号y进行滤波;
(5)比较滤波前后信号各分量的变化;
(6)调试滤波器参数;
3、滤波器的设计
(1)可以从工作空间中直接导入已设计好的滤波器系数(如大作业中用FDATool设计好的滤波器的系数):
(2)也可以直接在SPTool中进行设计产生。如选择频谱列表中的filt1[design],单击Edit,或者在频谱列表中单击New,出现: 为比较两个信号的频谱,首先创建一个功率谱密度对象spect1,在SPTool主窗口中选择signal1[vector],然后单击频谱列表下面的Create按钮,这时会弹出频谱浏览器窗口。即使用缺省的参数创建了信号signal1的频谱,单击Apply,这是频谱图像就会显示出来。同样可创建另一个OUT2频谱图soect2。然后在频谱列表中使用shift同时选中两个频谱,单击View就可显示在频谱浏览器中,这样就可以比较滤波前后的频谱变化。
[B,A]=butter(N,wc,'high');
[H,W]=freqz(B,A);
y=filter(B,A,x);
subplot(335);
plot(W,abs(H));
title('高通滤波器');
subplot(338);
plot(t,y);
title('200Hz信号');
%带通滤波器设计:
在模型窗口中,选中模块,则其4个角会出现黑色标记。此时可以对模块进行以下的基本操作。
基于单片机系统的数字滤波方法
基于单片机系统的数字滤波方法1 多任务机制在单片机上的实现原理传统的单片机任务程序,在通常情况下会采用单任务方法。
单机制任务系统具有两个优点,第一个简单直观,第二个容易控制。
但是因为单机制程序只允许按照顺序依次执行,灵活性非常缺乏,只能够使用中断函数实时地处理一些简单的任务,如果使用一些比较复杂的应用,就会变得不易掌握。
多任务操作机制是现代操作系统的优点,它是将多任务操作机制引入单片机系统当中,然后快速提高单片机系统的工作效率,满足多任务系统的要求。
CPU的运行时间是根据不同优先级别分配给每个不相同的应用程序,每个应用程序在规定的时间片内使用CPU。
而时间片的划分在多任务操作机制中是切实可行的。
但是同时也要求单片机操作系统的运行能力必须简单易懂。
最常见的单片机是根据系统时钟将CPU 的运行时间进行划分划分,再通过系统的调度程序分给每个不同的任务模块。
这种多任务操作机制系统适合实时性需求比较高的场合。
将这种机制引入单片机系统中可以大大提高工作效率,满足各项任务需求。
什么叫实时多任务?其实实时多任务简单来说,也就是计算机在固定的时间以内由一个系统同时运行几个程序,在几个应用程序之间能够飞快地切换,开启的程序轮流使用CPU,但是因为切换时间过于短暂,所以容易让人误以为在同一时间内操作系统中运行多个操作程序的错觉。
看看操作系统,多任务系统只有两种形式,第一种是协同式,第二种是抢占式。
在协同式操作系统中,每个任务具有不同的优先级,当前任务优先级如果领先于其他任务,那么它一定会切换到最高优先级,系统的实时性被最大限度的提升,这种方法只适用于实时性较高的检测系统。
而在第二种抢占式当中,操作系统必须具有抢走另一个应用程序的能力,但是不用担心它会独占系统,因为系统自然地合理安排每个应用程序的时间。
这种系统之所以被称为抢占式系统,是因为它不论任何时候都会抢先一步取得控制系统的权利。
这样做能够让操作系统的独立性更好,但是相对的实时性也会在同一时间下降。
基于matlab的数字滤波器的设计和仿真
西安欧亚学院本科毕业论文(设计)题目:学生姓名:指导教师:所在分院:专业:班级:二O一一年四月基于Matlab的数字滤波器的设计与仿真摘要:传统的数字滤波器的设计关键词:.FDAtools;FIR数字滤波器;simullink仿真;窗函数法;频率采样法Matlab-based digital filter design and simulationAbstract:The traditional digital filter, the design process of complex computing workload big, filtering properties, affected it hard to adjust the application. This paper introduces a kind of Filter matlab FDAtools Analysis and Design tools themselves and order the Filter Tool (by rapid and effective Design) of software component Design method of traditional digital Filter. Using matlab language is given for program design and use of signal processing fdatool toolbox of tools for interface design of the specific steps. Matlabdesign filter, can always contrast the design requirements and filter characteristics, easy adjustment parameters greatly reduced the workload, be helpful for the optimization design of fir. This paper also introduces how to use matlab simulation software simulink filters the design of simulation.Keywords: FDAtools;FIR digital filters; simullink;simulstion window function method;frequency sampling method第1章绪论 (1)1.1 课题背景及目的 (1)1.2 国内外研究现状 (1)1.3 研究内容 (1)1.4 研究方法 (2)1.5 Matlab简介 (2)1.6 Matlab的特点 (2)1.7 Matlab的系统组成 (2)1.8 论文提纲 (3)第2章数字滤波器基本原理 (4)2.1 数字滤波器原理 (4)2.2 数字滤波器分类 (4)2.3 数字滤波器技术要求 (6)第3章FIR数字滤波器的设计 (9)3.1 窗函数法设计FIR数字滤波器 (9)3.1.1 窗函数法设计原理 (9)3.1.2 FIR数字滤波器的设计实例 (10)3.2 频率采样法设计FIR数字滤波器 (11)3.2.1 频率采样法的基本思想 (13)3.2.2 FIR数字滤波器的设计实例 (14)3.3 窗函数法和频率采样法 (18)3.3.1 通过实例对两种方法做比较 (18)3.3.2 两种方法设计带通滤波器 (20)第4章应用Simulink对FIR数字滤波器滤波 (22)4.1 FDATool和Simulink工具 (22)4.1.1 FDATool的介绍 (22)4.1.2 FDATool的使用 (22)4.2 Simulink工具 (22)4.2.1 Simulink的介绍 (22)4.2.2 Simulink的使用 (22)4.3 利用FDATool和Simulink设计FIR数字滤波器 (23)4.4 数字滤波器的仿真及实现 (25)第5章浅析用MATLAB辅助DSP实现FIR数字滤波器 (29)5.1 MATLAB辅助DSP开发简介 (29)5.2 MATLAB与CCS及目标DSP间的连接 (29)5.3 MATLAB辅助DSP实现FIR过程 (30)第6章结论 (31)致辞 (32)参考文献 (33)附录:论文中所提到的程 (34)第1章绪论1.1课题背景及目的1.1.1 背景来源本文FIR数字滤波器设计时Matlab软件使用的是Matlab7.0。
数字滤波器设计 上机 报告 c语言
实验报告||实验名称课程名称||专业班级:学生姓名:学号:成绩:指导教师:实验日期:一、设计目的通过编写IIR 数字滤波器程序,深入理解其中的含义,并且能够应用IIR 程序实现对信号的滤波处理。
二、设计任务按照课本实验五中的设计指标要求,编写IIR 数字滤波器的程序。
三、设计要求1、 IIR 数字滤波器程序相对独立,并加详细注释;2、 观察不同频率信号序列在滤波前和滤波后的序列幅度变化,理解数字滤波的含义;3、 思考不同频率信号滤波差异的原因; 四、IIR 数字滤波器的设计4.1用双线性变换法设计一个IIR 低通数字滤波器,其技术指标为通带频率范围0~200Hz ,通带最大衰减3dB ,阻带起始频-000Hz ,阻带最小衰减15dB ,采样频率8000Hz.采样时间Ts=1/8000=0.000125s. 因此,数字滤波器的设计指标是20.05p p s w f T radππ==,20.1ss s wf T radππ==,pδ= -3dB,sδ= -15dB采用双线性变换法。
首先,进行预畸变将上述数字滤波器的设计指标变换为模拟滤波器的设计指标,即p 2tan16000tan 0.0251259.22731/2p sw rad sT πΩ===,s 16000tan 0.052534.15105/rad sπΩ== p δ= -3dB,sδ= -15dB采用巴特沃思型逼近形式,因此,设计的模拟滤波器应满足20.32 1.51(/)101(/)10N p c N s c ⎧+ΩΩ=⎪⎨+ΩΩ=⎪⎩计算,得N=3,1260.22437/crad sΩ=.因此,模拟滤波器的系统函数aH(s)为23221()c c ca p pc c cH s s s s s s =ΩΩΩ==-+Ω+Ω+Ω∏(1)其次,采用双线性变换法,得数字滤波器的系统函数 H(z)为112121120.073013209(1)0.005717931(1)H(z)=H ()()10.853******* 1.8319368260.85480855z z z H z zz z-----++=--+ (2)可采用级联结构实现该滤波器。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计任务书题目: 基于数字滤波的单片机仿真和C语言开发初始条件:本课程设计,要求用使用Proteus仿真软件进行系统设计与仿真。
要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1、课程设计工作量:1周内完成对系统的设计、仿真。
2、技术要求:1)设计一种数字滤波器,比如:中值滤波算法、算术平均滤波算法、加权平均滤波算法、滑动平均滤波算法等,自行设计输入信号的形式(了解各种GENERATORS的使用)。
要求进行电路仿真实验,并使用C语言进行程序的开发。
2)要求学生主动思考,自主发挥,实现系统的特色功能。
3、查阅至少5篇参考文献。
按《武汉理工大学课程设计工作规范》要求撰写设计报告书。
全文用A4纸打印,图纸应符合绘图规范。
提交报告的主要内容:(使用Proteus 7.5 sp3)1)题目2)仿真所完成的主要功能和特色简介——摘要(特别是自己扩展的功能,根据特色功能评优)3)Proteus仿真的基本流程4)所使用芯片以及引脚功能简介(需要提供对应芯片DataSheet的下载链接)5)设计方案与工作原理,给出仿真电路图6)实验记录与结果分析时间安排:1)第1天,查阅相关资料,学习设计原理。
2)第2~3天,方案选择和电路设计仿真。
3)第4天,设计说明书撰写。
4)第5天,上交报告,同时进行答辩。
指导教师签名:年月日系主任(或责任教师)签名:年月日目录摘要 (I)Abstract (II)1. 开发环境 (1)1.1仿真工具 (1)1.2编程工具 (1)2硬件模块 (2)2.1 MCS-51单片机 (2)2.2 AD转换器 (2)2.3 DA转换器 (2)3.数字滤波器的算法 (3)3.1中值滤波器设计 (3)3.2加权平均滤波 (3)3.3限幅滤波 (4)3.4 滑动平均滤波 (4)4.系统的设计 (5)4.1系统框图 (6)5.系统电路图 (7)6.仿真结果 (9)7.系统分析 (11)8.总结 (12)参考文献 (13)附录一程序代码 (14)摘要本次项目是要我们利用51单片机设计出几种数字滤波器。
随着现在对滤波器的要求越来越高,模拟滤波器已经不能满足工业的要求。
在这种情况下,数字滤波器得到了很大的发展。
数字滤波器的实现过程的实现过程是把输入的模拟信号数字化,也就是由采样器对输入的模拟信号进行周期性的采样,并对每个样本进行量化和编码,即模数转换。
从ADC输出的数字信号送入到数字信号处理器进行处理变化,处理器输出的数字信号再通过数模转换为模拟信号,这个过程要用到DAC来转换实现模拟信号的输出。
关键字:51单片机;数字滤波器;ADC;DACAbstractThe project is for us to take advantage of 51 single design several digital filters. With the filter now increasingly demanding, analog filters can not meet the industry requirements. In this case, the digital filter has been greatly developed. Realization of the process of realization of a digital filter to the analog input signal is digitized, that is sampled by the analog input signal is periodically sampled and each sample is quantized and coded, i.e., analog to digital conversion. ADC output digital signal is fed to the digital signal processor for processing the change, and then outputs the digital signal processor is converted to analog by digital to analog signals, to use this process to convert the DAC output analog signal.Keywords: 51 single; digital filter; ADC; DAC1.开发环境1.1仿真工具我们这次在进行硬件仿真时运用的proteus工具,它具有以下功能:(1)能实现单片机仿真和SPICE电路仿真的结合。
具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真等功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。
(2)支持主流单片机系统的仿真。
目前支持的单片机类型有68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。
(3)提供软件调试功能。
在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如Keil C51 uVision2等软件。
(4)具有强大的原理图绘制功能。
1.2编程工具Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。
Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。
掌握这一软件的使用对于使用51系列单片机的爱好者来说是十分必要的,如果你使用C语言编程,那么Keil几乎就是你的不二之选(目前在国内你只能买到该软件、而你买的仿真机也很可能只支持该软件),即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。
2硬件模块2.1 MCS-51单片机51单片机内包含下列几个部件:一个8位CPU;一个片内振荡器及时钟电路;4KB ROM程序存储器;128B RAM数据存储器;可寻址64KB外部数据存储器和64KB外部程序存储器空间的控制电路;32条可编程的I/O线(4个8位并行I/O端口);两个16位的定时/计数器;5个中断源、两个优先级嵌套中断结构。
2.2 AD转换器本次课程设计仿真使用的是ADC0808,ADC0808是采样分辨率为8位的、以逐次逼近原理进行模/数转换的器件。
其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。
ADC0808是ADC0809的简化版本,功能基本相同。
一般在硬件仿真时采用ADC0808进行A/D转换,实际使用时采用ADC0809进行A/D转换。
ADC0808是CMOS单片型逐次逼近式A/D转换器,它有8路模拟开关、地址锁存与译码器、比较器、8位开关树型A/D转换器。
2.3 DA转换器DAC0832引脚功能电路应用原理图DAC0832是采样频率为八位的D/A转换芯片,集成电路内有两级输入寄存器,使DAC0832芯片具备双缓冲、单缓冲和直通三种输入方式,以便适于各种电路的需要(如要求多路D/A异步输入、同步转换等)。
D/A转换结果采用电流形式输出。
若需要相应的模拟电压信号,可通过一个高输入阻抗的线性运算放大器实现。
运放的反馈电阻可通过RFB端引用片内固有电阻,也可外接。
DAC0832逻辑输入满足TTL电平,可直接与TTL电路或微机电路连接。
3.数字滤波器的算法3.1中值滤波器设计中值滤波是先对某一参数连续采样N次(一般N取奇数),然后把N次采样值按从小到大排列,取中间值为本次采样值。
该滤波方法实际上是一种排序方法,我在此采用的是冒泡法排序。
由于在冒泡法排序中,每出现一次前者数据大于后者数据,就要进行二者数据的交换。
中值滤波是基于排序统计理论的一种能有效抑制噪声的非线性信号处理技术,中值滤波的基本原理是把数字图像或数字序列中一点的值用该点的一个邻域中各点值的中值代替,让周围的像素值接近的真实值,从而消除孤立的噪声点。
方法是去某种结构的二维滑动模板,将板内像素按照像素值的大小进行排序,生成单调上升(或下降)的为二维数据序列。
二维中值滤波输出为g(x,y)=med{f(x-k,y-l),(k,l ∈W)} ,其中,f(x,y),g(x,y)分别为原始图像和处理后图像。
W为二维模板,通常为2*2,3*3区域,也可以是不同的的形状,如线状,圆形,十字形,圆环形等。
中值滤波能有效地克服偶然因素引起的波动或采样器不稳定引起的误码等脉冲干扰。
对温度、液位等缓慢变化的被测参数采用此算法能收到良好的滤波效果,但对于流量、压力等快速变化的数据,不宜采用中位值滤波。
3.2加权平均滤波在算术平均滤波和移动平均滤波中,N次采样值在输出结果中的权重是均等的,取1/N。
用这样的滤波算法,对于时变信号会引入滞后,N值越大,滞后越严重。
为了增加新采样数据在移动平均中的权重,以提高系统对当前采样值中所受干扰的灵敏度,可采用加权平均滤波,它是移动平均滤波算法的改进。
加权平均滤波是对连续N次采样值分别乘上不同的加权系统之后再求累加和,加权系统一般先小后大,以突出后面若干采样的效果,加强系统对参数变化趋势的辨识。
各个加权系统均为小于1的小数,且满足总和等于1的约束条件。
这样,加权运算之后的累加和即为有效采样值。
为方便计算,可取各加权系数均为整数,且总和为256,加权运算后的累加和除以256,即舍去低字节后便是有效采样值。
3.3限幅滤波限幅滤波的基本原理是把两次相邻时刻(n和n-1)的采样值Yn和Yn-1相减,求出其差值,以绝对值表示,然后将这个差值与两次采样允许的最大偏差值ΔY比较,如果两次采样值的差值超过了允许的最大偏差值ΔY,则认为发生了随机干扰,并认为最后一次采样值Yn非法,应予剔除。
剔除Yn后,可用Yn-1代替Yn;若未超过允许的最大偏差值范围,则认为本次采样值有效。
可用如下公式表示:|Yn-Yn-1|≤ΔY;则Yn有效|Yn-Yn-1|>ΔY;则Yn-1有效。
3.4 滑动平均滤波把连续取N个采样值看成一个队列,队列的长度固定为N每次采样到一个新数据放入队尾,并扔掉原来队首的一次数据.(先进先出原则)把队列中的N个数据进行算术平均运算,就可获得新的滤波结果N值的选取:流量,N=12;压力:N=4;液面,N=4~12;温度,N=1~4。