matlab中的double

matlab中的double
matlab中的double

matlab默认的数据类型是double(64位) 。

double是双精度浮点数,保留16位有效数字。

双精度到底是几位,与你的系统有关的,如果你的系统是32位的,那么一般双精度是64位,单精度就是32位,这个规律不是万能的,总之与你的系统有关。

自己试验的结果:opencv和matlab中double类型的数,都只有16位的准确位数。

遇到问题:

matlab往xml写入double型数组时,用

dataElement.appendChild(docNode.createTextNode(sprintf('%f',mat_input(i,j))));

出现的问题是,0.000000 0.009261 0.176968 0.007195 0.000000 0.008346等。这样,原本是double类型的数组就被截成了小数点后六位的精确度。显然数据损失了。

解决方法:

dataElement.appendChild(docNode.createTextNode(sprintf('%1.15f',mat_input(i,j))));

这样就解决了精度的问题了。

0.000000000000449 0.009260753386601 0.176968253826983

0.007194591900531 0.000000000066297

遗留问题:

之一:0.000000000000449 在matlab中是4.491631742909341e-13

之二:'%1.15f'是保证了“小数点前1位,小数点后15位”的格式存储。问题是,如果不知道数据的16位小数点前后分配情况,怎么保证格式?

遇到问题:

matlab中,

dtElement.appendChild(docNode.createTextNode(sprintf('%s','d')));

一定要注意存储数据的格式

d:double

f:float

这样才能保证在opencv读取xml时的精度保证。

简单低通滤波器设计及matlab仿真

东北大学 研究生考试试卷 考试科目: 课程编号: 阅卷人: 考试日期: 姓名:xl 学号: 注意事项 1.考前研究生将上述项目填写清楚. 2.字迹要清楚,保持卷面清洁. 3.交卷时请将本试卷和题签一起上交. 4.课程考试后二周内授课教师完成评卷工作,公共课成绩单与试卷交研究生院培养办公室, 专业课成绩单与试卷交各学院,各学院把成绩单交研究生院培养办公室. 东北大学研究生院培养办公室

数字滤波器设计 技术指标: 通带最大衰减: =3dB , 通带边界频率: =100Hz 阻带最小衰减: =20dB 阻带边界频率: =200Hz 采样频率:Fs=200Hz 目标: 1、根据性能指标设计一个巴特沃斯低通模拟滤波器。 2、通过双线性变换将该模拟滤波器转变为数字滤波器。 原理: 一、模拟滤波器设计 每一个滤波器的频率范围将直接取决于应用目的,因此必然是千差万别。为了使设计规范化,需要将滤波器的频率参数作归一化处理。设所给的实际频 率为Ω(或f ),归一化后的频率为λ,对低通模拟滤波器令λ=p ΩΩ/,则1 =p λ, p s s ΩΩ=/λ。令归一化复数变量为p ,λj p =,则p p s j j p Ω=ΩΩ==//λ。所以巴 特沃思模拟低通滤波器的设计可按以下三个步骤来进行。 (1)将实际频率Ω规一化 (2)求Ωc 和N 11010/2-=P C α s p s N λααlg 1 10 110lg 10 /10/--= 这样Ωc 和N 可求。 p x fp s x s f

