当前位置:文档之家› 巴特沃斯低通滤波器(C语言)word版本

巴特沃斯低通滤波器(C语言)word版本

巴特沃斯低通滤波器(C语言)word版本
巴特沃斯低通滤波器(C语言)word版本

能实行,c语言不能显示图像,但是你要懂得如何用c调用matlab,过程比较复杂,这个程序任何参数都可以用,不限制

#include

#include

#include

#include

#include

double calcN(double fp,double ap, double fs, double as)

{

double i = pow(10,(as/10)) - 1;

double tmp = ap/10;

double j = pow(10,tmp) - 1;

double k = log10((i/j));

double t = log10(fs/fp);

double N = 0.5*k/t + 1;

return N;

};

int main(void)

{

int fp,ap,fs,as;

printf("请输入fp:");

scanf("%d", &fp);

printf("请输入ap:");

scanf("%d", &ap);

printf("请输入fs:");

scanf("%d", &fs);

printf("请输入as:");

scanf("%d", &as);

int f = calcN(fp, ap, fs, as);

printf("N=%d\n",f);

char lin[40];

char *str = "N=\0";

lin[0]='\0';

char in[4];

itoa(f,in,10);

strcat(lin,str);

strcat(lin,in);

strcat(lin, ";");

/////////////////////////////////////////////////////////// Engine *ep;

if(!(ep = engOpen(NULL)))

{

printf("open failed! please try again\n");

}

engSetVisible(ep, 0);

//mxArray *xx = mxCreateDoubleMatrix(1,N,mxREAL);

// mxArray *yy = mxCreateDoubleMatrix(1,N,mxREAL);

// memcpy(mxGetPr(xx),N*sizeof(double));

// memcpy(mxGetPr(yy),N*sizeof(double));

// engPutVariable(ep,"xx",xx);

//engPutVariable(ep,"yy",yy);

engEvalString(ep, "n=0:0.01:2;");

engEvalString(ep, lin);

engEvalString(ep, "[z,p,k]=buttap(N);");

engEvalString(ep, "[b,a]=zp2tf(z,p,k);");

engEvalString(ep, "[H,w]=freqs(b,a,n);");

engEvalString(ep, "magH=(abs(H)).^2;");

engEvalString(ep, "plot(w,magH);");

engEvalString(ep, "axis([0 2 0 1])");

engEvalString(ep, "xlabel('w/wc');");

engEvalString(ep, "ylabel('|H(jw)|^2');");

engEvalString(ep, "title('Butterworth analog filter prototype');");

engEvalString(ep, "grid;"); getchar();

//mxDestroyArray(xx);

// mxDestroyArray(yy);

// engClose(ep);

return 0;

}

数字图像处理_旋转与幅度谱(含MATLAB代码)

数字图像处理实验一 15生医 一、实验内容 产生右图所示图像 f1(m,n),其中图像大小为256 ×256,中间亮条为128×32,暗处=0,亮处=100。 对其进行FFT: ①同屏显示原图f1(m,n)和FFT(f1)的幅度谱图; ②若令f2(m,n)=(-1)^(m+n)f1(m,n),重复 以上过程,比较二者幅度谱的异同,简述理由; ③若将f2(m,n)顺时针旋转90度得到f3(m,n),试显示FFT(f3)的 幅度谱,并与FFT(f2)的幅度谱进行比较; ④若将f1(m,n) 顺时针旋转90度得到f4(m,n),令f5(m,n) = f1(m,n) + f4(m,n),试显示FFT(f5)的幅度谱,指出其与 FFT(f1)和FFT(f4)的关系; ⑤若令f6(m,n)=f2(m,n)+f3(m,n),试显示FFT(f6)的幅度谱,并指出其与 FFT(f2)和FFT(f3)的关系,比较FFT(f6)和FFT(f5)的幅度谱。 二、运行环境 MATLAB R2014a 三、运行结果及分析 1.同屏显示原图f1(m,n)和FFT(f1)的幅度谱图:

50100150200250 100150200250 50100150200250 100150200250 2.令f2(m,n)=(-1)^(m+n )f1(m,n),对其进行FFT ,比较f2与f1幅度谱的异同,简述理由: 50100150200250 100150200250 50100150200250 100150200250 异同及理由:①空域:f2由于前边乘了系数(-1)^(m+n ),导致灰度值有正有负,而在MATLAB 的imshow 函数中默认把负值变为0(有些情况是取反),所以形成了如左图所示的黑白花纹。②频域:FFT(2)

编译原理C语言词法分析器

编译原理 C语言词法分析器 一、实验题目 编制并调试C词法分析程序。 a.txt源代码: ?main() { int sum=0 ,it=1;/* Variable declaration*/ if (sum==1) it++; else it=it+2; }? 设计其词法分析程序,能识别出所有的关键字、标识符、常数、运算符(包括复合运算符,如++)、界符;能过滤掉源程序中的注释、空格、制表符、换行符;并且能够对一些词法规则的错误进行必要的处理,如:标识符只能由字母、数字与下划线组成,且第一个字符必须为字母或下划线。实验要求:要给出所分析语言的词法说明,相应的状态转换图,单词的种别编码方案,词法分析程序的主要算法思想等。 二、实验目的 1、理解词法分析在编译程序中的作用; 2、掌握词法分析程序的实现方法与技术; 3、加深对有穷自动机模型的理解。 三、主要函数 四、设计 1、主函数void main ( ) 2 3

