基于matlab的信号分析与处理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
山东建筑大学
课程设计说明书题目:基于MATLAB的信号分析与处理课程:数字信号处理课程设计
院(部):信息与电气工程学院
专业:通信工程
班级:通信111班
学生姓名:
学号:
指导教师:
完成日期:2014年1月
目录
摘要 (Ⅰ)
1 设计目的和要求 (1)
2 设计原理 (2)
3 设计内容 (3)
3.1 程序源代码 (4)
3.2 调试分析与过程描述 (7)
3.3 结果分析 (12)
总结 (13)
致谢 (14)
参考文献 (15)
摘要
这次是基于MATLAB的信号分析与处理。所谓数字滤波器,就是输入、输出都是数字信号的,通过数值计算处理改变输入信号所含频率成分的相对比例,或者滤除某些频率成分的数字器件或程序。常用的经典滤波器有低通、高通、带通、带阻。
首先产生一个连续信号,包含低频、中频、高频分量;对其进行采样,得到数字信号;对数字信号进行FFT频谱分析,绘制其频谱图;根据信号频谱分析的结果,分别设计高通、低通、带通滤波器,绘制滤波器的幅频及相频特性;用所设计的滤波器对信号滤波,并绘制出滤波后的频谱图。
关键词:MATLAB; FFT;滤波器;信号产生;频谱分析
1设计目的和要求
产生一个连续信号,包含低频,中频,高频分量,对其进行采样,进行频谱分析,分别设计三种高通,低通,带通滤波器对信号进行滤波处理,观察滤波后信号的频谱。
2设计原理
信号的采样要符合奈奎斯特采样定律,一般为被采信号最高频率的2倍,只有这样,才能保证频域不混叠,也就是采样出来数字信号中包含了被采信号的所有信息,而且没有引入干扰。这就是信号的时域采样。
频谱分析是指对信号进行频域谱的分析,观察其频域的各个分量的功率大小,其理论基础是傅立叶变换,现在一般采用数字的方法,也就是将时域信号数字化后做FFT,可以得到频域的波形。
数字滤波器是一种用来过滤时间离散信号的数字系统,通过对抽样数据进行数学处理来达到频域滤波的目的。可以设计系统的频率响应,让它满足一定的要求,从而对通过该系统的信号的某些特定的频率成分进行过滤,这就是滤波器的基本原理。
IIR滤波器的设计原理:
IIR数字滤波器的设计一般是利用目前已经很成熟的模拟滤波器的设计方法来进行设计,通常采用模拟滤波器原型有butterworth函数、chebyshev函数、bessel函数、椭圆滤波器函数等。
IIR数字滤波器的设计步骤:
(1)按照一定规则把给定的滤波器技术指标转换为模拟低通滤波器的技术指标;
(2)根据模拟滤波器技术指标设计为响应的模拟低通滤波器;
(3)很据脉冲响应不变法和双线性不变法把模拟滤波器转换为数字滤波器;
(4)如果要设计的滤波器是高通、带通或带阻滤波器,则首先把它们的技术指标转化为模拟低通滤波器的技术指标,设计为数字低通滤波器,最后通过频率转换的方法来得到所要的滤波器。
本课程设计设计思想:首先利用MATLAB分别产生低频、中频、高频信号,然后进行叠加得到连续时间信号;对所产生的连续时间信号进行采样,得到数字信号;对信号进行FFT频谱分析,绘制其频谱图;根据信号频谱分析的结果,分别设计高通,低通,带通滤波器,得到滤波器的幅频及相频特性。
3设计内容3.1程序源代码
f1=40;
f2=300;
f3=2000;
t=(1:500)/8000;%每个周期采8000个点,Fs1=8000
x1=sin(2*pi*t*f1);
figure(1);
subplot(2,1,1);
plot(x1);
xlabel('t');
ylabel('x1(t)');
title('连续信号');
grid;
x2=sin(2*pi*t*f2);
subplot(2,1,2);
plot(x2);
xlabel('t');
ylabel('x2(t)');
title('连续信号');
grid;
x3=sin(2*pi*t*f3);
figure(2);
subplot(2,1,1);
plot(x3);
xlabel('t');
ylabel('x3(t)');
title('连续信号');
grid;
subplot(2,1,2); %只放大显示x3(t)的0~50的部分
plot(x3);
axis([0 50 -1 1.2]);
xlabel('t');
ylabel('x3(t)');
title('连续信号');
grid;
x=sin(2*pi*t*f1)+sin(2*pi*t*f2)+sin(2*pi*t*f3);
figure(3);
subplot(2,1,1);
plot(x);
xlabel('t');
ylabel('x(t)');
title('连续信号');
grid;
n=[1:500];
t=n/6000;%Fs2=6000,t=nT,T=1/Fs
X=fft(x,512);
w=(0:255)/256*3000;%Fs/2=3000
x=sin(2*pi*t*f1)+sin(2*pi*t*f2)+sin(2*pi*t*f3);
subplot(2,1,2);
stem(x);
xlabel('n');
ylabel('x(n)');
title('数字信号');
grid;
figure(4);
subplot(2,1,1); %只放大显示x(n)的0~50的部分
stem(x);
axis([0 50 -4 4]);
xlabel('n');
ylabel('x(n)');
title('数字信号');
grid;
subplot(2,1,2);
plot(w,abs([X(1:256)]));
xlabel('Hz');
ylabel('频率响应幅度');
title('频谱图');
grid;
wp=0.0167;ws=0.033;Rp=2;As=30;
[N,wc]=buttord(wp,ws,Rp,As);
[B,A]=butter(N,wc);
[H,w]=freqz(B,A,512);
figure(5);
subplot(2,1,1);
plot(w*6000/(2*pi),abs(H));
axis([0 100 0 1.2]);%横坐标显示为0~100,纵坐标为0~1.2 xlabel('Hz');
ylabel('频率响应幅度');
title('低通滤波器');
grid;
subplot(2,1,2);
plot(w/(2*pi),angle(H));
xlabel('Hz');
ylabel('angle');
title('相位特性');
grid;
y=filter(B,A,x);
figure(6);