收藏 分销(赏)

三个同频带信号的频分复用(GUI设计).doc

上传人:快乐****生活 文档编号:4293505 上传时间:2024-09-04 格式:DOC 页数:22 大小:314.50KB 下载积分:10 金币
下载 相关 举报
三个同频带信号的频分复用(GUI设计).doc_第1页
第1页 / 共22页
三个同频带信号的频分复用(GUI设计).doc_第2页
第2页 / 共22页


点击查看更多>>
资源描述
摘 要 数字信号处理是一门理论和技术发展十分迅速、广泛应用于众多领域的前沿交叉性学科,它的理论性和实践性都很强。频分复用就是将用于传输信道的总带宽划分成若干个子频带(或称子信道),每一个子信道传输1路信号。频分复用要求总频率宽度大于各个子信道频率之和,同时为了保证各子信道中所传输的信号互不干扰,应在各子信道之间设立隔离带,这样就保证了各路信号互不干扰(条件之一)。频分复用技术的特点是所有子信道传输的信号以并行的方式工作,每一路信号传输时可不考虑传输时延,因而频分复用技术取得了非常广泛的应用。我们在生活中接触到得大部分都是模拟信号,而计算机只能对数字信号进行处理。我们可以通过FFT变换,通过对模拟信号采样,使其变成数字信号,本设计就是通过FFT来实现的。本实验利用Matlab设计一种结构化,模块化,图形化的仿真软件,为频分复用技术的研究提供平台。 Matlab语言是一种广泛应用于工程计算及数值分析领域的新型高级语言,Matlab功能强大、简单易学、编程效率高。它的工具箱里有很多函数可以方便的对信号进行分析与处理。本设计是用FFT实现对三个同频带信号的频分复用,就是通过Matlab语言来实现的。本设计报告分析了数字信号处理课程设计的过程。用Matlab进行数字信号处理课程设计的思路,并阐述了课程设计的具体方法、步骤和内容 关键词:数字信号处理;隔离带;MATLAB;频分复用 一、 课程设计目的 综合运用数字信号处理的理论知识进行频谱分析和滤波器设计,通过理论推导得出相应结论,再利用MATLAB作为编程工具进行计算机实现,从而加深对所学知识的理解,建立概念。学会应用MATLAB对实际问题进行仿真,并设计GUI界面。 二、设计要求 1课程设计的内容 选择三个不同频段的信号对其进行频谱分析,根据信号的频谱特征设计三个不同的数字滤波器,将三路信号合成一路信号,分析合成信号的时域和频域特点,然后将合成信号分别通过设计好的三个数字滤波器,分离出原来的三路信号,分析得到的三路信号的时域波形和频谱,与原始信号进行比较,说明频分复用的特点。 2、课程设计的要求 (1)熟悉离散信号和系统的时域特性。 (2)掌握数字信号处理的基本概念,基本理论和基本方法。 (3)掌握序列傅里叶变换的计算机实现方法,利用序列傅里叶变换对离散间可以分别调整。 (4)学会MATLAB的使用,掌握MATLAB的程序设计方法。 (5)掌握MATLAB设计FIR和IIR数字滤波器的方法。 (6)掌握GUI界面的设计方法 (7)通过学习和实验,让我们掌握更深的专业知识和提高独立科研能力。 3课程设计应完成的工作 (1)利用MATLAB语言产生三个不同频段的信号。 (2)对产生的三个信号进行FFT变换。 (3)将三路信号叠加为一路信号。 (4)根据三路信号的频谱特点得到性能指标,由性能指标设计三个滤波器。 (5)用设计的滤波器对信号进行滤波,并对其频谱图进行分析。 (6)分析得到信号的频谱,并画出滤波后信号的时域波形和频谱。 三、 详细设计过程 1.基本原理 (1) 快速傅里叶变换FFT原理 快速傅立叶变换(FFT)算法 长度为N的序列的离散傅立叶变换为: N点的DFT可以分解为两个N/2点的DFT,每个N/2点的DFT又可以分解为两个N/4点的DFT。依此类推,当N为2的整数次幂时(),由于每分解一次降低一阶幂次,所以通过M次的分解,最后全部成为一系列2点DFT运算。以上就是按时间抽取的快速傅立叶变换(FFT)算法。当需要进行变换的序列的长度不是2的整数次方的时候,为了使用以2为基的FFT,可以用末尾补零的方法,使其长度延长至2的整数次方。 序列的离散傅立叶反变换为 离散傅立叶反变换与正变换的区别在于变为,并多了一个的运算。因为和对于推导按时间抽取的快速傅立叶变换算法并无实质性区别,因此可将FFT和快速傅立叶反变换(IFFT)算法合并在同一个程序中。 若信号是模拟信号,用FFT进行谱分析时,首先必须对信号进行采样,使之变成离散信号,然后就可按照前面的方法用FFT来对连续信号进行谱分析。按采样定理,采样频率应大于2倍信号的最高频率,为了满足采样定理,一般在采样之前要设置一个抗混叠低通滤波器。 (2) 频分复用原理 复用是一种将若干个彼此独立的信号,合并为一个可在同一信道上同时传输的复合信号的方法。比如,传输的语音信号的频谱一般在300~3400Hz内,为了使若干个这种信号能在同一信道上传输,可以把它们的频谱调制到不同的频段,合并在一起而不致相互影响,并能在接收端彼此分离开来。按频率分割信号的方法称为频分复用,频分复用(FDM,Frequency Division Multiplexing)就是将用于传输信道的总带宽划分成若干个子频带(或称子信道),每一个子信道传输1路信号。频分复用要求总频率宽度大于各个子信道频率之和,同时为了保证各子信道中所传输的信号互不干扰,应在各子信道之间设立隔离带,这样就保证了各路信号互不干扰(条件之一)。频分复用技术的特点是所有子信道传输的信号以并行的方式工作,每一路信号传输时可不考虑传输时延,因而频分复用技术取得了非常广泛的应用。 (3)滤波器原理 数字滤波器可分为FIR(有限脉冲响应)和IIR(无限脉冲响应)两种。IIR滤波器的系统函数是两个Z的多项式的有理分式,而FIR滤波器的分母为1,即只有一个分子多项式。 本次实验采用的是巴特沃斯滤波器,把buttord函数和butter函数结合起来,就可以设计任意的巴特沃斯IIR滤波器。根据输入量的不同,它有以下几种形式: [b,a]=butter(N,wc,’high’): 设计N阶高通滤波器,wc为它的3dB边缘频率,以Π为单位,故0≤w≤1。 [b,a]=butter(N,wc):当wc为具有两个元素的矢量wc=[w1,w2]时,它设计2N阶带通滤波器,3dB通带w1≤w≤w2,w单位为Π。 [b,a]=butter(N,wc,’stop’): 若wc=[w1,w2],则它设计2N阶带阻滤波器,3dB通带为w1≤w≤w2,w单位为Π。 为了设计任意的选频巴特沃斯滤波器,必须知道阶数N和3dB边缘频率矢量wc。这可以直接利用信号处理工具箱中的buttord函数计算。如果已知滤波器指标wp,ws,Rp,As,则调用格式为 [N,wc]=buttord(wp,ws,Rp,As) 对于不同类型的滤波器,参数wp和ws有一些限制: 对于低通滤波器,wp<ws;对于高通滤波器,wp>ws;对于带通滤波器,wp和ws分别为具有两个元素的矢量,wp=[wp1,wp2]和ws=[ws1,ws2],并且ws1<wp1<wp2<ws2; 对于带阻滤波器wp1<ws1<ws2<wp2。 有些情况下,还对滤波器的相位特性提出要求,理想的是线性相位特性,即移与频率成线性关系。实际的滤波器不可能完全实现理想幅频特性,必有一定误差,因此要规定适当的指标。以低通滤波器为例,在[0,wp]的通带区,幅频特性会在1附近波动;在ws~1的阻带区,幅频特性不会真等于零是一个大于零的值;wp也不可能等于ws,在[wp,ws]之间,为过渡区;这三个与理想特性的不同点,就构成了滤波器的指标体系。即通带频率wp和通带波动,阻带频率ws和阻带衰减。 在许多情况下,人们习惯用分贝为单位,定义通带波动为(分贝)阻带衰减为(分贝)。 对于带通滤波器,wp应表为[wp1,wp2];对于带阻滤波器,ws应表为[ws1,ws2]。其他复杂形状的预期特性通常也可由若干理想的幅频特性叠合构 2 方案选择及设计 (1). 复用——发信端 调制,将各信号搬移到不同的频率范围。 (2).复用——收信端 收信端:带通滤波器,分开各路信号,解调。 3.程序设计流程 产生三个不同频段的信号,对其采样并画出时域图 画出原始信号的频谱图,对其进行频谱分析 根据三路信号的频谱设计出滤波器 切比雪夫带通滤波器 椭圆带通滤波器 巴特沃兹低通滤波器 画出滤波器的频谱图并对其进行频谱分析 三路信号合成为一路,并画出时域、频域图像 用设计好的滤波器对合成信号进行滤波,画出滤波得到的信号的时域波形和频谱图 对滤波前后的信号进行对比,分析信号的变化 对整个过程进行GUI设计,编写相应的M文件,设计人机交互界面 四、调试分析 1、 设计产生三个信号 2、对三个信号进行FFT变换通过Matlab编程对产生的三个信号进行FFT变换,从而生成频谱波形图 3、三个信号的叠加的时域和频域 4 、设计滤波器 本次试验的三个频率分别为100,200,350 4.1、低通滤波器设计 4.2、切比雪夫带通滤波器2设计 4.3、椭圆带通滤波器3设计 5、用设计的滤波器对信号进行滤波 5.1用低通滤波器对x进行滤波 5.2用带通滤波器2对x进行滤波 5.3 用带通滤波器3对x进行滤波 6、主要问题 在本课程设计中出现的问题主要在两方面,一方面是开始在截至频率的选择上出现的错误,另一方面是人机交互界面的设计上。在滤波器截至频率的选择上,由于原始信号包含100Hz,200Hz,350Hz频率分量,开始时在设计低通滤波器选择的不够好,结果对处于过渡带的200Hz滤波不很理想,最后经过几次修正,滤波的效果变得很理想。在带通滤波器的截止频率选择上也遇到了这样的问题,进过多次分析,问题得到了解决。 在人机交互界面的设计上,由于以前没接触过GUI方面的知识,刚开始不知如何下手。通过上网查资料和查看参考书,与同学一起讨论,最后初步掌握了基本的设计方法,虽然不是很熟练和精通,对复杂的界面的设计也还不太懂,但总算设计出了自己的人机交互界面,虽然界面不够完美,但基本能够达到人机交互的功能,完成设计的要求。 五、结果分析与体会 滤波前 滤波后 对结果进行分析可得到,三个频率不同的信号X1、X2、X3进过复用后,与相应的滤波器滤波,得到的三个滤波后的信号与原信号相比,幅度稍微衰减,但在时域和频域上大致一样,因此可以可以得出滤波器选择正确,成功的仿真出了频分复用。 心得体会 经过努力,我终于将课程设计完成了。在这次作业中,我遇到了许多困难,但是通过查资料以及和同学的讨论,我顺利的完成了设计。这次的课程设计让我受益匪浅。这次设计不仅让我掌握了用MATLAB进行信号分析和不同特性滤波器设计的方法,也让我对窗函数有了更深入的理解。 在整个设计过程中,对我来说,收获最大的是方法和能力,那些分析和解决问题的方法和能力。在整个过程中,我发现我的理论知识和实际应用脱节。总体来说,我觉得做这种设计对我的帮助还是很大的,它需要我们将学过的相关知识都系统地联系起来,对学过的理论进行深入的理解,这就为我们以后进行相关的工作打下了基础。 参考文献 1. 邹彦,DSP原理及应用,第1版,电子工业出版社,2006; 2.张雄伟,DSP集成开发与应用实例,第1版,电子工业出版社,2002; 3. 张洪涛等,数字信号处理,第一版,华中科技大学出版社,2007 4. 彭启琮等,DSP技术的发展与应用,第二版,高等教育出版社,2007 5. 杨述斌等,数字信号处理实践教程,第一版,华中科技大学出版社,2007 6..薛年喜,MATLAB在数字信号处理中的应用 7.董长红,MATLAB信号处理与应用 附 录 第一步 产生三路信号 t=-1:0.001:1; n=1:256; N=512; fs=1000; x1=cos(200*pi*t); f1=n*fs/N; subplot(3,1,1) plot(x1); title('x1时域波形'); xlabel('x1的时间');ylabel('x1的幅值'); axis([0,100,-1.2,1.2]) x2=cos(400*pi*t); subplot(3,1,2) plot(x2); title('x2的时域波形'); xlabel('x2的时间)');ylabel('x2的幅值'); axis([0,100,-1.2,1.2]) x3=cos(700*pi*t); subplot(3,1,3) plot(x3); title('x3的时域波形'); xlabel('x3的时间');ylabel('x3的幅值'); axis([0,100,-1.2,1.2]) 第二步 对三路信号进行频谱分析 y1=fft(x1,512); figure(2); subplot(3,1,1) plot(f1,abs(y1(1:256))); title('x1的频域波形'); xlabel('x1的频率(Hz)');ylabel('x1的幅值'); axis([0,500,0,300]) y2=fft(x2,512); subplot(3,1,2) plot(f1,abs(y2(1:256))); title('x2的频域波形'); xlabel('x2的频率(Hz)');ylabel('x2的幅值'); axis([0,500,0,300]) y3=fft(x3,512); subplot(3,1,3) plot(f1,abs(y3(1:256))); title('x3的频域波形'); xlabel('x3的频率(Hz)');ylabel('x3的幅值'); axis([0,500,0,300]) 第三步 信号的合成 及对信号的分析 x=x1+x2+x3; figure( 6) subplot(211); plot(x(1:100)); title('三个信号叠加的时域波形 '); y=fft(x,512); subplot(212); plot(f1,abs(y(1:256))); title('三个信号叠加的频谱 ') axis([0,600,0,250]) 第四步 设计三个滤波器 fs1=1000; wpz=2*40*pi/fs;wsz=2*60*pi/fs; rp1=1;rs1=20; [Nd,wdc]=buttord(wpz,wsz,rp1,rs1); [Bdz,Adz]=butter(Nd,wdc); [h1,f1]=freqz(Bdz,Adz,512,fs1); plot(f1,abs(h1));grid on xlabel('hz');ylabel('db'); title('巴特沃兹低通滤波器的频率特性') fs2=2000; wp1=2*100*pi/fs2;wp2=2*300*pi/fs2; ws1=2*60*pi/fs2;ws2=2*500*pi/fs2; Rp2=1;Rs2=40; Wp=[wp1/pi,wp2/pi];Ws=[ws1/pi,ws2/pi]; [N,Wn]=cheb1ord(Wp,Ws,Rp2,Rs2); [B,A]=cheby1(N,Rp2,Wn); [h2,f2]=freqz(B,A,512,fs2); plot(f2,abs(h2));grid on xlabel('hz');ylabel('db'); title('切比雪夫带通滤波器的频率特性') axis([0,600,0,1.1]) fp1=450;fpu=700; fs1=350;fsu=800; fs=2000; wp3=[2*fp1/fs,2*fpu/fs];ws3=[2*fs1/fs,2*fsu/fs]; rp3=1;rs3=30; [N3,wpo3]=ellipord(wp3,ws3,rp3,rs3); [Be,Ae]=ellip(N3,rp3,rs3,wpo3); [h3,f3]=freqz(Be,Ae,512,fs); plot(f3,abs(h3));grid on xlabel('hz'),ylabel('db'); title('椭圆带通滤波器的频率特性') axis([0,1000,0,1.1]) 第五步 用滤波器对信号进行滤波 y1=filter(Bdz,Adz,x); Y1=fft(y1,512); subplot(211); plot(y1(1:256)); title('滤波后x1的时域波形'); axis([0,100,-1,1]) f1=1000*(0:256)/512; subplot(212) plot(f1,abs(Y1(1:257))); title('滤波后x1的频谱波形'); axis([0,500,0,250]) y2=filter(B,A,x); Y2=fft(y2,512); subplot(211); plot(512*t,y2); title('滤波后x2的时域波形'); axis([0,100,-1,1]) f2=2000*(0:256)/512; subplot(212); plot(f2,abs(Y2(1:257))); title('滤波后x2的频谱波形'); axis([0,500,0,250]) y3=filter(Be,Ae,x); Y3=fft(y3,512); subplot(211); plot(y3); title('滤波后x3的时域波形'); axis([0,100,-1,1]) f1=1000*(0:256)/512; subplot(212); plot(f1,abs(Y3(1:257))); title('滤波后x3的频谱波形'); axis([0,500,0,300]) 22
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服