数字信号课程设计实践.doc

上传人:精*** 文档编号:864723 上传时间:2023-10-02 格式:DOC 页数:33 大小:1.09MB
下载 相关 举报
数字信号课程设计实践.doc_第1页
第1页 / 共33页
数字信号课程设计实践.doc_第2页
第2页 / 共33页
数字信号课程设计实践.doc_第3页
第3页 / 共33页
数字信号课程设计实践.doc_第4页
第4页 / 共33页
数字信号课程设计实践.doc_第5页
第5页 / 共33页
点击查看更多>>
资源描述

1、目 录 一、课程设计题目及设计要求31.1 课程设计题目31.2 课程设计要求5二、设计思想和程序系统功能分析62.1 各题的设计思想62.1.1 第一题的设计思想62.1.2 第二题的设计思想72.1.3 第三题的设计思想82.1.4 第四题的设计思想82.1.5 第五题的设计思想82.1.6 第六题的设计思想92.2 程序系统功能实现及分析92.2.1 GUI界面演示92.2.2第一题调试结果及分析102.2.3第二题调试结果及分析112.2.4第三题调试结果及分析122.2.5第四题调试结果及分析132.2.6第五题调试结果及分析142.2.7第六题调试结果及分析192.3 详细程序20

2、三、课程设计总结33四、参考文献34五、鸣谢35 一、课程设计题目及设计要求1.1 课程设计题目1. 给定模拟信号: 1)选择采样频率Fs = 5000Hz和合适的信号长度,采样得到序列 x1(n)。求并画出x1(n)及其序列傅里叶变换 |X1(ejw)|。 2)选择采样频率Fs = 1000Hz和合适的信号长度,采样得到序列 x2(n)。求并画出x2(n)及其序列傅里叶变换 |X2(ejw)|。 3) 说明|X1(ejw)|与|X2(ejw)|间的区别,为什么?2. 已知两系统分别用下面差分方程描述:试分别写出它们的传输函数,并分别打印曲线。说明这两个系统的区别。3. 已知已调信号,其中调制

3、信号,载波为。1) 选择合适的采样频率及信号长度,使用FFT分析该已调信号的频谱并画出其幅频特性和相频特性曲线图2) 对该已调信号进行解调,恢复原调制信号。4. 已知三角波序列和反三角波序列: 用N=8点FFT分析序列x1(n)和x2(n)的幅频特性,观察两者的序列形状和频谱特性曲线有什么异同?绘出两序列及其幅频特性曲线。在x1(n)和x2(n)的末尾补零,用N=16点FFT分析这两个信号的幅频特性,观察幅频特性发生了什么变化?两情况的FFT频谱还有相同之处吗?这些变化说明了什么?5. 设有一信号,设计各种IIR数字滤波器以实现:1) 低通滤波器,滤除的成分,保留成分2) 高通滤波器,滤除的成

4、分,保留成分3) 带通滤波器,滤除的成分,保留成分4) 带阻滤波器,滤除的成分,保留成分要求:1) 求出各个滤波器的阶数,设计各滤波器。画出各滤波器的幅频和相频特性,计算滤波器的系统函数H(z) 2) 画出滤波前后信号的时域、频域波形6. (1) 用Hanning窗设计一线性相位带通数字滤波器,要求:N=15, 。观察它的实际3dB和20dB带宽。N=45,重复这一设计,观察幅频和相位特性的变化,注意长度N变化的影响;下面两题选做:7.音乐信号处理: 1)获取一段音乐或语音信号,设计单回声滤波器,实现信号的单回声产生。给出加入单回声前后的信号频谱。 2)设计多重回声滤波器,实现多重回声效果。给