4、整数类型判断函数 char *key1[]={" ","(",")","[","]","{","}",",",";","'"}; /*分隔符表*/

char *key2[]={" ","+","-","*","/","%","<",">","==",">=","<=","!=","!","&&","||","<<",">>","~","|","^","&","=","?:","->","++","--","、","+=","-=","*=","/="}; /*运算符表*/ int xx0[35],xx1[10],xx2[31]; int temp_key3=0,temp_c40=0,temp_c41=0,temp_c42=0,temp_c43=0; /******* 初始化函数*******/ void load() { int mm; for (mm=0;mm<=34;mm++) { xx0[mm]=0; } for (mm=0;mm<=9;mm++) { xx1[mm]=0; } for (mm=0;mm<=30;mm++) { xx2[mm]=0; } FILE *floading; if ((floading=fopen("key0、txt","w"))==NULL) { printf("Error! Can't create file : key0、txt"); return; } fclose (floading); /*建立保留字表文件:key0、txt*/ if ((floading=fopen("key1、txt","w"))==NULL) { printf("Error! Can't create file : key1、txt"); return; } /*建立分隔符表文件:key1、txt*/ if ((floading=fopen("key2、txt","w"))==NULL) { printf("Error! Can't create file : key2、txt"); return; } fclose(floading); /*建立运算符表文件:key2、txt*/ if ((floading=fopen("key3、txt","w"))==NULL) { printf("Error! Can't create file : key3、txt");

巴特沃斯数字低通滤波器

目录 1.题目.......................................................................................... .2 2.要求 (2) 3.设计原理 (2) 3.1 数字滤波器基本概念 (2) 3.2 数字滤波器工作原理 (2) 3.3 巴特沃斯滤波器设计原理 (2) 3.4脉冲响应不法 (4) 3.5实验所用MA TLAB函数说明 (5) 4.设计思路 (6) 5、实验内容 (6) 5.1实验程序 (6) 5.2实验结果分析 (10) 6.心得体会 (10) 7.参考文献 (10)

一、题目:巴特沃斯数字低通滤波器 二、要求:利用脉冲响应不变法设计巴特沃斯数字低通滤波器,通带截止频率100HZ,采样频率1000HZ ,通带最大衰减为0.5HZ ,阻带最小衰减为10HZ ,画出幅频、相频相应相应曲线。并假设一个信号x(t)=sin(2*pi*f1*t)+sin(2*pi*f2*t),其中f1=50HZ,f2=200HZ 。用此信号验证滤波器设计的正确性。 三、设计原理 1、数字滤波器的基本概念 所谓数字滤波器,是指输入、输出均为数字信号,通过数值运算处理改变输入信号所含频率成分的相对比例,或者滤波器除某些频率成分的数字器件或程序,因此,数字滤波的概念和模拟滤波相同,只是的形式和实现滤波方法不同。正因为数字滤波通过数值运算实现滤波,所以数字滤波处理精度高、稳定、体积小、质量轻、灵活、不存在阻抗匹配问题,可以实验模拟滤波器无法实现的特殊滤波功能。如果要处理的是模拟信号,可通过A\DC 和D\AC,在信号形式上进行匹配转换,同样可以使用数字滤波器对模拟信号进行滤波。 2、数字滤波器的工作原理 数字滤波器是一个离散时间系统,输入x(n)是一个时间序列,输出y(n)也是一个时间序列。如数字滤波器的系统函数为H(Z),其脉冲响应为h(n),则在时间域内存在下列关系 y(n)=x(n) h(n) 在Z 域内,输入输出存在下列关系 Y(Z)=H(Z)X(Z) 式中,X(Z),Y(Z)分别为输入x(n)和输出y(n)的Z 变换。 同样在频率域内,输入和输出存在下列关系 Y(jw)=X(jw)H(jw) 式中,H(jw)为数字滤波器的频率特性,X(jw)和Y(jw)分别为x(n)和y(n)的频谱。w 为数字角频率,单位rad 。通常设计H(jw)在某些频段的响应值为1,在某些频段的响应为0.X(jw)和H(jw)的乘积在频率响应为1的那些频段的值仍为X(jw),即在这些频段的振幅可以无阻碍地通过滤波器,这些频带为通带。X(jw)和H(jw)的乘积在频段响应为0的那些频段的值不管X(jw)大小如何均为零,即在这些频段里的振幅不能通过滤波器,这些频带称为阻带。 一个合适的数字滤波器系统函数H(Z)可以根据需要输入x(n)的频率特性,经数字滤波器处理后的信号y(n)保留信号x(n)中的有用频率成分,去除无用频率成分。 3、巴特沃斯滤波器设计原理 (1)基本性质 巴特沃斯滤波器以巴特沃斯函数来近似滤波器的系统函数。巴特沃斯滤波器是根据幅频特性在通频带内具有最平坦特性定义的滤波器。 巴特沃思滤波器的低通模平方函数表示1 () ΩΩ+ =Ωc N /22 a 11 ) (j H

基于MATLAB的巴特沃斯滤波器

数字信号处理课程设计 2015年 6 月25 日

目录 一.设计目的: (3) 二.设计要求: (3) 三.设计内容: (4) 3.1选择巴特涡斯低通数据滤波器及双线性变换法的原因 (4) 3.2巴特沃思低通滤波器的基本原理 (4) 3.3双线性变换法原理 (5) 3.4数字滤波器设计流程图 (7) 3.5数字滤波器的设计步骤 (7) 四.用matlab实现巴特沃斯低通数字滤波器的仿真并分析 (9) 4.1巴特沃斯低通数字滤波器技术指标的设置 (9) 4.2用matlab实现巴特沃斯低通数字滤波器的仿真 (9) 4.3波形图分析: (12) 五.总结与体会 (13) 六.附录参考文献 (14) 2

一.设计目的: 该课程设计是测控技术与仪器专业的必修课,开设课程设计的目的使学生掌握数字信号处理的基本概念和基本理论,能够利用辅助工具进行FIR和IIR数字滤波器的设计,进行一维信号的频谱分析,并进行仿真验证。加强实践教学环节,加强学生独立分析、解决问题的能力,培养学生动手能力和解决实际问题的能力,实现宽口径教育。 (1)理解低通滤波器的过滤方法。 (2)进一步熟悉低通滤波器的基本应用。 (3)用仿真工具matlab软件对设计的滤波器进行软件和硬件仿真。 (6)将对仿真结果进行比较,从而检验滤波器滤波性能的准确性。 二.设计要求: 地震发生时,除了会产生地震波,还会由地层岩石在断裂、碰撞过程中所发生的震动产生次声波。它的频率大约在每秒十赫兹到二十赫兹之间(可以用11Hz和15Hz的两个信号的和进行仿真,幅度可以分别设定为1、2)。大气对次声波的吸收系数很小,因此它可以传播的很远,而且穿透性很强。通过监测次声波信号可以监测地震的发生、强度等信息,因为自然界中广泛存在着各种次声波,这就对地震产生的次声波产生了干扰(可以用白噪声模拟,方差为5),需要采取一定的处理方法,才能检测到该信号,要求设计检测方案;并处理方法给出具体的软件(可以以51系列单片机、STM32F407、TMS320F28335或TMS320F6745为例)。 假设地震次声波信号为x,输入x=sin(2*π*11*t)+2*sin(2*π*15*t)和伴有白噪声的合成信号,经过滤波器后滤除15Hz以上的分量,即只保留x=sin(2*π*11*t)+2*sin(2*π*15*t)的分量信号,来验证设计的滤波器是否达到了设计要求。 3

用MATLAB编程实现数字图像旋转

用MATLAB编程实现数字图像旋转 摘要:文章论述了用Matlab编程实现数字图像旋转的基本方法,从计算机几何坐标中的图像旋转矩阵表示着手,给出了图像旋转变换的推导过程,用简单综合插值方法,基本解决了数字图像旋转后出现的空洞问题,并通过Matlab编程工具进行实验验证。 关键词:数字图像旋转;移动变换;旋转矩阵变换;简单综合插值。 数字图像处理是指将图像信号转换成数字信号并利用计算机对其进行处理的过程。目前,数字图像处理的信息大多是二维信息。由于数据量大,因此对计算机的计算速度、存储容量等要求较高。随着微型计算机性能的提高,原来以大型机、小型机为主机的图像处理系统演变为以微机为主机的结构,其应用也迅速普及,当前图像处理技术在工业自动化、工业检测、遥感探测、军事、航空、生物医学等各个方面都发挥着十分重要的作用。 图像旋转是一种常用的数字图像处理技术,传统的图像旋转都是在二维空间中进行的,由于旋转后图像像素点坐标不再是整数,故旋转后必须对像素点灰度进行一维插值运算或二维插值运算,尤其是当对旋转后的图像质量要求较高时,需要采用高阶插值运算。 文章从通用的图像旋转矩阵着手,给出了图像旋转变及换简单综合插值的推导过程,并用Matlab编程工具进行实验验证图像旋转结果。 1Matlab简介 MATLAB是矩阵实验室(Matrix Laboratory)之意。除具备卓越的数值计算能力外,它还提供了专业水平的符号计算,可视化建模仿真和实时控制等功能。MATLAB的基本数据单位是矩阵,它的指令表达式与数学,工程中常用的形式十分相似,故用MATLAB来解算问题要比用C、C#等语言来解算相同的事情简捷得多。 2图像旋转矩阵

c语言语法分析器详解

#include #include #include /*******************************************/ int count=0; /*分解的产生式的个数*/ int number; /*所有终结符和非终结符的总数*/ char start; /*开始符号*/ char termin[50]; /*终结符号*/ char non_ter[50]; /*非终结符号*/ char v[50]; /*所有符号*/ char left[50]; /*左部*/ char right[50][50]; /*右部*/ char first[50][50],follow[50][50]; /*各产生式右部的FIRST和左部的FOLLOW集合*/ char first1[50][50]; /*所有单个符号的FIRST集合*/ char select[50][50]; /*各单个产生式的SELECT集合*/ char f[50],F[50]; /*记录各符号的FIRST和FOLLOW是否已求过*/ char empty[20]; /*记录可直接推出@的符号*/ char TEMP[50]; /*求FOLLOW时存放某一符号串的FIRST集合*/ int validity=1; /*表示输入文法是否有效*/ int ll=1; /*表示输入文法是否为LL(1)文法*/ int M[20][20]; /*分析表*/ char choose; /*用户输入时使用*/ char empt[20]; /*求_emp()时使用*/ char fo[20]; /*求FOLLOW集合时使用*/ /******************************************* 判断一个字符是否在指定字符串中 ********************************************/ int in(char c,char *p) { int i; if(strlen(p)==0) return(0); for(i=0;;i++) { if(p[i]==c) return(1); /*若在,返回1*/ if(i==strlen(p)) return(0); /*若不在,返回0*/ } } /******************************************* 得到一个不是非终结符的符号 ********************************************/

(完整word版)基于巴特沃斯的低通滤波器的设计原理

课程设计报告 ——基于虚拟仪器的幅频特性自动测试系统的实现 2010年12月25日 一、实验内容 基于虚拟仪器的幅频特性自动测试系统的实现 二、实验目的 1、通过对滤波器的设计,充分了解测控电路中学习的各种滤波器的工作原理以及工作机制。学习幅频特性曲线的拟合,学会基本MATLAB操作。 2、进一步掌握虚拟仪器语言LabVIEW设计的基本方法、常用组件的使用方法和设计全过程。以及图形化的编程方法;学习非线性校正概念和用曲线拟合法实现非线性校正;练习正弦波、方波、三角波产生函数的使用方法;掌握如何使用数据采集卡以及EIVIS产生实际波形信号。了解图形化的编程方法;练习DIO函数的

使用方法;学习如何使用数据采集卡以及EIVIS产生和接受实际的数字信号。 3、掌握自主化学习的方法以及工程设计理念等技能。 三、实验原理 滤波器是具有频率选择作用的电路或运算处理系统。滤波处理可以利用模拟电路实现,也可以利用数字运算处理系统实现。滤波器的工作原理是当信号与噪声分布在不同频带中时,可以在频率与域中实现信号分离。在实际测量系统中,噪声与信号的频率往往有一定的重叠,如果重叠不严重,仍可利用滤波器有效地抑制噪声功率,提高测量精度。 任何复杂地滤波网络,可由若干简单地、相互隔离地一阶与二阶滤波电路级联等效构成。一阶滤波电路只能构成低通和高通滤波器,而不能构成带通和带阻。可先设计一个一阶滤波电路来熟悉电路设计思路以及器件使用要求和软件地进一步学习。 滤波器主要参数介绍: ①通带截频f p=w p/(2π)为通带与过渡带边界点的频率,在该点信号增益下降到一个人为规定的下限。 ②阻带截频f r=w r/(2π)为阻带与过渡带边界点的频率,在该点信号衰耗(增益的倒数)下降到一人为规定的下限。 ③转折频率f c=w c/(2π)为信号功率衰减到1/2(约3dB)时的频率,在很多情况下,常以f c作为通带或阻带截频。 ④固有频率f0=w0/(2π)为电路没有损耗时,滤波器的谐振频率,复杂电路往往有多个固有频率。 有源滤波器地设计,主要包括确定传递函数,选择电路结构,选择有源器件

真正实现C语言绘制数学函数图像

用C语言画函数图像 横纵坐标单位长度比校正(3:5) 真正的余弦函数 #include #include int sishewuru(float a); void main() { int n = 450; float a[500], b[500]; int i,j; a[0] = b[0] = 0; for (i = 1; i < n; i++)

a[i] = a[i - 1] + 0.01; b[i] = cos(a[i]); } int A[500],B[500]; for (i = 0; i < n; i++) { //printf("sin(%f)=%f\n", a[i], b[i]); a[i] = 100 * a[i]; b[i] = 55 * b[i]; A[i] = sishewuru(a[i]); B[i] = sishewuru(b[i])+60; //printf("sin(%d)=%d\n", A[i], B[i]); } for ( i = 100; i >=0; i--) { for ( j = 0; j < n; j++) { if (i==B[j]) { printf("*"); } else { printf(" "); } } printf("\n"); } } int sishewuru(float a) { int m; if (a-floor(a)<0.5) { m = a; return m; } else { m = a + 1; return m; } }

1.调节输出框大小,字符显示大小 2.确定函数的定义域 3.确定定义域上的步长 4.计算函数值 5.确定函数值放大系数 6.确定定义域恰好落在显示的区间内 7.确定坐标的单位长度与字符实际长度之间的换算关系 8.确定打点的顺序与坐标的关系 定义域在),(ππ-的正弦函数图像 定义域在),(ππ-的正切函数图像

巴特沃斯、切比雪夫滤波器的仿真与实现

华北科技学院课程设计任务书 2013 — 2014 学年第二学期 电子信息工程学院(系、部)通信工程专业 B111 班级课程名称:移动通信 设计题目:巴特沃斯、切比雪夫滤波器的仿真与实现完成期限:自16 周至 18 周共 3 周

目录 1.前言 (3) 1.1 MATLAB (3) 1.2 滤波器的概念 (5) 1.2.1滤波器的原理 (6) 1.2.2理想滤波器与实际滤波器 (6) 1.2.3 滤波器的分类 (7) 2.设计目的 (9) 3.设计原理 (9) 3.1.模拟低通滤波器的设计指标及逼近方法 (9) 3.2.巴特沃斯低通滤波器的设计方法 (10) 3.3.切比雪夫滤波器的设计方法 (14) 4.详细设计与系统分析 (21) 4.1程序设计 (21) 4.1.1巴特沃斯滤波器 (21) 4.1.2切比雪肤滤波器 (23) 4.2同一滤波器不同参数的比较 (25) 4.2.1巴特沃斯滤波器 (25) 4.2.2切比雪夫滤波器 (27) 4.3不同滤波器同一阶数的比较 (30) 4.3.1低通滤波器 (30) 4.3.2高通滤波器 (30) 4.3.3带通滤波器 (31) 4.3.4带阻滤波器 (31) 5.心得体会 (32) 6.参考文献 (32)

摘要:利用MATLAB设计滤波器,可以按照设计要求非常方便地调整设计参数,极大地减轻了设计的工作量,有利于滤波器设计的最优化。MATLAB因其强大的数据处理功能被广泛应用于工程计算,其丰富的工具箱为工程计算提供了便利,利用MATLAB信号处理工具箱可以快速有效地设计各种数字滤波器,设计简单方便。本文介绍了在MATLAB R2009a 环境下滤波器设计的方法和步骤。关键词:滤波器,MATLAB 1.前言 1.1 MATLAB MATLAB是美国MathWorks公司开发的一种功能极其强大的高技术计算语言和内容极其丰富的软件库,集数值计算、矩阵运算和信号处理与显示于一身。该软件最初是由美国教授Cleve Moler 创立的。1980年前后,他在教线性代数课程时,发现用其他高级语言编程时极不方便,便构思开发了MATLAB,即矩阵实验室(Matrix Laboratory)。该软件利用了当时代表数值线性代数领域最高水平的EISPACK和LINPACK两大软件包,并且利用Fortran 语言编写了最初的一套交互式软件系统,MATLAB的最初版本便由此产生了。 最初的MATLAB由于语言单一,只能进行矩阵的运算,绘图也只能用原始的描点法,内部函数只有几十个,因此功能十分简单。1984年该公司推出了第一个MATLAB的商业版,并用C语言作出了全部改写。现在的MATLAB程序是MathWorks公司用C语言开发的,第一版由steve Bangert主持开发编译解释程序,Steve Kleiman完

c语言字符串左旋转

假设原数组序列为abcd1234,要求变换成的数组序列为1234abcd,即循环右移了4 位。 比较之后,不难看出,其中有两段的顺序是不变的:1234 和abcd,可把这两段看成两个整 体。右移K 位的过程就是把数组的两部分交换一下。 变换的过程通过以下步骤完成: 逆序排列abcd:abcd1234 →dcba1234; 逆序排列1234:dcba1234 →dcba4321; 全部逆序:dcba4321 →1234abcd。 伪代码可以参考清单2-35。 //代码清单2-35 Reverse(int* arr, int b, int e) { for(; b < e; b++, e--) { int temp = arr[e]; arr[e] = arr[b]; arr[b] = temp; } } RightShift(int* arr, int N, int k) {

K %= N; Reverse(arr, 0, N – K - 1); Reverse(arr, N - K, N - 1); 8 Reverse(arr, 0, N - 1); } 这样,我们就可以在线性时间内实现右移操作了。 就拿abcdef 这个例子来说(非常简短的三句,请细看,一看就懂): 1、首先分为俩部分,X:abc,Y:def; 2、X->X^T,abc->cba,Y->Y^T,def->fed。 3、(X^TY^T)^T=YX,cbafed->defabc,即整个翻转。 #include 5. #include 6. 7. void rotate(char *start, char *end) 8. { 9. while(start != NULL && end !=NULL && start

C语言编译器的设计与实现.

C语言编译器的设计与实现 01计算机4班18号任春妍2号陈俊我们设计的编译程序涉及到编译五个阶段中的三个,即词法分析器、语法分析器和中间代码生成器。编译程序的输出结果包括词法分析后的二元式序列、变量名表、状态栈分析过程显示及四元式序列程序,整个编译程序分为三部分: (1) 词法分析部分 (2) 语法分析处理及四元式生成部分 (3) 输出显示部分 一.词法分析器设计 由于我们规定的程序语句中涉及单词较少,故在词法分析阶段忽略了单词输入错误的检查,而将编译程序的重点放在中间代码生成阶段。词法分析器的功能是输入源程序,输出单词符号。我们规定输出的单词符号格式为如下的二元式:(单词种别,单词自身的值) #define ACC -2 #define syl_if 0 #define syl_else 1 #define syl_while 2 #define syl_begin 3 #define syl_end 4 #define a 5 #define semicolon 6 #define e 7 #define jinghao 8 #define s 9 #define L 10 #define tempsy 11 #define EA 12 #define EO 13 #define plus 14 #define times 15 #define becomes 16 #define op_and 17 #define op_or 18 #define op_not 19 #define rop 20 #define lparent 21 #define rparent 22 #define ident 23 #define intconst 24

基于matlab-的巴特沃斯低通滤波器的实现

基于matlab 的巴特沃斯低通滤波器的实现 一、课程设计的目的 运用MATLAB实现巴特沃斯低通滤波器的设计以及相应结果的显示,另外还对多种低通滤波窗口进行了比较。 二、课程设计的基本要求 1)熟悉和掌握MATLAB 的基本应用技巧。 2)学习和熟悉MATLAB相关函数的调用和应用。 3)学会运用MATLAB实现低通滤波器的设计并进行结果显示。 三、双线性变换实现巴特沃斯低通滤波器的技术指标: 1.采样频率10Hz。 2.通带截止频率fp=0.2*pi Hz。 3.阻带截止频率fs=0.3*pi Hz。 4.通带衰减小于1dB,阻带衰减大于20dB 四、使用双线性变换法由模拟滤波器原型设计数字滤波器 程序代码: T=0.1; FS=1/T; fp=0.2*pi;fs=0.3*pi; wp=fp/FS*2*pi; ws=fs/FS*2*pi; Rp = 1; % 通带衰减 As = 15; % 阻带衰减 OmegaP = (2/T)*tan(wp/2); % 频率预计 OmegaS = (2/T)*tan(ws/2); % 频率预计 %设计巴特沃斯低通滤波器原型

