基于Matlab的常用滤波算法研究(含代码) - 图文(8)

2019-07-13 18:02

毕业设计(论文)

样数据的滤波则是必不可少的,未来的滤波方式肯定是越来越丰富。

从滤波发展历程讲,数字滤波经历了几个重要阶段,20世纪60年代数字滤波刚刚兴起。当时主要采用计算机模拟的方式进行数字滤波研究。70年代,开始将微处理器应用于数字滤波。但是由于处理器性能不高,在很多场合都难以实现实时处理。80年代,由于VLSI技术的发展,通用DSP处理器大量涌现并逐渐趋于成熟,使得音频范围内数字滤波技术得到广泛应用。目前,不仅通用DSP芯片的速度和功能不断提高,还出现了专用DSP芯片能适应要求信号处理速度极快的特殊场合,总之,目前数字滤波领域的研究十分热门、未来发展方向众多、前景光明。

就本系统的滤波而言,还有许多值得改进和提高的地方:

1、采用的许多滤波算法较为简单,难以适应更高的滤波要求,限于时间和知识的有限,还有许多复杂的现代滤波算法没有讨论。

2、对滤波结果分析得不够透彻,由于对滤波算法研究不够深入,许多分析都十分浅显,难以分析到问题的本质。

3、课题中许多算法的滤波效果仍然不够精细,比如中位值平均的滤波效果仍有一些提高的空间,有待进一步改进。

4、仅仅基于MATLAB环境进行设计,没有更全面的设计和测试,与实际的滤波效果肯定有一定的差异。

35

毕业设计(论文)

致 谢

本文是在导师的悉心指导下完成的。从毕设的选题、相关知识的学习、程序的编写到论文的写作,王老师都给予了足够的帮助与指导,使我受益匪浅。同时感谢同组同学的帮助,使我在融洽的环境中完成毕业设计。最后感谢父母的鼓励与支持,使我能够顺利完成学业。

再次向所有关心帮助我的老师、亲人和朋友表示感谢!

36

毕业设计(论文)

参考文献

[1] 严洪燕,武桦.动态信号分析仪自动检定系统设计[J].自动化与仪表,2010,3(02): 16-17.

[2]张令弥, 张春林.多通道动态测试分析系统研制与应用[J]. 振动与冲击, 1995, 14(3): 1-3.

[3]刘晋浩.冲击响应谱的应用方法研究[J]. 包装工程, 2006, 27(4): 29-30. [4]邓重一.滤波技术的发展现状[J].传感器世界,2010,03:1-2.

[5]邹彦.DSP原理及应用[M].北京:电子工业出版社,2005.169-170.

[6]张玉春,杨成峰.基于小波变换的数字滤波[J].天津电力技术, 2008, 03(1): 6-7.

[7]罗文忠. 动态信号分析仪软件分析[D].上海:上海大学, 2013. 1-2. [8]史慧. 实时动态信号分析仪的研制[D].吉林:吉林大学, 2006. 1-3.

[9]姜建国.信号与系统分析基础[M].北京:清华大学出版社,2006.218-219. [10]阮锐. 数字滤波技术的探讨[J]. 海洋测绘, 1998, 02(4): 28-29.

[11] 杨峰,苏玉萍,余冬菊. 用MATLAB模拟实现数字信号的调制与频谱分析[J]. 电脑学习, 2008, (04).

[12] 王占丽.频谱分析技术在实际中的应用[J].黑龙江科技信息, 2009, (27) .

[13] 赵淑敏.基于MATLAB实现对语音信号频谱分析[J].信息通信,2010, (04) .

[14] 李媛媛,徐岩,王靖岳.对MATLAB实现数字信号的频谱分析[J].通信技术, 2008, (01) .

[15] 张玉珊,崔金玲.数据采集系统中的数字滤波方法研究[J].通信技术, 2007, (15)3.23-25.

[16]丁玉美.数字信号处理(第二版)[M].西安:西安电子科技大学出版社,2000.12.

[17]王世一.数字信号处理[M].北京:北京理工大学出版社,2005. [18]洪乃刚.电力电子、电机控制系统的建模和仿真[M].北京:机械工业出版社 , 2010.1-3.

[19]陈杰. MATLAB宝典[M].北京:电子工业出版社,2007.

[20] 尹则明,丁春利,等.精通MATLAB6[M].北京:清华大学出版社,2002.

37

毕业设计(论文)

附录:程序代码清单

1、模拟噪声信号的产生的MATLAB实现代码 close all; clc; clear;

load data0.mat x=b(:,1); y=b(:,2);

fs=25000;% 对应于离散数字信号的采样速率 n=length(y);% 做fft的点数 f=fs*[-n/2:n/2-1]/n

Y=fftshift(abs(fft(y,n))); figure(1);

subplot(2,1,1); plot(x,y);

xlabel('t/s');ylabel('电压幅值/v'); title('时域图形'); grid on;

subplot(2,1,2); plot(f,Y,'r');

xlabel('f/Hz');ylabel('幅值'); axis([-3000,3000,0,400]); title('频域特性局部放大'); grid on;

2、中值滤波的MATLAB实现代码(函数调用实现) function y = calc_median(input,len)

% OUT = CALC_MEDIAN(INPUT,LEN)

% calculate the median value by each length LEN of the INPUT; % INPUT is the input series or matrix need to be filtered;

% LEN is the average filter length, and LEN must be smaller than the input size; % return OUT is the same size series or matrix of input. [m,n] = size(input);

input = reshape(input,m*n,1); if len>=m*n

return error('the filter length is too large!'); else

input = [input;input(1:len-1)]; out = [];

for i=1:m*n

out(i) = median(input(i:i+len-1));

end

38

毕业设计(论文)

y = reshape(out,m,n); end

3、算术平均滤波的MATLAB实现代码(函数调用实现) function y = calc_avg(input,len)

% OUT = CALC_AVG(INPUT,LEN)

% calculate the average value by each length LEN of the INPUT; % INPUT is the input series or matrix need to be filtered;

% LEN is the average filter length, and LEN must be smaller than the input size; % return OUT is the same size series or matrix of input. [m,n] = size(input);

input = reshape(input,m*n,1); if len>=m*n

return error('the filter length is too large!'); else

input = [input;input(1:len-1)]; out = [];

for i=1:m*n

out(i) = mean(input(i:i+len-1));

end

y = reshape(out,m,n); end

4、中位值平均滤波的MATLAB实现代码clear; close all; clc; load data0.mat x=b(:,1); y=b(:,2);

n1=15; %中值平均滤波窗口 n2=13 ;%中值滤波窗口 y1 =[y;y(1:n1)]; for i=1:length(y) s=y1(i:i+n1-1); sort(s);

out(i)=mean(s(2:n1-2)); end y2=out;

y3=calc_avg(y2,n2); subplot(3,1,1); plot(x,y);

xlabel('t/s');ylabel('电压幅值/v'); title('滤波前波形');

axis([-0.05 0.05,2.2,3.2]); grid on;

subplot(3,1,2);

39


基于Matlab的常用滤波算法研究(含代码) - 图文(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:苏大 - 基础物理 - (上)题库 - 试卷及答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: