基于matlab的信号处理实例

2011级信息工程

基于matlab 的信号处理实例

[键入作者姓名] 2013/5/23

基于matlab 的信号处理实例

一. 实验过程

1. 读取给定的3D 加速度信号文件,绘出信号波形. 实验代码1:signalsplot.m

function [x,y,z]=signalsplot(filename) fid=fopen(filename,'r');

a=fscanf(fid,'%d,%d,%d\n');%将文件中的数据读进来,并将其赋给a fclose(fid);

len=length(a)/3;%确定循环的总次数 k=1;

for i=1:len

x(i)=a(k); %将a 中的第一列数据赋给x y(i)=a(k+1); %将a 中的第二列数据赋给y z(i)=a(k+2); %将a 中的第三列数据赋给z k=k+3; end

figure(1)

subplot(3,1,1);

plot(x,'r'),xlabel('n'),ylabel('x');

title('读取给定的3D 加速度信号文件并绘出信号波形'); subplot(3,1,2);

plot(y,'g'),xlabel('n'),ylabel('y'); subplot(3,1,3);

plot(z,'b'),xlabel('n'),ylabel('z');

函数调用1:signalsplot('C:\Users\admin\Desktop\基于matlab 的信号处理实例\run

100m_TROUSERS POCKET_1_陈佳_1.txt')

实验结果1:

读取给定的3D 加速度信号文件并绘出信号波形

200100

x

[1**********]0

n

[**************]0

400200

y

[1**********]0

n

[**************]0

400200

z

[1**********]0

n

[**************]0

2. 将读出的3D 加速度信号分解为偶序列及奇序列,分别绘出波形;绘出偶序列及奇序列的和信号、差信号及积信号的波形。 实验代码2:oddandeven.m

%将读出的3D 加速度信号分解为偶序列及奇序列,分别绘出波形; %绘出偶序列及奇序列的和信号、差信号及积信号的波形 functionoddandeven(filename) fid = fopen(filename,'r');

a=fscanf(fid,'%d,%d,%d\n');%将文件中的数据读进来,并将其赋给a fclose(fid);

len=length(a)/3;%确定循环的总次数 k=1;

for i=1:len

x(i)=a(k); %将a 中的第一列数据赋给x y(i)=a(k+1); %将a 中的第二列数据赋给y z(i)=a(k+2); %将a 中的第三列数据赋给z

k=k+3; end

x1=fliplr(x);%将x 进行反转 y1=fliplr(y);%将y 进行反转 z1=fliplr(z);%将z 进行反转

t=[-len:-1 1:len];%给出横坐标的范围,使之匹配 X1=1/2.*[x1,x];%求x 的偶部 Y1=1/2.*[y1,y];%求y 的偶部 Z1=1/2.*[z1,z];%求z 的偶部

figure(2)

subplot(3,1,1);

plot(t,X1,'r');xlabel('t'),ylabel('Evex[n]'); title('3D信号的偶信号');

subplot(3,1,2);

plot(t,Y1,'g');xlabel('t'),ylabel('Evey[n]'); subplot(3,1,3);

plot(t,Z1,'b');xlabel('t'),ylabel('Evez[n]'); X2=1/2.*[-x1,x];%求x 的奇部 Y2=1/2.*[-y1,y];%求y 的奇部 Z2=1/2.*[-z1,z];%求z 的奇部

figure(3)

subplot(3,1,1);

plot(t,X2,'r');xlabel('t'),ylabel('Oddx[n]'); title('3D信号的奇信号');

subplot(3,1,2)

plot(t,Y2,'g');xlabel('t'),ylabel('Oddy[n]'); subplot(3,1,3);

plot(t,Z2,'b');xlabel('t'),ylabel('Oddz[n]'); a1=X1+X2;%x的奇部与偶部之和 a2=Y1+Y2;%y的奇部与偶部之和

a3=Z1+Z2;%z的奇部与偶部之和

figure(4)

subplot(3,1,1);

plot(t,a1,'r');xlabel('t'),ylabel('sumx[n]'); title('奇信号与偶信号的和信号');

subplot(3,1,2)

plot(t,a2,'g');xlabel('t'),ylabel('sumy[n]'); subplot(3,1,3);

plot(t,a3,'b');xlabel('t'),ylabel('sumz[n]'); s1=X1-X2;%x的奇部与偶部之差 s2=Y1-Y2;%y的奇部与偶部之差 s3=Z1-Z2;%z的奇部与偶部之差

figure(5)

subplot(3,1,1);

plot(t,s1,'r');xlabel('t'),ylabel('decx[n]'); title('奇信号与偶信号的差信号');

subplot(3,1,2)

plot(t,s2,'g');xlabel('t'),ylabel('decy[n]'); subplot(3,1,3);

plot(t,s3,'b');xlabel('t'),ylabel('decz[n]'); m1=X1.*X2;%x的奇部与偶部之积 m2=Y1.*Y2;%y的奇部与偶部之积 m3=Z1.*Z2;%z的奇部与偶部之积

figure(5)

subplot(3,1,1);

plot(t,m1,'r');xlabel('t'),ylabel('mulx[n]'); title('奇信号与偶信号的积信号');

subplot(3,1,2)

plot(t,m2,'g');xlabel('t'),ylabel('muly[n]'); subplot(3,1,3);

plot(t,m3,'b');xlabel('t'),ylabel('mulz[n]');

函数调用2:oddandeven('C:\Users\admin\Desktop\基于

\run 100m_TROUSERS POCKET_1_陈佳_1.txt')

matlab 的信号处理实例

实验结果2:

3D 信号的偶信号

100

E v e x [n ]

50

0-4000200

-3000-2000-1000

0t

[**************]0

E v e y [n ]

100

0-4000200

-3000-2000-1000

0t

[**************]0

E v e z [n ]

100

0-4000

-3000-2000-1000

0t

[**************]0

3D 信号的奇信号

100

O d d x [n ]

-100-4000200

-3000-2000-1000

0t

[**************]0

O d d y [n ]

-200-4000200

-3000-2000-1000

0t

[**************]0

O d d z [n ]

-200-4000

-3000-2000-1000

0t

[**************]0

奇信号与偶信号的和信号

200

s u m x [n ]

100

0-4000400

-3000-2000-1000

0t

[**************]0

s u m y [n ]

200

0-4000400

-3000-2000-1000

0t

[**************]0

s u m z [n ]

200

0-4000

-3000-2000-1000

0t

[**************]0

奇信号与偶信号的差信号

200

d e c x [n ]

100

0-4000400

-3000-2000-1000

0t

[**************]0

d e c y [n ]

200

0-4000400

-3000-2000-1000

0t

[**************]0

d e c z [n ]

200

0-4000

-3000-2000-1000

0t

[**************]0

1

x 10

4

奇信号与偶信号的积信号

m u l x [n ]

0-1-4000x 10

4

-3000-2000-1000

0t

[**************]0

2

m u l y [n ]

0-2-4000x 10

4

-3000-2000-1000

0t

[**************]0

2

m u l z [n ]

0-2-4000

-3000

-2000

-1000

0t

1000

2000

3000

4000

3. 画出M 点滑动平均滤波器的波形(M 分别取4和10)。 注:M 点滑动平均滤波器: 实验代码3:the_filter.m

function [h]=the_filter(m)%画出M 点滑动平均滤波器的波形 a=(1/m).*ones(1,m);%x的系数 b=[1,0,0]; %y的系数

h=impz(a,b,20); %求系统的单位冲激响应 figure(7)

stem(h,'y','filled'); %将单位冲激响应画出 xlabel('n'),ylabel('h[n]');

title('M点的滑动平均滤波器的单位冲激响应图');

y [n ]=

1

M

x [n ∑k

=0

M -1

-k ]

函数调用3.1:the_filter(4) 实验结果3.1:

M 点的滑动平均滤波器的单位冲激响应图

0.25

0.2

0.15

h [n ]

0.10.050

n

函数调用3.2:the_filter(10) 实验结果3.2

M 点的滑动平均滤波器的单位冲激响应图

0.10.090.080.070.06

h [n ]

0.050.040.030.020.010n

4. 用上述滑动平均滤波器对输入的3D 加速度信号进行滤波,同时绘出输入及输出信号波形;观察分析输出波形的变化。 实验代码4:smooth.m

function smooth(m)%用滑动平均滤波器对输入的3D 加速度信号进行滤波 h=the_filter(m);

[x,y,z]=signalsplot('C:\Users\admin\Desktop\基于matlab 的信号处理实例\run 100m_TROUSERS POCKET_1_陈佳_1.txt') figure(8);

f1=conv(x,h);%用滑动平均滤波器对输入的3D 加速度信号x 进行滤波 subplot(3,1,1);

plot(f1,'g');xlabel('n'),ylabel('f1=x*h'); title('3D加速度信号通过滤波器后的信号图形');

f2=conv(y,h);%用滑动平均滤波器对输入的3D 加速度信号y 进行滤波 subplot(3,1,2);

plot(f2,'r');xlabel('n'),ylabel('f2=y*h');

f3=conv(z,h);%用滑动平均滤波器对输入的3D 加速度信号z 进行滤波 subplot(3,1,3);

plot(f3,'b');xlabel('n'),ylabel('f3=z*h');

函数调用4.1:smooth (4) 实验结果4.1:

3D 加速度信号通过滤波器后的信号图形

200

f 1=x *h

100

[1**********]0

n

[**************]0

400

f 2=y *h

200

[1**********]0

n

[**************]0

200

f 3=z *h

100

[1**********]0

n

[**************]0

函数调用4.2:smooth (10) 实验结果4.2:

3D 加速度信号通过滤波器后的信号图形

200

f 1=x *h

100

[1**********]0

n

[**************]0

400

f 2=y *h

200

[1**********]0

n

[**************]0

200

f 3=z *h

100

[1**********]0

n

[**************]0

实验结果分析:

通过两幅图的对比可知:当M 越大时,所滤波后的图形越平滑。

2011级信息工程

基于matlab 的信号处理实例

[键入作者姓名] 2013/5/23

基于matlab 的信号处理实例

一. 实验过程

1. 读取给定的3D 加速度信号文件,绘出信号波形. 实验代码1:signalsplot.m

function [x,y,z]=signalsplot(filename) fid=fopen(filename,'r');

a=fscanf(fid,'%d,%d,%d\n');%将文件中的数据读进来,并将其赋给a fclose(fid);

len=length(a)/3;%确定循环的总次数 k=1;

for i=1:len

x(i)=a(k); %将a 中的第一列数据赋给x y(i)=a(k+1); %将a 中的第二列数据赋给y z(i)=a(k+2); %将a 中的第三列数据赋给z k=k+3; end

figure(1)

subplot(3,1,1);

plot(x,'r'),xlabel('n'),ylabel('x');

title('读取给定的3D 加速度信号文件并绘出信号波形'); subplot(3,1,2);

plot(y,'g'),xlabel('n'),ylabel('y'); subplot(3,1,3);

plot(z,'b'),xlabel('n'),ylabel('z');

函数调用1:signalsplot('C:\Users\admin\Desktop\基于matlab 的信号处理实例\run

100m_TROUSERS POCKET_1_陈佳_1.txt')

实验结果1:

读取给定的3D 加速度信号文件并绘出信号波形

200100

x

[1**********]0

n

[**************]0

400200

y

[1**********]0

n

[**************]0

400200

z

[1**********]0

n

[**************]0

2. 将读出的3D 加速度信号分解为偶序列及奇序列,分别绘出波形;绘出偶序列及奇序列的和信号、差信号及积信号的波形。 实验代码2:oddandeven.m

%将读出的3D 加速度信号分解为偶序列及奇序列,分别绘出波形; %绘出偶序列及奇序列的和信号、差信号及积信号的波形 functionoddandeven(filename) fid = fopen(filename,'r');

a=fscanf(fid,'%d,%d,%d\n');%将文件中的数据读进来,并将其赋给a fclose(fid);

len=length(a)/3;%确定循环的总次数 k=1;

for i=1:len

x(i)=a(k); %将a 中的第一列数据赋给x y(i)=a(k+1); %将a 中的第二列数据赋给y z(i)=a(k+2); %将a 中的第三列数据赋给z

k=k+3; end

x1=fliplr(x);%将x 进行反转 y1=fliplr(y);%将y 进行反转 z1=fliplr(z);%将z 进行反转

t=[-len:-1 1:len];%给出横坐标的范围,使之匹配 X1=1/2.*[x1,x];%求x 的偶部 Y1=1/2.*[y1,y];%求y 的偶部 Z1=1/2.*[z1,z];%求z 的偶部

figure(2)

subplot(3,1,1);

plot(t,X1,'r');xlabel('t'),ylabel('Evex[n]'); title('3D信号的偶信号');

subplot(3,1,2);

plot(t,Y1,'g');xlabel('t'),ylabel('Evey[n]'); subplot(3,1,3);

plot(t,Z1,'b');xlabel('t'),ylabel('Evez[n]'); X2=1/2.*[-x1,x];%求x 的奇部 Y2=1/2.*[-y1,y];%求y 的奇部 Z2=1/2.*[-z1,z];%求z 的奇部

figure(3)

subplot(3,1,1);

plot(t,X2,'r');xlabel('t'),ylabel('Oddx[n]'); title('3D信号的奇信号');

subplot(3,1,2)

plot(t,Y2,'g');xlabel('t'),ylabel('Oddy[n]'); subplot(3,1,3);

plot(t,Z2,'b');xlabel('t'),ylabel('Oddz[n]'); a1=X1+X2;%x的奇部与偶部之和 a2=Y1+Y2;%y的奇部与偶部之和

a3=Z1+Z2;%z的奇部与偶部之和

figure(4)

subplot(3,1,1);

plot(t,a1,'r');xlabel('t'),ylabel('sumx[n]'); title('奇信号与偶信号的和信号');

subplot(3,1,2)

plot(t,a2,'g');xlabel('t'),ylabel('sumy[n]'); subplot(3,1,3);

plot(t,a3,'b');xlabel('t'),ylabel('sumz[n]'); s1=X1-X2;%x的奇部与偶部之差 s2=Y1-Y2;%y的奇部与偶部之差 s3=Z1-Z2;%z的奇部与偶部之差

figure(5)

subplot(3,1,1);

plot(t,s1,'r');xlabel('t'),ylabel('decx[n]'); title('奇信号与偶信号的差信号');

subplot(3,1,2)

plot(t,s2,'g');xlabel('t'),ylabel('decy[n]'); subplot(3,1,3);

plot(t,s3,'b');xlabel('t'),ylabel('decz[n]'); m1=X1.*X2;%x的奇部与偶部之积 m2=Y1.*Y2;%y的奇部与偶部之积 m3=Z1.*Z2;%z的奇部与偶部之积

figure(5)

subplot(3,1,1);

plot(t,m1,'r');xlabel('t'),ylabel('mulx[n]'); title('奇信号与偶信号的积信号');

subplot(3,1,2)

plot(t,m2,'g');xlabel('t'),ylabel('muly[n]'); subplot(3,1,3);

plot(t,m3,'b');xlabel('t'),ylabel('mulz[n]');

函数调用2:oddandeven('C:\Users\admin\Desktop\基于

\run 100m_TROUSERS POCKET_1_陈佳_1.txt')

matlab 的信号处理实例

实验结果2:

3D 信号的偶信号

100

E v e x [n ]

50

0-4000200

-3000-2000-1000

0t

[**************]0

E v e y [n ]

100

0-4000200

-3000-2000-1000

0t

[**************]0

E v e z [n ]

100

0-4000

-3000-2000-1000

0t

[**************]0

3D 信号的奇信号

100

O d d x [n ]

-100-4000200

-3000-2000-1000

0t

[**************]0

O d d y [n ]

-200-4000200

-3000-2000-1000

0t

[**************]0

O d d z [n ]

-200-4000

-3000-2000-1000

0t

[**************]0

奇信号与偶信号的和信号

200

s u m x [n ]

100

0-4000400

-3000-2000-1000

0t

[**************]0

s u m y [n ]

200

0-4000400

-3000-2000-1000

0t

[**************]0

s u m z [n ]

200

0-4000

-3000-2000-1000

0t

[**************]0

奇信号与偶信号的差信号

200

d e c x [n ]

100

0-4000400

-3000-2000-1000

0t

[**************]0

d e c y [n ]

200

0-4000400

-3000-2000-1000

0t

[**************]0

d e c z [n ]

200

0-4000

-3000-2000-1000

0t

[**************]0

1

x 10

4

奇信号与偶信号的积信号

m u l x [n ]

0-1-4000x 10

4

-3000-2000-1000

0t

[**************]0

2

m u l y [n ]

0-2-4000x 10

4

-3000-2000-1000

0t

[**************]0

2

m u l z [n ]

0-2-4000

-3000

-2000

-1000

0t

1000

2000

3000

4000

3. 画出M 点滑动平均滤波器的波形(M 分别取4和10)。 注:M 点滑动平均滤波器: 实验代码3:the_filter.m

function [h]=the_filter(m)%画出M 点滑动平均滤波器的波形 a=(1/m).*ones(1,m);%x的系数 b=[1,0,0]; %y的系数

h=impz(a,b,20); %求系统的单位冲激响应 figure(7)

stem(h,'y','filled'); %将单位冲激响应画出 xlabel('n'),ylabel('h[n]');

title('M点的滑动平均滤波器的单位冲激响应图');

y [n ]=

1

M

x [n ∑k

=0

M -1

-k ]

函数调用3.1:the_filter(4) 实验结果3.1:

M 点的滑动平均滤波器的单位冲激响应图

0.25

0.2

0.15

h [n ]

0.10.050

n

函数调用3.2:the_filter(10) 实验结果3.2

M 点的滑动平均滤波器的单位冲激响应图

0.10.090.080.070.06

h [n ]

0.050.040.030.020.010n

4. 用上述滑动平均滤波器对输入的3D 加速度信号进行滤波,同时绘出输入及输出信号波形;观察分析输出波形的变化。 实验代码4:smooth.m

function smooth(m)%用滑动平均滤波器对输入的3D 加速度信号进行滤波 h=the_filter(m);

[x,y,z]=signalsplot('C:\Users\admin\Desktop\基于matlab 的信号处理实例\run 100m_TROUSERS POCKET_1_陈佳_1.txt') figure(8);

f1=conv(x,h);%用滑动平均滤波器对输入的3D 加速度信号x 进行滤波 subplot(3,1,1);

plot(f1,'g');xlabel('n'),ylabel('f1=x*h'); title('3D加速度信号通过滤波器后的信号图形');

f2=conv(y,h);%用滑动平均滤波器对输入的3D 加速度信号y 进行滤波 subplot(3,1,2);

plot(f2,'r');xlabel('n'),ylabel('f2=y*h');

f3=conv(z,h);%用滑动平均滤波器对输入的3D 加速度信号z 进行滤波 subplot(3,1,3);

plot(f3,'b');xlabel('n'),ylabel('f3=z*h');

函数调用4.1:smooth (4) 实验结果4.1:

3D 加速度信号通过滤波器后的信号图形

200

f 1=x *h

100

[1**********]0

n

[**************]0

400

f 2=y *h

200

[1**********]0

n

[**************]0

200

f 3=z *h

100

[1**********]0

n

[**************]0

函数调用4.2:smooth (10) 实验结果4.2:

3D 加速度信号通过滤波器后的信号图形

200

f 1=x *h

100

[1**********]0

n

[**************]0

400

f 2=y *h

200

[1**********]0

n

[**************]0

200

f 3=z *h

100

[1**********]0

n

[**************]0

实验结果分析:

通过两幅图的对比可知:当M 越大时,所滤波后的图形越平滑。


相关文章

  • MATLAB滞后-超前校正器
  • 基于MATLAB 的滞后-超前校正器的设计 摘要:对控制系统的校正设计方法进行了简单的介绍:介绍了基于MATLAB 的滞后-超前校正器的设计过程,并用仿真实例验证了该方法比传统的方法节省了相当大的工作量,实现起来非常的方便.利用MATLAB ...查看


  • 附带资料 基于matlab的IIR数字滤波器设计
  • 基于matlab 的IIR 数字滤波器设计 一. IIR 数字滤波器介绍 1.IIR 数字滤波器的基本原理 所谓数字滤波器,是指输入,输出均为数字信号,通过一定运算关系改变输入信号所含频率成分的 相对比例或者滤除某些频率成分的硬件.实质上就 ...查看


  • 信号发生器的 MATLAB仿真
  • 信号发生器的MATLAB 仿真 [摘要] 本论文以课题"信号发生器的MATLAB 仿真"为背景展开,介绍了MATLAB 仿真技术的发展和信号发生器的现状,结合线性调制系统的应用背景设计了一种结构简便.性能优良的线性调制信 ...查看


  • matlab学习入门及资料
  • matlab学习入门及资料 2009-09-06 21:23 matlab博大精深,说到底我也只不过是个初学者,只是学的时间比新手长了一点,现在写几句给新手,希望能给你们有点帮助 1 学Matlab并不难,难的是学会怎么用. 2不要试图掌握 ...查看


  • 基于MATLAB的图像压缩技术研究
  • 第12期2008年12月 山西焦煤科技 ShanxiCokingCoalScience&Technology NO.12Dec.2()08 ・试验研究・ 基于MATLAB的图像压缩技术研究 吕金花① (山西汾西煤化高级技工学校) 摘 ...查看


  • 房屋测绘专业毕业论文
  • 远程与继续教育学院 本科毕业论文(设计) 题目:<控制测量简易平差程序设计> 学习中心: 浙江分院 学 号: 姓 名: 专 业: 指导教师: 2014 年 3 月 5 日 中国地质大学(武汉)远程与继续教育学院 本科毕业论文(设 ...查看


  • MATLAB在电力系统三相短路故障分析中的应用
  • M ATLAB 在电力系统三相短路故障分析中的应用电子质量(2013第10期) MAT LAB 在电力系统三相短路故障分析中的应用 Application of M ATLAB in the Analysis of the Three-ph ...查看


  • 随机信号分析理论的应用综述
  • 随机信号分析理论的应用综述 (结课论文) 学院: 系别:电子信息工程 班级: 姓名: 学号: 指导老师: 目录 第一章 概述 1.1 随机信号分析的研究背景 1.2 随机信号分析的主要研究问题 第二章 随机信号分析的主要内容 2.1 随机信 ...查看


  • MATLAB遗传算法工具箱及应用
  • 作 者:雷英杰 张善文 李续武 周创明 出版社:西安电子科技大学出版社 本书系统介绍MATLAB遗传算法和直接搜索工具箱的功能特点.编程原理及使用方法.全书共分为9章.第一章至第四章介绍遗传算法的基础知识,包括遗传算法的基本原理,编码.选择 ...查看


热门内容