N = ceil((log10((10^(Rp/10)-1)/(10^(As/10)-1)))/(2*log10(OmegaP/OmegaS))); OmegaC = OmegaP/((10^(Rp/10)-1)^(1/(2*N))); [z,p,k] = buttap(N); %获取零极点参数 p = p * OmegaC ; k = k*OmegaC^N; B = real(poly(z)); b0 = k; cs = k*B; ds = real(poly(p)); [b,a] = bilinear(cs,ds,FS);% 双线性变换 figure(1);% 绘制结果 freqz(b,a,512,FS);%进行滤波验证 figure(2); % 绘制结果 f1=50; f2=250; n=0:63; x=sin(2*pi*f1*n)+sin(2*pi*f2*n); subplot(2,2,1);stem(x,'.'); title ('输入信号'); y=filter(b,a,x); subplot(2,2,2);stem(y,'.') ; title('滤波之后的信号'); figure(3) ; stem(y,'.') title('输出的信号'))

巴特沃斯滤波器课程设计

摘要 摘要 本篇论文叙述了数字滤波器的基本原理,IIR数字滤波器的设计方法喝IIR数字高通滤波器设计在MATLABE上的实现与IIR数字滤波器在世纪中应用。无限脉冲响应(IIR)数字滤波器是冲击函数包含无限个抽样值的滤波器,一般是按照预定的模拟滤波器的逼近函数来转换成相应的数字滤波器,现有的逼近函数如巴特沃斯,切比雪夫。其设计过程都是由模拟滤波器的系统函数去变换出相应的数字滤波器的系统函数。 关键字:数字滤波器,MATLAB,巴特沃斯,切比雪夫,双线性变换法

