《现代信号处理》课程设计实验报告
《现代信号处理》教学大纲

《现代信号处理》教学大纲适用专业:信息与通信工程、物联课程性质:学位课网工程、电子与通信学时数:32 学分数: 2课程号:M081001 开课学期:秋季第(1)学期大纲执笔人:何继爱大纲审核人:陈海燕一、课程的地位和教学目标现代信号处理作为信息类专业研究生的一门专业基础课,是在传统数字信号处理基础上,基于概率统计的思想,用数理统计、优化估计、线性代数和矩阵计算等工具,研究有限数据量的随机信号的分析与处理,且系统可能是时变、非线性的,它是近代才发展起来的前沿学科。
主要讨论基于信号模型分析和滤波的基本理论和基本方法;以现代谱估计和自适应滤波为核心内容,并介绍现代信号处理的新技术。
该课程为众多信号处理的应用领域打下基础,包括通信、声学、图像、雷达、声纳、生物医学等领域的信号处理。
本课程的知识目标是使学生牢固掌握现代信号处理一些最基本的理论、方法和应用,并能跟踪和学习新的理论、方法和技术;内容涉及随机信号统计分析、现代谱估计、自适应滤波器、时频分析与二次型时频分布、信号多速率变换、盲信分离和阵列信号处理方法等;建立现代信号处理的知识体系,对课程内容总体把握;具有一定的实验和模拟仿真的基本知识。
了解现代信号处理重要新技术的发展趋势,为从事信息与通信工程及相关电子系统的工程设计打下坚实的基础。
本课程的能力目标是通过课程的学习提高学生的分析计算方法、演绎推理方法和归纳法等基本数学处理方法;运用数学、物理及工程概念及方法发现问题、分析问题和解决问题的能力,以及理论与实际相结合的能力;能够触类旁通,提高学生的科学学习方法;掌握通信学科的信号分析与处理基本理论和技能,思路开阔,具有运用所学知识的能力、搜集和提炼信息的能力、团队合作能力、表达能力和创新能力等。
本课程的专业素质目标通过本课程的课堂学习、单元知识及章节总结、习题及专题研讨培养学生培养良好严谨的科学研究态度和正确的思维方法,使学生敢于提出问题、善于分析问题和解决问题的能力及具有团队合作精神。
现代信号处理课程设计报告

中南大学课程设计报告题目现代信号处理学生姓名任秋峥指导教师张昊、张金焕学院信息科学与工程学院学号 0909090711 专业班级电子信息专业0901班完成时间 2011年9月7号目录第一章、课程设计题目 (3)1.1题目 (3)1.2课程设计要求 (3)第二章、设计思想概述 (4)2.1离散时间L TI系统及其脉冲响应 (4)2.1.1、离散时间L TI系统 (4)2.1.2离散时间系统的脉冲响应 (5)2.2、采样定理及连续时间信号的傅里叶变换 (6)2.3序列FFT (7)2.4滤波器的设计 (9)2.4.1、IIRDF的设计 (9)2.4.2 FIRDF的设计 (11)第三章、程序设计及关键部分功能说明 (13)3.1、差分方程的单位脉冲响应程序设计 (13)3.1.1差分方程在各个点的单位脉冲响应设计和分析 (13)3.2、验证采样定理 (14)3.2.1、连续时间信号的傅里叶变换 (14)3.2.2、采样定理 (16)3.3、冲击序列和矩形序列的8点和16点FFT (17)3.3.1冲击序列的FFT (17)3.3.2矩形序列的fft (18)3.4、滤波器的设计 (18)3.4.1、IIRDF的设计 (18)3.4.2、FIRDF的设计 (19)第四章、程序实现 (21)4.1、差分方程 (21)4.2采样定理 (22)4.3、FFT (25)4.4滤波器的设计 (28)4.4.1、IIRDF设计 (28)4.4.2、FIR滤波器的设计 (29)第五章、附录 (33)5.1源程序代码 (33)5.2参考文献 (39)第六章、小结与体会 (39)第一章、课程设计题目1.1题目⑴已知差分方程y(n)-y(n-1)+0.8y(n-2) = x(n);①计算并画出n = -10,...,100的脉冲响应;②研究系统的稳定性。
⑵用实验来对采样定理进行验证。
①设||1000x-t=,求并画出其傅立叶变换;e)(t②用5000样本/s和1000样本/s对该模拟信号进行采样,画出其序列傅立叶变换图并进行比较;⑶对于单位抽样序列(n)R,分别作8,16点FFT,观δ、矩形序列(n)8察它们的幅频特性,说明它们的差别,简要说明原因。
现代信号处理课设报告

现代信号处理课设报告中南大学本科生课程设计报告课程名称现代信号处理指导教师赵亚湘学院信息科学与工程学院专业班级通信工程班姓名学号题目一语音信号去噪处理一、设计要求1)在windows系统下的录音机录制一段1s左右的语音信号作为原声信号,在MATLAB软件平台下,利用函数wavread对语音信号进行采样,记住采样频率和采样点数;2)画出语音信号的时域波形,对采样后的语音进行fft变换,得到信号的频谱特性;对语音信号分别加入正弦噪声和白噪声,画出加噪信号的时域波形和频谱图;3)根据对加噪语音信号谱分析结果,确定滤除噪声滤波器的技术指标,设计合适的数字滤波器,并画出滤波器的频域响应;4)用所设计的滤波器对加噪的信号进行滤波,在同一个窗口画出滤波前后信号的时域图和频谱图,对滤波前后的信号进行对比,分析信号变化;5)利用sound(x)回放语音信号,验证设计效果。
二、设计思想和系统功能分析1、设计原理对语音信号加正弦/对比分析加噪声前后设计滤波,与原2、本课题的研究基本步骤如下:①确定已知声音信号的存储路径。
②在MATLAB平台上读入语音信号。
③绘制频谱图并回放原始语音信号。
④利用MATLAB编程加入一段正弦波噪音,设计滤波器去噪。
⑤利用MATLAB编程加入一段随机噪音信号,设计FIR和IIR滤波器去噪,并分别绘制频谱图、回放语音信号。
⑥通过仿真后的图像以及对语音信号的回放,对比两种去噪方式的优缺点。
三、设计中关键部分的理论分析与计算,关键模块的设计思路1、语言的录入及处理在MATLAB软件平台下,利用函数wavread()对语音信号采集,并记录采样频率和采样点数。
将语音信号转换成计算机能够运算的有限长序列。
用FFT(傅里叶变换)对其作谱分析。
对信号添加噪声,然后通过窗函数法设计滤波器滤掉该语音信号的噪声,对比滤波前后的语音波形和频谱。
2、时域信号的FFT分析FFT即为快速傅氏变换,是离散傅氏变换的快速算法,它是根据离散傅氏变换的奇、偶、虚、实等特性,对离散傅立叶变换的算法进行改进获得的。
信号地频谱分析报告及DSP实现