5、出加入多重回声后的信号频谱。 3)设计均衡器,使得得不同频率的混合音频信号,通过一个均衡器后,增强或削减某些频率区域。8. 对混有噪声的音乐信号进行滤波: 1)在一段音乐信号中混入两个频率的正弦型干扰信号,利用FFT计算该混合信号的频谱并确定干扰信号的频谱; 2)利用二阶带阻滤波器设计一个能滤出干扰信号的梳状滤波器; 3)利用梳状滤波器滤除信号中的噪声,播放处理前后的信号,并比较处理前后的结果1.2 课程设计要求1、使用MATLAB(或其它开发工具)编程实现上述内容,写出课程设计报告。滤波器设计题目应尽量避免使用现成的工具箱函数。为便于分析与观察,设计中所有频谱显示中的频率参数均应对折叠频率归

6、一化。2、课程设计报告的内容包括:(1)课程设计题目和题目设计要求;(2)设计思想和系统功能分析;(3)设计中关键部分的理论分析与计算,关键模块的设计思路; (4)测试数据、测试输出结果,及必要的理论分析和比较;(5)总结,包括设计过程中遇到的问题和解决方法,设计心得与体会等;(6)参考文献;(7)程序源代码清单。3、课程设计考核要求: 课程考核分三部分,一部分是上机率,占20%;第二部分是检查成绩,最后两次上机为检查时间,占50%;第三部分为课程设计报告,占30%。注意:(1)演示系统使用GUI界面或混合编程实现集成打包发布,酌情加分;(2)若发现程序或课程设计报告雷同,一律不及格。4、课程

7、设计进度安排见表1.1所示:序号阶 段 内 容合计(天)一布置设计任务,准备相关资料1二查阅资料,弄清题目要求,提出解决方案1三方案选择及初步设计2四目标项目设计实现及调试2五撰写课程设计报告2六上机检查成绩2总计(2周)10表1.1 课程设计进度安排表二、设计思想和程序系统功能分析 2.1 各题的设计思想2.1.1 第一题的设计思想 预先给定了模拟信号,同时给出了相关参数,。按照题目要求直接在程序中定义相关变量并赋值。题目还要求采取三种不同的采样频率分别为1kHZ、300HZ和200HZ,所以T1=0.001,T2=1/300,T3=0.005。Fft函数对序列进行傅立叶变换,得到幅频特性曲

8、线。可以知道第一题主要的考查点是对连续时间信号的抽样,对抽样信号进行傅里叶变换以及不同采样频率对幅频特性曲线的影响等。对连续时间信号的抽样:设连续时间信号为x(t),则对其采样得到的离散时间信号为x(n)=x(nT),T为采样周期;离散时间信号的傅里叶变换:。程序通过subplot、stem、plot等函数将结果显示在弹出的窗口中。一题的要求就基本实现了。 由于抽样后的离散时间信号题目已给出,故无需再做抽样,可直接对离散时间信号进行傅里叶变换,在MATLAB中,这一变换可以直接用FFT来实现,再绘出变换后得到的幅频特性曲线即可。故可完成第一题所涉及要求。2.1.2 第二题的设计思想 由题得:对

9、可判断出其为线性时不变系统, 同时也为线性时不变系统; 对于线性时不变系统,可用常系数线性差分方程来描述: N M aky(n-k)=bmx(n-m) K=0 m=0 设系统初始状态为0,对上式两边直接取Z变换 N (-k) M (-m) akz Y(z)=bmZ X(z) K=0 m=0 因为y(n)=x(n)*h(n) 所以Y(z)=X(z)H(z) 因此系统函数的表达式为 M (-m) N (-k) H(z)= Y(z)/X(z)= bmz /akz m=0 k=0 (-1) 由此可得H1(z)=Y(z)/X(z)=1+Z ; (-1) H2(z)=Y(z)/X(z)=1-Z ;所以传输