ABSTRACT ABSTRACT The queue phenomenon in the telecom offices is a normal issue. To improve the customers’satisfaction and to support the company changing, we should solve this problem properly. The basic goal to resolve queue problem is the appropriate tradeoff between the customers’ wavy demand and the telecom office s’limited service capability. This paper is based on the queuing theory and demand management theory. And based on the data collection and customer survey and interview, the author uses some statistical methods to reflect the actuality. Then the author finds the reason of queuing in telecom office from customers’ view. Furthermore, the author analyses the real demand of the customers by sorting them into types of paying and time and price sensitivity.To follow up, three solutions had been brought forward: firstly, distributing the customers; secondly, stopping phone by different number; lastly, promoting the demand during the non-fastidious. Key Words: queuing theory, demand management, telecom offices

数字图像处理9-图像的平移与旋转

这次作业的内容是要完成让图片绕任意一点旋转的效果,同时要了解图像旋转的原理。为了达到这一目的,我在老师的示例代码上进行了改进,并自己计算出新的变换矩阵,达到了作业中要求的效果。这里我们先来看一下旋转的效果。 旋转中心(0,0),旋转60°旋转中心(0,0),旋转120° 旋转中心(100,0),旋转120°旋转中心(0,600),旋转120° 图像的大小是690*728,旋转的角度为顺时针,因此可以看到四副图中的结果都是符合预期的。之后我们来通过代码,详细的分析这一变化实现的过程。代码如下: close all; f = imread('try.jpg'); theta = 2* pi / 3; x0=0; y0=600; T = [cos(theta) sin(theta) 0 -sin(theta) cos(theta) 0 0 0 1]; t1=[ 1 0 0

0 1 0 -x0 -y0 1]; t2=[1 0 0 0 1 0 x0 y0 1]; T=t1*T*t2; tform = maketform('affine',T); [g, xdata, ydata] = imtransform(f,tform, 'FillValue',255); imshow(g,'XData',xdata,'YData',ydata); hold on; imshow(f); axis auto; axis on; 读入图像后,先设定了三个参数,x0y0就是旋转中心的坐标,而theta就是旋转角(顺时针)。这里要详细说明一下这几个矩阵的作用,并且推导出其生成的过程。首先最主要的矩阵T,是负责旋转的矩阵。以下这个图片摘自网络,可以说较为完整的解释了这个矩阵的来历。

