使用FFT实现任意三个同频带信号的频分复用讲诉文档格式.docx
《使用FFT实现任意三个同频带信号的频分复用讲诉文档格式.docx》由会员分享,可在线阅读,更多相关《使用FFT实现任意三个同频带信号的频分复用讲诉文档格式.docx(26页珍藏版)》请在冰豆网上搜索。
2、DSP控制TLC320AD50的程序编写与调试;
3、TLC320AD50进行语音模拟量到数字信号的转换,实现声音的采集,在CCS软件中分析信号的幅频特性;
4、编写DSP的FFT处理程序;
5、控制点阵液晶,实现绘图功能,将幅频图显示出来
6、按要求编写课程设计报告书,正确、完整的阐述设计和实验结果。
7、在报告中绘制程序的流程图,并文字说明。
2设计原理
2.1频分复用
所谓频分复用技术,是指按照频率的不同来复用多路信号的方法。
在频分复用中,信道的带宽被分成若干个相互不重叠的频段,每路信号占用其中一个频段,因而在接收端可以采用适当的带通滤波器将多路信号分开,从而恢复出所需要的信号。
一个简单的频分复用系统如图2.1所示。
图2.1频分复用系统
图中,各路基带信号首先通过低通滤波器限制基带信号的带宽,避免它们的频谱出现相互混叠。
然后,各路信号分别对各自的载波进行调制、合成后送入信道传输。
在接收端,分别采用不同中心频率的带通滤波器分离出各路已调信号,解调后恢复出基带信号。
频分复用是利用各路信号在频率域不相互重叠来区分的。
若相邻信号之间产生相互干扰,将会使输出信号产生失真。
为了防止相邻信号之间产生相互干扰,应合理选择各路信号的载波频率,并使各路已调信号频谱之间留有一定的保护间隔。
若基带信号是模拟信号,则调制方式可以是DSB-SC、AM、SSB、VSB或FM等,其中SSB方式频带利用率最高。
若基带信号是数字信号,则调制方式可以是ASK、FSK、PSK等各种数字调制方式。
频分复用技术的特点是所有子信道传输的信号以并行的方式工作,每一路信号传输时可不考虑传输时延,因而频分复用技术取得了非常广泛的应用。
频分复用技术除传统意义上的频分复用(FDM)外,还有一种是正交频分复用(OFDM)。
传统的频分复用典型的应用莫过于广电HFC网络电视信号的传输了,不管是模拟电视信号还是数字电视信号都是如此,因为对于数字电视信号而言,尽管在每一个频道(8MHz)以内是时分复用传输的,但各个频道之间仍然是以频分复用的方式传输的。
OFDM(OrthogonalFrequencyDivisionMultiplexing)实际是一种多载波数字调制技术。
OFDM全部载波频率有相等的频率间隔,它们是一个基本振荡频率的整数倍,正交指各个载波的信号频谱是正交的。
OFDM系统比FDM系统要求的带宽要小得多。
由于OFDM使用无干扰正交载波技术,单个载波间无需保护频带,这样使得可用频谱的使用效率更高。
另外,OFDM技术可动态分配在子信道中的数据,为获得最大的数据吞吐量,多载波调制器可以智能地分配更多的数据到噪声小的子信道上。
目前OFDM技术已被广泛应用于广播式的音频和视频领域以及民用通信系统中,主要的应用包括:
非对称的数字用户环线(ADSL)、数字视频广播(DVB)、高清晰度电视(HDTV)、无线局域网(WLAN)和第4代(4G)移动通信系统等。
2.2MATLAB简介
Matlab语言是一种广泛应用于工程计算及数值分析领域的新型高级语言,Matlab功能强大、简单易学、编程效率高,深受广大科技工作者的欢迎。
特别是Matlab还具有信号分析工具箱,不需具备很强的编程能力,就可以很方便地进行信号分析、处理和设计。
数字信号处理常用的Matlab命令如下:
绘图相关——abs、axis、pi、plot、grid、title、xlabel、ylabel等。
滤波器相关——butter、buttord、cheb1ord、cheb2ord、cheby1、cheby2ellip、ellipord等。
2.3信号与系统分析
实际中遇到的信号一般是模拟信号,对它们等间隔采样便可以得到时域离散信号。
时域离散信号可以用集合符号、图形或公式表示。
常用的典型序列有:
单位采样序列、单位阶跃序列、矩形序列、实指数序列、正弦序列、复指数序列、周期序列等。
系统的特性有非线性、时不变性、因果性和稳定性。
信号的分析主要是针对其的时域波形以及频谱关系。
系统则是根据其特性分析该系统输入与输出的关系。
2.3.1信号的分析
时域分析是指控制系统在一定的输入下,根据输出量的时域表达式,分析系统的稳定性、瞬态和稳态性能。
由于时域分析是直接在时间域中对系统进行分析的方法,所以时域分析具有直观和准确的优点。
时域分析以线性定常微分方程的解来讨论系统的特性和性能指标。
可以通过MATLAB中的plot绘出信号的时域波形图,来实现对信号的时域分析。
频谱分析是为了我们能够知道一个混合信号中所有的分量信号的频率,从而我们可以得知信号的组成,频谱图表示时域信号与频谱之间的变换关系。
傅立叶变换是数字信号处理领域一种很重要的算法。
傅立叶原理表明:
任何连续测量的时序或信号,都可以表示为不同频率的正弦波信号的无限叠加。
根据该原理创立的傅立叶变换算法利用直接测量到的原始信号,以累加方式来计算该信号中不同正弦波信号的频率、振幅和相位。
因此,可以说,傅立叶变换将原来难以处理的时域信号转换成了易于分析的频域信号(信号的频谱)。
由以上的运算流图可以看出:
FFT的基本思想在于将原有的N点序列分成两个较短的序列,这些序列的DFT可以很简单地组合起来得到原有序列的DFT。
所以一般我们用FFT来分析信号的的频率分量特征分析与提取。
可以通过MATLAB中的fft对原始信号进行变换,再由plot绘出信号的频谱图,来实现对信号的频谱分析。
2.3.2系统的分析
时域离散系统的频域特性:
(2.1)
其中
、
分别是系统的输出序列和输入序列的频域特性(或称为频谱特性),
是系统的单位取样响应的频谱,又称为系统的频域响应。
输入序列的频谱
经过系统处理后即为
。
因此,只要按照输入信号频谱的特点和处理信号的目的,适当选择
,使得滤波后的
满足设计的要求,同时也可以求出系统的输出。
2.4滤波器的设计
设计数字滤波器的任务就是寻求一个因果稳定的线性时不变系统,并使系统函数H(z)具有指定的频率特性。
数字滤波器从实现的网络结构或者从单位冲激响应分类,可以分成无限长单位冲激响应(IIR)数字滤波器和有限长单位冲激响应(FIR)数字滤波器。
IIR数字滤波器:
IIR数字滤波器的系统函数为的有理分数,即IIR数字滤波器的逼近问题就是求解滤波器的系数和,使得在规定的物理意义上逼近所要求的特性的问题。
如果是在s平面上逼近,就得到模拟滤波器,如果是在z平面上逼近,则得到数字滤波器。
FIR数字滤波器,设FIR的单位脉冲响应h(n)为实数,长度为N,则其z变换和频率响应分别为按频域采样定理FIR数字滤波器的传输函数H(z)和单位脉冲响应h(n)可由它的N个频域采样值H(k)唯一确定。
2.4.1设计滤波器的一般步骤
1)把给出的数字滤波器的性能指标转换为模拟滤波器的性能指标
2)根据转换后的性能指标,通过滤波器阶数选择函数,来确定滤波器的最小阶数N和固有频率Wn
3)由最小阶数N得到低通滤波器原型
4)由固有频率Wn把模拟低通滤波器原型转换为低通、高通、带通、带阻滤波器
5)运用脉冲响应不变法或双线性变换法把模拟滤波器转换成数字滤波器
2.4.2巴特沃斯滤波器
巴特沃斯滤波器是电子滤波器的一种。
巴特沃斯滤波器的特点是通频带的频率响应曲线最平滑。
巴特沃斯滤波器的特点是通频带内的频率响应曲线最大限度平坦,没有起伏,而在阻频带则逐渐下降为零。
在振幅的对数对角频率的波得图上,从某一边界角频率开始,振幅随着角频率的增加而逐步减少,趋向负无穷大。
巴特沃斯低通滤波器可用如下振幅的平方对频率的公式表示:
(2.2)
其中,n=滤波器的阶数,ωc=截止频率=振幅下降为-3分贝时的频率,ωp=通频带边缘频率。
n阶巴特沃斯低通滤波器的振幅和频率关系可用如下的公式表示:
(2.3)
G表示滤波器的放大率,H表示转移函数,j是虚数单位,n表示滤波器的级数,ω是信号的角频率,以弧度/秒为单位,ωc是振幅下降3分贝时的截止频率。
MATLAB信号处理工具箱提供巴特沃斯滤波器设计函数buttord和butter。
[n,Wn]=butterd(Wp,Ws,Rp,Rs,’s’)——在给定滤波器性能的情况下(通带临界频率Wp、阻带临界频率Ws、通带内最大衰减Rp和阻带内最小衰减Rs),计算ButterWorth滤波器的阶数n和截止频率Wn。
[b,a]=butter(n,Wn,’s’)——根据阶数n和截止频率Wn计算ButterWorth滤波器分子分母系数(b为分子系数的矢量形式,a为分母系数的矢量形式)。
2.4.3切比雪夫I型滤波器
切比雪夫滤波器(又译车比雪夫滤波器)是在通带或阻带上频率响应幅度等波纹波动的滤波器。
在通带波动的为“I型切比雪夫滤波器”,在阻带波动的为“II型切比雪夫滤波器”。
切比雪夫滤波器在过渡带比巴特沃斯滤波器的衰减快,但频率响应的幅频特性不如后者平坦。
切比雪夫滤波器和理想滤波器的频率响应曲线之间的误差最小,但是在通频带内存在幅度波动。
n阶第一类切比雪夫滤波器的幅度与频率的关系可用下列公式表示:
(2.4)
其中:
|ε|<
1,而
(2.5)是滤波器在截止频率ω0的放大率,
是n阶切比雪夫多项式:
(2.6)
MATLAB信号处理工具箱提供切比雪夫Ⅰ型滤波器设计函数有cheb1ap、cheb1ord和cheby1:
数字域:
[b,a]=cheby1(n,Rp,Wn)可设计出n阶chebyshevI滤波器,其截止频率由Wn确定,通带内的波纹由Rp确定
[b,a]=cheby1(n,Rp,Wn,’ftype’)
当ftype=high时,可设计出截止频率为Wn的高通滤波器;
当ftype=stop时,可设计出带阻滤波器
[z,p,k]=cheby1(n,Rp,Wn)
[zp,k]=cheby1(n,Rp,Wn,’ftype’)
[A,B,C,D]=cheby1(n,Rp,Wn)
[A,B,C,D]=cheby1(n,Rp,Wn,’ftype’)
模拟域:
[b,a]=cheby1(n,Rp,Wn,’s’)可设计出截止频率为Wn的n阶chebyshevI型模拟滤波器,其余形式类似于数字域的。
2.4.4椭圆滤波器
椭圆滤波器特点:
幅值响应在通带和阻带内都是等波纹的,对于给定的阶数和给定的波纹要求,椭圆滤波器能获得较其它滤波器为窄的过渡带宽。
椭圆滤波器可以获得对理想滤波器幅频响应的最好逼近。
低通椭圆滤波器的频率响应的幅度为:
(2.7)
MATLAB信号处理工具箱提供椭圆滤波器设计函数ellipap、ellipord和ellip:
[z,p,k]=ellipap(N,Rp,As)——用于计算N阶归一化中滤波器的零点向量z、极点向量p和增益因子k。
Rp和As分别为通带最大衰减和阻带最小衰减。
[N,wpo]=ellipord(wp,ws,Rp,As,‘s’)——。
用于计算满足指标的椭圆模拟滤波器的最低阶数N和通带边界频率wpo,指标要求由参数(wp,ws,Rp,As)给定。
[b,a]=ellip(n,Rp,Rs,Wn,’ftype’,‘s‘)——计算椭圆滤波器系统函数系数向量b和a。
2.4.5以上类型滤波器的比较
图2.6是各滤波器频域响应图:
巴特沃斯滤波器(左上)和同阶第一类切比雪夫滤波器(右上)、第二类切比雪夫滤波器(左下)、椭圆函数滤波器(右下)的频率响应图。
巴特沃斯滤波器的衰减速度比其他类型滤波器缓慢,但十分平坦,没有幅度变化。
两类切比雪夫滤波器比巴特沃斯滤波器陡峭;
但不如椭圆函数滤波器,然而后者幅度波动较大。
椭圆滤波器比其他滤波器更陡,因此在选择滤波器的时候,椭圆滤波器能够以较低的阶数获得较窄的过渡带宽,但是它在通带和阻带上都有波动。
图2.2滤波器的比较
2.4.6由模拟滤波器变换成等效的数字滤波器
除了直接设计数字滤波器,还可以先设计为模拟滤波器,再转换为相应的数字滤波器。
双线性变换法:
双线性变换将S域映射成Z域,从而将模拟滤波器变换成等效的数字滤波器。
[zd,pd,kd]=bilinear(z,p,k,Fs)为零极点增益表示的bilinear函数
其中z,p,k为S域传递函数的零点、极点、和增益,Fs为取样频率,zd,pd,kd为双线性变换后Z域传递函数的零点、极点和增益。
[numd,dend]=bilinear(num,den,Fs,Fp)为传输函数表示的bilinear函数
冲激响应不变法:
冲激响应不变法指数字滤波器的样值响应为模拟滤波器冲激响应的样本再乘以合适的因子。
[bz,az]=impinvar(b,a,Fs)
3程序设计
程序设计思路如图3.1示:
图3.1程序设计思路
输入频段不同的三个信号x1、x2、x3,根据x1、x2、x3频谱特性设计的滤波器。
将三个不同频段的信号x1、x2、x3合为一路信号x,对x进行滤波,旨从x里将x1、x2、x3分离出来。
即通过滤波器的输出信号y1、y2、y3分别与x1、x2、x3等效。
信号的频谱特性通过fft求得,滤波器的性能指标按照所对应的信号进行设定,通过解由滤波器系统函数和信号x组成的差分方程,求出滤波后的信号。
利用matlab编写程序并进行调试仿真。
用到的matlab命令:
:
.+-*/;
%
piaxisgridplotsubplotstemtitlexlableylable
fftfreqzabs
cheb1ordcheby1ellipordellipbuttordbutterimpinvar
……
程序流程图如图3.2:
图3.2程序流程图
3.1产生三个不同频段的信号:
x1、x2、x3
时间为0-1,时间间隔为0.001,,由matlab产生频率分别为f1=50HZ、f2=200HZ、f3=400HZ的正弦信号x1、x2、x3。
程序如下:
t=0:
0.001:
1;
%采样周期为0.001s,即采样频率为1000hz
x1=sin(2*pi*50*t);
%产生频率为50hz的正弦波信号
x2=sin(2*pi*200*t);
%产生频率为200hz的正弦波信号
x3=sin(2*pi*400*t);
%产生频率为400hz的正弦波信号
3.2分别对信号x1、x2、x3进行分析
3.2.1画信号的时域波形
利用matlab绘图函数plot作信号时域波形图3.3
以对x1分析为例程序如下,输出波形如图2:
stem(t,x1);
plot(x1(1:
128));
%画出时域内的信号
xlabel('
t'
);
ylabel('
y'
title(‘x1时域波形’);
图3.3x1时域波形图
同理可以得到x2、x3的时域波形图,如图3.4
图3.4x2、x3时域波形图
3.2.2画信号的频谱图
先用matlab信号处理工具箱中的fft函数对信号进行时域向频域的转换,再利用绘图函数plot作频谱图。
以对x1分析为例程序如下,输出频谱图如图3.5:
Y1=fft(x1,256);
%对x进行256点的fft
f1=1000*(0:
128)/256;
%设置频率轴(横轴)坐标,1000为采样频率
plot(f2,abs(y1(1:
129)));
%画出频域内的信号
频率(Hz)'
幅值'
title(‘x1频谱图’)
图3.5x1频谱图
同理可以得到x2、x3的频谱图,如图3.6
图3.6x1频谱图
3.3设计分别与信号x1、x2、x3对应的滤波器
滤波器设计流程图如图3.7
图3.7数字滤波器设计流程图
3.3.1巴特沃斯低通滤波器
根据对x1的分析,我们可以设计一个通带截止频率为20hz,通带最大衰减为1db,阻带截止频率为80hz,阻带最小衰减为20db的巴特沃斯低通模拟滤波器。
使用MATLAB信号处理工具箱提供巴特沃斯低通滤波器设计函数buttord和butter进行设计,并绘制滤波器的幅频特性曲线。
fs1=1000;
wpz=2*20*pi/fs;
wsz=2*80*pi/fs;
rp1=1;
rs1=20;
[Nd,wdc]=buttord(wpz,wsz,rp,rs);
[Bdz,Adz]=butter(Nd,wdc);
[h1,f1]=freqz(Bdz,Adz,512,fs1);
plot(f1,abs(h1));
gridon
hz'
db'
title('
巴特沃斯低通数字滤波器的频率特性'
axis([0,250,0,1.1])
巴特沃斯低通滤波器的频率特性曲线如图3.8:
图3.8巴特沃斯低通滤波器的频率特性曲线
3.3.2切比雪夫I型滤波器带通滤波器
根据对x2的分析,我们可以设计一个通带上下边界截止频率为100hz和300hz,通带最大衰减为1db,阻带上下边界截止频率为50hz和600hz,阻带最小衰减为40db的带通切比雪夫数字滤波器。
利用MATLAB信号处理工具箱提供切比雪夫Ⅰ型滤波器设计函数cheb1ap、cheb1ord和cheby1进行设计,并绘制滤波器的幅频特性曲线。
fs=2000;
wp1=2*100*pi/fs;
wp2=2*300*pi/fs;
ws1=2*50*pi/fs;
ws2=2*600*pi/fs;
Rp=1;
Rs=40;
Wp=[wp1/pi,wp2/pi];
Ws=[ws1/pi,ws2/pi];
[N,Wn]=cheb1ord(Wp,Ws,Rp,Rs);
[B,A]=cheby1(N,Rp,Wn);
[h2,f2]=freqz(B,A,512,fs);
plot(f2,abs(h2));
切比雪夫带通数字滤波器的频率特性'
axis([0,600,0,1.1])
切比雪夫I型带通滤波器的频谱特性曲线如图3.9:
图3.9切比雪夫I型带通滤波器的频谱特性曲线
3.3.3椭圆带通滤波器
根据对x3的分析,我们可以设计一个通带上边界截止频率为300hz,通带下边界截止频率为500hz通带最大衰减为1db,阻带上边界截止频率为200hz,阻带下边界截止频率为600hz,阻带最小衰减为20db的椭圆带通数字滤波器。
通过MATLAB信号处理工具箱提供椭圆滤波器设计函数ellipord和ellip,直接设计椭圆带通数字滤波器,并绘制滤波器的幅频特性曲线。
fpl=300;
fpu=500;
fsl=200;
fsu=600;
wp3=[2*fpl/fs,2*fpu/fs];
ws3=[2*fsl/fs,2*fsu/fs];
rp3=1;
rs3=20;
[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));
椭圆带通数字滤波器的频率特性'
axis([0,1000,0,1.1])
椭圆带通滤波器的频率特性曲线如图3.10:
图3.10椭圆带通滤波器的频率特性曲线
3.4信号x1、x2、x3的叠加为一路信号——x
通过加法运算对信号x1、x2、x3进行叠加,matlab程序如下:
x=sin(2*pi*50*t)+sin(2*pi*200*t)+sin(2*pi*400*t);
x时域波形图、频谱图如图:
图3.11x时域波形图、频谱图
3.5用3.3设计的滤波器对信号x进行滤波
用巴特沃斯低通滤波器滤波器对x进行滤波
y1=filter(Bdz,Adz,x);
用切比雪夫I型带通滤波器滤波器对x进行滤波
y2=filter(Bz,Az,x);
用椭圆带通滤波器滤波器对x进行滤波
y3=filter(Be,Ae,x);
y1,y2,y3时域波形图,频谱图输出程序参照3.2、3.3。
3.6滤波前后的信号x比较
图3.11输入信号x