10、函数: (-jw) -jw H1(e )=1+e ; (-jw) -jw H2(e )=1-e 2.1.3 第三题的设计思想此题要求选择合适的采样频率以及信号长度,即要求我们在对信号进行FFT变换的时候通过不同参数的选择对比,确定合适的采样频率及信号长度,此题最终确定的信号采样频率fs=50、t=-0.5:1/fs:0.5(恰好是时域的一个周期)。然后运用fft()函数可得到已调信号的频谱函数。2)对已调信号进行解调的时候所用的方法为:对已调信号乘以载波,再通过一个巴特沃斯低通滤波器,便可以得到滤除了载波之后的原调制信号。2.1.4 第四题的设计思想此题通过对三角波序列和反三角波序列的不同点数

11、的FFT变换,分析其之间的联系与区别,设计方法很简单,即对两序列分别用fft()函数进行8点和16点的FFT变换,对比其频谱图,便可得到结果。2.1.5 第五题的设计思想第五题的主要考查点是用双线性变换法设计不同类型(BW型或CB型以及高通、低通、带通等)数字滤波器,此处设计的是BW型。(1)正切变换实现频率压缩: (2)双线性变换: 或 (3)将所需数字滤波器的边界频率转换成相应类型的模拟滤波器的边界频率公式为:2.1.6 第六题的设计思想第六题的主要考查点是几种主要的窗函数(矩形窗、汉宁窗、哈明窗等)对离散时间信号的截取,并用FFT对其频谱进行分析。其主要理论依据如下:(1)矩形窗(Rec

12、tangle Window) 其幅度函数为:(2)汉宁(Hanning)窗升余弦窗 其频谱函数为: 其幅度函数为:(3)哈明(Hamming)窗改进的升余弦窗 其频谱函数为: 当时,其幅度函数可近似表示为: 2.2 程序系统功能实现及分析 2.2.1 GUI界面演示 本次课程设计采用的是图形用户即GUI界面显示设计方法,GUI 是一种结合计算机科学、美学、心理学、行为学,及各商业领域需求分析的人机系统工程,强调人机环境三者作为一个系统进行总体设计。GUI 即人机交互图形化用户界面设计。纵观国际相关产业在图形化用户界面设计方面的发展现状,许多国际知名公司早已意识到 GUI 在产品方面产生的强大增

13、值功能,以及带动的巨大市场价值,因此在公司内部设立了相关部门专门从事 GUI 的研究与设计,同业间也成立了若干机构,以互相交流 GUI 设计理论与经验为目的。随着中国 IT 产业,移动通讯产业,家电产业的迅猛发展,在产品的人机交互界面设计水平发展上日显滞后,这对于提高产业综合素质,提升与国际同等业者的竞争能力等等方面无疑起了制约的作用。2.2.2第一题调试结果及分析分析: 分别以所要求采样频率分别为f1=5000Hz,f2=1000Hz,对进行等间隔采样,得到,(为采样周期),可知,采样信号的频谱函数是在原模拟信号频谱函数的周期延拓;若以频率为自变量,则以采样频率为延拓周期;对频带限于的模拟信

14、号,根据采样定理,只有当时,采样后才不会发生频谱混叠失真。但是在Matlab上是无法计算连续函数,只有在当足够大的时候,我们才将频谱混叠忽略不计,从而可对采样序列进行傅里叶变换;最后应用subplot()命令实现画图,并注意到要归一化。由以上实验得到的图形结果可以看到:,当采样频率越大的时候,采样信号的频谱越陡峭,而其失真情况也越来越小,根据采样定理“采样频率越接近信号频率,其失真情况就越小”可以得到上述结论。2.2.3第二题调试结果及分析分析: 运行结果可以看出,H1和H2都可以构成梳状滤波器,但是滤去的波的频率不同。而且其对应的零极点分布图也有所不同,零极点的位置有所差别。2.2.4第三题