巴特沃斯滤波器c语言

1. 模拟滤波器的设计 1.1巴特沃斯滤波器的次数 根据给定的参数设计模拟滤波器,然后进行变数变换,求取数字滤波器的方法,称为滤波器的间接设计。做为数字滤波器的设计基础的模拟滤波器,称之为原型滤波器。这里,我们首先介绍的是最简单最基础的原型滤波器,巴特沃斯低通滤波器。由于IIR滤波器不具有线性相位特性,因此不必考虑相位特性,直接考虑其振幅特性。 在这里,N是滤波器的次数,Ωc是截止频率。从上式的振幅特性可以看出,这个是单调递减的函数,其振幅特性是不存在纹波的。设计的时候,一般需要先计算跟所需要设计参数相符合的次数N。首先,就需要先由阻带频率,计算出阻带衰减 将巴特沃斯低通滤波器的振幅特性,直接带入上式,则有 最后,可以解得次数N为 当然,这里的N只能为正数,因此,若结果为小数,则舍弃小数,向上取整。 1.2巴特沃斯滤波器的传递函数 巴特沃斯低通滤波器的传递函数,可由其振幅特性的分母多项式求得。其分母多项式

根据S解开,可以得到极点。这里,为了方便处理,我们分为两种情况去解这个方程。当N为偶数的时候, 这里,使用了欧拉公式。同样的,当N为奇数的时候, 同样的,这里也使用了欧拉公式。归纳以上,极点的解为 上式所求得的极点,是在s平面内,在半径为Ωc的圆上等间距的点,其数量为2N个。为了使得其IIR滤 波器稳定,那么,只能选取极点在S平面左半平面的点。选定了稳定的极点之后,其模拟滤波器的传递函数就可由下式求得。