《现代信号处理课程设计》课程设计报告设计题目信号的频谱分析及DSP实现目录第1章绪论 (1)1.1设计背景 (1)1.2设计要求 (3)1.3设计思路简介 (3)第2章系统开发平台与环境 (3)2.1CCS开发环境 (3)2.2SEED-DEC2812开发实验箱 (3)第3章频谱分析仪设计过程 (4)3.1FFT算法实现....... (4)3.2频谱分析系统设计... (8)3.3 源程序代码 ........ .. (9)第4章系统仿真 (14)4.1仿真设置 (14)4.2仿真图.. (16)第6章总结 (20)参考文献 (20)第1章绪论1.1设计背景随着数字技术与计算机技术的发展,数字信号处理(DSP)技术已深入到各个学科领域。
近些年来,数字信号处理技术同数字计算器、大规模集成电路等,有了突飞猛进的发展。
在数字信号处理中,离散傅里叶变换(Discrete.Time Fourier Transform,DFT)是常用的变换方法,它在数字信号处理系统中扮演着重要角色。
由离散傅里叶变换发现频率离散化,可以直接用来分析信号的频谱、计数滤波器的频率响应,以及实现信号通过线系统的卷积运算等,因而在信号的频谱分析方面有很大的作用。
由于DFT的运算量太大,即使是采用计算机也很难对问题进行实时处理,所以经过很多学者的不懈努力,便出现了通用的快速傅里叶变换(FFT)。
快速傅里叶变换(Fast Fourier Transform,FFT)并不是与离散傅里叶变换不同的另一种变换,而是为了减少DFT计算次数的一种快速有效的算法。
对FFT算法及其实现方式的研究是很有意义的。
目前,FFT己广泛应用在频谱分析、匹配滤波、数字通信、图像处理、语音识别、雷达处理、遥感遥测、地质勘探和无线保密通讯等众多领域。
在不同应用场合,需要不同性能要求的FFT处理器。
在很多应用领域都要求FFT处理器具有高速度、高精度、大容量和实时处理的性能。
《现代信号处理》课程设计报告

Central South University课程设计报告课程名称: 现代信号处理设计者:专业班级: 通信0905班学号:指导老师:所属院系:信息科学与工程学院二〇一一年九月目录➢一、摘要及关键字➢二、课程设计目的➢三、课程设计题目和题目设计要求➢四、仿真设计思想和系统功能分析(理论分析与计算设计思路、程序源代码、测试数据、测试输出结果,及必要的理论分析和比较)➢五、总结(包括设计过程中遇到的问题和解决方法,设计心得与体会等)➢六、参考资料0()()sin()()anT a x n x nT Ae nT u nT -==Ω一、摘要及关键字摘要:数字信号处理是通信工程专业相当重要的学科,对日后就业和科研有重大的意义,通过MATLAB ,我们可以清晰地理解数字信号处理中难以理解的一面,对理论的知识加以深化。
关键字:MATLAB 数字信号处理 GUI 序列 频谱分析 相位 滤波器二、课程设计的目的1.全面复习课程所学理论知识,巩固所学知识重点和难点,将理论与实践很好地结合起来。
2.提高综合运用所学知识独立分析和解决问题的能力;3.熟练使用一种高级语言进行编程实现。
三、课程设计题目描述和要求本次课程设计的主要任务一是应用Matlab 对信号进行处理,进行频谱分析;二是数字滤波器的设计与实现。
设计题目如下:1. 给定模拟信号:)()sin()(0t u t Ae t at a x Ω=-,式中128.444=A,α=,s rad /2500π=Ω。
对()a t x 进行采样,可得采样序列 1) 选择采样频率s f =1 kHz ,观测时间50=p T ms ,观测所得序列()x n 及其幅频特性|()|jw X e2) 改变采样频率s f =300Hz ,观测此时|()|jw X e 的变化3) 令采样频率s f =200Hz ,观测此时|()|jw X e 的变化要求分析说明原理,绘出相应的序列及其它们对应的幅频特性曲线,指出|()|jw X e 的变化,说明为什么?2. 已知Gaussian 序列固定序列()x n 中的参数p=8,令q 分别等于2,4,8,观察它们的时域和幅频特性,了解当2(),015()0,n p q en x n --⎧⎪≤≤=⎨⎪⎩其它q取不同值时,对信号序列的时域及幅频特性的影响;固定q=8,令p分别等于8,13,14,观察参数p变化对信号序列的时域及幅频特性的影响,观察p等于多少时,会发生明显的泄漏现象,混叠是否也随之出现?记录实验中观察到的现象,绘出相应的时域序列和幅频特性曲线。
现代信号处理研究生课程报告

