《测试信号分析与处理》实验指导书实验一离散系统的时频域分析一、实验目的通过该实验熟悉matlab软件的基本操作指令,掌握matlab软件的使用方法,掌握离散系统的时频域分析的基本原理、方法以及matlab函数的调用。二、实验设备1、微型计算机1台;2、matlab软件1套三、实验原理Matlab软件是由mathworks公司于1984年推出的一套科学计算软件,分为总包和若干个工具箱,其中包含用于信号分析与处理的sptool工具箱和用于滤波器设计的fdatool工具箱。它具有强大的矩阵计算和数据可视化能力,是广泛应用于信号分析与处理中的功能强大且使用简单方便的成熟软件。Matlab软件中已有大量的关于数字信号处理的运算函数可供调用,本实验主要是针对离散系统的时频域分析的的matlab函数的熟悉和应用。(备注:可上网查询sptool、fdatool工具箱的使用方法,如下网址是使用sptool的ppt介绍。=G9lkzhNeDxCOjJ6in61zJFm6fVPRpMiJUXA0WjiYbQrxRDFymy227UtT_4QXQtI6qalbqMPHuWQDKcVHb7xFx9lUnQqDNXokBW19plJTpDe)相关MATLAB函数1.数字信号的表示(1)已知数字信号采样值的数字信号的表示x=[0.20.4–0.30.50.91.2–0.4];(2)已知数字信号函数表达式的数字信号的表示t=tmin:1/fs:tmax;x=sin(2*t)-1;其中tmin-起始时间,tmax-结束时间,fs-采样频率(3)常用数字函数单位脉冲函数delta=imp_fun(n,n0)%n为采样点数,n0为延迟采样周期数阶跃函数u=step_fun(n,n0)exp函数x=2*exp(-0.5*n);%0.5[]2nxnesinandcos函数x=3*sin(pi/8*n)x=-cos(5*pi/7*n-pi/3)2.求数字卷积y=conv(x,h)%x为数字信号,h为滤波器的脉冲响应或y=conv(h,x)3.滤波:filter()函数y=filter(b,a,x)由向量b和a组成的系统对输入x进行滤波4.求解单位脉冲响应:impz()函数(1)h=impz(b,a)计算单位脉冲响应的序列值,取样点个数由MATLAB自动选取(2)h=impz(b,a,n)计算指定范围内(0:n-1)的单位脉冲响应的序列值(3)impz(b,a)绘制单位脉冲响应的时域波形5.求解频率响应:freqz()函数(1)[h,w]=freqz(b,a,n)可得到n点频率响应,这n个点均匀地分布在上半单位圆(即),并将这n点频率记录在w中,相应的频率响应记录在h中。n最好能取2的幂次方,如果缺省,则n=512。(2)[h,w]=freqz(b,a,n,'whole')均匀选取n个点计算频率响应。(3)[h,w]=freqz(b,a,n,Fs)Fs为采样频率(以Hz为单位),在0~Fs/2频率范围内选取n个频率点,计算相应的频率响应。(4)[h,w]=freqz(b,a,n,'whole',Fs)在0~Fs之间均匀选取n个点计算频率响应。(5)freqz(b,a)可以直接得到系统的幅频和相频特性曲线。其中幅频特性以分贝的形式给出,频率特性曲线的横轴采用的是归一化频率,即Fs/2=1。6.系统函数的零极点图的绘制:zplane(b,a)7.(1)求取非周期数字信号的频谱dtft函数[mag,phase,w]=dtft(x);%x为数字时域信号x,mag为x的幅度频谱,phase为x的相位频谱,w为数字频率函数dtft4和函数dtft的功能和格式相同,只是其计算幅度频谱和相位频谱时是以π/4为间隔.数字信号频谱图绘制plotdtft(mag,phase,w,option)——option1、2plotdtft(mag,phase,w,option,fs)——option3、4(2)求取周期数值信号频谱dfs函数[mag,phase,k]=dfs(x,period)/x为数字周期信号,period为x的周期绘制频谱图plotdfs(mag,phase,k,option)-option1、2或plotdfs(mag,phase,k,option,fs)-option3、48.求取数字信号频谱dft函数[mag,phase,k]=dft(x)x-数字信号[mag,phase,k]=dft(h)—计算数字滤波器频率响应h-数字滤波器脉冲响应9.快速傅里叶变换fft函数xx=fft(x);%用fft计算数字信号频谱mag=abs(xx);%求fft变换的模phase=angle(xx);%求fft变换的相位k=0:(length(xx)-1);%计算fft变换的长度plotfft(mag,phase,k,1);%绘制fft变换后的信号幅度频谱图和相位频谱图四、实验步骤1、熟悉matlab软件基本操作指令。读懂下列matlab程序指令,键入程序并运行,观察运行结果。(1)Conv.m%计算两个序列的线性卷积;clear;%清屏N=5;M=6;L=N+M-1;x=[1,2,3,4,5];%数字信号x的采样值h=[6,2,3,6,4,2];%数字滤波器的脉冲响应hy=conv(x,h);%求x和h的数字卷积,输出为ynx=0:N-1;%设置输入信号x的波形图横坐标为0~N-1,间隔为1nh=0:M-1;%设置h的波形图横坐标为0~M-1,间隔为1ny=0:L-1;%设置输出信号y的波形图横坐标为0~L-1,间隔为1subplot(131);%绘图,图示格式为1行3列共3张图,这里显示第一幅图,其位置在最上方,stem(nx,x,'.k');xlabel('n');ylabel('x(n)');gridon;%绘x的图.横坐标n,纵坐标x(n),线条颜色黑色’k’指代’black’,gridon指显示网格线subplot(132);%绘图,图示格式为1行3列共3张图,这里显示第二幅图,其位置在中间stem(nh,h,'.k');xlabel('n');ylabel('h(n)');gridon;%绘h的图.横坐标n,纵坐标h(n),线条颜色黑色’k’指代’black’,gridon指显示网格线subplot(133);%绘图,图示格式为1行3列共3张图,这里显示第三幅图,其位置在最下方stem(ny,y,'.k');xlabel('n');ylabel('y(n)');gridon;%绘y的图.横坐标n,纵坐标y(n),线条颜色黑色’k’指代’black’,gridon指显示网格线(2)filter.m;%求利用数字滤波器对信号进行滤波处理后的输出;clear;x=ones(100);%设置一维数组x,共100个1t=1:100;%从1~100,间隔为1b=[.001836,.007344,.011016,.007374,.001836];%设置数字滤波器的bk系数a=[1,-3.0544,3.8291,-2.2925,.55075];%设置数字滤波器的ak系数y=filter(b,a,x);%用系数为ak和bk的数字滤波器对信号x滤波,输出为ystem(t,y,'.');gridon;%绘图,横坐标取t,纵坐标取y,线形为'.'ylabel('y)')%纵坐标为yxlabel('n')%横坐标为n(3)impz.m%计算滤波器的脉冲响应clear;b=[.001836,.007344,.011016,.007374,.001836];a=[1,-3.0544,3.8291,-2.2925,.55075];[h,t]=impz(b,a,40);%用系数为b和a的滤波器对长度为40的单位脉冲信号进行滤波stem(t,h,'.');gridon;%绘图ylabel('h(n)')xlabel('n')(4)filter.m%计算滤波器的阶跃响应x=ones(100);t=1:100;%信号x为一维数组共100个1b=[.001836,.007344,.011016,.007374,.001836];a=[1,-3.0544,3.8291,-2.2925,.55075];y=filter(b,a,x);plot(t,x,'g.',t,y,'k-');gridon;%绘图,曲线t-x,‘g.’指代颜色为绿色green,线形为’.’,曲线t-y,'k-'指代颜色为黑色,线形为’-’ylabel('x(n)andy(n)')%纵坐标为x(n)andy(n)xlabel('n')%横坐标为n(5)dtft.m%求取非周期数字信号频谱并绘图;n=0:50;x=sin(n*pi/7).*(stepfun(n,0)-stepfun(n,40));%[]sin[][40]7nxnunun[mag,phase,w]=dtft(x);%求取信号x的频谱plotdtft(mag,phase,w,1)%绘制信号x的幅度频谱和相位频谱(6)dfs.m%求取周期数字信号频谱并绘图n=0:30;x=sin(n*pi/8);[mag,phase,k]=dfs(x,16);%求取周期为16的信号x的频谱plotdfs(mag,phase,k,1);%绘制信号x的幅度频谱和相位频谱,选项1–幅度频谱纵坐标为线性幅度|ck|,横坐标为k,相位频谱纵坐标单位为弧度,横坐标为k.figureplotdfs(mag,phase,k,2);%绘图形式选项2–幅度频谱纵坐标为对数幅度20log|ck|单位dB,横坐标为k,相位频谱纵坐标单位为度,横坐标为k.figureplotdfs(mag,phase,k,3,8000);%绘图形式选项3-幅度频谱纵坐标为线性幅度|ck|,横坐标为模拟频率f单位为赫兹,相位频谱纵坐标单位为弧度,横坐标为模拟频率f单位为赫兹.系统采样频率为8000Hzfigureplotdfs(mag,phase,k,4,8000);%绘图形式选项4-幅度频谱纵坐标为对数幅度20log|ck|单位dB,横坐标为模拟频率f单位为赫兹,相位频谱纵坐标单位为度,横坐标为模拟频率f单位为赫兹。系统采样频率8000Hz(7)zplane(b,a);%画出所给系统的极零图b=[1-1.71.53-0.68];a=1;zplane(b,a);(8)dft.m%求取数字信号频谱x=[1-2304-150];[mag,phase,k]=dft(x);plotdft(mag,phase,k,1)(9)fft.m%应用FFT求频谱;x=rand(1,32)-0.5;xx=fft(x);%用fft计算数字信号频谱mag=abs(xx);%求fft变换的模phase=angle(xx);%求fft变换的相位k=0:(length(xx)-1);%计算fft变换的长度plotfft(mag,phase,k,1);%绘制fft变换后的信号幅度频谱图和相位频谱图2、编程求出下列问题的解1)、滤波器的差分方程为:y[n]=x[n]-0.8x[n-1]-0.5y[n-1]求出此滤波器脉冲响应和阶跃响应的前十个采样值。2)、系统的脉冲响应为h[n]=e-n(u[n]-u[n-3]),用卷积求系统的阶跃响应。五、实验讨论和分析1、差分方程、卷积、z变换和傅里叶变换之间如何进行转换?2、边界效应是如何产生的?它对信号的滤波效果有何影响?实验二IIR和FIR数字滤波器设计一、实验目的通过该设计实验掌数字滤波器设计的一般步骤,掌握利用matlab软件设计数字滤波器的方法,熟悉sptool工具箱的使用方法。二、实验设备1、微型计算机1台;2、matlab软件1套三、实验原理一)、滤波器的形状及重要参数理想滤波器的形状是矩形,图1给出非理想滤波器。图1滤波器形状通带:增益高的频率范围,信号可以通过,称为滤波器的通带。阻带:增益低的频率范围,滤波器对信号有衰减或阻塞作用