1.3巴特沃斯滤波器的实现(C语言) 首先,是次数的计算。次数的计算,我们可以由下式求得。 其对应的C语言程序为 [cpp]view plaincopy 1.N = Ceil(0.5*( log10 ( pow (10, Stopband_attenuation/10) - 1) / 2. log10 (Stopband/Cotoff) )); 然后是极点的选择,这里由于涉及到复数的操作,我们就声明一个复数结构体就可以了。最重要的是,极点的计算含有自然指数函数,这点对于计算机来讲,不是太方便,所以,我们将其替换为三角函数, 这样的话,实部与虚部就还可以分开来计算。其代码实现为 [cpp]view plaincopy 1.typedef struct 2.{ 3.double Real_part; 4.double Imag_Part; 5.} COMPLEX; 6. 7. https://www.doczj.com/doc/b011581308.html,PLEX poles[N]; 9. 10.for(k = 0;k <= ((2*N)-1) ; k++) 11.{ 12.if(Cotoff*cos((k+dk)*(pi/N)) < 0) 13. { 14. poles[count].Real_part = -Cotoff*cos((k+dk)*(pi/N)); 15.poles[count].Imag_Part= -Cotoff*sin((k+dk)*(pi/N)); 16. count++; 17.if (count == N) break; 18. } 19.}

