收藏 分销(赏)

频分复用.doc

上传人:快乐****生活 文档编号:4319822 上传时间:2024-09-05 格式:DOC 页数:18 大小:898.01KB 下载积分:8 金币
下载 相关 举报
频分复用.doc_第1页
第1页 / 共18页
频分复用.doc_第2页
第2页 / 共18页


点击查看更多>>
资源描述
摘 要 《信号与系统》课程是一门理论和技术发展十分迅速、应用非常广泛的前沿性学科,它的理论性和实践性都很强。复用是一种将若干个彼此独立的信号,合并为一个可在同一信道上同时传输的复合信号的方法。可以把它们的频谱调制到不同的频段,合并在一起而不致相互影响,并能在接收端彼此分离开来。按频率区分信号的方法叫频分复用。我们在生活中接触到得大部分都是模拟信号,而计算机只能对数字信号进行处理。我们可以通过FFT变换,通过对模拟信号采样,使其变成数字信号,本设计就是通过FFT来实现的。Matlab语言是一种广泛应用于工程计算及数值分析领域的新型高级语言,Matlab功能强大、简单易学、编程效率高。它的工具箱里有很多函数可以方便的对信号进行分析与处理。本设计是用FFT实现对三个同频带信号的频分复用,就是通过Matlab语言来实现的。本设计报告分析了数字信号处理课程设计的过程。用Matlab进行数字信号处理课程设计的思路,并阐述了课程设计的具体方法、步骤和内容。 关键词:数字信号处理;滤波器设计;MATLAB;频谱分析 1 设计任务目的及要求 1.1设计目的 巩固已经学过的知识,加深对知识的理解和应用,加强学科间的横向联系,学会应用MATLAB对实际问题进行仿真,并设计MUI界面。 1.2设计要求 一、课程设计的内容 选择三个不同频段的信号对其进行频谱分析,根据信号的频谱特征设计三个不同的数字 滤波器,将三路信号合成一路信号,分析合成信号的时域和频域特点,然后将合成信号 分别通过设计好的三个数字滤波器,分离出原来的三路信号,分析得到的三路信号的时 域波形和频谱,与原始信号进行比较,说明频分复用的特点。 二、课程设计的要求与数据 (1)熟悉离散信号和系统的时域特性。 (2)掌握数字信号处理的基本概念,基本理论和基本方法。 (3)掌握序列傅里叶变换的计算机实现方法,利用序列傅里叶变换对离散间可以分别调整。 (4)学会MATLAB的使用,掌握MATLAB的程序设计方法。 (5)掌握MATLAB设计FIR和IIR数字滤波器的方法。 (6)掌握GUI界面的设计方法 三、课程设计应完成的工作 (1)利用MATLAB语言产生三个不同频段的信号。 (2)对产生的三个信号进行FFT变换。 (3)将三路信号叠加为一路信号。 (4)根据三路信号的频谱特点得到性能指标,由性能指标设计三个滤波器。 (5)用设计的滤波器对信号进行滤波,并对其频谱图进行分析。 (6)分析得到信号的频谱,并画出滤波后信号的时域波形和频谱。 2 原理与模块介绍 2.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.2 频分复用原理 复用是一种将若干个彼此独立的信号,合并为一个可在同一信道上同时传输的复合信号的方法。比如,传输的语音信号的频谱一般在300~3400Hz内,为了使若干个这种信号能在同一信道上传输,可以把它们的频谱调制到不同的频段,合并在一起而不致相互影响,并能在接收端彼此分离开来。按频率分割信号的方法称为频分复用,频分复用(FDM,Frequency Division Multiplexing)就是将用于传输信道的总带宽划分成若干个子频带(或称子信道),每一个子信道传输1路信号。频分复用要求总频率宽度大于各个子信道频率之和,同时为了保证各子信道中所传输的信号互不干扰,应在各子信道之间设立隔离带,这样就保证了各路信号互不干扰(条件之一)。频分复用技术的特点是所有子信道传输的信号以并行的方式工作,每一路信号传输时可不考虑传输时延,因而频分复用技术取得了非常广泛的应用。 2.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]。其他复杂形状的预期特性通常也可由若干理想的幅频特性叠合构成。 3 设 计 内 容 3.1 设计产生三个信号 通过Matlab软件自己编程产生三个同频带不同频率的模拟信号,编程如下。 t=-1:0.001:1; n=1:256; N=512; fs=1000; x1=cos(150*pi*t); f1=n*fs/N; figure(1); subplot(3,1,1) plot(x1); title('x1的时域波形'); xlabel('x1的时间');ylabel('x1的幅值'); axis([0,100,-1,1]) x2=cos(320*pi*t); subplot(3,1,2) plot(x2); title('x2的时域波形'); xlabel('x2的时间');ylabel('x2的幅值'); axis([0,100,-1,1]) x3=cos(450*pi*t); subplot(3,1,3) plot(x3); title('x3的时域波形'); xlabel('x3的时间');ylabel('x3的幅值'); axis([0,100,-1,1]) 三个信号的时域波形: 3.2对三个信号进行FFT变换 通过Matlab编程对产生的三个信号进行FFT变换,从而生成频谱波形图。 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,250]) 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,250]) 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,250]) 三个信号的频域波形: 3.3三个信号的叠加的时域和频域 x=x1+x2+x3; figure(3) 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]) 3.4 滤波器设计 3.4.1低通滤波器设计 本次试验的三个频率分别为75、160、225,所以低通滤波器设计如下: Wp=2*pi*75;Ws=2*pi*100;Rp=1;As=30; [N,wc]=buttord(Wp,Ws,Rp,As,'s'); [b,a]=butter(N,wc,'s'); k=1:512;fk=0:1000/1024:1000; wk=2*pi*fk; Hk=freqs(b,a,wk); figure(4); plot(fk,abs(Hk));grid on; xlabel('频率(Hz)');ylabel('幅度'); axis([0,200,0,1.1]) 低通滤波器频域图: 3.4.2 带通滤波器2设计 该滤波器主要用于滤出信号X2即160的频率,所以滤波器的设计如下: wp=2*pi*[140,200]; ws=2*pi*[120,230]; Rp=1; As=30; [N,wc]=buttord(wp,ws,Rp,As,'s'); [B1,A1]=butter(N,wc,'s'); k=0:511; fk=0:1000/512:1000; wk=2*pi*fk; Hk=freqs(B1,A1,wk); figure(6) plot(fk,20*log10(abs(Hk))); grid on title('带通滤波器的频响2') xlabel('频率(Hz)'); ylabel('幅度(dB)') axis([100,400,-40,5]) 3.4.3 带通滤波器3设计 该滤波器主要用于滤出信号X3即225的频率,所以滤波器的设计如下: wp=2*pi*[260,320]; ws=2*pi*[240,350]; Rp=1; As=30; [N,wc]=buttord(wp,ws,Rp,As,'s'); [B2,A2]=butter(N,wc,'s'); k=0:511; fk=-1000:1000/512:1000; wk=2*pi*fk; Hk=freqs(B2,A2,wk); figure(8) plot(fk,20*log10(abs(Hk))); grid on title('带通滤波器的频响3') xlabel('频率(Hz)'); ylabel('幅度(dB)') axis([100,400,-40,5]) 3.5用设计的滤波器对信号进行滤波 滤波后的频谱图跟原信号的频谱图有一点差别,这是因为设计的滤波器不可能完全达到理想状态。 3.5.1用低通滤波器对x进行滤波 [Bz,Az]=bilinear(b,a,1000); y=filter(Bz,Az,x); Y1=fft(y,512); figure(5); subplot(211); plot(y); title('Â˲¨ºóx1µÄʱÓò²¨ÐÎ'); axis([0,200,-1,1]) subplot(212); plot(f1,abs(Y1(1:256))); title('Â˲¨ºóx1µÄƵÆ×²¨ÐÎ'); 3.5.2用带通滤波器2对x进行滤波 [Bz1,Az1]=bilinear(B1,A1,1000); y2=filter(Bz1,Az1,x); Y2=fft(y2,512); figure(7); subplot(211); plot(y2); title('Â˲¨ºóx2µÄʱÓò²¨ÐÎ'); axis([0,200,-1,1]) 3.5.3 用带通滤波器3对x进行滤波 [Bz2,Az2]=bilinear(B2,A2,1000); y3=filter(Bz2,Az2,x); Y3=fft(y3,512); figure(9); subplot(211); plot(y3); title('Â˲¨ºóx3µÄʱÓò²¨ÐÎ'); axis([0,200,-1,1]) 3.6 GUI界面设计 滤波前波形: 滤波后波形: 4 实验结果与数据处理 4.1测试步骤 1. 各个模块逐一调试 按照任务书的要求依次进行编程设计,依次实现各部分的功能。首先是利用MATLAB语言产生三个不同频段的信号,接着对其进行FFT变换,然后将三个叠加,分别观察其对应的波形是否符合预想当中的结果;确认信号波形无误后,开始设计低通和带通巴特沃斯滤波器,并运用所设计的3个滤波器对叠加信号进行滤波,还原到3个不同频率的信号x1,x2,x3。所得到的3个信号频率应与所产生的3个原始信号频率相同。 2. 制作GUI界面 (1) 首先,对显示界面进行排版,确定各部分内容的摆放位置; (2) 对控制按钮加载程序进行控制; (3) 改进程序,调整显示效果。 4.2 实验现象及数据分析 1、经过调试仿真(仿真图在模块介绍中),各模块的功能都得到实现。 2、GUI界面布局简洁明了,显示效果良好,让人一目了然。 3、在调试过程当中,对于滤波后的x1,x2,x3的时域波形图在起始的阶段的衰减比较严重,而且衰减的带宽也比较大。后来经过不断的摸索,我们终于找到了问题所在。我们调整了所设计的3个滤波器的衰减系数Rp和As,使其更加合理,最后显示效果也得到了改善。 5 结论与问题讨论 5.1 课程设计总结 本次课程设计历时一个星期,最终各部分要求都得到了较好的实现,并且在此基础上设计了GUI界面,使得显示界面更加的清晰明了,让人一目了然。 5.2 心得体会 本次课程设计主要是运用到MATLAB软件编程,由于之前有过MATLAB的实验进行练习,对于MATLAB软件编程有一定的基础,但是并不是很熟练,在本次设计过程当中还存在一个摸索和熟练的过程。通过本次课程设计,经过我和同伴的共同研究和探索,我们对MATLAB软件的使用有了更多的了解,使用起来也更加的熟练自如;此外,我们通过查找资料,自学掌握了基于MATLAB的IIR和FIR滤波器的设计方法。在设计过程当中,我们也遇到不少的问题和困惑,但是通过组内讨论还有请教同学,最终经过多次的尝试,这些问题都得到了较好的解决。 参考文献 1.《数字信号处理教程——MATLAB释义与实现》 陈怀琛编著 电子工业出版社 2.《辅助信号处理技术与应用 MATLAB 7》飞思科技产品研发中心编著 电子工业出版社 3.《自适应滤波器原理(第四版)》 西蒙·赫金编著 郑宝玉等译 电子工业出版社 附 录 close all clf t=-1:0.001:1; n=1:256; N=512; fs=1000; x1=cos(150*pi*t); f1=n*fs/N; figure(1); subplot(3,1,1) plot(x1); title('x1时域波形'); xlabel('x1的时间');ylabel('x1的幅值'); x2=cos(320*pi*t); subplot(3,1,2) plot(x2); title('x2的时域波形'); xlabel('x2的时间)');ylabel('x2的幅值'); axis([0,100,-1,1]) x3=cos(450*pi*t); subplot(3,1,3) plot(x3); title('x3的时域波形'); xlabel('x3的时间');ylabel('x3的幅值'); axis([0,100,-1,1]) 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,250]) 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,250]) 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,250]) %close all; x=x1+x2+x3; figure(3) 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]) %close all Wp=2*pi*75;Ws=2*pi*100;Rp=1;As=30; [N,wc]=buttord(Wp,Ws,Rp,As,'s'); [b,a]=butter(N,wc,'s'); k=1:512;fk=0:1000/1024:1000; wk=2*pi*fk; Hk=freqs(b,a,wk); figure(4); plot(fk,abs(Hk));grid on; xlabel('频率(Hz)');ylabel('幅度'); axis([0,200,0,1.1]) [Bz,Az]=bilinear(b,a,1000); y=filter(Bz,Az,x); Y1=fft(y,512); figure(5); subplot(211); plot(y); title('滤波后x1的时域波形'); axis([0,200,-1,1]) subplot(212); plot(f1,abs(Y1(1:256))); title('滤波后x1的频谱波形'); %close all wp=2*pi*[140,200]; ws=2*pi*[120,230]; Rp=1; As=30; [N,wc]=buttord(wp,ws,Rp,As,'s'); [B1,A1]=butter(N,wc,'s'); k=0:511; fk=0:1000/512:1000; wk=2*pi*fk; Hk=freqs(B1,A1,wk); figure(6) plot(fk,20*log10(abs(Hk))); grid on title('带通滤波器的频响2') xlabel('频率(Hz)'); ylabel('幅度(dB)') axis([100,400,-40,5]) [Bz1,Az1]=bilinear(B1,A1,1000); y2=filter(Bz1,Az1,x); Y2=fft(y2,512); figure(7); subplot(211); plot(y2); title('滤波后x2的时域波形'); axis([0,200,-1,1]) subplot(212); plot(f1,abs(Y2(1:256))); title('滤波后x2的频谱波形'); %%%%%%%%%%%%%%%%%%%%%% wp=2*pi*[260,320]; ws=2*pi*[240,350]; Rp=1; As=30; [N,wc]=buttord(wp,ws,Rp,As,'s'); [B2,A2]=butter(N,wc,'s'); k=0:511; fk=-1000:1000/512:1000; wk=2*pi*fk; Hk=freqs(B2,A2,wk); figure(8) plot(fk,20*log10(abs(Hk))); grid on title('带通滤波器的频响3') xlabel('频率(Hz)'); ylabel('幅度(dB)') axis([200,600,-40,5]) [Bz2,Az2]=bilinear(B2,A2,1000); y3=filter(Bz2,Az2,x); Y3=fft(y3,512); figure(9); subplot(211); plot(y3); title('滤波后x3的时域波形'); axis([0,200,-1,1]) subplot(212); plot(f1,abs(Y3(1:256))); title('滤波后x3的频谱波形');
展开阅读全文

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


开通VIP      成为共赢上传

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

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

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

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

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

gongan.png浙公网安备33021202000488号   

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

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

客服