15、调试结果及分析 2.2.5第四题调试结果及分析分析:由N=8时所得到的两幅频谱特性曲线知道,正反三角波序列的频谱图像时一样的。因为进行DFT之前要对两个信号进行周期延拓,然后取其主值序列,而正反三角函数的主值序列是相同的,只相差一个相位,因此他们的幅频特性也是相同的。而N=16时,由于后面补0,所以周期延拓后的主值序列不相同了,正三角波周期延拓后仍然是连续的,而反三角波周期延拓之后在N=8的地方出现了陡峰,因此频域中的频谱分量会增多。两图比较可知,末尾补0可以使谱线变密,从而减小栅栏效应。增加频率采样点数,原来漏掉的某些频谱分量就肯恩被检测出来。2.2.6第五题调试结果及分析低通 高通 带通

16、带阻分析:实际应用中的IIR数字滤波器有低通、高通、带通和带阻等类型。设计各种数字滤波器,通常可以把一个归一化的原型模拟低通滤波器经模拟频带变换成所需类型的模拟滤波器,再通过转换成为所需类型的数字滤波器,如图3.1(a)所示。更简便的方法是从模拟低通归一化原型通过一定的频率变换关系,一步完成各类数字滤波器的设计,如图3.1(b)所示。常用模拟低通滤波器有巴特沃兹(Butterworth,简称为BW型),切比雪夫(Chebyshev,简称为CB型)及椭圆型或考尔型(Cauer,简称为C型) 滤波器,而模拟高通、带通、带阻滤波器则可以利用变量变换方法,由低通滤波器变换得到。本题的关键是选着合适的技

17、术指标来设计滤波器,分别对应低通、高通、带通和带阻四种类型。从模拟滤波器映射到数字滤波器有两种方法:脉冲响应不变法和双线性变换法。脉冲响应不变法又称时域取样法,它是使数字滤波器的单位脉冲响应序列h (n)逼近模拟滤波器的冲激响应ha (t),且使得h (n) = ha (nT)。它的缺点是产生了频响的混叠。为了克服这一缺点,可采用双线性变换法。双线性变换法是先根据给定的技术指标设计一个系统函数为H(s)的模拟滤波器,再通过适当的数学变换,将无限宽的频带,变换成频带受限的系统函数H( s1),然后再通过z变换求得数字滤波器的系统函数H(z)。2.2.7第六题调试结果及分析分析:(1)汉宁窗:由上

18、面两图所得图像分析可得,随着N的增大,相频主瓣宽度变窄,同时,取样值增大,幅频宽度增加,变化较缓,相位特性急剧变化。 (2)矩形窗:由上面两图得出,当加了矩形窗之后,随着N的增大,主瓣宽度变窄,同时主瓣幅度增大,旁瓣幅度也增大,但主瓣旁瓣的幅度相对值不变。幅频变化剧烈;相位变化变缓。 (3)blackman窗:由上俩面两图比较可知,随着N的增大,相频变化速度变慢,幅频变化剧烈。 由上面三重窗在不同N之情况下的图象分析可知,当N增大时,幅频主瓣宽度变窄,同时相频变化速度变慢,幅频变化剧烈。2.3 详细程序 function varargout = untitled222(varargin)%UN

19、TITLED222 M-file for untitled222.fig% UNTITLED222, by itself, creates a new UNTITLED222 or raises the existing% singleton*.% H = UNTITLED222 returns the handle to a new UNTITLED222 or the handle to% the existing singleton*.% UNTITLED222(Property,Value,.) creates a new UNTITLED222 using the% given pr

20、operty value pairs. Unrecognized properties are passed via% varargin to untitled222_OpeningFcn. This calling syntax produces a% warning when there is an existing singleton*.% UNTITLED222(CALLBACK) and UNTITLED222(CALLBACK,hObject,.) call the% local function named CALLBACK in UNTITLED222.M with the g

21、iven input% arguments.% *See GUI Options on GUIDEs Tools menu. Choose GUI allows only one% instance to run (singleton).% See also: GUIDE, GUIDATA, GUIHANDLES% Edit the above text to modify the response to help untitled222% Last Modified by GUIDE v2.5 26-Sep-2012 16:26:21% Begin initialization code -