巴特沃斯滤波器的设计与仿真

信号与系统课程设计 题目巴特沃斯滤波器的设计与仿真 学院英才实验学院 学号2015180201019 学生姓名洪 健 指导教师王玲芳

巴特沃斯滤波器的设计与仿真 英才一班 洪健 2015180201019 摘 要:工程实践中,为了得到较纯净的真实信号,常采用滤波器对真实信号进行处理。本文对巴特沃斯模拟滤波器的幅频特性、设计方法及设计步骤进行了研究,并利用Matlab 程序和Multisim 软件,设计了巴特沃斯模拟滤波器,并分析了巴特沃斯模拟滤波器的幅频特性。利用 Matlab 程序绘制了巴特沃斯模拟滤波器的幅频特性曲线,并利用Matlab 实现了模拟滤波器原型到模拟低通、高通、带通、带阻滤波器的转换。通过Multisim 软件,在电路中设计出巴特沃斯滤波器。由模拟滤波器原型设计模拟高通滤波器的实例说明了滤波器频率转换效果。同时通过电路对巴特沃斯滤波器进行实现,说明了其在工程实践中的应用价值。 关键词:巴特沃斯滤波器 幅频特性 Matlab Multisim 引言 滤波器是一种允许某一特定频带内的信号通过,而衰减此频带以外的一切信号的电路,处理模拟信号的滤波器称为模拟滤波器。滤波器在如今的电信设备和各类控制系统里应用范围最广,技术最为复杂,滤波器的好坏直接决定着产品的优劣。滤波器主要分成经典滤波器和数字滤波器两类。从滤波特性上来看,经典滤波器大致分为低通、高通、带通和带阻等。 模拟滤波器可以分为无源和有源滤波器。 无源滤波器:这种电路主要有无源元件R、L 和C 组成。有源滤波器:集成运放和R、C 组成,具有不用电感、体积小、重量轻等优点。集成运放的开环电压增益和输入阻抗均很高,输出电阻小,构成有源滤波电路后还具有一定的电压放大和缓冲作用。但集成运放带宽有限,所以目前的有源滤波电路的工作频率难以做得很高。 MATLAB 是美国MathWorks 公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB 和Simulink 两大部分。 Multisim10 是美国NI 公司推出的EDA 软件的一种,它是早期EWB5.0、Multisim2001、Multisim7、Multisim8、Multisim9等版本的升级换代产品,是一个完全的电路设计和仿真的工具软件。该软件基于PC 平台,采用图形操作界面虚拟仿真了一个如同真实的电子电路实验平台,它几乎可以完成实验室进行的所有的电子电路实验,已被广泛应用于电子电路的分析,设计和仿真等工作中,是目前世界上最为流行的EDA 软件之一。 本文主要对低通模拟滤波器做主要研究,首先利用MATLAB 软件对巴特沃斯滤波器幅频特性曲线进行研究,并计算相应电路参数,最后利用Multisim 软件实现有源巴特沃斯滤波器。 正文 1巴特沃斯低通滤波器 巴特沃斯(Butterworth)滤波器的幅频特性如该幅频特性的特点如下: ① 最大平坦性。可以证明,在ω=0处,有最大值|H(0)|=1,幅频特性的前2n-1阶导数均为零。这表示它在ω=0点附近是很平坦的。 ② 幅频特性是单调下降的,相 频 特 性 也 是 单 调 下降的。因此, 巴特沃斯滤波器对有用信号产生的幅值畸变和相位畸变都很小。 ③ 无论阶数n是什么数,都会通过C = ,并且此时|()|H j ,而且n 越大,其幅频响应就越逼近理想情况。

