1、窗函数的选择原则1. 主瓣带宽要尽可能小,以获得较陡的过渡带2. 与主瓣的幅度相比,旁瓣应尽可能的小,以减少通带内、阻带内波动的最大振幅常用的窗函数窗口函数主瓣宽度第一旁瓣比主瓣低(dB)矩形窗4/N13三角形窗8/N27汉宁窗32哈明窗43布莱克曼窗12/N58实验截图:分析:分辨率下降:频谱泄露:若信号x(n)具有能量较强的频率分量,那么由它所产生的旁瓣可能会掩盖能量较弱的频率分量 如上实验矩形窗显示的幅频响应显示能量集中在主瓣 但是由于频谱泄漏使得旁瓣0.40.6之间的频率分量被掩盖;而汉宁窗弱化了频谱泄漏使得在0.40.6之间的频率表现出来,所以汉宁窗势必矩形窗更优的窗函数;从窗函数的
2、采样点对比来说,采样点数越高,其说明幅频响应分辨率越高上图尖峰的尖细程度可以说明源代码:n1=0:1:511; n2=0:2047;xn1=0.001*cos(0.45*pi*n1)+sin(0.3*pi*n1)-cos(0.302*pi*n1-pi/4); %512点DFT原始信号方程xn2=0.001*cos(0.45*pi*n2)+sin(0.3*pi*n2)-cos(0.302*pi*n2-pi/4); %2048点DFT原始信号方程subplot(4,2,1)stem(n2,xn2,.)title(2048点原始DFT波形图);xlabel(nylabel(x(n)subplot(4
3、,2,2)stem(n1,xn1,(512点原始DFT波形图)%boxcar windowXk1=fft(xn1,512);Xk1=20*log10(abs(Xk1);%分贝表示wk=0:wk=2*wk/512;%关于的归一化坐标subplot(4,2,3)plot(wk,Xk1);grid;n=512 boccar window幅频响应波形|H(ejw)|w/pisubplot(4,2,4)(加512矩形窗后下x(n)DFT波形)%hanning window(0:511)N=512; wn=hanning(N);xn1=xn1.*wn;subplot(4,2,5)n=512 hanning
4、 window幅频响应波形subplot(4,2,6)(加512汉林窗下x(n)DFT波形2047)N=2048;xn2=xn2.*wn Xk1=fft(xn2,2048);wk=2*wk/2048;%关于归一化坐标subplot(4,2,7)n=2048 hanning window幅频响应波形subplot(4,2,8)加2048汉林窗下x(n)DFT波形实验二 用双线性变换法设计IIR数字滤波器实验目的1. 熟悉用双线性变换法设计IIR数字滤波器的原理与方法2. 掌握IIR滤波器的计算机仿真方法3. 通过观察对三路抑制载波调幅信号的滤波作用,获得数字滤波器的感性知识实验内容1. 产生三路
5、抑制载波调幅复合信号,绘出时域波形和幅频特性曲线: 三路的指标如下: 第一路:载波频率fc=250Hz,单频信号频率fo=25Hz; 第二路:载波频率fc=500Hz,单频信号频率fo=100Hz; 第三路:载波频率fc=1000Hz,单频信号频率fo=200Hz; 采样频率Fs=1/Ts =10kHz.信号长度N=1600.2. 用双线性变换法设计一个椭圆低通IIR滤波器,滤波器设计指标参数为: 通带截止频率fp=280Hz,通带最大波动Rp=0.1dB 阻带截止频率fs=450Hz,阻带最小衰减As=60dB 采样频率Fs=1/Ts=10kHz. 信号长度N=1600.3. 以0.05为采
6、样间隔,绘出数字滤波器在频率区间0,上的幅值响应曲线。4. 应用所设计的椭圆低通IIR滤波器滤波分离出第一路抑制载波调幅信号。绘出滤波器分离出的第一路抑制载波调幅信号的时域波形和幅频特性曲线。观察总结滤波作用与效果。5. 实验步骤1参见教材实验四2用MATLAB语言编写仿真滤波程序,完成实验内容143写出完整的实验报告有波形图可知本实验设计的双线性数字滤波器能有效地的将分离出第一路波形,并且有效地抑制其他两路波形;从波形图上可以看出滤波的效果是 滤波前后的波形形状未发生变化,但是时域波形上滤波后信号发生了延迟,表现在频域上就是信号的整个相位发生的变化。信号发生函数:function st=ms
7、tgN=1600;Fs=10000;T=1/Fs;Tp=N*T;t=0:T:(N-1)*T;k=0:N-1;f=k/Tp;%采样频率10Khz,Tp为采样时间fc1=Fs/40;fm1=fc1/10;fc2=Fs/20;fm2=fc2/5;fc3=Fs/10;fm3=fc3/5;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);fxt1=fft(xt1);st=xt1+xt2+xt3;fxt=fft(st,N);plot(t
8、,st);s/ts(t)axis(0,Tp/8,min(st),max(st);复合信号s(t)的波形stem(f,abs(fxt)/max(abs(fxt),(复合信号s(t)的幅频响应波形axis(0,Fs/5,0,1.2);f/Hz幅度plot(t,xt1);xt1/txt1(t)axis(0,Tp/8,min(xt1),max(xt1);参考波xt1(t)的波形滤波函数:function Bz,Az=myfftfp=280;Rp=0.1;fs=450;As=60; %模拟频率最高输入频率280Hz wpz=2*fp/Fs;wsz=2*fs/Fs; %关于归一化转换成数字指标wp=2pi
9、*fp*TWp=2*Fs*tan(wpz*pi/2);Ws=2*Fs*tan(wsz*pi/2);%预畸校正 确定相应模拟滤波器指标N,Wc=ellipord(Wp,Ws,Rp,As,s %确定椭圆滤波器阶数N和截止频率WcB,A=ellip(N,Rp,As,Wc, %根据阶数和截止频率确定滤波器分子A,分母B系数Bz,Az=bilinear(B,A,Fs); %有模拟滤波器和信号采样频率Fs利用双线性变换为数字滤波器的系数h,w=freqz(Bz,Az,20,Fs); % 以0.05为采样间隔,绘出数字滤波器在频率区间0,上的幅值响应曲线 20分单位圆。w=2*w/Fs;%关于归一化Hk=2
10、0*log10(abs(h);plot(w,Hk);n=5 Elliptic Bandpass Filter归一化频率w/幅度/dBaxis(0,1,-100,100);主函数: %采样频率10Khz,Tp为采样时间st=mstg; %载入数字信号Bz,Az=myfft; %载入椭圆低通滤波器xn=filter(Bz,Az,st);%利用生成的双线性椭圆滤波器对st行进滤波得到输出滤波数字信号点Y=fft(xn,1600);%对滤波后信号进行频率响应求解plot(t,xn);xn/taxis(0,Tp/8,min(xn),max(xn);分离出的第一路抑制载波调幅信号x(n)的时域波形subp
11、lot(4,2,8)%滤波信号的幅频响应图stem(f,abs(Y)/max(abs(Y),分离出的第一路抑制载波调幅信号幅频响应波形Matlab知识点备注:IIR滤波器设计的常用函数1.ellipord功能:椭圆滤波器阶的选择格式: N, wc= ellipord( wp, ws, rp, rs)-数字域 N, wc= ellipord( wp, ws, rp, rs,s)-模拟域说明:ellipord可在给定滤波器性能的情况下,选择模拟或数字椭圆滤波器的最小阶,其中wp和ws分别是通带和阻带的截止频率,其值0 wp(ws) 1,当其值为1时,表示0.5 fs,rp,rs分别是通带和阻带区的
12、波纹系数。2.ellip椭圆低通滤波器设计B,A= ellip(N,rp,rs,wc);设计出截止频率为wc的N阶低通椭圆滤波器,其滤波器为截止频率是滤波器幅度下降至 处的频率。3.freqzh,w=freqz(B,A,N,Fs,wholeB:系统函数分子系数A:系统函数分母系数N:整个单位圆上分为多少个点用以计算频率响应Fs:采样频率whole:在整个单位圆上计算频率响应,对应的角频率范围是0,2,不加whole只在上半圆计算,对应角频率范围是0, 3. freqz()-matlab函数MATLAB提供了专门用于求离散系统频响特性的函数freqz(),调用freqz()的格式有以下两种:(1
13、)H,w=freqz(B,A,N)(2)H,w=freqz(B,A,N,whole)(1)中B和A分别为离散系统的系统函数分子、分母多项式的系数向量,返回量H则包含了离散系统频响在0pi范围内N个频率等分点的值(其中N为正整数),w则包含了范围内N个频率等分点。调用默认的N时,其值是512。(2)中调用格式将计算离散系统在0pi范内的N个频率等分店的频率响应的值。因此,可以先调用freqz()函数计算系统的频率响应,然后利用abs()和angle()函数及plot()函数,即可绘制出系统在 或 范围内的频响曲线。绘制如下系统的频响曲线H(z)=(z-0.5)/zMATLAB命令如下:B=1 -
14、0.5;A =1 0;H,w=freqz(B,A,400,Hf=abs(H);Hx=angle(H);clffigure(1)plot(w,Hf)离散系统幅频特性曲线figure(2)plot(w,Hx)离散系统相频特性曲线4 filter是一维数字滤波器使用方法:Y = filter(B,A,X) ,输入X为滤波前序列,Y为滤波结果序列,B/A 提供滤波器系数,B为分子, A为分母 整个滤波过程是通过下面差分方程实现的:a(1)*y(n) = b(1)*x(n) + b(2)*x(n-1) + . + b(nb+1)*x(n-nb) - a(2)*y(n-1) - . - a(na+1)*y
15、(n-na) Y,Zf = filter(B,A,X,Zi),输入X为滤波前序列,Y为滤波结果序列,B/A 提供滤波器系数,B为分子, A为分母,Simulink与信号处理并输入Zi指定X的初始状态,Zf为最终状态矢量 Simulink与信号处理filter(B,A,X,DIM) 或 filter(B,A,X,Zi,DIM)指定X的维数DIM进行操作 举例k=-100:100; uk=zeros(1,100),ones(1,101); a=1 -5 6; b=2 -1; x=uk; y=filter(b,a,x)5. % 运算符:在矩阵或向量之后表示复共轭转置 %.运算符:设x和y是n*n的矩阵。x*y是按照矩阵乘法; % x.*y.是对应元素相乘(x(i,j)*y(i,j)。 % x2是x*x;x.2是每个元素的平方。
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2