信号分析与处理课程设计

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

《信号分析与处理(自)》课程设计任务书一、目的与要求是使学生通过上机使用Matlab工具进行数字信号处理技术的仿真练习,加深对《信号分析与处理(自)》课程所学基本理论和概念的理解,培养学生应用Matlab等工具进行数字信号处理的基本技能和实践能力,为工程应用打下良好基础。二、主要内容1.了解Matlab基本使用方法,掌握Matlab数字信号处理的基本编程技术。掌握数字信号的基本概念。1)使用Matlab(生成几种典型数字信号(正弦信号、周期信号、高斯随机信号等),2)编程计算离散信号的特征值(均值、方差等)。3)进行信号加减运算。2.Matlab编程实现典型离散信号(正弦信号、周期信号、随机信号)的离散傅立叶变换,显示时域信号和频谱图形(幅值谱和相位谱);以正弦周期信号为例,观察讨论基本概念(混叠、泄漏、整周期截取、频率分辨率等)。3.设计任意数字滤波器,并对某类型信号进行滤波,并对结果进行显示和分析。三、进度计划序号设计(实验)内容完成时间备注1布置课程设计任务、示范讲解Matlab程序使用方法0.5天2上机进行课程设计3天3整理课程设计报告1天4演示课程设计内容并答辩0.5天四、设计成果要求1.提交完成设计内容的程序2.提交设计报告五、考核方式课程设计报告、设计内容演示和答辩相结合。考核内容:考勤、纪律、课程设计报告、实际编程能力和基本概念掌握程度等。学生姓名:指导教师:2011年12月29日一、了解Matlab基本使用方法,掌握Matlab数字信号处理的基本编程技术。掌握数字信号的基本概念。1、使用Matlab生成几种典型数字信号:正弦信号、周期信号、非周期信号和高斯随机信号并编程计算离散信号的特征值(均值、方差等)。1)正弦信号:编程如下:k1=-20;k2=20;k=k1:k2;w=pi/8;f=sin(k*w);stem(k,f,'filled');title('正弦序列');xlabel('时间(k)');ylabel('幅值f(k)');fprintf('正弦信号的均值为%.4f方差为%.4f\n',mean(f),var(f,1));运行结果如下:正弦信号的均值为0.0000方差为0.51222)周期信号编程如下:k1=0;k2=3;k=k1:k2;Ts=1;f=k*Ts;xtilde=f'*ones(1,8);xtilde=xtilde(:);xtilde=xtilde';subplot(2,1,1);stem(k,f,'filled');title('一个周期');xlabel('时间(k)');ylabel('幅值f(k)');subplot(2,1,2);stem(xtilde,'filled');title('周期序列');xlabel('时间(k)');ylabel('幅值f(k)');fprintf('周期信号的均值为%.4f方差为%.4f\n',mean(xtilde),var(xtilde,1));运行结果如下:周期信号的均值为1.5000方差为1.25003)非周期信号编程如下:n=0:10;x=[zeros(1,2),ones(1,5),zeros(1,4)];stem(n,x,'filled');title('非周期信号');xlabel('时间(n)');ylabel('幅值f(n)');fprintf('非周期信号的均值为%.4f方差为%.4f\n',mean(x),var(x,1));运行结果如下:非周期信号的均值为0.4545方差为0.24794)高斯随机信号编程如下:n=300;xn=randn(1,n);stem(xn,'filled');xlabel('n');ylabel('x(n)');title('高斯随机信号');fprintf('随机信号的均值为%.4f方差为%.4f\n',mean(xn),var(xn,1));运行结果如下:随机信号的均值为-0.0524方差为0.85102、进行信号加减运算。编程如下:x1=[1,5,2,-4,5,-1,5];%序列1x2=[7,6,5,4,3,2,1];%序列2n=1:length(x1);figure(1);holdon;subplot(2,2,1);stem(n,x1,'filled');title('x1');subplot(2,2,2);stem(n,x2,'filled');title('x2');subplot(2,2,3);stem(n,x1+x2,'filled');title('x1+x2');subplot(2,2,4);stem(n,x1-x2,'filled');title('x1-x2');y=fliplr(x2);%反转t=-length(y):-1;figure(2);holdon;subplot(2,2,1);stem(n,x1,'filled');title('x1');subplot(2,2,2);stem(n,x2,'filled');title('x2');subplot(2,2,3);stem(n,x1.*x2,'filled');title('x1*x2');subplot(2,2,4);stem(t,y,'filled');title('x2(-n)');运行结果如下:1)对序列1和序列2相加减:2)对序列1和序列2相乘,对序列2进行反转:二、Matlab编程实现典型离散信号(正弦信号、周期信号、随机信号)的离散傅立叶变换,显示时域信号和频谱图形(幅值谱和相位谱);以正弦周期信号为例,观察讨论基本概念(混叠、泄漏、整周期截取、频率分辨率等)。1、离散信号的离散傅里叶变换1)正弦信号编程如下:N=64;k=0:N-1;w=pi/6;f=sin(k*w);f1=dft(f,N);figure(1);holdon;stem(k,f,'filled');xlabel('k');ylabel('f');gridon;title('时域信号');figure(2);holdon;subplot(2,1,1);stem(abs(f1),'filled');ylabel('幅值');title('幅频特性');gridon;subplot(2,1,2);stem(angle(f1),'filled');ylabel('相角');title('相频特性');gridon;运行结果如下:2)周期信号编程如下:k1=0;k2=3;k=k1:k2;Ts=1;f=k*Ts;xtilde=f'*ones(1,8);xtilde=xtilde(:);xtilde=xtilde';ff=dft(xtilde,32);figure(1);holdon;stem(xtilde,'filled');title('周期序列');xlabel('时间(k)');ylabel('幅值f');gridon;figure(2);holdon;subplot(2,1,1);stem(abs(ff),'filled');ylabel('幅值');title('幅频特性');gridon;subplot(2,1,2);stem(angle(ff),'filled');ylabel('相角');title('相频特性');gridon;运行结果如下:时域信号为频域信号为3)随机信号编程如下:n=200;xn=randn(1,n);fxn=dft(xn,n);figure(1);holdon;stem(xn,'filled');xlabel('n');ylabel('x(n)');title('高斯随机信号');figure(2);holdon;subplot(2,1,1);stem(abs(fxn),'filled');ylabel('幅值');title('幅频特性');gridon;subplot(2,1,2);stem(angle(fxn),'filled');ylabel('相角');title('相频特性');gridon;运行结果如下:时域信号为频域信号为2、以正弦周期信号为例,观察讨论基本概念。1)时域混叠分析编程如下:w=pi/8;n=[0:64];xn=sin(w*n);xk1=fft(xn,128);%计算xn的128点dftxn1=ifft(xk1,128);xk2=fft(xn,32);%计算xn的32点dftxn2=ifft(xk2,32);k=0:127;wk=2*k*pi/128;%产生128点dft对应的采样点频率subplot(5,1,1);stem(n,xn,'.');%原始信号xlabel('n');ylabel('xn');title('(1)正弦信号');gridonsubplot(5,1,2);stem(wk,abs(xk1),'.');%128点dft的幅频特性图xlabel('wk');ylabel('幅值');title('(2)128点dft的幅频特性图');gridonsubplot(5,1,3);stem(0:length(xn1)-1,xn1,'.');%128点dft的还原信号xlabel('n');ylabel('xn');title('(3)128点dft的还原信号');gridonsubplot(5,1,4);stem(abs(xk2),'.');%32点dft的幅频特性图xlabel('wk');ylabel('幅值');title('(4)32点dft的幅频特性图');gridonsubplot(5,1,5);stem(0:length(xn2)-1,xn2,'.');%32点dft的还原信号xlabel('n');ylabel('xn');title('(5)32点dft的还原信号');gridon运行结果如下:结果分析:序列xn为有限序列,长度为64,当频域采样点数为128(大于序列长度64)时,可以将频域采样回复原序列;当频域采样点数为32(小于序列长度64)时,产生时域混叠现象,不能回复原序列。2)频谱泄露分析编程如下:n1=[0:64];%加一较短长度的矩形窗xn1=sin(w*n1);xk1=fft(xn1,128);%计算xn1的128点dftn2=[0:128];%加一较长长度的矩形窗xn2=sin(w*n2);xk2=fft(xn2,128);%计算xn2的128点dftk=0:127;wk=2*pi*k/128;%产生128点dft对应的采样点频率subplot(4,1,1);stem(n1,xn1,'.');xlabel('n1');ylabel('xn1');title('(1)短长度信号');gridonsubplot(4,1,2);stem(wk,abs(xk1),'.');xlabel('wk');ylabel('幅度');title('(2)短信号128点dft的幅频特性图');gridonsubplot(4,1,3);stem(n2,xn2,'.');xlabel('n2');ylabel('xn2');title('(3)长长度信号');gridonsubplot(4,1,4);stem(wk,abs(xk2),'.');xlabel('wk');ylabel('幅度');title('(4)长信号128点dft的幅频特性图');gridon运行结果如下:结果分析:正弦信号是无限长序列,而DFT是对有限长序列进行的变换,要用DFT分析正弦序列的频谱,必须进行截断处理。用矩形窗截断后,原来的离散谱线向附近展宽,使频谱变模糊,谱分辨率降低,这种现象称为频谱泄露。图(2)截取了4个周期,图(4)截取了8个周期,由图(2)和图(4)对比可知,矩形窗的长度越长,展宽就越窄,就可以减小频谱泄露效应。3)整周期截取分析编程如下:w=pi/8;n1=[0:128];%整周期截取xn1=sin(w*n1);xk1=fft(xn1,128);%计算xn1的128点dftn2=[0:70];%非整周期截取xn2=sin(w*n2);

1 / 22
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功