22、 DO NOT EDITgui_Singleton = 1;gui_State = struct(gui_Name, mfilename, . gui_Singleton, gui_Singleton, . gui_OpeningFcn, untitled222_OpeningFcn, . gui_OutputFcn, untitled222_OutputFcn, . gui_LayoutFcn, , . gui_Callback, );if nargin & ischar(varargin1) gui_State.gui_Callback = str2func(varargin1);endi

23、f nargout varargout1:nargout = gui_mainfcn(gui_State, varargin:);else gui_mainfcn(gui_State, varargin:);end% End initialization code - DO NOT EDIT% - Executes just before untitled222 is made visible.function untitled222_OpeningFcn(hObject, eventdata, handles, varargin)% This function has no output a

24、rgs, 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 unrecognized PropertyName/PropertyValue pairs from the% command line (see VARARGIN)% Choose default command line outpu

25、t for untitled222handles.output = hObject;% Update handles structureguidata(hObject, handles);% UIWAIT makes untitled222 wait for user response (see UIRESUME)% uiwait(handles.figure1);% - Outputs from this function are returned to the command line.function varargout = untitled222_OutputFcn(hObject,

26、eventdata, handles)% varargout cell array for returning output args (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 structurevarargou

27、t1 = handles.output;% - Executes on button press in pushbutton1.function 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)figuret=-0