华南师范大学现代信号处理课程设计课程名称:现代信号处理课程题目: wiener滤波器和kalman滤波器的原理分析及其matlab实现指导老师:李xx专业班级: 2015级电路与系统姓名: xxxx学号: xxxxwiener滤波器和kalman滤波器的原理分析及matlab实现摘要:信号处理的实际问题,常常是要解决在噪声中提取信号的问题,因此,我们需要寻找一种所谓有最佳线性过滤特性的滤波器。
这种滤波器当信号与噪声同时输入时,在输出端能将信号尽可能精确地重现出来,而噪声却受到最大抑制。
Wiener滤波Kalman滤波就是用来解决这样一类从噪声中提取信号问题的一种过滤(或滤波)方法[1]。
Wiener滤波与Kalman滤波都是解决最佳线性过滤和预测问题,并且都是以均方误差最小为准则的。
但与Wiener滤波器不同的是,Kalman滤波器是一种自适应滤波器,Kalman滤波器提供了推导称作递推最小二乘滤波器的一大类自适应滤波器的统一框架。
关键词:Wiener滤波Kalman滤波均方误差最小自适应滤波器目录第一章绪论 (4)1.1滤波器的发展历程 (4)1.2 现代信号处理的滤波器分类 (5)1.3 wiener和kalman滤波各自的运用领域 (6)1.3.1 wiener滤波的运用范围 (6)1.3.2 kalman滤波的运用范围 (6)第二章 wiener和kalman的各自的滤波原理 (7)2.1 wiener滤波器的原理分析 (7)2.2维纳-霍夫方程 (9)2.2 kalman滤波的自适应原理分析 (11)2.3 wiener滤波和kalman滤波的区别与联系 (13)第三章 wiener和kalman滤波的matlab仿真实现 (14)3.1 FIR维纳滤波器的matlab实现 (14)3.2 kalman滤波器的matlab实现 (19)第四章总结与展望 (23)参考文献 (25)第一章绪论1.1滤波器的发展历程从滤波器的发展现状来看,滤波器从处理信号的类型可以分为模拟滤波器和数字滤波器,模拟滤波器可分为无源滤波器(Passive filter)和有源滤波器(Active filter),而数字滤波器已可用计算机软件实现,也可用大规模集成数字硬件实时实现。
现代信号实验(ZY终)

