测试信号分析与处理作业实验五
- 格式:docx
- 大小:263.38 KB
- 文档页数:12
实验一 信号频谱的测量一、实验目的1、掌握信号频谱的测量方法,加深对周期信号频谱特点的了解。
2、研究矩形脉冲时域周期和脉宽的变化对频谱结构的影响,了解时域和频域间的关系。
3、学习TH-SG01P 型功率函数信号发生器各旋钮、开关的作用及其使用方法。
4、学习虚拟示波器的使用方法。
二、原理及说明1、周期信号的频谱分为幅度谱、相位谱和功率谱三种,分别是信号各频率分量的振幅,初相和功率按频率由低到高依次排列构成的图形。
通常讲的频谱指幅度谱,它可选频表或波形分析仪逐个频率测试而得,也可用频率谱仪直接显示,现在更多的是应用虚拟示波器的FFT 变换来实现。
2、连续周期信号频谱的特点是离散性、谐波性和幅度总趋势的收敛性,可以通过对正弦波、三角波、方波(或矩形脉冲)频谱的具体测试而得到验证。
(1)、正弦波的频谱特别简单,即本身频率的振幅,如图1-1所示。
图1-1 正弦波及其频谱(2)、宽度为2τ,高度为A 的三角波的频谱,当2T τ=时,2()2k k A A Sa π=,如图1-2所示。
图1-2 三角波及其频谱ω12ω1k ω13ω ω1ωAk A13ω15ωω12ω 24/(5)A π24/(3)A π /2A1k ωω1ω24/A πkA(3)、矩形脉冲的频谱,122k k A A Sa Tωττ⎛⎫=⎪⎝⎭。
当为方波2T τ=时,12k k A A Sa ωτ⎛=⎝图1-3 (4)、周期型矩形脉冲的频谱按122k A Sa Tωττ⎛⎫⎪⎝⎭规律变化,它的第一个零点频率2πτ取决于脉宽τ,谱线的疏密取决于周期T 。
当脉宽τ不变时,在20πτ内谱线会增多而变密;当周期T 不变而脉宽τ减小时,其第一零点频率会增高,从而使20πτ内的谱线增多;谱线高度都会因T 增大或τ减小而降低。
因此,信号的波形和其频谱间是一一对应的,它们不过是对同一信号的两种不同描述方式罢了。
在频域中,常把20πτ的一段频率范围定义为信号的有效频带宽度,对于5T τ≥的矩形脉冲,这种定义就比较精确了。
《信号分析与处理》实验报告华北电力大学前言1.实验总体目标通过实验,巩固掌握课程的讲授内容,使学生对信号分析与线性系统分析的基本理论及分析方法有一个感性认识和更好地理解,使学生在分析问题与解决问题的能力及实践技能方面有所提高。
2.适用专业自动化专业本科生3.先修课程信号分析与处理4.实验课时分配5需要配置微机及MATLAB工具软件。
6.实验总体要求1、掌握信号分解的基本思想及信号在时域、频域和变换域进行分解的基本理论及描述方法,用MATLAB编程语言实现基本信号的表示及可视化,计算和分析信号的频谱;2、掌握在时域、频域和变换域分析LTI系统的方法,及系统在时域、频域和变换域的描述方法,用MATLAB编程语言实现LTI系统的时域分析及频率分析。
3、掌握信号的调制与解调,用MATLAB编程语言仿真分析信号的调制与解调。
⒎ 本实验的重点、难点及教学方法建议实验通过MATLAB编程语言来实现基本信号的表示及可视化,计算分析信号的频谱,实现LTI系统的时域分析及频率分析,并仿真分析信号的调制与解调,使学生对信号分析与线性系统分析的基本理论及分析方法有一个感性认识和更好地理解。
实验的重点及难点是:掌握基本信号的数学表示,信号的频谱特点,计算LTI系统的典型响应,掌握信号的调制与解调。
在这样的理论基础上,学会用MATLAB编程语言来实现对信号与系统响应的可视化及对数字滤波器进行设计。
教学建议:打好理论基础,熟练编程语言。
目录实验一信号的时域与频域分析 3实验二信号的时域与频域处理 4实验三数字滤波器的设计 5实验一一、实验目的1、熟悉MATLAB 平台,高效的数值计算及符号计算功能;2、实现基本信号的表示及可视化计算;3、分析信号的频谱。
二、 实验类型验证型 三、 实验仪器微机,MATLAB 工具软件。
四、 实验原理MATLAB 是功能强大的数学软件,它提供了计算周期连续函数和周期离散序列的频谱的一系列函数。
实验一时域分析实验一.实验目的(1)熟悉MATLAB开发环境。
(2)掌握MATLAB各种表达式的书写规则以及常用函数的使用。
(3)熟悉MATLAB的基本操作(4)熟悉MATLAB中产生信号和绘制信号的基本命令。
(5)熟悉序列的简单运算,如:加法、标量乘法、时间反转、延时、乘法等。
二.实验原理MATLAB (矩阵实验室的简称)是一种专业的计算机程序,用于工程科学的矩阵数学运算。
但在以后的几年内,它逐渐发展为一种极其灵活的计算体系,用于解决各种重要的技术问题。
MA TLAB程序执行MATLAB语言,并提供了一个极其广泛的预定义函数库,这样就使得技术工作变得简单高效。
三.实验任务及步骤1、学习了解MATLAB的实验环境:在Windows桌面上,双击MA TLAB图标,即可进入MA TLAB系统命令窗口。
图1-1 MATLAB系统命令窗口当MA TLAB运行时,有多种类型的窗口,有的用于接收命令,有的用于显示信息。
三个重要的窗口有命令窗口;图像窗口;编辑/调试窗口;它们的作用分别为输入命令;显示图形;充许使用者创建和修改MATLAB程序。
在本节课中我们将会看到这三个窗口的例子。
当MA TLAB程序启动时,一个叫做MATLAB桌面的窗口出现了。
默认的MATLAB桌面结构如图1-1所示。
在MA TLAB集成开发环境下,它集成了管理文件、变量和应用程序的许多编程工具。
在MA TLAB桌面上可以得到和访问的窗口主要有:■命令窗口(The Command Window)■命令历史窗口(The Command History Window)■启动平台(Launch Pad)■编辑调试窗口(The Edit/Debug Window)■工作台窗口和数组编辑器(Workspace Browser and Array Editor)■帮助空间窗口(Help Browser)■当前路径窗口(Current Directory Browser)1.1 命令窗口MA TLAB桌面的右边是命令窗口。
《测试信号分析与处理》课程试验报告试验名称:快速傅立叶变换算法(FFT)在信号频谱分析中的应用及滤波器的设计和实现试验目的:通过本试验,基本掌握FFT算法的实现原理,同时能利用MATLAB语言编写完成FFT算法,并对给定的信号进行频谱分析。
按照给定的数字滤波器设计指标,完成相应数字滤波器的设计。
试验设备:通用计算机+MATLAB 6.0软件。
试验步骤:1、产生给定的需要分析的周期性信号,利用FFT算法对产生的周期性信号进行频谱分析。
2、按照给定的数字滤波器设计指标,设计完成相应的数字滤波器。
试验内容:1、理解FFT算法的基本原理;2、掌握MATLAB编程的基本语言;3、会利用MATLAB语言实现FFT算法。
4、利用实现的FFT算法对给定的周期性离散信号进行频谱分析,并绘出频谱图。
5、理解数字滤波器设计指标,完成数字滤波器设计。
试验的难点和要点:1、依据采样定理,对给定的信号选择合适的采样周期进行离散化。
2、熟练使用MATLAB语言中的FFT库函数对采样信号进行傅立叶变换。
3、利用MATLAB 绘图语言绘制傅立叶变换后的信号频谱图。
4、利用MATLAB 语言设计完成给定指标的数字滤波器。
试验过程记录:1、利用FFT 实现对信号频谱分析的基本原理(介绍试验内容中所涉及到的信号分析理论,注意介绍说明要规范和完整)本实验是求函数x=sin(2*pi*50*t)+sin(2*pi*25*t)的频谱曲线,实验中通过在0到1.023之间以0.001的间隔取了1024个点绘制两个正弦函数的叠加曲线,然后进行频谱分析。
由于序列的长度为1024=2^10,所以可以采用基2时析型FFT 算法。
序列长度1024=2^10,因此运算级数为10级。
第一步:先通过构造一个循环函数求出输入序列的按倒序重排的序列,然后接下来的运算是建立在这个重排序列的基础上。
第二步:通过构造一个三级嵌套循环求出该序列的傅里叶变换函数。
其中第三级循环函数中包含两个循环函数,第一个循环函数用来求出奇序列的值,第二个循环函数用来求出偶序列的值。
武汉工程大学电气信息学院三、实验数据与结果分析1、2、四、思考:2. 3.四、思考:1、代数运算符号*和.*的区别是?*是矩阵相乘,是矩阵A行元素与B的列元素相乘的和.*是数组相乘,表示数组A和数组B中的对应元素相乘实验内容实验三连续时间信号的卷积一、实验内容1、已知两连续时间信号如下图所示,绘制信号f1(t)、f2(t)及卷积结果f(t)的波形;设时间变化步长dt分别取为0.5、0.1、0.01,当dt取多少时,程序的计算结果就是连续时间卷积的较好近似?2、、计算信号()()()11==-a t u e t f at 和()()t tu t f sin 2=的卷积f(t),f 1(t)、f 2(t)的时间范围取为0~10,步长值取为0.1。
绘制三个信号的波形。
二、实验方法与步骤1、绘制信号f 1(t)、f 2(t)及卷积结果f(t)的波形,当dt 取0.01时程序的计算结果就是连续时间卷积的较好近似程序代码如下:clear allclose allclcdt=0.01t1=0:dt:2;t2=-1:dt:1;f1=0.5*t1;f2=0.5*(t2+1);y=dt*conv(f1,f2); %计算卷积t0=t1(1)+t2(1); %计算卷积结果的非零样值的起点位置2.实验内容三、实验数据与结果分析1.2.实验内容实验五连续时间信号的频域分析一、实验内容1、如图5.4所示的奇谐周期方波信号,周期为T1=1,幅度为A=1,将该方波信号展开成三角形式Fourier级数并分别采用频域矩形窗和Hanning窗加权,绘制两种窗函数加权后的方波合成图像。
时间范围取为-2~2,步长值取为0.01。
2、将图5.5中的锯齿波展开为三角形式Fourier级数,按(2)式求出Fourier级数的系数,并在频域分别采用矩形窗、Hanning窗和三角窗加权,观察其Gibbs效应及其消除情况。
时间范围取为-2~2,步长值取为0.01。
信号分析与处理实验报告一、实验目的1.了解信号分析与处理的基本概念和方法;2.掌握信号分析与处理的基本实验操作;3.熟悉使用MATLAB进行信号分析与处理。
二、实验原理信号分析与处理是指利用数学和计算机技术对信号进行分析和处理的过程。
信号分析的目的是了解信号的特性和规律,通过对信号的频域、时域和幅频特性等进行分析,获取信号的频率、幅度、相位等信息。
信号处理的目的是对信号进行数据处理,提取信号的有效信息,优化信号的质量。
信号分析和处理的基本方法包括时域分析、频域分析和滤波处理。
时域分析主要是对信号的时变过程进行分析,常用的方法有波形分析和自相关分析。
频域分析是将信号转换到频率域进行分析,常用的方法有傅里叶级数和离散傅里叶变换。
滤波处理是根据信号的特性选择适当的滤波器对信号进行滤波,常用的滤波器有低通滤波器、高通滤波器、带通滤波器和带阻滤波器等。
三、实验内容1.信号的时域分析将给定的信号进行波形分析,绘制信号的时域波形图;进行自相关分析,计算信号的自相关函数。
2.信号的频域分析使用傅里叶级数将信号转换到频域,绘制信号的频域图谱;使用离散傅里叶变换将信号转换到频域,绘制信号的频域图谱。
3.滤波处理选择合适的滤波器对信号进行滤波处理,观察滤波前后的信号波形和频谱。
四、实验步骤与数据1.时域分析选择一个信号进行时域分析,记录信号的波形和自相关函数。
2.频域分析选择一个信号进行傅里叶级数分析,记录信号的频谱;选择一个信号进行离散傅里叶变换分析,记录信号的频谱。
3.滤波处理选择一个信号,设计适当的滤波器对信号进行滤波处理,记录滤波前后的信号波形和频谱。
五、实验结果分析根据实验数据绘制的图像进行分析,对比不同信号在时域和频域上的特点。
观察滤波前后信号波形和频谱的变化,分析滤波效果的好坏。
分析不同滤波器对信号的影响,总结滤波处理的原理和方法。
六、实验总结通过本次实验,我们了解了信号分析与处理的基本概念和方法,掌握了信号分析与处理的基本实验操作,熟悉了使用MATLAB进行信号分析与处理。
一、实验目的1. 熟悉信号处理的基本概念和基本原理;2. 掌握信号的时域、频域分析方法;3. 理解滤波器的设计与实现方法;4. 提高实验操作技能和数据分析能力。
二、实验内容1. 信号的产生与基本特性分析2. 信号的时域、频域分析3. 滤波器的设计与实现4. 系统性能测试与分析三、实验原理1. 信号的产生与基本特性分析信号是信息传递的载体,信号的时域特性描述了信号随时间变化的规律,频域特性描述了信号中不同频率成分的分布情况。
2. 信号的时域、频域分析时域分析通过对信号进行时域波形观察,分析信号的波形、幅度、周期、频率等特性。
频域分析通过对信号进行傅里叶变换,分析信号的频谱分布情况。
3. 滤波器的设计与实现滤波器是一种能对信号进行选择性通、阻、衰减的装置。
滤波器的设计包括理想滤波器、实际滤波器的设计。
4. 系统性能测试与分析系统性能测试与分析包括系统稳定性、线性度、频率响应、群延迟、幅度响应等方面的测试。
四、实验步骤1. 信号的产生与基本特性分析(1)使用信号发生器产生不同类型的信号,如正弦波、方波、三角波等;(2)使用示波器观察信号的波形、幅度、周期、频率等特性;(3)对信号进行时域分析,记录相关数据。
2. 信号的时域、频域分析(1)对信号进行傅里叶变换,得到信号的频谱;(2)使用频谱分析仪观察信号的频谱分布情况;(3)对信号进行频域分析,记录相关数据。
3. 滤波器的设计与实现(1)设计一个低通滤波器,限制信号中高频成分的通过;(2)设计一个高通滤波器,限制信号中低频成分的通过;(3)设计一个带通滤波器,允许信号中特定频率范围内的成分通过;(4)使用滤波器对信号进行处理,观察滤波效果。
4. 系统性能测试与分析(1)测试滤波器的稳定性、线性度、频率响应、群延迟、幅度响应等性能指标;(2)记录测试数据,分析系统性能。
五、实验结果与分析1. 信号的产生与基本特性分析实验中产生的信号波形、幅度、周期、频率等特性符合理论预期。
《测试信号分析与处理》实验指导书实验一差分方程、卷积、z变换一、实验目的通过该实验熟悉 matlab软件的基本操作指令,掌握matlab软件的使用方法,掌握数字信号处理中的基本原理、方法以及matlab函数的调用。
二、实验设备1、微型计算机1台;2、matlab软件1套三、实验原理Matlab 软件是由mathworks公司于1984年推出的一套科学计算软件,分为总包和若干个工具箱,其中包含用于信号分析与处理的sptool工具箱和用于滤波器设计的fdatool工具箱。
它具有强大的矩阵计算和数据可视化能力,是广泛应用于信号分析与处理中的功能强大且使用简单方便的成熟软件。
Matlab软件中已有大量的关于数字信号处理的运算函数可供调用,本实验主要是针对数字信号处理中的差分方程、卷积、z变换等基本运算的matlab函数的熟悉和应用。
差分方程(difference equation)可用来描述线性时不变、因果数字滤波器。
用x表示滤波器的输入,用y表示滤波器的输出。
a0y[n]+a1y[n-1]+…+a N y[n-N]=b0x[n]+b1x[n-1]+…+b M x[n-M] (1)ak,bk 为权系数,称为滤波器系数。
N为所需过去输出的个数,M 为所需输入的个数卷积是滤波器另一种实现方法。
y[n]= ∑x[k] h[n-k] = x[n]*h[n] (2) 等式定义了数字卷积,*是卷积运算符。
输出y[n] 取决于输入x[n] 和系统的脉冲响应h[n]。
传输函数H(z)是滤波器的第三种实现方法。
H(z)=输出/输入= Y(z)/X(z) (3)即分别对滤波器的输入和输出信号求z变换,二者的比值就是数字滤波器的传输函数。
序列x[n]的z变换定义为X (z)=∑x[n]z-n (4) 把序列x[n] 的z 变换记为Z{x[n]} = X(z)。
由X(z) 计算x[n] 进行z 的逆变换x[n] = Z-1{X(z)}。
实验五:FIR数字滤波器设计与软件实现一、实验目的(略)二、实验内容及步骤(略)三、相关程序1、信号产生函数xtg清单Function xt=xtg(N) %信号x(t)产生函数,并显示信号的幅频特性曲线%xt=xtg产生一个长度为N,有加性高频噪声的单频调幅信号xt,采样频率Fs=1khz%载波频率fc=Fs/10=100Hz,调制正弦波频率f0=Fc/10=10HzN=2000;Fs=1000;T=1/Fs;Tp=N*T;T=0:T:(N-1)*T;fc=Fs/10;f0=fc/10; %载波频率fc=Fs/10,单频调制信号频率为f0=fc/10mt=cos(2*pi*f0*t); %产生单频正弦波调制信号mt,频率为f0ct=cos(2*pi*fc*t); %产生载波正弦波信号ct,频率为fcxt=mt.*ct; %相乘产生单频调制信号xtnt=2*rand(1,N)-1; %产生随机噪声nt%=========设计高通滤波器hn,用于滤除噪声nt中的低频成分,生成高频噪声===== fp=150;fs=200;rp=0.1;rs=70; %滤波器指标fb=[fp,fs];m=[0,1]; %计算remenzord函数所需参数f,m,devdev=[10^(-rs/20),(10^(rp/20)-1)/ (10^(rp/20)+1)];[n,fo,mo,w]=remenzord(fb,m,dev,Fs); %确定remenz函数所需参数hn=remenz(n,fo,mo,w); %调用remenz函数进行设计,用于滤除噪声nt中的低频成分yt=filter(hn,1,10*nt); %滤除随机噪声中低频成分,生成高频噪声yt%=================================================================== xt=xt+yt; %噪声加信号fst=fft(xt,N);k=0:N-1;f=k/Tp;subplot(3,1,1);plot(t,xt);grid;xlabel([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(‘幅度’)2、实验程序清单%实验五程序exp5.m%FIR数字滤波器设计与软件实现clear all;close all;%=====调用xtg产生信号xt,xt长度N=1000,并显示xt及其频谱===========N=1000;xt=xtg(N);fp=120;fs=150;rp=0.2;rs=60; %输入给定指标Fs=1000; T=1/Fs;Tp=N*T; k=0:N-1;f=k/Tp; t=0:T:(N-1)*T;%(1)用窗函数法设计滤波器wc=(fp+fs)/Fs; %理想低通滤波器截止频率(关于pi归一化)B=2*pi*(fs-fp)/Fs; %过渡带宽度指标Nb=ceil(11*pi/B); %blackman窗的长度Nhn=fir(Nb-1,wc,blackman(Nb));Hw=abs(fft(hn,1024)); %求设计的滤波器频率特性ywt=fftfilt(hn,xt,N); %调用函数fftfilt对xt滤波subplot(3,1,1);plot(f,Hw/max(Hw)); grid;title(‘(a)低通滤波器幅频特性’) axis([0,Fs/2,-120,20]);xlabel(‘f/Hz’);ylabel(‘幅度’)subplot(3,1,2);plot(t,ywt); grid;title(‘(b)滤除噪声后的信号波形’)axis([0,0.5,-1,1]);xlabel(‘t/s’);ylabel(‘yw(t)’)%=======(2)用等波纹逼近法设计滤波器======================== fb=[fp,fs];m=[1,0]; %确定remenzord函数所需参数f,m,devdev=[(10^(rp/20)-1)/(10^(rp/20)+1),10^(-rs/20)];[Ne,fo,mo,W]=remenzord(fb,m,dev,fs); %确定remenz函数所需参数hn=remenz(Ne,fo,mo,W); %调用remenz函数进行设计Hw=abs(fft(hn,1024)); %求设计的滤波器频率特性yet=fftfilt(hn,xt,N); %调用函数fftfilt对xt滤波figure(2)subplot(3,1,1);plot(f,Hw/max(Hw)); grid;title(‘(a)低通滤波器幅频特性’) axis([0,Fs/2,-80,10]);xlabel(‘f/Hz’);ylabel(‘幅度’)subplot(3,1,2);plot(t,yet); grid;title(‘(b)滤除噪声后的信号波形’)axis([0,0.5,-1,1]);xlabel(‘t/s’);ylabel(‘ye(t)’)。
《测试信号分析与处理》实验指导书翟任何王明武编写适用专业:测控专业陕西理工学院机械工程学院二零壹零年十月目录实验一:数字滤波器的设计 (2)实验二:数字振荡器的实现 (14)12实验一:数字滤波器的设计实验学时:4 实验类型:综合 实验要求:必修一、实验目的:1、熟悉Matlab 界面并进行操作。
2、掌握数字滤波器的计算机仿真方法。
2、掌握用双线性变换法设计IIR 数字滤波器的原理与方法,通过观察对实际心电图信号的滤波作用,获得数字滤波的感性知识。
3、掌握用窗函数法设计FIR 数字滤波器的原理与方法,了解各种窗函数对滤波特性的影响。
二、实验内容:(一)IIR 数字滤波器设计(1)用双线性变换法设计一个巴特沃斯低通IIR 数字滤波器,设计指标参数为:在通带内频率低于0.2pi 时,最大衰减小于1dB;在阻带内[0.3pi , pi] 频率区间上,,最小衰减大于15dB ;(2)以 0.02pi 为采样间隔,打印出数字滤波器在频率区间[ 0, 0.5pi]上的幅频响应特性曲线;(3)用所设计的滤波器对实际心电图信号采样序列(在本实验后面给出)进行仿真滤波处理,并分别打印出滤波前后的心电图波形图,观察总结滤波作用与效果。
(二)FIR 数字滤波器设计(1)用四种窗函数设计线性相位低通FIR 数字滤波器,截止频率π/4rad ,N=256。
(2)绘制相应的幅频特性曲线,观察3dB 带宽和20dB 带宽以及阻带最小衰减。
(3)比较四种窗函数对滤波器特性的影响。
三、实验原理:(一)用双线形变换法设计IIR 数字低通滤波器 脉冲响应不变法的主要缺点是会产生频谱混叠现象,使数字滤波器的频响偏离模拟滤波器的频响特性,产生的原因是模拟低通滤波器不是带限于折叠频率π/T ,在数字化后产生了频谱混叠,再通过映射关系 ,使数字滤波器在ω=π附近形成频谱混叠现象。
为了克服这一缺点,可以采用非线性频率压缩方法,将整个模拟频率轴压缩到±π/T 之间,再用 转换到Z 平面上。
实验五谱分析一、 实验原理信号是无限长的,而在进行信号处理时只能采用有限长信号,所以需要将信号“截断”。
在信号处理中,“截断”被看成是用一个有限长的“窗口”看无限长的信倍号,或者从分析的角度是无限长的信号()x t 乘以有限长的窗函数()w t ,由傅里叶变换性质可知1()()()*()2x t w t X j W j ωωπ⇔如果()x t 是频宽有限信号,而()w t 是频宽无限函数,截断后的信号也必是频宽无限信号,从而产生所谓的频谱泄漏。
频谱泄漏是不可避免的,但要尽量减小,因此设计了不同的窗函数满足不同用途的要求。
从能量的角度,频谱泄漏也是能量泄漏,因为加窗后,使原来的信号集中在窄频带内的能量分散到无限的频宽范围。
MATLAB 信号处理工具箱提供了8种窗函数: (1) 函数boxcar()用于产生矩形窗,调用格式:w=boxcar(N)其中,N 为窗长度,w 为返回的窗函数序列。
矩形窗的表达式为101()()0N n N w n R n n≤≤-⎧==⎨⎩其它(2) 函数Hanning()用于产生汉宁窗,调用格式:w=hanning(N)Hanning 窗表达式为212()sin ()1cos ()121N N n n w n R n R n N N ππ⎡⎤⎛⎫⎛⎫==- ⎪ ⎪⎢⎥--⎝⎭⎝⎭⎣⎦(3) 函数Hamming()用于产生汉明窗,调用格式为w=hamming(N) 汉明窗的表达式为2()0.540.46cos ()1N n w n R n N π⎡⎤⎛⎫=- ⎪⎢⎥-⎝⎭⎣⎦(4) 函数bartlett()用于产生巴特利特窗,调用格式为w=bartlett(N)巴特利特窗的表达式为21012()212112n N n N w n n N n N N ⎧-≤≤⎪⎪-=⎨-⎪-≤≤-⎪-⎩(5) 函数blackman()用于产生布莱克曼窗,调用格式w=blackman(N)布莱克曼窗表达式为24()0.420.5cos 0.08cos ()11N n n w n R n N N ππ⎡⎤⎛⎫⎛⎫=-+ ⎪ ⎪⎢⎥--⎝⎭⎝⎭⎣⎦(6) 函数triang()用来产生triang 窗,调用格式 w=triang(N)triang 窗类似于bartlett 窗,triang 窗两端不为0,而bartlett 窗两端为0。
信号分析与处理实验报告一、实验目的(1)掌握计算序列的离散傅立叶变换(DFT)的方法;(2)掌握实现时间抽取快速傅立叶变换(FFT)的编程方法;(3)复习复数序列的运算方法;(4)掌握设计IIR数字滤波器的冲激响应不变法和双线性变换法;(5)掌握IIR数字滤波器的实现方法。
二、实验原理1、快速傅利叶变换的软件实现(1)程序输入元素的数目必须为2的整数次幂,即N为2的M次幂,整个运算需要M级蝶形运算。
(2)输入序列按二进制码位倒置排列,输出序列按自然顺序排列。
(3)输出数据占用输入数据的存储单元。
(4)每一级含N/2个基本蝶形运算。
(5)第L级中有N/2的L次幂个群,群与群间隔为2的L次幂。
(6)同一级中各个群的系数W分布相同,第L级的群中有2的L-1次幂个系数。
(7)处于第L级的群的系数是(p=1,2,3,……,)(8)对于第L级的蝶形运算,输入数据的间隔为2的L-1次幂。
2、码位倒置程序流程图输入A[I],MI ←0,J ←0,N ←2MI ≥J ?T ←A[J]A[J]←A[I]A[I]←TK ←N/2K>J?J ←J ←K K ←K/2J ←J+KI ←I+1I=N-1?输出A[I]NoYesNoYes No接蝶形运算程序Yes3、蝶形运算程序流程图接码位倒置程序L=1LE=2LLE1=LE/2W=1W1=exp(-jπ/LE1)R=0P=RQ=P+LE1T=A[Q]*WA[Q]=A[P]-TA[P]=A[Q]+TP=P+LEP>N-1?NoW=W*W1YesR=R+1R>LE1-1? L=L+1No YesL>M?No 结束Yes4、IIR 数字滤波器的设计以教材第九章无限冲激响应数字滤波器的例子说明软件实现方法。
设滤波器为级联型结构,其系统函数如下:)()()()(321z H z H z H z H =式中⎪⎪⎪⎩⎪⎪⎪⎨⎧+-+=+-+=+-+=---------21213212122121123422.094592.01)1(08338.0)(37534.005410.11)1(08338.0)(71489.031432.11)1(08338.0)(z z z z H z z z z H z z z z H 显然,该数字滤波器为无限冲激响应数字滤波器,其数字网络和软件流程图分别如图所示。
用FFT 对信号作频谱分析1.实验目的学习用FFT 对连续信号和时域离散信号进行谱分析的方法,了解可能出现的分析 误差及其原因,以便正确应用FFT 。
2. 实验原理用FFT 对信号作频谱分析是学习数字信号处理的重要内容。
经常需要进行谱分析的信号是模拟信号和时域离散信号。
对信号进行谱分析的重要问题是频谱分辨率D 和分析误差。
频谱分辨率直接和FFT 的变换区间N 有关,因为FFT 能够实现的频率分辨率是N /2π,因此要求D N ≤/2π。
可以根据此式选择FFT 的变换区间N 。
误差主要来自于用FFT 作频谱分析时,得到的是离散谱,而信号(周期信号除外)是连续谱,只有当N 较大时离散谱的包络才能逼近于连续谱,因此N 要适当选择大一些。
周期信号的频谱是离散谱,只有用整数倍周期的长度作FFT ,得到的离散谱才能代表周期信号的频谱。
如果不知道信号周期,可以尽量选择信号的观察时间长一些。
对模拟信号进行谱分析时,首先要按照采样定理将其变成时域离散信号。
如果是模拟周期信号,也应该选取整数倍周期的长度,经过采样后形成周期序列,按照周期序列的谱分析进行。
3.实验步骤及内容(1)对以下序列进行谱分析。
⎪⎩⎪⎨⎧≤≤-≤≤-=⎪⎩⎪⎨⎧≤≤-≤≤+==其它nn n n n n x 其它n n n n n n x n R n x ,074,330,4)(,074,830,1)()()(3241 选择FFT 的变换区间N 为8和16 两种情况进行频谱分析。
分别打印其幅频特性曲线。
并进行对比、分析和讨论。
(2)对以下周期序列进行谱分析。
4()cos 4x n n π=5()cos(/4)cos(/8)x n n n ππ=+选择FFT 的变换区间N 为8和16 两种情况分别对以上序列进行频谱分析。
分别打印其幅频特性曲线。
并进行对比、分析和讨论。
(3)对模拟周期信号进行谱分析6()cos8cos16cos20x t t t t πππ=++选择 采样频率Hz F s 64=,变换区间N=16,32,64 三种情况进行谱分析。
193 实验一,混叠现象的时域与频域表现考虑频率分别为3Hz ,7Hz ,13Hz 的三个余弦信号,即:g1(t)=cos(6πt), g2(t)=cos(14πt), g3(t)=cos(26πt),当采样频率为10Hz 时,即采样间隔为0.1秒,则产生的序列分别为:g1[n]=cos(0.6πn), g2[n]=cos(1.4πn), g3[n]=cos(2.6πn)对g2[n],g3[n] 稍加变换可得:g2[n]=cos(1.4πn)=cos((2π-0.6π)n)= cos(0.6πn)g3[n]=cos(2.6πn)= cos((2π+0.6π)n)=cos(0.6πn)因此它们在时域表现为一个序列。
实际上,当给定频率为(10k ±3Hz)的余弦信号,且采样频率为10Hz 时,均表现为g1[n]=cos(0.6πn)的序列。
以下的matlab 程序画出三序列的时域和频域图(图9―32),非常直观地说明了混叠现象。
n=1:300;t=(n-1)*1/300;g1=cos(6*pi*t);g2=cos(14*pi*t);g3=cos(26*pi*t);plot(t,g1,t,g2,t,g3);k=1:100;s=k*0.1;q1=cos(6*pi*s);q2=cos(14*pi*s);q3=cos(26*pi*s);hold on; plot(s(1:10),q1(1:10),'bd');figuresubplot(2,2,1);plot(k/10,abs(fft(q1)))subplot(2,2,2);plot(k/10,abs(fft(q2)))subplot(2,2,3);plot(k/10,abs(fft(q3)))如果将采样频率改为30Hz,则三信号采样后不会发生频率混叠,可运行以下的程序,观察序列的频谱。
n=1:300;t=(n-1)*1/300;g1=cos(6*pi*t);g2=cos(14*pi*t);g3=cos(26*pi*t);g4=cos(34*pi*t);plot(t,g1,t,g2,t,g3,t,g4);k=1:300;s=k*0.1;q=cos(6*pi*k/30);q1=cos(14*pi*k/30);q2=cos(26*pi*k/30);q3=cos(34*pi*k/30);hold on; plot(s(1:10),q1(1:10),'bd');figuresubplot(2,2,1);plot(k/10,abs(fft(q)))subplot(2,2,2);plot(k/10,abs(fft(q1)))subplot(2,2,3);plot(k/10,abs(fft(q2)))subplot(2,2,4);plot(k/10,abs(fft(q3)))问题与实践:保证采样后的信号不发生混叠的条件是什么?若信号的最高频率为17Hz,采样频率为30Hz,问是否会发生频率混叠?混叠成频率为多少Hz的信号?编程验证你的想法。
实验五FIR数字滤波器的设计04011344 王晨一、实验目的(1) 掌握用窗函数法、频率采样法及优化设计法设计FIR滤波器的原理及方法,熟悉相应的MATLAB编程。
(2) 熟悉线性相位FIR滤波器的幅频特性和相频特性。
(3) 了解各种不同窗函数对滤波器性能的影响。
二、实验原理①线性相位实系数FIR滤波器按其N值奇偶和h(n)的奇偶对称性分为四种:1、h(n)为偶对称,N为奇数;H(ejω)的幅值关于ω=0,π,2π成偶对称。
2、h(n)为偶对称,N为偶数;H(ejω)的幅值关于ω=π成奇对称,不适合作高通。
3、h(n)为奇对称,N为奇数;H(ejω)的幅值关于ω=0,π,2π成奇对称,不适合作高通和低通。
4、h(n)为奇对称,N为偶数;H(ejω) ω=0、2π=0,不适合作低通。
② 窗口法窗函数法设计线性相位FIR 滤波器步骤:➢ 确定数字滤波器的性能要求:临界频率k {}ω,滤波器单位脉冲响应长度N ; ➢ 根据性能要求,合理选择单位脉冲响应(n)h 的奇偶对称性,从而确定理想频率响应j (e )d H ω的幅频特性和相频特性;➢ 求理想单位脉冲响应(n)d h ,在实际计算中,可对j (e )d H ω按M(M 远大于N)点等距离采样,并对其求IDFT 得(n)M h ,用(n)M h 代替(n)d h ;➢ 选择适当的窗函数(n)ω,根据d (n)h (n)(n)h ω=求所需设计的FIR 滤波器单位脉冲响应;➢ 求j (e )H ω,分析其幅频特性,若不满足要求,可适当改变窗函数形式或长度N ,重复上述设计过程,以得到满意的结果。
窗函数的傅式变换j (e )W ω的主瓣决定了j (e )H ω过渡带宽。
j (e )W ω的旁瓣大小和多少决定了j (e )H ω在通带和阻带范围内波动幅度,常用的几种窗函数有:(1) 矩形窗(Rectangle Window) N (n)R (n)ω=(2) 汉宁(Hanning)窗,又称升余弦窗(3) 汉明(Hamming)窗,又称改进的升余弦窗(4) 布莱克曼(Blankman)窗,又称二阶升余弦窗(5) 凯塞(Kaiser)窗其中:β是一个可选参数,用来选择主瓣宽度和旁瓣衰减之间的交换关系,一般说来,β越大,过渡带越宽,阻带越小衰减也越大。
王锋实验五:多种功率谱估计的比较一、实验目的a.了解功率谱估计在信号分析中的作用;b.掌握随机信号分析的基础理论,掌握参数模型描述形式下的随机信 号的功率谱的计算方法;c.掌握在计算机上产生随机信号的方法;d.了解不同的功率谱估计方法的优缺点。
二、实验准备有三个信号源,分别代表三种随机信号(序列)。
信号源1:123()2cos(2)2cos(2)2cos(2)()x n f n f n f n z n πππ=+++其中,1230.08,=0.38,0.40f f f == z(n)是一个一阶 AR 过程,满足方程: ()(1)(1)()z n a z n e n =--+ (1)0.823321a =-e(n)是一高斯分布的实白噪声序列,方差20.1σ=信号源2和信号源3:都是4阶的AR 过程,它们分别是一个宽带和一个窄带过程,满足方程: ()(1)(1)(2)(2)(3)(3)(4)(4)()x n a x n a x n a x n a x n e n =--------+ e(n)是一高斯分布的实白噪声序列,方差2σ,参数如下:三、实验内容a. 描绘出这三个实验信号的真实功率谱波形。
b. 在计算机上分别产生这个三个信号,令所得到的数据长度 N= 256 。
注意:产生信号的时候注意避开起始瞬态点。
例如,可以产生长度为512 的信号序列,然后取后面256 个点作为实验数据。
c. 分别用如下的谱估计方法,对三个信号序列进行谱估计。
1、经典谱估计 周期图法 自相关法平均周期图法(Bartlett 法)Welch法(可选每段64 点,重叠32 点,用Hamming 窗)2、现代谱估计Yule - Walker方程(自相关法)最小二乘法注:阶次p可在3-20之间,由自己给定。
四、实验结果分析生成的信号源进行一次估计时的结果:信号1的经典谱估计:信号1的现代谱估计:信号2的现代谱估计:信号3的现代谱估计:运行50次求平均的结果:信号1的经典谱估计:信号1的现代谱估计:信号2的现代谱估计:信号3的现代谱估计:运行1次估计结果分析:可见现代谱估计的分辨率和光滑性都比较好。
而经典谱估计中,周期图法和自相关法的分辨率较好,但是光滑性不好,起伏剧烈。
Bartlett法和Welch法光滑性比较好,但是是分辨率降低了很多。
运行50次结果分析:可以看到运行50次求平均后,周期图法以及自相关法的光滑性都得到了改善,并且没有降低分辨率。
这是因为50次求平均对于平稳信号来说相当于进行了数据长度更长的welch 法和平均周期图法,因此在没有牺牲分辨率的情况下,改善了光滑性。
实验还发现,burg算法的结果很不稳定,分辨率有时极差,这可能与随机信号的采样点数太少有关。
需要进步一研究。
五、原程序清单%=======生成信号源1=======e1=wgn(1,512,0.1);%生成高斯白噪声a1=-0.823321;z1(1)=0;for i=2:512z1(i)=-a1.*z1(i-1)+e1(i);endf1=0.08;f2=0.38;f3=0.40;for i=1:512xn11(i)=2.*cos(2.*pi.*f1.*i)+2.*cos(2.*pi.*f2.*i)+2.*cos(2.*pi.*f3.*i)+z1(i);endxn1(1:256)=xn11(257:512);%取后半段256点subplot(3,1,1);plot(1:256,xn1)title('信号源1');axis([0 256 -10 10])%=======生成信号源2=======e2=wgn(1,512,1);%生成高斯白噪声a21=-1.300;a22=1.200;a23=-0.600;a24=0.250;z2(1)=0;z2(2)=0;z2(3)=0;z2(4)=0;for i=5:512z2(i)=(-a21).*z2(i-1)+(-a22).*z2(i-2)+(-a23).*z2(i-3)+(-a24).*z2(i-4)+e2(i);endxn2(1:256)=z2(257:512);%取后半段256点subplot(3,1,2);plot(1:256,xn2)title('信号源2');axis([0 256 -10 10])%=======生成信号源3=======e3=wgn(1,512,1);%生成高斯白噪声a31=-2.750;a32=3.799;a33=-2.650;a34=0.928;z3(1)=0;z3(2)=0;z3(3)=0;z3(4)=0;for i=5:512z3(i)=(-a31).*z3(i-1)+(-a32).*z3(i-2)+(-a33).*z3(i-3)+(-a34).*z3(i-4)+e3(i);endxn3(1:256)=z3(257:512);%取后半段256点subplot(3,1,3);plot(1:256,xn3)title('信号源3');axis([0 256 -100 100])%====信号1的经典谱估计===m=50;%实验次数m取1和50for i=1:mX11(:,i)=fft(xn1,512);px11(:,i)=1/256*abs(X11(:,i)).^2;%周期图法Rx12(:,i)=xcorr(xn1);px12(:,i)=1/256*abs(fft(Rx12(:,i)));%自相关法xnk1(1:64)=xn1(1:64);xnk2(1:64)=xn1(65:128);xnk3(1:64)=xn1(129:192);xnk4(1:64)=xn1(193:256);Xnk1(:,i)=fft(xnk1,128);pxnk1(:,i)=1/64*abs(Xnk1(:,i)).^2;Xnk2(:,i)=fft(xnk2,128);pxnk2(:,i)=1/64*a bs(Xnk2(:,i)).^2;Xnk3(:,i)=fft(xnk3,128);pxnk3(:,i)=1/64*abs(Xnk3(:,i)).^2;Xnk4(:,i)=fft(xnk4,128);pxnk4(:,i)=1/64*a bs(Xnk4(:,i)).^2;px13(:,i)=1/4.*(pxnk1(:,i)+pxnk2(:,i)+pxnk3(:,i)+pxnk4(:,i));%4段平均周期图法px14(:,i)=pwelch(xn1,[],64,512);%welch法endpx111=mean(px11,2);px112=mean(px12,2);px113=mean(px13,2);px114=mean(px14,2);figure(4)subplot(4,1,1);plot(1:512,px111);title('信号1-周期图法');axis([0 256 0 300]);subplot(4,1,2);plot(1:511,px112);title('信号1-自相关法');axis([0 256 0 300]);subplot(4,1,3);plot(1:length(px113),px113);title('信号1-4段平均周期图法');axis([0 64 0 100]); subplot(4,1,4);plot(1:length(px114),px114);title('信号1-Welch法');axis([0 256 0 40]);%====信号1的现代谱估计===for i=1:mpx15(:,i)=pyulear(xn1,15,512);px16(:,i)=pburg(xn1,15,512);endpx115=mean(px15,2);px116=mean(px16,2);figure(5)subplot(2,1,1);plot(px115);title('信号1-Yule-Walker自相关法');subplot(2,1,2);plot(px116);title('信号1-Burg算法');%====信号2的经典谱估计===m=50;%实验次数m取1和50for i=1:mX21(:,i)=fft(xn2,512);px21(:,i)=1/256*abs(X21(:,i)).^2;%周期图法Rx22(:,i)=xcorr(xn2);px22(:,i)=1/256*abs(fft(Rx22(:,i)));%自相关法xnk21(1:64)=xn2(1:64);xnk22(1:64)=xn2(65:128);xnk23(1:64)=xn2(129:192);xnk24(1:64)=xn2(193:256);xnk221(:,i)=fft(xnk21,128);pxnk21(:,i)=1/64*abs(xnk221(:,i)).^2;xnk222(:,i)=fft(xnk22,128);pxnk22 (:,i)=1/64*abs(xnk22(:,i)).^2;xnk223(:,i)=fft(xnk23,128);pxnk23(:,i)=1/64*abs(xnk223(:,i)).^2;xnk224(:,i)=fft(xnk24,128);pxnk24 (:,i)=1/64*abs(xnk24(:,i)).^2;px23(:,i)=1/4.*(pxnk21(:,i)+pxnk22(:,i)+pxnk23(:,i)+pxnk24(:,i));%4段平均周期图法px24(:,i)=pwelch(xn2,[],64,512);%welch法endpx211=mean(px21,2);px212=mean(px22,2);px213=mean(px23,2);px214=mean(px24,2);figure(6)subplot(4,1,1);plot(1:512,px211);title('信号2-周期图法');axis([0 256 0 100]);subplot(4,1,2);plot(1:511,px212);title('信号2-自相关法');axis([0 256 0 100]);subplot(4,1,3);plot(1:length(px213),px213);title('信号2-4段平均周期图法');axis([0 64 0 50]); subplot(4,1,4);plot(1:length(px214),px214);title('信号2-Welch法');axis([0 256 0 10]);%====信号2的现代谱估计===for i=1:mpx25(:,i)=pyulear(xn2,15,512);px26(:,i)=pburg(xn2,15,512);endpx215=mean(px25,2);px216=mean(px26,2);figure(7)subplot(2,1,1);plot(px215);title('信号2-Yule-Walker自相关法');subplot(2,1,2);plot(px216);title('信号2-Burg算法');%====信号3的经典谱估计===m=50;%实验次数m取1和50for i=1:mX31(:,i)=fft(xn3,512);pX31(:,i)=1/256*abs(X31(:,i)).^2;%周期图法Rx32(:,i)=xcorr(xn3);px32(:,i)=1/256*abs(fft(Rx32(:,i)));%自相关法xnk31(1:64)=xn3(1:64);xnk32(1:64)=xn3(65:128);xnk33(1:64)=xn3(129:192);xnk34(1:64)=xn3(193:256);xnk321(:,i)=fft(xnk31,128);pxnk31(:,i)=1/64*abs(xnk321(:,i)).^2;xnk322(:,i)=fft(xnk32,128);pxnk32 (:,i)=1/64*abs(xnk32(:,i)).^2;xnk323(:,i)=fft(xnk33,128);pxnk33(:,i)=1/64*abs(xnk323(:,i)).^2;xnk324(:,i)=fft(xnk34,128);pxnk34 (:,i)=1/64*abs(xnk34(:,i)).^2;px33(:,i)=1/4.*(pxnk31(:,i)+pxnk32(:,i)+pxnk33(:,i)+pxnk34(:,i));%4段平均周期图法px34(:,i)=pwelch(xn3,[],64,512);%welch法endpX311=mean(pX31,2);pX312=mean(px32,2);pX313=mean(px33,2);pX314=mean(px34,2);figure(8)subplot(4,1,1);plot(1:512,pX311);title('信号3-周期图法');axis([0 256 0 40000]);subplot(4,1,2);plot(1:511,pX312);title('信号3-自相关法');axis([0 256 0 40000]);subplot(4,1,3);plot(1:length(pX313),pX313);title('信号3-4段平均周期图法');axis([0 64 0 20000]); subplot(4,1,4);plot(1:length(pX314),pX314);title('信号3-Welch法');axis([0 256 0 6000]);%====信号3的现代谱估计===for i=1:mpx35(:,i)=pyulear(xn3,15,512);px36(:,i)=pburg(xn3,15,512);endpX315=mean(px35,2);pX316=mean(px36,2);figure(9)subplot(2,1,1);plot(pX315);title('信号3-Yule-Walker自相关法');subplot(2,1,2);plot(pX316);title('信号3-Burg算法');六、实验后的体会和建议通过此次实验,了解不同的功率谱估计方法的优缺点,更加熟悉了MATLAB 相关的操作。