28、.005:0.00005:0.005; xa=exp(-1000*abs(t); Ts=0.0002;n=-25:1:25; x=exp(-1000*abs(n*Ts); K=100;k=0:1:K;w=pi*k/K; X=x*exp(-j*n*w);X=real(X); w=-fliplr(w),w(2:K+1); X=fliplr(X),X(2:K+1); subplot(1,1,1) subplot(2,2,1);plot(t*1000,xa) xlabel(t/毫秒);ylabel(x1(n); title(离散信号 ts=5000采样); hold on stem(n*Ts*1000

29、,x);hold off subplot(2,2,2);plot(w/pi,X); xlabel(以w/pi为单位的频率);ylabel(X1(jw); title(序列傅里叶变换); t=-0.005:0.00005:0.005; xa=exp(-1000*abs(t); Ts=0.001;n=-5:1:5; x=exp(-1000*abs(n*Ts); K=100;k=0:1:K;w=pi*k/K; X=x*exp(-j*n*w);X=real(X); w=-fliplr(w),w(2:K+1); X=fliplr(X),X(2:K+1); subplot(2,2,3); plot(t*1

30、000,xa); xlabel(t/毫秒);ylabel(x2(n); title(离散信号 ts=1000采样);hold on stem(n*Ts*1000,x);hold off subplot(2,2,4);plot(w/pi,X); xlabel(以w/pi为单位的频率);ylabel(X2(jw); title(序列傅里叶变换);% - Executes on button press in pushbutton2.function pushbutton2_Callback(hObject, eventdata, handles)% hObject handle to pushbu

31、tton2 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)figureB=1,1;A=1;subplot(2,3,3);zplane(B,A);xlabel(实部 Re);ylabel(虚部 Im);title(y(n)=x(n)+x(n-1)传输函数零、极点分布);grid onH,w=freqz(B,A,whole);subplot(2,3,1);plot(w/pi,

32、abs(H),linewidth,2);grid on;xlabel(omegapi);ylabel(|H(ejomega)|);title(幅频特性);axis(0,2,0,2.2);subplot(2,3,2);plot(w/pi,angle(H),linewidth,2);grid on;axis(-0.1,2.1,-1.6,1.6);xlabel(omegapi);ylabel(phi(omega);title(相频特性);B=1,-1;A=1;subplot(2,3,6);zplane(B,A);xlabel(实部 Re);ylabel(虚部 Im);title(y(n)=x(n)-

33、x(n-1)传输函数零、极点分布);grid onH,w=freqz(B,A,whole);subplot(2,3,4);plot(w/pi,abs(H),linewidth,2);grid on;xlabel(omegapi);ylabel(|H(ejomega)|);title(幅频响应特性);axis(0,2,0,2.2);subplot(2,3,5);plot(w/pi,angle(H),linewidth,2);grid on;axis(-0.1,2.1,-1.6,1.6);xlabel(omegapi);ylabel(phi(omega);title(相频响应特性);% - Exe

34、cutes on button press in pushbutton3.function pushbutton3_Callback(hObject, eventdata, handles)% hObject 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)figuret=0:0.001:2;x=cos(pi*t).*cos(9*

35、pi*t);subplot(2,2,1); plot(t,x);hold offTs=1/10;n=0:1:20;y=cos(pi*n*Ts).*cos(9*pi*n*Ts);subplot(2,2,2);stem(n*Ts,y,.);hold offy1=fft(y);y2=abs(y1);subplot(2,2,3);stem(y2,.);axis(0,20,0,10);subplot(2,2,4);stem(angle(y1);axis(0,25,-2,2);% - Executes on button press in pushbutton4.function pushbutton4_

36、Callback(hObject, eventdata, handles)% hObject handle to pushbutton4 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)figuren1=0:3;n2=4:7;x1=n1+1;x2=8-n2;subplot(2,3,1);stem(n1,n2,x1,x2,.);title(三角波序列); x=1 2 3 4

37、4 3 2 1;subplot(2,3,2);stem(fft(x),.);title(三角波序列8点FFT); x=1 2 3 4 4 3 2 1 0 0 0 0 0 0 0 0;subplot(2,3,3);stem(fft(x),.);title(三角波序列16点FFT); n1=0:3;n2=4:7;x1=4-n1;x2=n2-3;subplot(2,3,4);stem(n1,n2,x1,x2,.);title(反三角波序列); x=4 3 2 1 1 2 3 4;subplot(2,3,5);stem(fft(x),.);title(反三角波序列8点FFT); x=4 3 2 1 1

38、 2 3 4 0 0 0 0 0 0 0 0;subplot(2,3,6);stem(fft(x),.);title(反三角波序列16点FFT);% - Executes on button press in pushbutton6.function pushbutton6_Callback(hObject, eventdata, handles)% hObject handle to pushbutton6 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structu

39、re with handles and user data (see GUIDATA)% - Executes on button press in pushbutton7.function pushbutton7_Callback(hObject, eventdata, handles)% hObject handle to pushbutton7 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data

40、(see GUIDATA)figurewp=0.4*pi;ap=3;ws=0.5*pi;as=20;n,wn=buttord(wp/pi,ws/pi,ap,as);b,a=butter(n,wn);figure(1);freqz(b,a,1000);grid;grid;t=0:100;x=1+cos(t*pi/4)+cos(t*2*pi/3);y=fft(x);h=abs(y);y1=filter(b,a,x);h1=abs(fft(y1);w=t*2*pi/100;figure(2);subplot(221);plot(t,x);subplot(222);plot(t,y1);subplot

41、(223);plot(w/pi,h);axis(0 2 0 60);grid;subplot(224);plot(w/pi,h1);axis(0 2 0 60);grid;% - Executes on button press in pushbutton8.function pushbutton8_Callback(hObject, eventdata, handles)% hObject handle to pushbutton8 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)figurewp=0.5;ap=3;ws=0.4;as=20;n,wn=buttord(wp,ws,ap,as);b,a=butter(n,wn,high);figure(1);freqz(b,a,1000);grid;grid;t=0:100;x=1+cos(t*pi/4)+cos(t*2*pi/3);y=fft(x);h=abs(y);y1=filter(b,a,x);h1=abs(ff

展开阅读全文
相关资源
相关搜索
资源标签

当前位置:首页 > 技术资料 > 课程设计

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922