《现代信号处理实验报告》专业:模式识别与智能系统姓名:曾勇学号:2006193实验报告一 递推最小二乘法1、问题的提出当由实验提供了大量数据时,不能要求拟合函数)(i x ϕ在数据点处的偏差, 即i i i y x -=)(ϕδ(i=1,2,…,m) 严格为零,但为了使近似曲线尽量反映所给数据点的变化趋势,需对偏差有所要求。
通常要求偏差平方和2112))((||i i mi mi iy x -=∑∑==ϕδ最小,此即称为最小二乘原理。
2、方案设计(1)实验要求已知∑=+++=301212k i k i k i w x c y ,其中i w 是均值为零方差相同的独立随机变量。
观测值如下表所示:试用递推最小二乘法估计c j ( j=1,3,5,7 )的值,并在计算机上实现该算法。
(2)拟合模型的建立关于拟和模型必须能反映离散点分布基本特征。
常选取ϕ是线性拟和模型,既ϕ所属函数类为 M=Span{ϕ,ϕ1,… ϕn },其中 ϕ 0,ϕ1,… ϕn 是线性无关的基函数,于是ϕ(x)=∑=mj 0c j ϕj (x)。
通常选取每个ϕj 是次数≤j 的简单多项式,即M 是次数≤ n 的n 次多项式空间。
取 ϕj (x)=x j , j=0,1,…,nM =Span{1 ,x , x 2,…,x n },从而ϕ(x)= C 0 +C 1 x 1 + …+ C n x n =P n (x)设离散数据模型ϕ(x)=∑=mj 0c j ϕj (x)则求解归结为 n+1元函数S 的 极值问题:S(c 0,c 1,…,c n )=∑=mi 0ωi [ y i -∑=nj 0c j ϕj (x i )] 2显然S 达最小值必要条件是k C S∂∂=2∑=mi 0ωi [ y i -∑=n j 0 c j ϕj (x i )] ϕ k (x i )= 0,(k=0 ,1,…,n) 这是关于 c 0,c 1,…,c n 的方程组,改写成 ∑=nj 0(ϕj ,ϕ k ) c j =(y, ϕ k ),(k=0,1,2,…n)称为正规方程组其中(ϕj ,ϕ k )=∑=m i 0∑=nj 0ωi ϕj (x i ) ϕ k (x i )一般,n < m ,函数 ϕ 0,ϕ1,…,ϕn ,线性无关能保证正规方程组的系数矩阵⎪⎪⎪⎭⎫⎝⎛=),(,),(),(,),(,),(),(1000100n n n nn G ϕϕϕϕϕϕϕϕϕϕϕϕ的行列式不为零。
现代信号处理技术(上机实验报告)

实验一系统响应与系统稳定性一实验程序:1.调用filter函数接差分方程:>> A=[1,-0.9];B=[0.05,0.05];>> x1n=[1 1 1 1 1 1 1 1 zeros(1,50)];>> x2n=ones(1,128);>> hn=impz(B,A,58);>> subplot(1,1,1);y='h(n)';tstem(hn,y);>> title(' (a)系统单位脉冲响应h(n)')>> y1n=filter(B,A,x1n);>> title('(b)系统对R8(n)的响应y1n');>> y2n=filter(B,A,x2n);>> subplot(1,1,1);y='y2(n)';tstem(y2n,y);>> title('(c) 系统对u(n)的响应y2(n)');2.调用conv函数计算卷积:>> x1n=[1 1 1 1 1 1 ];>> h1n=[ones(1,10) zeros(1,10)];>> h2n=[1 2.5 2.5 1 zeros(1,10)];>> y21n=conv(h1n,x1n);>> y22n=conv(h2n,x1n);>> subplot(1,1,1);y='h1(n)';tstem(h1n,y);>> title('(1) 系统单位脉冲响应h1(n)')>> subplot(1,1,1);y='y21n';tsttem(y21n,y);>> subplot(1,1,1);y='y21n';tstem(y21n,y);>> title('(2) h1n与R8(n)的卷积y21(n)')>> subplot(1,1,1);y='h2(n)';tstem(h2n,y);>> title('(3) 系统单位脉冲响应h2(n)')>> subplot(1,1,1);y='y22(n)';tstem(y22n,y);>> title('(4) h2(n)与R8(n)的卷积y22(n)')3.谐振器分析:>> un=ones(1,256);>> n=0:255;>> xsin=sin(0.014*n)+sin(0.4*n);>> A=[1,-1.8237,0.9801];B=[1/100.49,0,-1/100.49]; >> y31n=filter(B,A,un);>> y32n=filter(B,A,xsin);>> subplot(1,1,1);y='y31(n)';tstem(y31n,y);>> title('(1) 谐振器对u(n)的响应y31(n)')>> subplot(1,1,1);y='y32(n)';tstem(y32n,y);>> title('(2) 谐振器对正弦信号的响应y32(n)') 二试验程序运行结果:实验二用FFT对信号作频谱分析一实验程序:1.调用函数fft计算序列x(n)的DFT>>x1n=[ones(1,4)];>> M=8;xa=1:(M/2);xb=(M/2):(-1):1;x2n=[xa,xb];>> M=8;xa=1:(M/2);xb=(M/2):-1:1;x2n=[xa,xb];>> x3n=[xb,xa];>> X1k8=fft(x1n,8);>> X1K16=fft(x1n,16);>> X1k16=fft(x1n,16);>> X2k8=fft(x2n,8);>> X2k16=fft(x2n,16);>> X3k8=fft(x3n,8);>> X3k16=fft(x3n,16);%以下为绘图程序>> subplot(1,1,1);mstem(X1k8)>> title('(a)8点DFT[x_1(n)]');>> axis([0,2,0,1.2*max(abs(X1k8))])>> subplot(1,1,1);mstem(X1k16);>> title('(b)16点DFT[x_1(n)]');>> axis([0,2,0,1.2*max(abs(X1k16))])>> subplot(1,1,1);mstem(X2k8)>> title('(c) 8点DFT[X_2(n)]');>> axis([0,2,0,1.2*max(abs(X2k8))])>> subplot(1,1,1);mstem(X2k16)>> title('(d) 16点DFT[x_2(n)]');>> axis([0,2,0,1.2*max(abs(X2k16))])>> subplot(1,1,1);mstem(X3k8);>> title('(e) 8点DFT[x_3(n)]');>> axis([0,2,0,1.2*max(abs(X3k8))])>> subplot(1,1,1);mstem(X3k16);>> title('(f) 16点DFT[x_3(n)]');>> axis([0,2,0,1.2*max(abs(X3k16))])2.周期序列谱分析:>> N=8;n=0:N-1;>> x4n=cos(pi*n/4);>> x5n=cos(pi*n/4)+cos(pi*n/8);>> X4k8=fft(x4n);>> x5k8=fft(x5n);>> N=16;n=0:N-1;>> x4n=cos(pi*n/4);>> x5n=cos(pi*n/4)+cos(pi*n/8);>> X4k16=fft(x4n);>> x5k16=fft(x5n);>> subplot(1,1,1);mstem(X4k8);>> title('(g) 8点DFT[x_4(n)]');>> axis([0,2,0,1.2*max(abs(X4k8))])>> subplot(1,1,1);mstem(X4k16);>> title('(h) 16点DFT[x_4(n)]');>> axis([0,2,0,1.2*max(abs(X4k16))])>> subplot(1,1,1);mstem(X5k8);Undefined function or variable 'X5k8'.>> subplot(1,1,1);mstem(x5k8);>> title('(i) 8点DFT[x_5(n)]');>> axis([0,2,0,1.2*max(abs(x5k8))])>> subplot(1,1,1);mstem(X5k16);Undefined function or variable 'X5k16'.>> subplot(1,1,1);mstem(x5k16);>> title('(j) 16点DFT[x_5(n)]');>> axis([0,2,0,1.2*max(abs(x5k16))])3.模拟周期信号谱分析:>> Fs=64;T=1/Fs;>> N=16;n=0:N-1;>> x6nT=cos(8*pi*n*T)+cos(16*pi*n*T)+cos(20*pi*n*T);>> X6k16=fft(x6nT);>> X6k16=fftshift(X6k16);>> Tp=N*T;F=1/Tp;>> k=-N/2:N/2-1;fk=k*F;>> subplot(1,1,1);stem(fk,abs(X6k16),'.');box on>> title('(a) 16点|DFT[x_6(nT)]|');xlabel('f(Hz)');ylabel('幅度'); >> axis([-N*F/2-1,N*F/2-1,0,1.2*max(abs(X6k16))])>> N=32;n=0:N-1;>> x6nT=cos(8*pi*n*T)+cos(16*pi*n*T)+cos(20*pi*n*T);>> X6k32=fft(x6nT);>> X6k32=fftshift(X6k32);>> Tp=N*T;F=1/Tp;>> k=-N/2:N/2-1;fk=k*F;>> subplot(1,1,1);stem(fk,abs(X6k32),'.');box on>> title('(b) 32点|DFT[x_6(nT)]|');xlabel('f(Hz)');ylabel('幅度'); >> axis([-N*F/2-1,N*F/2-1,0,1.2*max(abs(X6k32))])>> N=64;n=0:N-1;>> x6nT=cos(8*pi*n*T)+cos(16*pi*n*T)+cos(20*pi*n*T);>> X6k64=fft(x6nT);>> X6k64=fftshift(X6k64);>> Tp=N*T;F=1/Tp;>> k=-N/2:N/2-1;fk=k*F;>> subplot(1,1,1);stem(fk,abs(X6k64),'.');box on>> title('(c) 64点|DFT[x_6(nT)]|');xlabel('f(Hz)');ylabel('幅度'); >> axis([-N*F/2-1,N*F/2-1,0,1.2*max(abs(X6k64))])二程序运行结果:实验三 IIR数字滤波器设计与软件实现一实验程序:>> Fs=10000;T=1/Fs;>> st=mstg;N =16001.低通滤波器设计与实现:>> fp=280;fs=450;>> wp=2*fp/Fs;ws=2*fs/Fs;rp=0.1;rs=60;>> [N,wp]=ellipord(wp,ws,rp,rs);>> [B,A]=ellip(N,rp,rs,wp);>> y1t=filter(B,A,st);>> subplot(3,1,1);>> myplot(B,A);>> yt='y_1(t)';>> subplot(3,1,2);tplot(y1t,T,yt);2.带通滤波器设计与实现:>> fp1=440;fpu=560;fs1=275;fsu=900;>> wp=[2*fp1/Fs,2*fpu/Fs];ws=[2*fs1/Fs,2*fsu/Fs];rp=0.1;rs=60;>> [N,wp]=ellipord(wp,ws,rp,rs);>> [B,A]=ellip(N,rp,rs,wp);>> y2t=filter(B,A,st);>> subplot(3,1,1);>> myplot(B,A);>> yt='y_2(t)';>> subplot(3,1,2);tplot(y2t,T,yt)3.高通滤波器设计与实现:>> fp=890;fs=600;>> wp=2*fp/Fs;ws=2*fs/Fs;rp=0.1;rs=60;>> [N,wp]=ellipord(wp,ws,rp,rs);>> [B,A]=ellip(N,rp,rs,wp,'high');>> y3t=filter=(B,A,st);>> subplot(3,1,1);myplot(B,A);>> yt='y_3(t)';>> subplot(3,1,2);tplot(y3t,T,yt)二实验程序运行结果:图(1) 三路调幅信号s(t)的时域波形和幅频特性曲线图(2) 低通滤波器损耗函数及其分离出的调幅信号y1(t) 图(3) 带通滤波器损耗函数及其分离出的调幅信号y2(t)图(4) 高通滤波器损耗函数及其分离出的调幅信号y3(t) N=1000时不能得到6根理想谱线:N=2000时可以得到6根理想谱线:实验四 FIR数字滤波器设计与软件实现一实验程序:1.用窗函数法设计滤波器:>> N=1000;xt=xtg(N);>> fp=120;fs=150;Rp=0.2;As=60;Fs=1000;>> wc=(fp+fs)/Fs;>> B=2*pi*(fs-fp)/Fs;>> Nb=ceil(11*pi/B);>> hn=fir1(Nb-1,wc,blackman(Nb));>> Hw=abs(fft(hn,1024));>> ywt=fftfilt(hn,xt,N);>> rs=60;a=1;mpplot(hn,a,rs)2.用等波纹最佳逼近法设计滤波器:>> fb=[fp,fs];m=[1,0];>> dev=[(10^(Rp/20)-1)/(10^(Rp/20)+1),10^(-As/20)]; >> [Ne,fo,mo,W]=remezord(fb,m,dev,Fs);>> hn=remez(Ne,fo,mo,W);>> Hw=abs(fft(hn,1024));>> yet=fftfilt(hn,xt,N);>> subplot(2,1,1)>> mfftplot(hn,1000)>> yn='hn';tstem(hn,yn)>> yn='hn';A=1;myplot(hn,A)二实验程序运行结果:附录实验中用到的特殊绘图函数1.时域序列离散波形绘制函数tstem:function tstem(xn,yn)%时域序列绘图函数% xn:信号数据序列,yn:绘图信号的纵坐标名称(字符串)n=0:length(xn)-1;stem(n,xn,'.');box onxlabel('n');ylabel(yn);axis([0,n(end),min(xn),1.2*max(xn)])2.Xk的离散幅频特性绘制函数mstem:function mstem(Xk)M=length(Xk);k=0:M-1;wk=2*k/M; %产生M点DFT的采样点频率stem(wk,abs(Xk),'.');box on%绘制M点DFT的幅频特性图xlabel('w/pi');ylabel('幅度');axis([0,2,0,1.2*max(abs(Xk))]) 3.交换函数fftshift:function [f, sf]=FFT_SHIFT(t, st)%This function is FFT to calculate a signal’s Fourier transform %Input: t: sampling time , st : signal data. Time length must greater thean 2%output: f : sampling frequency , sf: frequen%output is the frequency and the signal spectrumdt=t(2)-t(1);T=t(end);df=1/T;N=length(t);f=[-N/2:N/2-1]*df;sf=fft(st);sf=T/N*fftshift(sf);4.信号产生函数mstg:function st=mstgN=1600Fs=10000;T=1/Fs;Tp=N*T;t=0:T:(N-1)*T;k=0:N-1;f=k/Tp;fc1=Fs/10;fm1=fc1/10;fc2=Fs/20;fm2=fc2/10;fc3=Fs/40;fm3=fc3/10;xt1=cos(2*pi*fm1*t).*cos(2*pi*fc1*t);xt2=cos(2*pi*fm2*t).*cos(2*pi*fc2*t);xt3=cos(2*pi*fm3*t).*cos(2*pi*fc3*t);st=xt1+xt2+xt3;fxt=fft(st,N);subplot(3,1,1)plot(t,st);grid;xlabel('t/s');ylabel('s(t)');axis([0,Tp/8,min(st),max(st)]);title('(a) s(t)的波形');subplot(3,1,2)stem(f,abs(fxt)/max(abs(fxt)),'.');grid;title('(b) s(t)的频谱') axis([0,Fs/5,0,1.2]);xlabel('f/HZ');ylabel('幅度')5.时域离散系统损耗函数的绘制函数:myplotfunction myplot(B,A)[H,W]=freqz(B,A,1000);m=abs(H);plot(W/pi,20*log10(m/max(m)));grid on;xlabel('\omega/\pi');ylabel('幅度(dB)')axis([0,1,-80,5]);title('损耗函数曲线');6.时域序列连续曲线的绘制函数:tplotfunction tplot(xn,T,yn)n=0:length(xn)-1;t=n*T;plot(t,xn);xlabel('t/s');ylabel(yn);axis([0,t(end),min(xn),1.2*max(xn)]);7.序列向量xn的N点fft并绘制其幅频特性曲线的绘图函数mfftplot:function mfftplot(xn,N)Xk=fft(xn,N);k=0:N-1;wk=2*k/N;m=abs(Xk);mm=max(m);plot(wk,m/mm);grid on;xlabel('\omega/\pi');ylabel('幅度(dB)');axis([0,2,0,1.2]);title('低通滤波器幅频特性曲线')8.时域离散系统损耗函数和相频特性函数的绘图函数:mpplot:function mpplot(B,A,Rs)if nargin<3 ymin=-80;else ymin=-Rs-20;end;[H,W]=freqz(B,A,1000);m=abs(H);p=angle(H);subplot(2,1,1);plot(W/pi,20*log10(m/max(m)));grid on;xlabel('\omega/\pi');ylabel('幅度(dB)')axis([0,1,ymin,5]);title('低通滤波器幅频特性曲线')subplot(2,1,2);plot(W/pi,p/pi);xlabel('\omega/\pi');ylabel('y_w(t)/\pi');grid on;title('滤除噪声后的信号波形')9.信号产生函数xtg:function xt=xtg(N)N=2000;Fs=1000;T=1/Fs;Tp=N*T;t=0:T:(N-1)*T;fc=Fs/10;f0=fc/10;mt=cos(2*pi*f0*t);ct=cos(2*pi*fc*t);xt=mt.*ct;nt=2*rand(1,N)-1;fp=150;fs=200;Rp=0.1;As=70;fb=[fp,fs];m=[0,1];dev=[10^(-As/20),(10^(Rp/20)-1)/(10^(Rp/20)+1)];[n,fo,mo,W]=remezord(fb,m,dev,Fs);hn=remez(n,fo,mo,W);yt=filter(hn,1,10*nt);xt=xt+yt; %噪声加信号fst=fft(xt,N);k=0:N-1;f=k/Tp;subplot(3,1,1);plot(t,xt);grid;xlabel('t/s');ylabel('x(t)');axis([0,Tp/5,min(xt),max(xt)]);title('(a) 信号加噪声波形')subplot(3,1,2);plot(f,abs(fst)/max(abs(fst)));grid;title('(b) 信号加噪声的频谱')axis([0,Fs/2,0,1.2]);xlabel('f/Hz');ylabel('幅度')现代信号处理技术上机实验报告姓名:常鸿斌学号:09250418班级:通信工程四班。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《现代信号处理》课程实验报告指导老师:支国明、周扬专业班级:电子信息1101学号:0909110814姓名:周群创一、课程设计题目和题目设计要求1、信号发生器用户根据测试需要,可任选以下两种方式之一生成测试信号:(1)直接输入(或从文件读取)测试序列;(2)输入由多个不同频率正弦信号叠加组合而成的模拟信号公式(如式1-1所示)、采样频率(Hz)、采样点数,动态生成该信号的采样序列,作为测试信号。
100sin(2Πf1t)+100sin(2Πf2t)+…+100sin(2Πfnt)(1-1)2、频率分析使用FFT对产生的测试信号进行频谱分析并展示其幅频特性及相频特性,指定需要滤除的频带,通过选择滤波器类型(IIR/FIR),确定对应的滤波器(低通、高通)技术指标。
3、滤波器设计根据以上技术指标(通带截止频率、通带最大衰减、阻带截止频率、阻带最小衰减),设计数字滤波器,生成相应的滤波器系数,并画出对应的滤波器幅频特性与相频特性。
(1)I IR DF设计:可选择滤波器基型(巴特沃斯或切比雪夫);(2)F IR DF设计:使用窗口法(可选择窗口类型,并比较分析基于不同窗口、不同阶数所设计数字滤波器的特点)。
4、数字滤波根据设计的滤波器系数,对测试信号进行数字滤波,展示滤波后信号的幅频特性与相频特性,分析是否满足滤波要求(对同一滤波要求,对比分析各类滤波器的差异)。
(1)I IR DF:要求通过差分方程迭代实现滤波(未知初值置零处理);(2)F IR DF:要求通过快速卷积实现滤波(对于长序列,可以选择使用重叠相加或重叠保留法进行卷积运算)。
5、选做内容将一段语音作为测试信号,通过频谱展示和语音播放,对比分析滤波前后语音信号的变化,进一步加深对数字信号处理的理解。
要求:使用MATLAB(或其它开发工具)编程实现上述内容,写出课程设计报告。
二、设计思想和系统功能结构及功能说明首先输入由多个不同频率正弦信号叠加组合而成的模拟信号公式、采样频率(Hz)、采样点数,动态生成该信号的采样序列,作为测试信号,然后使用FFT对产生的测试信号进行频谱分析并展示其幅频特性与相频特性,指定需要滤除的频带,接下来使用等波纹法FIR低通滤波器进行滤波,最后进行分析,检查是否满足滤波要求。
三、关键部分的详细描述和介绍,流程图描述关键模块和设计思想1、信号发生器输入由多个不同频率正弦信号叠加组合而成的模拟信号公式采样频率(Hz)、采样点数,动态生成该信号的采样序列,作为测试信号。
代码:clc,clear; %清除命令窗口的内容,清除工作空间的内容%%%%%%%滤波器参数%%%%%%%%%%%%%%%%%%%%%%% Fp=60; %阻带截止频率Fs=[50 60]; %通带截止频率Ft=1000; %采集频率,Ft>2max(f1,f2,f3)As=30; %阻带最小衰减Ap=0.5; %通带最大衰减a=[1 0];dev=[(10^(Ap/20)-1)/(10^(Ap/20)+1) 10^(-As/20)];wp=2*pi*Fp; %wp,ws分别为通带频率和截止频率,Ap为通带最大衰减,As阻带最小衰减。
ws=2*pi*Fs;%%%%%%%输入信号%%%%%%%%%f1=50;f2=150;f3=250; %输入信号的频率N=600; %数据长度N=0.6/0.001 =600个点T=1/Ft;n=0:N-1; %采样时间间隔,n是采样点数t=n*T; %时间序列randn('state',0); %产生一噪声信号y=100*sin(2*pi*f1*t)+100*sin(2*pi*f2*t)+100*sin(2*pi*f3*t) +0.1*randn(1,N); %输入的时间信号,载入波形效果图2、等波纹法FIR低通滤波器代码Y=fft(y,1024); %进行快速傅里叶变换,fft(x,N)算N点的DFT。
(M为x的点数)若M>N,则将原序列截短为N点序列,再计算其N点DFT;若M<N,则将原序列补零至N点,然后计算其N点DFT。
%%%%%FIR低通等波纹滤波器%%%%%%%%[k,fo,ao,w] = firpmord(Fs,a,dev,Ft);b = firpm(k,fo,ao,w);[h,w]=freqz(b,1,1024,Ft); %等号左边输出,右边输入根据参数求出频率响应figure(3)subplot('211');plot(w*Ft*0.5/pi,20*log10(abs(h)));title('滤波器幅频特性');ylabel('振幅/dB');xlabel('频率/Hz');subplot('212');plot(w*Ft*0.5/pi,180/pi*unwrap(angle(h)));title('滤波器相频特性');ylabel('相位');xlabel('频率/Hz');z=filter(b,1,y);m=fft(z,1024); %求滤波后的信号figure(1)subplot(4,2,3);plot(abs(m),'r'); %x轴范围不填就默认。
函数的长度title('滤波后信号的频谱');grid;%画分割线subplot(4,2,4);plot(z,'b');title('滤波后的信号波形');grid;subplot(4,2,2);plot(y,'b');title('滤波前信号的波形');grid;subplot(4,2,1);plot(abs(Y),'r');title('滤波前信号的频谱');grid;p=angle(m);q=angle(y);subplot(4,1,3);plot(q,'b');title('滤波前相位'); grid;subplot(4,1,4);plot(p,'b');title('滤波后相位'); grid效果图四、总结在做的过程中,最开始只做出了信号发生器,进行了快速傅里叶变换,但是没有做出滤波器,经过询问同学,咨询老师,以及查询资料之后,成功解决了问题,证明了自己的能力。
这次课程设计对我各方面的综合能力有了很大的提高,对我以后的工作,实践都有很大的帮助。
五、参考文献【1】程佩青.数字信号处理教程,第二版【M】.北京:清华大学出版社,2011【2】赵树杰等.数字信号处理【M】.西安:西安电子科技大学出版社,1997【3】陈怀琛等.MATLAB及在电子信息课程中的应用【M】,北京:电子工业出版社,2002六、程序源代码清单%%%%%%%%%%%%%%%%%%%%%%%%%基于Matlab的数字信号处理课程设计%%clc,clear; %清除命令窗口的内容,清除工作空间的内容%%%%%%%%%%%%%%%%%%%%%%%%%滤波器参数%%%%%%%%%%%%%%%%%%%%%%%Fp=60; %阻带截止频率Fs=[50 60]; %通带截止频率Ft=1000; %采集频率,Ft>2max(f1,f2,f3)As=30; %阻带最小衰减Ap=0.5; %通带最大衰减a=[1 0];dev=[(10^(Ap/20)-1)/(10^(Ap/20)+1) 10^(-As/20)];wp=2*pi*Fp; %wp,ws分别为通带频率和截止频率,Ap为通带最大衰减,As阻带最小衰减。
ws=2*pi*Fs;%%%%%%%%%%%%%%%%%%%%%%%%%%输入信号%%%%%%%%%%%%%%%%%%%%%%%%%f1=50;f2=150;f3=250; %输入信号的频率N=600; %数据长度N=0.6/0.001 =600个点T=1/Ft;n=0:N-1; %采样时间间隔,n是采样点数t=n*T; %时间序列randn('state',0); %产生一噪声信号y=100*sin(2*pi*f1*t)+100*sin(2*pi*f2*t)+100*sin(2*pi*f3*t)+0.1*randn(1,N);%输入的时间信号,载入波形Y=fft(y,1024); %进行快速傅里叶变换,fft(x,N)算N点的DFT。
(M为x的点数)若M>N,则将原序列截短为N点序列,再计算其N点DFT;若M<N,则将原序列补零至N 点,然后计算其N点DFT。
%%%%%%%%%%%%%%%%%%%%%%%%%%FIR低通等波纹滤波器%%%%%%%%%%%%%%%%%[k,fo,ao,w] = firpmord(Fs,a,dev,Ft);b = firpm(k,fo,ao,w);[h,w]=freqz(b,1,1024,Ft); %等号左边输出,右边输入根据参数求出频率响应figure(3)subplot('211');plot(w*Ft*0.5/pi,20*log10(abs(h)));title('滤波器幅频特性');ylabel('振幅/dB');xlabel('频率/Hz');subplot('212');plot(w*Ft*0.5/pi,180/pi*unwrap(angle(h)));title('滤波器相频特性');ylabel('相位');xlabel('频率/Hz'); z=filter(b,1,y);m=fft(z,1024); %求滤波后的信号figure(1)subplot(4,2,3);plot(abs(m),'r'); %x轴范围不填就默认。
函数的长度title('滤波后信号的频谱');grid;%画分割线subplot(4,2,4);plot(z,'b');title('滤波后的信号波形');grid;subplot(4,2,2);plot(y,'b');title('滤波前信号的波形');grid;subplot(4,2,1);plot(abs(Y),'r');title('滤波前信号的频谱');grid;p=angle(m);q=angle(y);subplot(4,1,3);plot(q,'b');title('滤波前相位');grid;subplot(4,1,4);plot(p,'b');title('滤波后相位');grid。