1、归纳:频谱分析和滤波器设计,一。MATLAB表述的信号和系统,一。离散信号的表述与运算,1。信号的表述:用 n 及 x 两个数组,如书 impseq,stepseq,.2。信号的初等运算;相加,相乘,移位等,.(书 sigadd, sigmult, sigshift)3。信号的卷积、相关、抽选等;conv, xcorr, xcov, decimate, .,二。系统的表述 (连续系统),状态方程模型(参数矩阵A,B,C,D)传递函数模型(参数数组 a,b)零极增益模型(参数数组 z,p,k)极点留数模型(参数数组 r,p)二阶串接模型,(参数矩阵 b0k,b1k,b2k,1,a1k,a2k),
2、二。系统的表述 (离散系统),状态方程模型(参数矩阵A,B,C,D)传递函数模型(参数数组 a,b)零极增益模型(参数数组 z,p,k)极点留数模型(参数数组 r,p)二阶串接模型,(参数矩阵 b0k,b1k,b2k,1,a1k,a2k),三。系统的表述 (离散系统),状态方程模型(不用)传递函数模型(参数数组 ad,bd)ad =1 FIR滤波器(系统)ad =1 IIR滤波器(系统)零极增益模型(参数数组 z,p,k)极点留数模型(参数数组 r,p,C)二阶串接模型,连续系统和离散系统之间的转换函数模拟/数字滤波器转换,1。双线性变换函数 bilinearNUMd,DENd = bilin
3、ear(NUM,DEN,Fs)H(z) = H(s) | | s = 2*Fs*(z-1)/(z+1)2。脉冲响应不变法impinvarBZ,AZ = impinvar(B,A,Fs),信号处理工具箱提供的线性模型转换函数,用MATLAB与信号流图求系统,信号流图方程列写设Ki个输入节点uiK个中间和输出节点xj方程为写成矩阵形式:,X= x1;x2;xK为状态变量列向量;Q为K乘K维的状态传送矩阵;U = u1;u2;uL为输入信号列向量P为K乘L维的为信号输入矩阵,四。信号通过线性系统(滤波器实现),信号与系统脉冲过渡函数的卷积 y=conv(u,h),. 差分方程解法 y=filter(
4、bd,ad,u)滤波器实行中的其他函数:fftfilt; latcfilt,sosfilt等Z-变换及反变换部分分式展开长除,二频谱分析(第三、五章),傅立叶变换(包括连续和离散形式 ) 正变换 反变换,离散时间傅立叶正反变换,离散傅立叶正反变换,连续和离散傅立叶变换的对比,在MATLAB中计算傅立叶变换,在MATLAB中的计算相当方便,只要下列两行八个语句:xn=input(x = ); N= (length(xn); n = 0:1:N-1; k = nWN = exp(-j*2*pi/N); nk = n*k; WNnk = WN . nk; Xk = xn * WNnk 在数字信号处理
5、及其MATLAB实现书pp119-120中,定义它为dft函数,相应也定义了idft函数,即X=dft(x,N)x=idft(X,N) 但其运算速度低。在MATLAB中设有基本函数fft,它是快速傅立叶变换的缩写,调用形式为:X=fft(x,N) x=idft(X,N)N取为2的幂次时,速度最快。(令N=2nextpow2(N);)它的功能和dft相同,不过速度快得多,而且有许多出错提示能力。,Matlab程序,ftdemo,离散频谱与连续频谱的转换,MATLAB只能处理离散量,把离散量取得很密时,就接近于连续量。在时间轴上取得很密,对应的频谱应该取得很窄,离散傅立叶变换的最高频率通常取为2p
6、i,故只能取到0.2*pi以下的部分,才代表连续系统的频谱。另外它抽去了时间和频率,应当补上。时间应乘以采样周期Ts,即X=Ts*fft(x)fft的频率轴应乘以2/(N*Ts),单位:弧度/秒或1 /(N*Ts)=Fs/N,单位:赫兹,作傅立叶反变换ifft时注意事项,1。x=ifft(X)中的X必须取全频段(-的值。通常给出的X为0 ,要扩展。2。实序列x的X为复数序列,其实部(幅度)偶对称,虚部(相位)奇对称,这可作为扩展的规则。3。反变换x应取实部x=real(ifft(X)4. 如X已含有采样周期T,反变换应除以T.,求连续信号频谱的程序例,x=input(x(1:N)序列); Nx
7、=length(x);K=nextpow2(Nx);N=2K; n=0:N-1;Fs=input(采样频率Fs= );T=1/Fs;X=T*fft(x);m1=0:N/2-1;D=2*pi/(T*N);subplot(2,1,1),plot(m1*D/(2*pi),abs(X(m1+1)m=-N/2:N/2-1; subplot(2,1,2)plot(m*D/(2*pi),abs(fftshift(X),三。FIR滤波器的设计,(一)FIR滤波器的特点:(1)线性相位,波形失真小;(2)极点在z-平面原点,必稳定;(3)易于实现,(二)窗函数法,1. 定预期频率特性:通带幅频特性为1,相位线性
8、;1*exp(-a*w)阻带幅频特性为0;过渡带宽2。由预期特性求预期脉冲响应hd3。把脉冲响应与窗函数相乘,得实际的有限长度的h;4. h就是FIR滤波器分子系数,可用freqz函数验算其幅频特性,滤波器的设计指标,类型和理想特性Wn=wc1,wc2,处的理想幅特性A=A1,A2,各段允许误差Rp,As,(或delta1,delta2),根据过渡带宽选择FIR滤波器窗函数类型和长度M的公式,FIR滤波器的其他设计方法,(二)频率抽样法朴素算法:等波动方法(用remez函数)(三)约束最小二乘法(fircls)约束指的对波动的上限有规定均方误差最小化准则最大误差最小化准则,四。模拟及IIR数字
9、滤波器设计,(二)几种模拟原型的主要特点,(三)IIR滤波器设计步骤(用书上的方法和函数),1。用buttap+求阶次N的公式函数afd_butt设计模拟低通原型;数字指标:wp,ws,Rp,As先换成模拟指标用双线性变换时wp,ws用预崎变变换2。用变换函数bilinear或impinvar将模拟低通原型变换为数字低通3。用zmapping函数将数字低通变换为数字高通、带通或带阻滤波器,(三)模拟及IIR滤波器设计步骤(用Signal工具箱)以椭圆滤波器为例,选类型确定阶次elipord.,求出模拟原型滤波器参数ellipap,设计指标Wp,Ws,Rp,Rs等 lp2bp.,转换为数字滤波器
10、bilinear,直接求出滤波器参数ellip,信号处理工具箱中滤波器设计界面,图形界面的滤波器设计工具fdatool和信号处理工具sptool,要得到MATLAB的使用说明,可:1. 用help 命令2. 用Acrobat Reader打开MATLABhelppdf_docsignal,滤波器设计工具fdatool功能,输入给滤波器规定的指标、类型与参数;自动或半自动地设计滤波器;用多种方法显示设计的结果;导入和导出滤波器的参数分析、比较有限字长的效应对滤波器特性的影响;,信号浏览器的概貌:,使用信号浏览器可以:分析和比较矢量或者矩阵信号.放大有关信号数据的某部分测量各种各样的信号数据的特征
11、比较多种信号.在音频硬件上播送信号数据打印信号.,滤波器浏览器的概貌:,使用滤波器浏览器可以分析所选滤波器下列的响应特征幅度响应,相位响应脉冲响应,阶跃响应群延迟极点和零点位置滤波器浏览器能在任何时候显示出选定滤波器的多达六种不同响应特征曲线.,滤波器浏览器可提供以下功能,缩放测量滤波器响应分析和修改滤波器响应修改显示方法:例如频率范围或者重幅度单位等参数 使信号通过滤波器得到输出,信号滤波的sptool演示,用程序ffiltdem及ffiltdem1运行将其信号数据和滤波器数据送至sptool再研究其输出信号再观察其输入输出频谱;,频谱浏览器的概貌:谱分析,估计和分析一信号的功率谱密度(PSD).用PSD估计值得知信号的频率内容.使用谱浏览器可以分析和比较谱的密度曲线;评价不同谱分析的方法;比较窗函数,FFT长度,采样频率等的影响;,声音信号的采集,用话筒及windows的录音机录下声音文件:后缀.wav,存储采样频率默认22500Hz,可选用MATLAB中的wavread命令读入.wav文件,参数为样本长度;再用save命令将它改为.mat数据格式存储;以后即可在sptool中直接调用。,