基于matlab信号分析与处理.docx
《基于matlab信号分析与处理.docx》由会员分享,可在线阅读,更多相关《基于matlab信号分析与处理.docx(19页珍藏版)》请在冰豆网上搜索。
基于matlab信号分析与处理
摘要
随着信息时代和数字世界的到来,数字信号处理的理论与应用得到了飞跃式的发展,并且,数字信号处理以其灵活性、高精度和高稳定性、便于大规模形成等特点,形成了一门极其重要的学科。
因而受到了人们的重视。
本文利用MATLAB软件首先产生低频、中频、高频三种频率信号,然后将三种信号合成为连续信号,对连续周期信号抽样、频率分析,并设计低通、、带通、高通三种滤波器对信号滤波,观察滤出的信号与原信号的关系,并分析误差的产生,通过数字信号处理课程的理论知识的综合运用。
从时间上初步实现对数字信号的处理。
关键词:
信号分析;数字信号;连续信号;MATLAB
1设计目的
通过此次课程设计,我们能够学会如何综合运用在数字信号处理课本上的巴特沃斯滤波器、信号的产生、对连续信号采样及产生幅频特性和相频特性等知识,并把这些知识运用于实践当中,使所学知识在综合运用能力上以及分析问题、解决问题能力上得到进一步的发展,让自己对这些知识有更深的了解。
通过课程设计培养严谨的科学态度,认真的工作作风和团队协作精神。
2设计要求
产生一个连续信号,包含低频、中频、高频分量,对其进行采样,进行频谱分析,分别设计三种高通、低通、带通滤波器对信号进行滤波处理,观察滤波后的频谱。
3设计内容
3.1理论依据
理论上信号的采样要符合奈奎斯特采样定律,就是采样频率要高一点,一般为被采信号最高频率的2倍,只有这样,才能保证频域不混叠,也就是采样出来数字信号中包含了被采信号的所有信息,而且没有引入干扰。
这就是信号的时域采样。
频谱分析是指对信号进行频域谱的分析,观察其频域的各个分量的功率大小,其理论基础是傅立叶变换,现在一般采用数字的方法,也就是将时域信号数字化后做FFT,可以得到频域的波形。
数字滤波器是一种用来过滤时间离散信号的数字系统,通过对抽样数据进行数学处理来达到频域滤波的目的。
可以设计系统的频率响应,让它满足一定的要求,从而对通过该系统的信号的某些特定的频率成分进行过滤,这就是滤波器的基本原理。
如果系统是一个连续系统,则滤波器称为模拟滤波器。
如果系统是一个离散系统,则滤波器称为数字滤波器。
IIR数字滤波器的设计步骤:
(1)按照一定规则把给定的滤波器技术指标转换为模拟低通滤波器的技术指标;
(2)根据模拟滤波器技术指标设计为响应的模拟低通滤波器;
(3)很据脉冲响应不变法和双线性不变法把模拟滤波器转换为数字滤波器;
(4)如果要设计的滤波器是高通、带通或带阻滤波器,则首先把它们的技术指标转化为模拟低通滤波器的技术指标,设计为数字低通滤波器,最后通过频率转换的方法来得到所要的滤波器。
本课程设计设计思想:
首先利用MATLAB分别产生低频中频高频信号,然后进行叠加得到连续时间信号;对所产生的连续时间信号进行采样,得到数字信号;对信号进行FFT频谱分析,绘制其频谱图;根据信号频谱分析的结果,分别设计高通,低通,带通滤波器,得到滤波器的幅频及相频特性。
3.2信号的产生
f1=30;f2=350;f3=850;t=(1:
120)/2800;
x1=sin(2*pi*f1*t);
x2=sin(2*pi*f2*t);
x3=sin(2*pi*f3*t);
xt=x1+x2+x3;
figure
(1);subplot(2,2,1);plot(x1);
gridon;
axis([0100-1.21.2]);
line([0,100],[0,0]);%画横坐标轴线
xlabel('t/2800');ylabel('x1(t)');title('(a)低频分量');
figure
(1);subplot(2,2,2);plot(x2);
gridon;
axis([0100-1.21.2]);
line([0,100],[0,0]);
xlabel('t/2800');ylabel('x2(t)');title('(b)中频分量');
figure
(1);subplot(2,2,3);plot(x3);
gridon;
axis([0100-1.21.2]);
line([0,100],[0,0]);
xlabel('t/2800');ylabel('x3(t)');title('(c)高频分量');
figure
(1);subplot(2,2,4);plot(xt);
gridon;
axis([0100-3.23.2]);
line([0,100],[0,0]);
xlabel('t/2800');ylabel('x(t)');title('(d)含有三种频率的连续信号');
图一:
低中高频分量及连续信号
图一所示内容为按照设计要求作出的三种频率分量,即低频、中频、高频分量,和一个包含这三种分量的连续信号。
Axis函数是用来限定坐标轴的长度和宽度;xlabel、ylabel、及title函数是用来给坐标轴注明x轴、y轴及坐标轴的标题。
3.3信号的采样及频谱分析
(1)低频连续信号
f1=30;f2=350;f3=850;t=(1:
120)/2800;
x1=sin(2*pi*f1*t);
x2=sin(2*pi*f2*t);
x3=sin(2*pi*f3*t);
xt=x1+x2+x3;
n=1:
100;fs=2000;T=1/fs;M=1024;
x1n=sin(2*pi*f1*n*T);
x2n=sin(2*pi*f2*n*T);
x3n=sin(2*pi*f3*n*T);
xn=x1n+x2n+x3n;
X1=fft(x1n,M);
X2=fft(x2n,M);
X3=fft(x3n,M);
Xjw=fft(xn,M);
k=0:
M-1;wk=2*k/M;
figure
(2);subplot(2,1,1);stem(n,x1n,'.');
gridon;
axis([0102-1.21.2]);
xlabel('n');ylabel('x1(n)');title('(e)采样后x1(n)的波形');
figure
(2);subplot(2,1,2);plot(wk,abs(X1));
axis([01.1055]);
line([0,1.1],[0,0]);
gridon;
xlabel('ω/π');ylabel('幅度');title('(f)FT[x1(n)]的幅频特性图');
图二:
低频分量连续信号采样后的波形及幅频特性
此处利用fft快速傅里叶变换对低频连续信号进行抽样,将抽样点数设为1024,并且通过plot(wk,abs(X1))函数,使FFT抽样后的信号得到幅频特性。
由图二的幅频特性图可以看出低频信号幅度最高点在频率约为0.25处。
(2)中频连续信号
f1=30;f2=350;f3=850;t=(1:
120)/2800;
x1=sin(2*pi*f1*t);
x2=sin(2*pi*f2*t);
x3=sin(2*pi*f3*t);
xt=x1+x2+x3;
n=1:
100;fs=2000;T=1/fs;M=1024;
x1n=sin(2*pi*f1*n*T);
x2n=sin(2*pi*f2*n*T);
x3n=sin(2*pi*f3*n*T);
xn=x1n+x2n+x3n;
X1=fft(x1n,M);
X2=fft(x2n,M);
X3=fft(x3n,M);
Xjw=fft(xn,M);
k=0:
M-1;wk=2*k/M;
figure(3);subplot(2,1,1);stem(n,x2n,'.');
gridon;
axis([0102-1.21.2]);
xlabel('n');ylabel('x2(n)');title('(g)采样后x2(n)的波形');
figure(3);subplot(2,1,2);plot(wk,abs(X2));
axis([01.1055]);
line([0,1.1],[0,0]);
gridon;
xlabel('ω/π');ylabel('幅度');title('(h)FT[x2(n)]的幅频特性图');
图三:
中频分量连续信号采样后的波形及幅频特性
和图二相似,此处得到的是中频分量连续信号的采样波形,并且通过plot(wk,abs(X1))函数,使FFT抽样后的信号得到幅频特性。
(3)高频连续信号
f1=30;f2=350;f3=850;t=(1:
120)/2800;
x1=sin(2*pi*f1*t);
x2=sin(2*pi*f2*t);
x3=sin(2*pi*f3*t);
xt=x1+x2+x3;
n=1:
100;fs=2000;T=1/fs;M=1024;
x1n=sin(2*pi*f1*n*T);
x2n=sin(2*pi*f2*n*T);
x3n=sin(2*pi*f3*n*T);
xn=x1n+x2n+x3n;
X1=fft(x1n,M);
X2=fft(x2n,M);
X3=fft(x3n,M);
Xjw=fft(xn,M);
k=0:
M-1;wk=2*k/M;
figure(4);subplot(2,1,1);stem(n,x3n,'.');
gridon;
axis([0102-1.21.2]);
xlabel('n');ylabel('x3(n)');title('(g)采样后x3(n)的波形');
figure(4);subplot(2,1,2);plot(wk,abs(X3));
axis([01.1055]);
line([0,1.1],[0,0]);
gridon;
xlabel('ω/π');ylabel('幅度');title('(i)FT[x3(n)]的幅频特性图');
图四:
中频分量连续信号采样后的波形及幅频特性
和图二相似,此处得到的是高频分量连续信号的采样波形,并且通过plot(wk,abs(X1))函数,使FFT抽样后的信号得到幅频特性。
(4)连续信号
f1=30;f2=350;f3=850;t=(1:
120)/2800;
x1=sin(2*pi*f1*t);
x2=sin(2*pi*f2*t);
x3=sin(2*pi*f3*t);
xt=x1+x2+x3;
n=1:
100;fs=2000;T=1/fs;M=1024;
x1n=sin(2*pi*f1*n*T);
x2n=sin(2*pi*f2*n*T);
x3n=sin(2*pi*f3*n*T);
xn=x1n+x2n+x3n;
X1=fft(x1n,M);
X2=fft(x2n,M);
X3=fft(x3n,M);
Xjw=fft(xn,M);
k=0:
M-1;wk=2*k/M;
figure(5);subplot(1,1,1);stem(n,xn,'.');
gridon;
axis([0102-3.53.5]);
xlabel('n');ylabel('x(n)');title('(j)采样后x(n)的波形');
figure(6);subplot(2,1,1);plot(wk,abs(Xjw));
axis([01.1055]);
line([0,1.1],[0,0]);
gridon;
xlabel('ω/π');ylabel('幅度');title('(k)FT[x(n)]的幅频特性图');
figure(6);subplot(2,1,2);plot(wk,angle(Xjw));
axis([01.1-3.53.5]);
line([0,1.1],[0,0]);
gridon;
xlabel('ω/π');ylabel('相位');title('(l)FT[x(n)]的相频特性图');
图五:
x(n)连续信号采样后的波形
由图可知图四是对包含低频、中频、高频的连续信号抽样,抽样点数取为1024。
从图中看出抽样的模型是对图一中的连续信号波形的采样,并且满足频域采样定理。
图六:
连续信号的幅频特性及其相频特性
图中显示的是对包含三种频率分量的连续信号用fft变换采样后,进行幅频变换和相频变换plot(wk,abs(Xjw))函数是用来绘制幅频特性图,plot(wk,angle(Xjw),是用来绘制相频特性图。
3.4滤波器的设计及信号处理
(1)低通滤波
f1=30;f2=350;f3=850;t=(1:
120)/2800;
x1=sin(2*pi*f1*t);
x2=sin(2*pi*f2*t);
x3=sin(2*pi*f3*t);
xt=x1+x2+x3;
n=1:
100;fs=2000;T=1/fs;M=1024;
x1n=sin(2*pi*f1*n*T);
x2n=sin(2*pi*f2*n*T);
x3n=sin(2*pi*f3*n*T);
xn=x1n+x2n+x3n;
X1=fft(x1n,M);
X2=fft(x2n,M);
X3=fft(x3n,M);
Xjw=fft(xn,M);
k=0:
M-1;wk=2*k/M;
N=5;wc=0.0882;
[B,A]=butter(N,wc,'low');
[H,w]=freqz(B,A,M);
yn=filter(B,A,xn);
Y=fft(yn,M);
figure(7);subplot(2,2,1);plot(w*2800/(2*pi),abs(H));
gridon;
xlabel('Hz');ylabel('幅度');title('
(1)低通滤波器的幅频特性图');
figure(7);subplot(2,2,2);plot(w*2800/(2*pi),angle(H));
gridon;
line([0,1500],[0,0])
xlabel('Hz');ylabel('相位');title('
(2)低通滤波器的相频特性图');
figure(7);subplot(2,2,3);plot(yn);
axis([0102-1.21.2]);
line([0,100],[0,0])
gridon;
xlabel('t');ylabel('x(t)');title('(3)低通滤波器滤波后的波形');
figure(7);subplot(2,2,4);plot(wk,abs(Y));
axis([01.1050]);
line([0,1.1],[0,0])
gridon;
xlabel('ω/π');ylabel('幅度');title('(4)低通滤波后的幅频特性图');
图七:
低通滤波器的幅频相频特性及滤波后信号的波形和幅频特性
此处为包含三种分量的连续信号经过巴特沃斯低通滤波器后波形的幅频特性和相频特性。
[B,A]=butter(N,wc,'low');B,A分别为系统函数的分子、分母多项式的系数向量;N为巴特沃斯滤波器的阶数,wc为3dB截止频率。
最后一位为巴特沃斯滤波器的类型,low说明此处为巴特沃斯低通滤波[H,w]=freqz(B,A,M);为函数通过设计的滤波器滤波。
并且由图看出连续信号x(n)通过低通滤波器后得到地频分量的波形及幅频特性。
(2)带通滤波
f1=30;f2=350;f3=850;t=(1:
120)/2800;
x1=sin(2*pi*f1*t);
x2=sin(2*pi*f2*t);
x3=sin(2*pi*f3*t);
xt=x1+x2+x3;
n=1:
100;fs=2000;T=1/fs;M=1024;
x1n=sin(2*pi*f1*n*T);
x2n=sin(2*pi*f2*n*T);
x3n=sin(2*pi*f3*n*T);
xn=x1n+x2n+x3n;
X1=fft(x1n,M);
X2=fft(x2n,M);
X3=fft(x3n,M);
Xjw=fft(xn,M);
k=0:
M-1;wk=2*k/M;
N=6;wc=[2001000]/2000;
[B,A]=butter(N,wc);
[H,w]=freqz(B,A,M);
yn=filter(B,A,xn);
Y=fft(yn,M);
figure(8);subplot(2,2,1);plot(w*2800/(2*pi),abs(H));
gridon;
xlabel('Hz');ylabel('幅度');title('(q)带通滤波器的幅频特性图');
figure(8);subplot(2,2,2);plot(w*2800/(2*pi),angle(H));
gridon;
line([0,1500],[0,0])
xlabel('Hz');ylabel('相位');title('(r)带通滤波器的相频特性图');
figure(8);subplot(2,2,3);plot(yn);
axis([0102-1.21.2]);
line([0,102],[0,0])
gridon;
xlabel('t');ylabel('x(t)');title('(s)带通滤波器滤波后的波形');
figure(8);subplot(2,2,4);plot(wk,abs(Y));
axis([01.1055]);
line([0,1.1],[0,0])
gridon;
xlabel('ω/π');ylabel('幅度');title('(t)带通滤波后的幅频特性图');
图八:
带通滤波器的幅频相频特性及滤波后信号的波形和幅频特性
此处为连续信号通过巴特沃斯带通滤波器后的波形以及波形的幅频特性。
在此处我们可以看出通过该带通滤波器后的波形和中频信号的幅频特性图几乎相同。
(3)高通滤波
f1=30;f2=350;f3=850;t=(1:
120)/2800;
x1=sin(2*pi*f1*t);
x2=sin(2*pi*f2*t);
x3=sin(2*pi*f3*t);
xt=x1+x2+x3;
n=1:
100;fs=2000;T=1/fs;M=1024;
x1n=sin(2*pi*f1*n*T);
x2n=sin(2*pi*f2*n*T);
x3n=sin(2*pi*f3*n*T);
xn=x1n+x2n+x3n;
X1=fft(x1n,M);
X2=fft(x2n,M);
X3=fft(x3n,M);
Xjw=fft(xn,M);
k=0:
M-1;wk=2*k/M;
N=8;wc=0.412;
[B,A]=butter(N,wc,'high');
[H,w]=freqz(B,A,M);
yn=filter(B,A,xn);
Y=fft(yn,M);
figure(9);subplot(2,2,1);plot(w*2800/(2*pi),abs(H));
gridon;
xlabel('Hz');ylabel('幅度');title('
(1)高通滤波器的幅频特性图');
figure(9);subplot(2,2,2);plot(w*2800/(2*pi),angle(H));
line([0,1500],[0,0]);
gridon;
xlabel('Hz');ylabel('相位');title('
(2)高通滤波器的相频特性图');
figure(9);subplot(2,2,3);plot(yn);
axis([0102-1.21.2]);
line([0,102],[0,0])
gridon;
xlabel('t');ylabel('x(t)');title('(3)高通滤波器滤波后的波形');
figure(9);subplot(2,2,4);plot(wk,abs(Y));
axis([01.1055]);
line([0,1.1],[0,0])
gridon;
xlabel('ω/π');ylabel('幅度');title('(4)高通滤波后的幅频特性图');
图九:
高通滤波器的幅频相频特性及滤波后信号的波形和幅频特性
此处为连续信号通过巴特沃斯带通滤波器后的波形以及波形的幅频特性。
在此处我们可以看出通过该高通滤波器后的波形和高频连续信号的幅频特性图几乎相同。
3.5结果分析
由上述结果显示,在误差允许的范围内实验结果与理论结果相同。
低通滤波、带通滤波、高通滤波后的波形与先前信号的波形出入不大。
出现误差的原因:
在设计滤波器的参数时并不是十分的准确,在不同计算机上运行MATLAB时会有一定的偶然误差,从而导致实验误差的存在。
总结与致谢
通过此次数字信号处理课程设计,我了解了关于MATLAB软件在数字信号处理方面的应用,又一次学习了MATLAB软件的使用和程序的设计,加深了对MATLAB的仿真的了解,我对数字信号处理的理解更加加深了一步。
MATLAB拥有强大的数据仿真能力,在生产和研究中起着非常大的作用。
MATLAB软件使得困难、枯燥的数字处理过程变得非常简单,不仅能够非常迅速的计算出幅频相频、卷积、DFT、FFT等,而且还能自动画出连续、离散的波形曲线。
使我们能非常直观的了解数字信号的处理结果。
在设计的过程和设计说明书的撰写过程中,张君捧老师给予了我热心的帮助和大力的支持,给我提了诸多的宝贵意见,拓宽了我的思路。
在此我向老师致以崇高的敬意和衷心的感谢!
在我的学习过程中,耿淑娟等其它老师也给了我耐心的指导和帮助。
我在此对各位老师表示诚挚的感谢!
参考文献
[1]高西全、丁玉美编著.数字信号处理.西安:
西安电子科技大学出版社,2008.
[2]丁玉美、高西全编著.数字信号处理学习指导.西安:
西安电子科技大学出版社,2001.
[3]郑君里等编.信号与系统.北京:
高等教育出版社,2000.
[4]刘树棠译.数字信号处理——使用MATLAB.西安:
西安交通大学出版社,2002.
[5]导向科技编著.MATLAB程序设计与实例应用.北京:
中国铁道出版社,2001.
[6]罗军辉等编著.MATLAB7.0在数字信号处理中的应用.北京:
机械工业出版社,2005.
[7]陈怀琛等编著.MATLAB及在电子信息课中的应用.北京:
电子工业出版社,2002.
[8]胡广书编著.数字信号处理――理论、算法与实现.北京:
清华大学出版社,2002.
[9]梁虹等编.信号与线性系统分析――基于MATLAB的方法与实现.北京:
高等教育出版社,2006.
[10]刘卫国主编.MATLAB程序设计与应用(第二版).北京:
高等教育出版社,2006.