版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数字信号处理实验二频率采样型滤波器 实验报告于斌 电信硕3121305080152015/11/081 实验目的 1. 学习使用频率采样型结构实现 FIR 滤波器,初步熟悉 FIR 滤波器的线性 相位特点。2. 直观体会频率采样型滤波器所具有的“滤波器组”特性,即在并联结构 的每条支路上可以分别得到输入信号的各次谐波。 3. 学习使用周期冲激串检测所实现滤波器的频域响应。 2 实验内容3、 实验记录及分析基于Gui的人机化界面:1)结果如下图:分析:输入信号为,图中采样了两个周期共32个点,最大值为4,周期N=16,时域采样结果正确。2) 对采样信号的第二个周期(n=N,N+1.L-1)进行离
2、散傅里叶变换,画出幅频特性和相频特性图,观察并分析其特点。 结果如图:分析:仅在直流分量、一次、二次谐波处有谱线,后面的谱线是由于共轭对称产生的,由于是对第二个周期加窗得到的频率特性,故幅值应乘以sinc函数带来的增益,主瓣附近的频谱结构为,而主瓣宽度为4/N,故增益为N=16。对直流分量(k=0),幅值为16;对一次谐波(k=1),余弦信号正负各分1/2,故幅值为=16;对二次谐波(k=2),幅值为。3) 结果如图:分析:对H(n)求IDFT得到h(n),然后在h(n)后补足够多的零后做FFT即得到近似的单位圆上的频响H(w),在采样点处H(w)=H(k),由图可看出该滤波器为线性相位低通滤
3、波器,而图中相频曲线为锯齿因为matlab进行了卷绕。4) 编程实现图 1 所示的频率采样型滤波器结构,其中 r =0.999, H(k)取第 3步中的值。为了简化编程,梳状滤波器可以调用 CombFilter.m,谐振器可以 调用Resonator2.m,使用 help CombFilter 和 help Resonator2 查看如何配置参 数。将第 1 步生成的采样信号通过该滤波器,画出输出信号第二个周期的时域波形和频谱,并与第 2 步的频谱进行对比, 观察并分析二者的区别。结果如图:分析:其中原始信号为黑色,通过滤波器后为白色,可以看到滤波后发生了相位的偏移,时域波形幅度有些许衰减,频
4、域看直流分量和一次谐波基本重叠,没有完全重叠是因为梳状滤波器取得r值不为1,这是为了工程上的稳定性考虑,而二次谐波分量幅值减半,这是因为Y(k)=X(k)*H(k),H(2)的幅值为0.5,故滤波后幅值为8。5) 分别画出图 1 中前 4 路谐振器的输出信号第二个周期的时域波形,观察并分析输出信号的特点。 结果如图:分析:信号通过第一路谐振器,k=0,即仅有直流分量,幅度不变;信号通过第二路谐振器,k=1,仅通过一次谐波分量,幅度不变;信号通过第三路谐振器,k=2,仅通过第二次谐波分量,又H(2)处幅值0.5,故信号幅值减半;信号通过第四路谐振器,图中仍有少量信号残留,而理想是没有信号通过,这
5、与谐振器设计不够理想有关。6) 将输入信号换成周期为N 的冲激串,画出输出信号第二个周期的幅频特性,并与第 3 步的滤波器幅频特性进行对比,观察并分析二者的关系。 分析:平滑曲线为系统的幅频特性可以看出由于输入的信号为冲击串,其通过一个系统后输出信号应为系统的单位脉冲响应信号,但这里的系统因为r的取值不是1而与实际滤波器的幅频特性有了一定程度的偏差,当r越接近1时偏差越小。三、思考题 1)在第 2 步的幅频特性中,各次谐波的幅度与相应的时域信号幅度有什么关 系? 答:分析中已经有讨论:由于是对第二个周期加窗得到的频率特性,故幅值应乘以sinc函数带来的增益,主瓣附近的频谱结构为,而主瓣宽度为4
6、/N,故增益为N=16。对直流分量(k=0),幅值为16;对一次谐波(k=1),余弦信号正负各分1/2,故幅值为=16;对二次谐波(k=2),幅值为。2) 实验中为什么要观察第二个周期,如果直接观察第一个周期会怎么样? 答:这是由于梳状滤波器的特性决定的H(z)=1-,故h(n)=(n)-(n-N),又由于信号是因果的,所以至少要在第二个周期开始观察才能得到正确结果。3) 如果取r=0.95,观察会出现什么情况。形成的系统特性将相比理想系统特性有更大的误差,输出信号会有一定程度上的失真。附:matlab原程序:function varargout = exe(varargin)% EXE M-
7、file for exe.fig% EXE, by itself, creates a new EXE or raises the existing% singleton*.% H = EXE returns the handle to a new EXE or the handle to% the existing singleton*.% EXE(CALLBACK,hObject,eventData,handles,.) calls the local% function named CALLBACK in EXE.M with the given input arguments.% EX
8、E(Property,Value,.) creates a new EXE or raises the% existing singleton*. Starting from the left, property value pairs are% applied to the GUI before exe_OpeningFunction gets called. An% unrecognized property name or invalid value makes property application% stop. All inputs are passed to exe_Openin
9、gFcn via varargin.% *See GUI Options on GUIDEs Tools menu. Choose GUI allows only one% instance to run (singleton).% See also: GUIDE, GUIDATA, GUIHANDLES% Copyright 2002-2003 The MathWorks, Inc.% Edit the above text to modify the response to help exe% Last Modified by GUIDE v2.5 26-Oct-2015 20:03:14
10、% Begin initialization code - DO NOT EDITgui_Singleton = 1;gui_State = struct(gui_Name, mfilename, . gui_Singleton, gui_Singleton, . gui_OpeningFcn, exe_OpeningFcn, . gui_OutputFcn, exe_OutputFcn, . gui_LayoutFcn, , . gui_Callback, );if nargin & ischar(varargin1) gui_State.gui_Callback = str2func(va
11、rargin1);endif nargout varargout1:nargout = gui_mainfcn(gui_State, varargin:);else gui_mainfcn(gui_State, varargin:);end% End initialization code - DO NOT EDIT% - Executes just before exe is made visible.function exe_OpeningFcn(hObject, eventdata, handles, varargin)% This function has no output args
12、, see OutputFcn.% hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% varargin command line arguments to exe (see VARARGIN)% Choose default command line output for exehandles.output = hObject;% Update
13、 handles structureguidata(hObject, handles);% UIWAIT makes exe wait for user response (see UIRESUME)% uiwait(handles.figure1);% - Outputs from this function are returned to the command line.function varargout = exe_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output ar
14、gs (see VARARGOUT);% hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Get default command line output from handles structurevarargout1 = handles.output;% - Executes on button press in pushbutton1.f
15、unction pushbutton1_Callback(hObject, eventdata, handles)% hObject handle to pushbutton1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)s=inline(A*cos(2*pi*k*f0*t+q),A,k,f0,t,q);f0=50;N=16;L=2*N;fs=N*f0;ts=1/fs;
16、ss=zeros(1,L);A=1,2,1;q=0,pi/2,pi;for k=0:1:2 ss=ss+s(A(k+1),k,f0,0:ts:(L-1)*ts,q(k+1);endfigurestem(0:L-1,ss);title(s(n);xlabel(n)ylabel(s(n)% - Executes on button press in pushbutton2.function pushbutton2_Callback(hObject, eventdata, handles)% hObject handle to pushbutton2 (see GCBO)% eventdata re
17、served - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)s=inline(A*cos(2*pi*k*f0*t+q),A,k,f0,t,q);f0=50;N=16;L=2*N;fs=N*f0;ts=1/fs;ss=zeros(1,L);A=1,2,1;q=0,pi/2,pi;for k=0:1:2 ss=ss+s(A(k+1),k,f0,0:ts:(L-1)*ts,q(k+1);endSk=fft(ss(N:2*N-1);Sk_a
18、bs=abs(Sk);Sk_angle=angle(Sk);figuresubplot(1,2,1)stem(0:N-1,Sk_abs);title(Amplitude);xlabel(k)ylabel(|S(k)|)subplot(1,2,2)stem(0:N-1,Sk_angle/pi);title(Angle);xlabel(k)ylabel(angle(S(k)/pi)% - Executes on button press in pushbutton3.function pushbutton3_Callback(hObject, eventdata, handles)% hObjec
19、t handle to pushbutton3 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)N=16;H=1,exp(-j*pi*(N-1)/N),0.5*exp(-j*2*pi*(N-1)/N),0.25*exp(-j*3*pi*(N-1)/N),0,0,0,0,0,0,0,0,0,-0.25*exp(-j*13*pi*(N-1)/N),-0.5*exp(-j*14*
20、pi*(N-1)/N),-exp(-j*15*pi*(N-1)/N);h=ifft(H);disp(h(n):);disp(num2str(real(h);figuresubplot(2,2,3)stem(0:N-1,real(h);title(h(n);xlabel(n)ylabel(h(n)h1=h,zeros(1,9*N);H1=fft(h1);subplot(2,2,1)plot(0:10*N-1)*2/(10*N),abs(H1);title(Amplitude);xlabel(w/pi)ylabel(|H(w)|)subplot(2,2,2)plot(0:10*N-1)*2/(10
21、*N),angle(H1)/pi);title(Angle);xlabel(w/pi)ylabel(angle(H(w)/pi)% - Executes on button press in pushbutton4.function pushbutton4_Callback(hObject, eventdata, handles)% hObject handle to pushbutton4 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with h
22、andles and user data (see GUIDATA)r=0.999;s=inline(A*cos(2*pi*k*f0*t+q),A,k,f0,t,q);f0=50;N=16;L=2*N;fs=N*f0;ts=1/fs;ss=zeros(1,L);A=1,2,1;q=0,pi/2,pi;for k=0:1:2 ss=ss+s(A(k+1),k,f0,0:ts:(L-1)*ts,q(k+1);endSk=fft(ss(N:2*N-1);Sk_abs=abs(Sk);Sk_angle=angle(Sk);H=1,exp(-j*pi*(N-1)/N),0.5*exp(-j*2*pi*(
23、N-1)/N),0.25*exp(-j*3*pi*(N-1)/N),0,0,0,0,0,0,0,0,0,-0.25*exp(-j*13*pi*(N-1)/N),-0.5*exp(-j*14*pi*(N-1)/N),-exp(-j*15*pi*(N-1)/N);y1=CombFilter(ss,N,r);y2=zeros(1,N+L);for k=0:N/2 y2=y2+Resonator2(y1,N,r,k,H(k+1);endy=y2/N;figuresubplot(1,3,1)stem(N:L-1,ss(N+1:L),MarkerFaceColor,black);hold onstem(N
24、:L-1,y(N+1:L);hold offtitle(Original signal(black)/After filtering(white);xlabel(n)ylabel(s(n)Yk=fft(y(N+1:L);Yk_abs=abs(Yk);Yk_angle=angle(Yk);subplot(1,3,2)stem(0:N-1,Sk_abs,MarkerFaceColor,black);hold onstem(0:N-1,Yk_abs);hold offtitle(After filtering:Amplitude);xlabel(k)ylabel(|Y(k)|)subplot(1,3
25、,3)stem(0:N-1,Sk_angle/pi,MarkerFaceColor,black);hold onstem(0:N-1,Yk_angle/pi);hold offtitle(After filtering:Angle);xlabel(k)ylabel(angle(H(k)/pi)% - Executes on button press in pushbutton5.function pushbutton5_Callback(hObject, eventdata, handles)% hObject handle to pushbutton5 (see GCBO)% eventda
26、ta reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)r=0.999;s=inline(A*cos(2*pi*k*f0*t+q),A,k,f0,t,q);f0=50;N=16;L=2*N;fs=N*f0;ts=1/fs;ss=zeros(1,L);A=1,2,1;q=0,pi/2,pi;for k=0:1:2 ss=ss+s(A(k+1),k,f0,0:ts:(L-1)*ts,q(k+1);endH=1,exp(-j
27、*pi*(N-1)/N),0.5*exp(-j*2*pi*(N-1)/N),0.25*exp(-j*3*pi*(N-1)/N),0,0,0,0,0,0,0,0,0,-0.25*exp(-j*13*pi*(N-1)/N),-0.5*exp(-j*14*pi*(N-1)/N),-exp(-j*15*pi*(N-1)/N);y1=CombFilter(ss,N,r);figurefor k=0:3 subplot(2,2,k+1) temp_y1=Resonator2(y1,N,r,k,H(k+1)/N; stem(N:L-1,temp_y1(N+1:L); title(After filtering No.,num2str(k),signal); xlabel(n) ylabel(s,num2str(k),(n)end% - Executes on button press in pushbutton6.functio
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【全程复习方略】2020年高考政治一轮课时提升作业(9)-必修1-第4单元-第9课(江苏专供)
- 安徽省蚌埠市A层高中2024-2025学年高二上学期第二次联考地理试卷(含答案)
- 【原创】2013-2020学年高二数学必修四导学案:3.2二倍角的三角
- 【红对勾】2021高考生物(人教版)一轮课时作业:必修3-第6章-生态环境的保护
- 《胸腔镜术后护理》课件
- 2024-2025学年广东省汕头市金平区七年级(上)期末数学试卷
- 五年级数学(小数乘法)计算题专项练习及答案汇编
- 【全程复习方略】2021年高中化学选修三课时达标·效果检测-第3章-晶体结构与性质3.4-
- 【优化方案】2020-2021学年高一下学期数学(必修3)模块综合检测
- 【志鸿优化设计】2020高考地理(人教版)一轮教学案:第17章-第1讲世界地理概况
- 2025年国务院发展研究中心信息中心招聘2人高频重点提升(共500题)附带答案详解
- 人工智能算法模型定制开发合同
- 英语-湖南省天一大联考暨郴州市2025届高考高三第二次教学质量检测(郴州二检怀化统考)试题和答案
- 【MOOC期末】《形势与政策》(北京科技大学)期末慕课答案
- 营销专业安全培训
- 2024年度五星级酒店厨师团队管理与服务合同3篇
- 2024年医疗健康知识科普视频制作合同3篇
- 广东省广州市花都区2024年七年级上学期期末数学试题【附答案】
- 2024年古董古玩买卖协议6篇
- QC/T 1209-2024汽车噪声与振动(NVH)术语和定义
- 期末测试模拟练习 (含答案) 江苏省苏州市2024-2025学年统编版语文七年级上册
评论
0/150
提交评论