C语言图形开发库函数graphics

函数名: fillellipse 功能: 画出并填充一椭圆 用法: void far fillellipse(int x, int y, int xradius, int yradius); 程序例: #include #include int main(void) { int gdriver = DETECT, gmode; int xcenter, ycenter, i; initgraph(&gdriver,&gmode,""); xcenter = getmaxx() / 2; ycenter = getmaxy() / 2; for (i=0; i<13; i++) { setfillstyle(i,WHITE); fillellipse(xcenter,ycenter,100,50); getch(); } closegraph(); return 0; } Graphics 类 .NET Framework 类库 Graphics 类 封装一个GDI+ 绘图图面。无法继承此类。 命名空间:System.Drawing 程序集:System.Drawing(在system.drawing.dll 中) 语法 Visual Basic(声明)

Public NotInheritable Class Graphics Inherits MarshalByRefObject Implements IDeviceContext, IDisposable Visual Basic(用法) Dim instance As Graphics C# public sealed class Graphics : MarshalByRefObject, IDeviceContext, IDisposable C++ public ref class Graphics sealed : public MarshalByRefObject, IDeviceContext, IDisposable J# public final class Graphics extends MarshalByRefObject implements IDeviceContext, IDisposable JScript public final class Graphics extends MarshalByRefObject implements IDeviceContext, IDisposable 备注 Graphics类提供将对象绘制到显示设备的方法。Graphics与特定的设备上下文关联。 通过调用从System.Windows.Forms.Control继承的对象的Control.CreateGraphics方法,或通过处理控件的Control.Paint事件并访问System.Windows.Forms.PaintEventArgs类的Graphics属性,可以获取Graphics。 继承层次结构 System.Object System.MarshalByRefObject System.Drawing.Graphics 线程安全 此类型的任何公共静态(Visual Basic 中的Shared)成员都是线程安全的,但不保证所有实例成员都是线程安全的。 平台 Windows 98、Windows 2000 SP4、Windows CE、Windows Millennium Edition、Windows Mobile for Pocket PC、Windows Mobile for Smartphone、Windows Server 2003、Windows XP Media Center Edition、Windows XP Professional x64 Edition、Windows XP SP2、Windows XP Starter Edition

相关主题
文本预览
相关文档 最新文档