根据滤波器设计要求=3dB ,则C =1,这样巴特沃思滤波器的设计就只剩一个参数N ,这时 N p N j G 222 )/(11 11)(ΩΩ+= += λλ (3)确定)(s G 因为λj p =,根据上面公式有 N N N p j p p G p G 22)1(11 )/(11)()(-+= += - 由 0)1(12=-+N N p 解得 )221 2exp(πN N k j p k -+=,k =1,2, (2) 这样可得 1 )21 2cos(21 ) )((1 )(21+-+-= --= -+πN N k p p p p p p p G k N k k 求得)(p G 后,用p s Ω/代替变量p ,即得实际需要得)(s G 。 二、双线性变换法 双线性变换法是将s 平面压缩变换到某一中介1s 平面的一条横带里,再通过标准变换关系)*1exp(T s z =将此带变换到整个z 平面上去,这样就使s 平面与z 平面之间建立一一对应的单值关系,消除了多值变换性。 为了将s 平面的Ωj 轴压缩到1s 平面的1Ωj 轴上的pi -到pi 一段上,可以通过以下的正切变换来实现: )21 tan(21T T Ω= Ω 这样当1Ω由T pi -经0变化到T pi 时,Ω由∞-经过0变化到∞+,也映射到了整个Ωj 轴。将这个关系延拓到整个s 平面和1s 平面,则可以得到

各类滤波器的MATLAB程序清单

各类滤波器的MATLAB程序 一、理想低通滤波器 IA=imread(''); [f1,f2]=freqspace(size(IA),'meshgrid'); Hd=ones(size(IA)); r=sqrt(f1.^2+f2.^2); Hd(r>=0; Y=fft2(double(IA)); Y=fftshift(Y); Ya=Y.*Hd; Ya=ifftshift(Ya); Ia=ifft2(Ya); figure subplot(2,2,1),imshow(uint8(IA)); subplot(2,2,2),imshow(uint8(Ia)); figure surf(Hd,'Facecolor','interp','Edgecolor','none','Facelighting','phong'); 二、理想高通滤波器 IA=imread(''); [f1,f2]=freqspace(size(IA),'meshgrid'); Hd=ones(size(IA)); r=sqrt(f1.^2+f2.^2); Hd(r<=0; Y=fft2(double(IA));

Y=fftshift(Y); Ya=Y.*Hd; Ya=ifftshift(Ya); Ia=real(ifft2(Ya)); figure subplot(2,2,1),imshow(uint8(IA)); subplot(2,2,2),imshow(uint8(Ia)); figure surf(Hd,'Facecolor','interp','Edgecolor','none','Facelighting','phong'); 三、B utterworth低通滤波器 IA=imread(''); [f1,f2]=freqspace(size(IA),'meshgrid'); D=; r=f1.^2+f2.^2; n=4; for i=1:size(IA,1) for j=1:size(IA,2) t=r(i,j)/(D*D); Hd(i,j)=1/(t^n+1); end end Y=fft2(double(IA)); Y=fftshift(Y); Ya=Y.*Hd; Ya=ifftshift(Ya); Ia=real(ifft2(Ya));

matlab数据类型及转换

Matlab中有15种基本数据类型,主要是整型、浮点、逻辑、字符、日期和时间、结构数组、单元格数组以及函数句柄等。 1、整型:(int8;uint8;int16;uint16;int32;uint32;int64;uint64)通过intmax(class)和intmin(class) 函数返回该类整型的最大值和最小值,例如intmax(‘int8’)=127; 2、浮点:(single;double) 浮点数:REALMAX('double')和REALMAX('single')分别返回双精度浮点和单精度浮点的最大值,REALMIN('double')和REALMIN ('single')分别返回双精度浮点和单精度浮点的最小值。 3、逻辑:(logical) Logical:下例是逻辑索引在矩阵操作中的应用,将5*5矩阵中大于0.5的元素设定为0: A = rand(5); A(A>0.5)=0; 4、字符:(char) Matlab中的输入字符需使用单引号。字符串存储为字符数组,每个元素占用一个ASCII字符。如日期字符:DateString=’9/16/2001’ 实际上是一个1行9列向量。构成矩阵或向量的行字符串长度必须相同。可以使用char函数构建字符数组,使用strcat函数连接字符。 例如,命令name = ['abc' ; 'abcd'] 将触发错误警告,因为两个字符串的长度不等,此时可以通过空字符凑齐如:name = ['abc ' ; 'abcd'],更简单的办法是使用char函数:char(‘abc’,’abcd’),Matlab自动填充空字符以使长度相等,因此字符串矩阵的列纬总是等于最长字符串的字符数. 例如size(char(‘abc’,’abcd’))返回结果[2,4],即字符串’abc’实际存在的是’abc ’,此时如需提取矩阵中的某一字符元素,需要使用deblank函数移除空格如name =char(‘abc’,’abcd’); deblank(name(1,:))。 此外,Matlab同时提供一种更灵活的单元格数组方法,使用函数cellstr可以将字符串数组转换为单元格数组: data= char(‘abc’,’abcd’) length(data(1,:)) ->? 4 cdata=cellstr(data) length(cdata{1}) ->?3 常用的字符操作函数 blanks(n) 返回n个空字符 deblank(s) 移除字符串尾部包含的空字符 (string) 将字符串作为命令执行 findstr(s1,s2) 搜索字符串 ischar(s) 判断是否字符串 isletter(s) 判断是否字母 lower(s) 转换小写 upper(s) 转换大写 strcmp(s1,s2) 比较字符串是否相同 strncmp(s1,s2,n) 比较字符串中的前n个字符是否相同 strrep(s1,s2,s3) 将s1中的字符s2替换为s3 5、日期和时间 Matlab提供三种日期格式:日期字符串如’1996-10-02’,日期序列数如729300(0000年1月1日为1)以及日期向量如1996 10 2 0 0 0,依次为年月日时分秒。 常用的日期操作函数

基于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('输出的信号'))

FIR低通滤波器+matlab编程+滤波前后图形

Matlab实现振动信号低通滤波 附件txt中的数字是一个实测振动信号,采样频率为5000Hz,试设计一个长度为M=32的FIR低通滤波器,截止频率为600Hz,用此滤波器对此信号进行滤波。要求: (1)计算数字截止频率; (2)给出滤波器系数; (3)绘出原信号波形; (4)绘出滤波后的信号波形; 解答过程: 第一部分:数字截止频率的计算 =600/5000/2=0.24 数字截止频率等于截止频率除以采样频率的一半,即 n 第二部分:滤波器系数的确定 在matlab中输入如下程序,即可得到滤波器系数: n=32 Wn=0.24 b=fir1(n,Wn) 得到的滤波器系数b为 Columns 1 through 9 -0.0008 -0.0018 -0.0024 -0.0014 0.0021 0.0075 0.0110 0.0077 -0.0054 Columns 10 through 18 -0.0242 -0.0374 -0.0299 0.0087 0.0756 0.1537 0.2166 0.2407 0.2166 Columns 19 through 27 0.1537 0.0756 0.0087 -0.0299 -0.0374 -0.0242 -0.0054 0.0077 0.0110 Columns 28 through 33 0.0075 0.0021 -0.0014 -0.0024 -0.0018 -0.0008 第三部分:原信号波形 将附件4中的dat文件利用识别软件读取其中的数据,共1024个点,存在TXT 文档中,取名bv.txt,并复制到matlab的work文件夹。 在matlab中编写如下程序: x0=load('zhendong.txt'); %找到信号数据地址并加载数据。 t=0:1/5000:1023/5000; %将数据的1024个点对应时间加载

matlab图像数据类型转换

uint 8:无符号的8位(8bit)整型数据(unit 都是存储型) int :整型数据 1、在MATLAB中,数值一般都采用double型(64位)存储和运算. 2、为了节省存储空间,MATLAB为图像提供了特殊的数据类型uint8(8位无符号整数),以此方式存储的图像称为8位型像。 3、函数image能够直接显示8位图像,但8位型数据和double型数据在image中意义不一样, 4、对于索引图像,数据矩阵中的值指定该像素的颜色种类在色图矩阵中的行数。当数据矩阵中的值为0时,表示用色图矩阵中第一行表示的颜色绘制;当数据矩阵中的值为1时,表示用色图矩阵中的第二行表示的颜色绘制该像素,数据与色图矩阵中的行数总是相差1。所以,索引图像double型和uint8型在显示方法上没有什么不同,只是8位数据矩阵的值和颜色种类之间有一个偏差1。调用格式均为image(x); colormap(map); 5、对于灰度图像,uint8表示范围[0,255],double型表示范围[0,1]。可见,double型和uint8型灰度图像不一样,二者转换格式为: I8=uint8 (round (I64*255)); !!double转换成uint 8 I64=double (I8)/255; !!!uint转换成double 反之,imread根据文件中的图像种类作不同的处理。当文件中的图像为灰度图像时,imread 把图像存入一个8位矩阵中,把色图矩阵转换为双精度矩阵,矩阵中每个元素值在[0,1]内;当为RGB图像时,imread把数据存入到一个8位RGB矩阵中。!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! MATLAB中读入图像的数据类型是uint8,而在矩阵中使用的数据类型是double 因此 I2=im2double(I1) :把图像数组I1转换成double精度类型; 如果不转换,在对uint8进行加减时会产生溢出 图像数据类型转换函数 默认情况下,matlab将图象中的数据存储为double型,即64位浮点数;matlab还支持无符号整型(uint8和uint16);uint型的优势在于节省空间,涉及运算时要转换成double型。 im2double():将图象数组转换成double精度类型 im2uint8():将图象数组转换成unit8类型 im2uint16():将图象数组转换成unit16类型 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 默认情况下,matlab将图像中的数据存储为double型,即64位浮点数;matlab还支持无符号整型(uint8和uint16);uint型的优势在于节省空间,涉及运算时要转换成double型。 但是,问题的真正的解释其实应该是这样的。首先是在数据类型转换时候uint8和im2uint8的区别,uint的操作仅仅是将一个double类型的小数点后面的部分去掉;但是im2uint8是将输入中所有小于0的数设置为0,而将输入中所有大于1的数值设置为255,再将所有其他值乘以255。 图像数据在进行计算前要转化为double类型的,这样可以保证图像数据运算的精

基于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 模块介绍 -------- 数学 & 金融 u Curve Fitting Toolbox Curve Fitting Toolbox 扩展MATLAB 环境,集成数据管理,拟合,显示,检验和输入分析过程等功能。所有能通过GUI 使用的功能都可以通过命令行来进行。

u Database Toolbox ——与关系数据库交换数据 Database Toolbox提供了同任何支持ODBC/JDBC标准的数据库进行数据交换的能力。利用在工具箱中集成的Visual Query Builder工具,无需学习任何SQL语句就可以实现在数据库中查寻数据的功能。这样MATLAB就能够对存储在数据库中的数据进行各种各样的复杂分析。在MATLAB环境中,也可以使用SQL命令来进行如下操作: 对数据库数据进行读、写操作;应用简单或复杂的条件查询数据库中的内容。 特点: ?与支持ODBC/JDBC 数据库建立连接,包括Oracle 、Sybase SQL Server ,Sybase SQL Anywhere ,Microsoft SQL Sever ,Microsoft Access ,Informix Ingres 等。?支持SQL 语句,可以在MATLAB 环境下直接执行SQL 查询命令 ?动态数据调入:可以根据需要使用SQL 在MATLAB 中获取数据,本工具箱对某一种类型的数据库进行大量或小量的查询 ?数据类型保持:在MATLAB 中对数据的调入或调出操作都能保持原有的数据类型 ?多个对话能力,采用本工具箱可在MATLAB 中从一个数据库中调入数据,对那些数据进行分析,然后输出到另一个数据库中 ?处理大量数据的能力:采用本工具箱你可以一次或分几次处理大量的数据,这样能让你根据任务高效地进行数据处理 ?连续状态的数据库联接:一旦和某个数据库的联接建立起来后,数据库一直是打开的,除非你在MATLAB 中执行关闭语句。这提高了数据库的读取速度,减少了不必要的命令来调入、输出数据。 ?无需了解SQL 也能够对数据库数据进行查询。 功能: Database Toolbox 可以与流行的数据库交互数据,其中包括Oracle ,Sybase ,Microsoft SQL Server 及Informix 等。工具箱还允许在单个MATLAB 进程中对多个数据库进行操作,同时支持对大量数据处理。工具箱中包含的Visual Query Builder ,即使不知道SQL ,也能可视化地与数据库打交道。 u Financial Derivatives Toolbox Financial Derivatives Toolbox 用于分析金融衍生工具和投资。 特点 ?提供各种利息率模型 ?提供七种金融工具一系列计算的函数

matlab设计低通滤波器

个matlab程序怎么编?(设计低通滤波器) 通带边缘频率10khz 阻带边缘频率22khz 阻带衰减75db 采样频率50khz 要求设计这个低通滤波器 画出脉冲响应的图形 还有滤波器的形状 具体程序怎么编? 谢谢各位大虾的指点!!! 最佳答案 1.1 实验目的 1.了解数字信号处理系统的一般构成; 2.掌握奈奎斯特抽样定理。 1.2 实验仪器 1.YBLD智能综合信号源测试仪1台 2.双踪示波器1台 3.MCOM-TG305数字信号处理与现代通信技术实验箱1台 4.PC机(装有MATLAB、MCOM-TG305配套实验软件)1台 1.3 实验原理 一个典型的DSP系统除了数字信号处理部分外,还包括A/D和D/A两部分。这是因为自然界的信号,如声音、图像等大多是模拟信号,因此需要将其数字化后进行数字信号处理,模拟信号的数字化即称为A/D转换。数字信号处理后的数据可能需还原为模拟信号,这就需要进行D/A转换。一个仅包括A/D和D/A两部分的简化数字信号处理系统功能如图1所示。 A/D转换包括三个紧密相关的过程,即抽样、量化和编码。A/D转换中需解决的以下几个重要问题:抽样后输出信号中还有没有原始信号的信息?如果有能不能把它取出来?抽样频率应该如何选择?

奈奎斯特抽样定理(即低通信号的均匀抽样定理)告诉我们,一个频带限制在0至fx以内的低通信号x(t),如果以fs≥2fx的抽样速率进行均匀抽样,则x(t)可以由抽样后的信号xs(t)完全地确定,即xs(t)包含有x(t)的成分,可以通过适当的低通滤波器不失真地恢复出x(t)。最小抽样速率fs=2fx称为奈奎斯特速率。 低通 译码 编码 量化 抽样 输入信号样点输出滤波输出 A/D(模数转换)D/A(数模转换) 图1 低通采样定理演示 为方便实现,实验中更换了一种表现形式,即抽样频率固定(10KHz),通过改变输入模拟信号的频率来展示低通抽样定理。我们可以通过研究抽样频率和模拟信号最高频率分量的频率之间的关系,来验证低通抽样定理。 1.4 实验内容 1.软件仿真实验:编写并调试MATLAB程序,分析有关参数,记录有关波形。 2.硬件实验:输入不同频率的正弦信号,观察采样时钟波形、输入信号波形、样点输出波形和滤波输出波形。 1.5 MATLAB参考程序和仿真内容 %*******************************************************************% %f—余弦信号的频率

用matlab编程设计切比雪夫低通滤波器..

目录 1摘要 (3) 2设计原理 (4) 2.1 切比雪夫滤波器介绍 (4) 2.2滤波器的分类 (5) 2.3 模拟滤波器的设计指标 (6) 3切比雪夫I型滤波器 (7) 3.1 切比雪夫滤波器的设计原理 (7) 3.2切比雪夫滤波器的设计步骤 (10) 3.3 用matlab编程设计切比雪夫低通滤波器 (11) 4 总结 (18) 5 参考文献 (18)

摘要 随着信息和数字时代的到来,数字信号处理已成为当今一门极其重要的学科和技术领域。在现代通信系统中,由于信号中经常混有各种复杂成分,因此很多信号的处理都是基于滤波器而进行的。所以,数字滤波器在数字信号处理中起着举足轻重的作用。 而数字滤波器的设计都要以模拟滤波器为基础的,这是因为模拟滤波器的理论和设计方方法都已发展的相当成熟,且有典型的模拟滤波器供我们选择。,如巴特沃思滤波器、切比雪夫滤波器等。 本次课程设计将运用MATLAB设计一个基于切比雪夫低通滤波器,并出所设计滤波器的幅度及幅度衰减特性。 关键词:滤波切比雪夫模拟低通 1切比雪夫滤波器介绍

在巴特沃兹滤波器中,幅度响应在通带和阻带内都是单调的。因此,若滤波器的技术要求是用最大通带和阻带的逼近误差来给出的话,那么,在靠近通带低频端和阻带截止频率以上的部分都会超出技术指标。一种比较有效的途径是使逼近误差均匀地分布于通带或阻带内,或同时在通带和阻带内都均匀分布,这样往往可以降低所要求的滤波器阶次。通过选择一种具有等波纹特性而不是单调特性的逼近方法可以实现这一点。切比雪夫型滤波器就具有这种性质:其频率响应的幅度既可以在通带中是等波纹的,而在阻带中是单调的(称为I 型切比雪夫滤波器),也可以在通带中是单调的,而在阻带中是等波纹的(称为II 型切比雪夫滤波器),其中切比雪夫II 型滤波器又称为逆切比雪夫滤波器。 I 型切比雪夫滤波器的幅度平方函数是 2|)(|Ωj H C = )/(11 2 2c N C ΩΩ+ε (2.1) 其中ε是一个小于1的正数,它与通带波纹有关,ε越大,波纹也越大,式中为N 阶切比雪夫多项式,定义为 )cos cos()(1x N x C N -= (2.2) 当N 大于或等于1时,从定义切比雪夫多项式可以直接得出由 ) (x C N 和 )(1x C N -求)(1x C N +的递推公式。将三角恒等式代入 (2.2)式,得 )(1x C N +=2x -)(x C N )(1x C N - (2.3) 从 (2.2)式我们注意到,当01时,x 1cos -是虚数,所以) (x C N 像双曲余弦一样单调地增加。参考(2.1), 2|)(|Ωj H C 对于0≤p ΩΩ/≤1呈现出在1和1/(21ε+)之间的波动;而对于 p ΩΩ/〉1单调地减小。需要用三个参量来确定该滤波器:ε,p Ω和N 。 在典型的设计中,用容许的通带波纹来确定ε,而用希望的通带截止频率来确定 c Ω。然后选择合适的阶次N ,以便阻带的技术要求得到满足。

matlab数据类型和转换

matlab数据类型和转换 Matlab中有15种基本数据类型,主要是整型、浮点、逻辑、字符、日期和时间、结构数组、单元格数组以及函数句柄等。 1、整型:(int8;uint8;int16;uint16;int32;uint32;int64;uint64)通过intmax(class)和intmin(class) 函数返回该类整型的最大值和最小值,例如intmax(‘int8’)=127; 2、浮点:(single;double) 浮点数:REALMAX('double')和REALMAX('single')分别返回双精度浮点和单精度浮点的最大值,REALMIN('double')和REALMIN ('single')分别返回双精度浮点和单精度浮点的最小值。 3、逻辑:(logical) Logical:下例是逻辑索引在矩阵操作中的应用,将5*5矩阵中大于0.5的元素设定为0: A = rand(5); A(A>0.5)=0; 4、字符:(char) Matlab中的输入字符需使用单引号。字符串存储为字符数组,每个元素占用一个ASCII字符。如日期字符:Date String=’9/16/2001’ 实际上是一个1行9列向量。构成矩阵或向量的行字符串长度必须相同。可以使用char函数构建字符数组,使用strcat函数连接字符。 例如,命令 name = ['abc' ; 'abcd'] 将触发错误警告,因为两个字符串的长度不等,此时可以通过空字符凑齐如:name = ['abc ' ; 'abcd'],更简单的办法是使用char函数:char(‘abc’,’abcd’),Matlab自动填充空字符以使长度相等,因此字符串矩阵的列纬总是等于最长字符串的字符数. 例如s ize(char(‘abc’,’abcd’))返回结果[2,4],即字符串’abc’实际存在的是’abc ’,此时如需提取矩阵中的某一字符元素,需要使用deblank 函数移除空格如name =char(‘abc’,’abcd’); deblank(name(1,:))。 此外,Matlab同时提供一种更灵活的单元格数组方法,使用函数cellstr 可以将字符串数组转换为单元格数组: data= char(‘abc’,’abcd’) length(data(1,:)) ->? 4 cdata=cellstr(data) length(cdata{1}) ->?3 常用的字符操作函数 blanks(n) 返回n个空字符 deblank(s) 移除字符串尾部包含的空字符 (string) 将字符串作为命令执行 findstr(s1,s2) 搜索字符串 ischar(s) 判断是否字符串 isletter(s) 判断是否字母 lower(s) 转换小写 upper(s) 转换大写 strcmp(s1,s2) 比较字符串是否相同

低通滤波的matlab实现

四种低通滤波器: 一、理想低通滤波器 I=imread('bb.jpg'); T=rgb2gray(I); figure(1); subplot(1,2,1),imshow(uint8(I)); title('原图像'); subplot(1,2,2),imshow(uint8(T)); title('理想低通滤波所得图像'); [f1,f2]=freqspace(size(T),'meshgrid'); H=ones(size(T)); r=sqrt(f1.^2+f2.^2); H(r>0.1)=0; Y=fft2(double(T)); Y=fftshift(Y); Ya=Y.*H; Ya=ifftshift(Ya); I=ifft2(Ya); figure(2); surf(H,'Facecolor','interp','Edgecolor','none','Facelighting','phong'); title('频谱图');

二、巴特沃斯低通滤波器 I=imread('bb.jpg'); T=rgb2gray(I); figure(1); subplot(1,2,1),imshow(uint8(I)); title('原图像'); subplot(1,2,2),imshow(uint8(T)); title('巴特沃斯低通滤波所得图像'); [f1,f2]=freqspace(size(T),'meshgrid'); D=0.3; r=f1.^2+f2.^2; n=4; for i=1:size(T,1) for j=1:size(T,2) t=r(i,j)/(D*D); H(i,j)=1/(t^n+1); end end Y=fft2(double(T)); Y=fftshift(Y); Ya=Y.*H; Ya=ifftshift(Ya); I=real(ifft2(Ya)); figure(2); surf(H,'Facecolor','interp','Edgecolor','none','Facelighting','phong'); title('频谱图');

利用matlab设计巴特沃斯低通滤波器

三峡大学 课程设计报告 专业班级 20091421 课程数字信号处理课程设计 学号 2009142116 学生姓名姜祥奔 指导教师王露 2012年 5 月 平时成绩(20%) 报告成绩(40%) 答辩成绩(40%) 总成绩

数字信号处理课程设计 实验一:用双线性变换法和脉冲响应不变法设计IIR 数字滤波器 采用双线性变换法设计一个巴特沃斯数字低通滤波器,要求:通带截止频率 100Hz ,阻带截止频率200Hz ,通带衰减指标Rp 小于2dB ,阻带衰减Rs 大于15dB ,滤波器采样频率Fs=500Hz 。绘制频率响应曲线。 理论部分:(原理及设计过程) 第一步:论ω和f 的关系及数字域性能的公式表示。模拟频率与数字频率之间为线性关系,T f T fT T s ,101,24-===Ω=πω为抽样周期,故 ππω4.0500110021=? ?==c c kHz f 对应于 修正后 )2 t a n (21c T ω=Ω ππω8.0500120021=? ?==st st kHz f 对应于 修正后 )2 tan(21st T ω= Ω 按衰减的定义 2) ()(log 204.0010≤πj j e H e H 15)()(log 208.0010 ≥πj j e H e H 设0=ω处频率响应幅度归一化为1,即1)(0=j e H ,则上两式变成 2)(log 204.010-≥πj e H (1) 15)(log 208.010-≤πj e H (2)

这就是数字滤波器的性能指标的表达式。 2 下面把数字低通滤波器的性能要求转变为“样本”模拟低通滤波器的性能 要求。由T Ω=ω,按修正式)()(T j H e H a j ωω≈,设没有混叠效应(即混叠效应设计完成后再进行校验) 则有 πωω ω≤Ω==),()()(j H T j H e H a a j (3) 利用(3)式,由(1)、(2)式可写出模拟低通滤波器的指标为 2)102(log 20)4.0(log 2021010-≥?=ππj H T j H a a …….(4) 15)104(log 20)8.0(log 2021010-≤?=ππj H T j H a a …(5) 3 计算“样本”模拟低通滤波器所需的阶数N 及3dB 截止频率C Ω。巴特沃思低通滤波器的幅度平方函数是 N C a j H 22)(11)(ΩΩ+=Ω 以分贝形式表示上式,即 ?? ????ΩΩ+-=ΩN C a j H 21010)(1log 10)(log 20 ……………(6) 把求出的性能指标关系(4)式、(5)式代入(6)式得 2)(1log 102110-≥?? ????ΩΩ+-N C 15)(1log 102210-≤?? ????ΩΩ+-N C 先用等号来满足指标,可得 N C 21)(1ΩΩ+=2.010 N C 22)(1ΩΩ+=5.110 解此两方程,得N=1.3709, N 是滤波器阶次,必须取整数,为了满足或超过给定

课程设计-低通滤波器设计(含matlab程序)

2010/2011学年第2 学期 学院:信息与通信工程学院 专业:电子信息科学与技术 学生姓名:学号: 课程设计题目:低通滤波器设计 起迄日期: 6 月13 日~6月24日课程设计地点: 指导教师: 系主任: 下达任务书日期: 2011 年 6 月12 日

课程设计任务书

课程设计任务书

目录 1 设计目的及要 (5) 1.1设计目的 (5) 1.2设计内容和要求 (5) 2 设计原理 (5) 2.1 FIR滤波器 (5) 2.2窗函数 (6) 2.3矩形窗 (7) 3 设计过程 (8) 3.1 设计流程图 (8) 3.2 产生原始信号并分析频谱 (8) 3.3 使用矩形窗设计不同特性的数字滤波器 (10) 3.4 信号滤波处理 (11) 4 实验结果及分析 (12) 5 课程设计心得体会 (12) 6 参考文献 (13) 附录: (14)

低通滤波器的设计 1 设计目的及要求 1.1设计目的 设计一种低通滤波器并对信号进行滤波。低通滤波器的作用是滤去信号中的中频和高频成分,增强低频成分。要求做到: 1.了解MATLAB 的信号处理技术; 2.使用MATLAB 设计低通滤波器,掌握其滤波处理技术; 3.对滤波前和滤波后的波形进行时域和频域比较。 1.2设计内容和要求 1.熟悉有关采样,频谱分析的理论知识,对信号作频谱分析; 2.熟悉有关滤波器设计理论知识,选择合适的滤波器技术指标,设计低通滤波器对信号进行滤波,对比分析滤波前后信号的频谱; 3.实现信号频谱分析和滤波等有关MATLAB 函数; 2 设计原理 本次课程设计,我们主要是基于矩形窗的FIR 滤波器来设计一个低通滤波器。 2.1 FIR 滤波器 FIR 滤波器即有限抽样响应因果系统,其单位抽样响应h(n)是有限长的;极点皆位于z=0处;结构上不存在输出到输入的反馈,是非递归型的。其系统函数表示为: ()()n -1 -N 0 n z n h z H ∑== 普通的FIR 滤波器系统的差分方程为: ()()()i n x i h n y 1 N 0 i -=∑-= 式中:N 为FIR 滤波器的抽头数;x(n)为第n 时刻的输入样本;h(i)为FIR 滤波器 第 i 级抽头系数。

简述基于MATLAB设计巴特沃斯低通滤波器

基于MATLAB 设计巴特沃斯低通滤波器 摘 要: 首先分析了巴特沃斯低通滤波器的特性。然后用MATLAB 的信号处理工具箱提供的函 数设计了巴特沃斯低通滤波器,使得巴特沃斯滤波器的设计变得更加简单、快捷、直观。 巴特沃斯(Butterworth)滤波器是一种具有最大平坦幅度响应的低通滤波器,它在通信领域里已有广应用,在电测中也具有广泛的用途,可以作检测信号的滤波器。MATLAB 语言是一种面向科学与工程计算的语言。它编程效率高,测试程序手段丰富,扩展能力强,内涵丰富。它的信号处理工具箱(Signal Processing Toolbox)提供了设计巴特沃斯滤波器的函数,本文充分利用这些函数,进行了巴特沃斯滤波器的程序设计,并将其作为函数文件保存,可方便地进行调用。 1. 巴特沃斯低通滤波器的特性 巴特沃斯低通滤波器的平方幅度响应为: n c j H 22)(11 )(ωωω+= 其中,n 为滤波器的阶数,ωc 为低通滤波器的截止频率。该滤波器具有一些特殊 的性质: ① 对所有的n ,都有当 ω=0时,|H(j0)|2 =1; ② 对所有的n ,都有当ω=ωc 时,|H(j ωc )|2 =0.5 ,即在ωc 处有3dB 的衰减; ③|H(j ω)|2 是ω的单调递减函数,即不会出现幅度响应的起伏; ④ 当n →+∞时,巴特沃斯滤波器趋向于理想的低通滤波器; ⑤ 在ω=0处平方幅度响应的各级导数均存在且等于0,因此|H(j ω)|2 在该点上取得最大值,且具有最大平坦特性。 图l 展示了2阶、4阶、8阶巴特沃斯低通滤波器的幅频特性。可见阶数n 越高,其幅频特性越好,低频检测信号保真度越高。 巴特沃斯与贝塞尔(Besse1)、切比雪夫(Cheby.shev)滤波器的特性差异如图2所示。 从图2可以看出,巴特沃斯滤波器在线性相位、衰减斜率和加载特性三个方面具有特性均衡的优点,因此在实际使用中,巴特沃斯滤波器已被列为首选。

基于MATLAB低通滤波器

通信系统仿真课程设计任务书院(系):电气信息工程学院

目录 1 绪论 0 1.1 引言 0 1.2 数字滤波器的设计原理 0 1.3 数字滤波器的应用 (1) 1.4 MATLAB的介绍 (2) 1.5 本文的工作及安排 (2) 2 滤波器分类及比较 (3) 2.1 滤波器的设计原理 (3) 2.2 滤波器分类 (3) 2.3 两种类型模拟滤波器的比较 (5) 3 巴特沃斯低通滤波器 (6) 3.1 巴特沃斯低通滤波器简介 (6) 3.2 巴特沃斯低通滤波器的设计原理 (6) 4 MATLAB仿真及分析 (10) 4.1 MATLAB工具箱函数 (10) 4.2 巴特沃斯低通滤波器的MATLAB仿真 (10) 另附程序调试运行截图: (12) 5.1 总结 (12) 5.2 展望............................................... 错误!未定义书签。

1 绪论 1.1 引言 凡是有能力进行信号处理的装置都可以称为滤波器。 滤波器在如今的电信设备和各类控制系统里面应用范围最广、技术最为复杂,滤波器的好坏直接决定着产品的优劣。自60年代起由于计算机技术、集成工艺和材料工业的发展,滤波器发展上了一个新台阶,并且朝着低功耗、高精度、小体积、多功能、稳定可靠和价廉方向努力,其中小体积、多功能、高精度、稳定可靠成为70年代以后的主攻方向。使以数字滤波器为主的各种滤波器得到了飞速的发展,到70年代后期,数字滤波器的单片集成已被研制出来并得到应用。80年代,致力于各类新型滤波器的研究,努力提高性能并逐渐扩大应用范围。90年代至现在主要致力于把各类滤波器应用于各类产品的开发和研制。当然,对数字滤波器本身的研究仍在不断进行。[1] 滤波器主要分成经典滤波器和数字滤波器两类。从滤波特性上来看,经典滤波器大致分为低通、高通、带通和带阻等。本文主要对低通数字滤波器做主要研究。 1.2 数字滤波器的设计原理 所谓数字滤波器,是指输入、输出均为数字信号,通过数值运算处理改变输入信号所含频率成分的相对比例,或者滤除某些频率成分的数字器件或程序。因此,数字滤波器的概念和模拟滤波相同,只是信号的形式和现实滤波方法不同。正因为数字滤波器通过数值运算实现实现滤波,所以数字滤波器处理精度高、稳定、体积小、重量轻、灵活、不存在阻抗匹配问题,可以实现模拟滤波器无法实现的特殊滤波功能。如果要处理的是模拟信号,可以通过A/DC 和D/AC ,在信号形式上进行匹配转换,同样可以使用数字滤波器对模拟信号进行滤波。[2] 大多数的数字滤波器都归类于选频滤波器,其频率响应函数)(ωj e H 如下: )()()(ωθωωj j j e e H e H = (1.1) 式中,)(ωj e H 称为幅频特性函数;称为相频特性函数。幅频特性反应的是信号从此滤波器通过后各个频率成分的振幅衰减情况,相频特性表示的是经过滤波器之后各个频率成分在时间上的延时情况。因此,即使两个滤波器幅频特性相同,而相频特性不同,对相同的输入,滤波器输出的信号波形也是不一样的。通常情况下幅频特性决定了选频滤波器的技术要求,因为巴特沃斯低通滤波器具有固定的相频特性,所以设计时对相频特性基本没有要求。

相关文档
最新文档