
课程设计(综合实验)报告
( 20 -- 20 年度第 一 学期)
名 称:
题 目: 串级控制系统的自动整定
院 系: 控制与计算机工程学院
班 级:
学 号:
学生姓名:
指导教师:
设计周数:
成 绩:
日期: 年 月 日
一、课程设计(综合实验)的目的与要求
《信号分析与处理(自)》课程设计
任 务 书
1,的与要求
是使学生通过上机使用Matlab工具进行数字信号处理技术的仿真练习,加深对《信号分析与处理(自)》课程所学基本理论和概念的理解,培养学生应用Matlab等工具进行数字信号处理的基本技能和实践能力,为工程应用打下良好基础。
2,内容
(1)mtlab基本使用方法,掌握Matlab数字信号处理的基本编程技术。掌握数字信号的基本概念。
1)使用Matlab(生成几种典型数字信号(正弦信号、周期信号、高斯随机信号等),2)编程计算离散信号的特征值(均值、方差等)。
3)进行信号加减运算。
(2)atlab编程实现典型离散信号(正弦信号、周期信号)的离散傅立叶变换,显示时域信号和频谱图形(幅值谱和相位谱);以正弦周期信号为例,观察讨论基本概念(混叠、泄漏、整周期截取、频率分辨率等)。
(3)任意数字滤波器(分别采用IIR和FIR方法),并对某类型信号进行滤波,并对结果进行显示和分析。
3 进度计划
| 序号 | 设计(实验)内容 | 完成时间 | 备注 |
| 1 | 布置课程设计任务、示范讲解Matlab程序使用方法 | 0.5天 | |
| 2 | 上机进行课程设计 | 3天 | |
| 3 | 整理课程设计报告 | 1天 | |
| 4 | 演示课程设计内容并答辩 | 0.5天 |
1.提交完成设计内容的程序
2.提交设计报告
5 考核方式
课程设计报告、设计内容演示和答辩相结合。
考核内容:考勤、纪律、课程设计报告、实际编程能力和基本概念掌握程度等。
一,使用Matlab(生成几种典型数字信号(正弦信号、周期信号、高斯随机信号等)
1,正弦信号
n=0:0.1:20;
y0=sin(pi/4*n+2);
plot(n,y0)
图形
正弦离散信号
n=0:0.1:20;
y0=sin(pi/4*n+2);
stem(n,y0,'.')
图形
周期信号
n=0:0.1:4*pi;
y1=sawtooth(n,0.5);
plot(n,y1)
图形
周期离散信号
n=0:0.1:4*pi;
y1=sawtooth(n,0.5);
stem(n,y1,'.')
图形
高斯随机信号
n=0:0.2:20;
y1=randn(1,length(n));
plot(n,y1)
图形
高斯离散随机信号
n=0:0.2:20;
y1=randn(1,length(n));
stem(n,y1,'.')
图形
2编程计算离散信号的特征值(均值与方差),以正弦信号为例
n=0:0.1:20;
y0=sin(pi/4*n+2);
x1=mean(y0)
x2=var(y0)
x1 =
-0.0527
x2 =
0.5013
3,进行信号加减运算(以加法为例)
n=0:0.1:20;
y0=sin(pi/4*n+2);
y1=sawtooth(n,0.5);
x1=y0+y1;
plot(n,x1)
图形
二,mtlab编程实现典型离散信号(正弦信号、周期信号)的离散傅立叶变换,显示时域信号和频谱图形(幅值谱和相位谱);以正弦周期信号为例,观察讨论基本概念(混叠、泄漏、整周期截取、频率分辨率等)。
正弦信号
N=;
n=0:1:N-1;
y=sin(n*pi/4);
y1=fft(y,N);
Wk=2*n/N;
subplot(311);stem(n,y,'.');
subplot(312);stem(Wk,abs(y1),'.');
subplot(313);stem(Wk,angle(y1),'.');
图形
周期信号
N=;
n=0:1:N-1;
y=square(n*pi/5);
y1=fft(y,N);
Wk=2*n/N;
subplot(311);stem(n,y,'.');
subplot(312);stem(Wk,abs(y1),'.');
subplot(313);stem(Wk,angle(y1),'.');
图形
高斯随机信号
N=;
n=0:1:N-1;
y=randn(1,N);
y1=fft(y,N);
Wk=2*n/N;
subplot(311);stem(n,y,'.');
subplot(312);stem(Wk,abs(y1),'.');
subplot(313);stem(Wk,angle(y1),'.');
图形
2以正弦周期信号为例,观察讨论基本概念(混叠、泄漏、整周期截取、频率分辨率等)。
混叠
N=128;
k=0:N-1;
wk=2*k/N;
w=pi/5;
n=[0:40];
x=sin(n*pi/4); ;
x1=fft(x,N);
xn1=ifft(x1,N);
x2=fft(x,N/4);
xn2=ifft(x2,N/4);
subplot(5,1,1);stem(n,x,'.'); %信号源 xlabel('n');ylabel('x');title('正弦信号')
subplot(5,1,2);stem(wk,abs(x1),'.');
xlabel('\\omega/\\pi');ylabel('幅度');title('128点的dft的幅频特性')
subplot(5,1,3);stem(0:length(xn1)-1,xn1,'.');
xlabel('\\omega/\\pi');ylabel('x');title('128点的dft的还原信号')
subplot(5,1,4);stem(abs(x2),'.');
xlabel('wk');ylabel('幅度');title('32点的dft的幅频特性')
subplot(5,1,5);stem(0:length(xn2)-1,xn2,'.');
xlabel('n');ylabel('x');title('32点的dft的还原信号')
图形
泄露
N=;
k=0:N-1;
wk=2*k/N
n1=[0:32]; %长度较短的矩形窗
w=pi/4;
x1=sin(w*n1);
xk1=fft(x1,N)
n2=[0:128]; %?长度较长的矩形窗
x2=sin(w*n2);
xk2=fft(x2,N);
subplot(4,1,1);stem(n1,x1,'.');
xlabel('n1');ylabel('x1');title('短长度信号');
subplot(4,1,2);stem(wk,abs(xk1),'.');
xlabel('wk');ylabel('幅度');title('点信号的点dft的幅频特性');
subplot(4,1,3);stem(n2,x2,'.');
xlabel('n2');ylabel('x2');title('长长度信号');
subplot(4,1,4);stem(wk,abs(xk2),'.');
xlabel('wk');ylabel('幅度');title('?长信号的点dft的幅频特性');
图形
整周期截取
N=;
k=0:N-1;
wk=2*k/N;
w=pi/4;
n1=[0:N];
x1=sin(w*n1);
xk1=fft(x1,N);
n2=[0:40];
x2=sin(w*n2);
xk2=fft(x2,N);
subplot(4,1,1);stem(n1,x1,'.');
xlabel('n1');ylabel('x1');title('整周期截取信号');
subplot(4,1,2);stem(wk,abs(xk1),'.');
xlabel('wk');ylabel('幅度');title('整周期的点dft的幅频特性');
subplot(4,1,3);stem(n2,x2,'.');
xlabel('n2');ylabel('x2');title('非整周期截取信号');
subplot(4,1,4);stem(wk,abs(xk2),'.');
xlabel('wk');ylabel('幅度');title('·费整周期的点dft的幅频特性');
图形
频率分辨率
N=;
k1=0:N-1;
k2=0:127;
wk1=2*k1/N;
wk2=2*k2/N;
w=pi/4;
n1=[0:N]; %观察时间较大
x1=sin(n1*w);
xk1=fft(x1,N);
xk11=fft(x1,128);
n2=[0:32]; %观察时间较小
x2=sin(n2*w);
xk2=fft(x2,N);
xk22=fft(x2,128);
subplot(3,2,1);stem(n1,x1,'.');
xlabel('n1');ylabel('x1');title('观察时间较大的信号');
subplot(3,2,3);stem(wk1,abs(xk1),'.');
xlabel('wk1');ylabel('·ù');title('观察时间较大的信号的点dft的幅频特性');
subplot(3,2,5);stem(wk2,abs(xk11),'.');
xlabel('wk2');ylabel('·ù');title('观察时间较大的信号的128点dft的幅频特性');
subplot(3,2,2);stem(n2,x2,'.');
xlabel('n2');ylabel('x2');title('?观察时间较小的信号');
subplot(3,2,4);stem(wk1,abs(xk2),'.');
xlabel('wk1');ylabel('·ù');title('观察时间较小的信号的点dft的幅频特性');
subplot(3,2,6);stem(wk2,abs(xk22),'.');
xlabel('wk2');ylabel('·ù');title('观察时间较小的信号的128点dft的幅频特性');
图形
三,任意数字滤波器(分别采用IIR和FIR方法),并对某类型信号进行滤波,并对结果进行显示和分析
FIR数字滤波器
t=0:0.02/32:0.06;
u1=sin(2*pi*50*t)+0.8*sin(2*pi*150*t);
b=fir1(32,100/800);
f=0:1:800;
h=freqz(b,1,f,1600);
y=conv(u1,b);
subplot(411);
plot(t,u1);
axis([0,0.06,-2,2]);
hold on;
n=0:32;
subplot(412);
stem(n,b);
axis([0,32,-0.05,0.15])
hold on;
subplot(413);
plot(f,abs(h));
hold on;
subplot(414);
plot(t(1:96),y(1:96));
hold on;
图形
IIR数字滤波器
wp= 2*pi*400;
ws= 2*pi*600;
Rp= 0.3;
Rs= 60 ;
fs=1000;
[N,wn]=cheb1ord(wp,ws,Rp,Rs,'s');
[z,p,k]=cheb1ap(N,Rp);
[b,a]=zp2tf(z,p,k);
[bt,at]=lp2lp(b,a,wn);
[bz,az]=impinvar(bt,at,fs);
[h,f]=freqz(bz,az,512,fs);
hdb=20*log(abs(h));
subplot(1,2,1);plot(f,abs(h))
xlabel('频率/Hz');ylabel('幅值') subplot(1,2,2);
plot(f,hdb) xlabel('频率/Hz');ylabel('幅值(dB)')
x=0:0.1:30;
y1=10*sin(pi*x/12); figure(2);
subplot(2,2,1);
plot(x,y1);
grid title('正弦信号') y2=randn(1,length(x));
subplot(2,2,2); plot(x,y2);grid title('高斯随机信号') y3=y1+y2;
subplot(2,2,3); plot(x,y3);grid title('滤波前信号');
y=filter(Bz,Az,y3); subplot(2,2,4); plot(x,y);grid title('滤波后信号');
图形
课程设计总结
通过这几天的课程设计与学习,我重温了一遍数字信号处理的基本概念及相关理论,巩固了MATLAB基本使用方法,掌握了MATLAB数字信号处理的基本编程技术,实现了典型离散信号的DFT及数字滤波器的设计与应用。 .数字信号处理是一门比较抽象的课程,通过MATLAB语言可以把抽象的理论用简洁直观的图形表示出来。 .MATLAB是一个很好的编程平台,我要在今后的学习中继续深入学习,让MATLAB发挥更大的作用,以帮助学习高深知识。 .数字信号处理课程设计虽然只有短短的一周,但是它是我们向工程问题靠近的很重要的训练,我体会理论知识必须联系实际,这样才是学习的最佳途径。
