离散时间信号通过线性时不变系统毕业设计文档格式.docx
- 文档编号:13295624
- 上传时间:2022-10-09
- 格式:DOCX
- 页数:28
- 大小:428.28KB
离散时间信号通过线性时不变系统毕业设计文档格式.docx
《离散时间信号通过线性时不变系统毕业设计文档格式.docx》由会员分享,可在线阅读,更多相关《离散时间信号通过线性时不变系统毕业设计文档格式.docx(28页珍藏版)》请在冰豆网上搜索。
4、当
时,得到序列傅立叶变换SFT
5、
为数字角频率
6、已经知道:
(2-6)
7、序列的频谱是原模拟信号的周期延拓,即可以通过分析序列的频谱,得到相应连续信号的频谱。
(信号为有限带宽,采样满足Nyquist定理)
8、无线长序列可以用有限长序列来逼近,对于有限长序列可以使用离散傅立叶变换(DFT)。
可以很好的反映序列的频域特性,且易于快速算法在计算机上实现。
当序列
的长度为
时,它的离散傅里叶变换为:
其中
,它的反变换定义为:
比较Z变换式(2-3)和DFT式(2-7),令
则
因此有
是
平面单位圆上幅角为
的点,也即是将单位圆
等分后的第
点。
所以
的
变换在单位圆上等距采样,或者说是序列傅里叶变换的等距采样。
9、DFT是对序列傅里叶变换的等距采样,因此可以用于序列的频谱分析。
在运用DFT进行频谱分析的过程中有可能产生三种误差,这里给出三种误差的定性讨论。
三种误差:
混叠现象、泄露现象、栅栏效应
1)混叠现象
(2-6)式说明序列的频谱是原模拟信号的频谱的周期延拓,周期为
。
因此当采样频率
小于两倍信号(这里指是信号)最大频率时,经过采样就会发生频谱混叠,这使得采样后的信号序列频谱不能真实地反映原信号的频谱。
所以在利用DFT分析连续信号的频谱时,必须注意这一问题。
避免混叠现象的唯一方法是保证采样速率足够高,使频谱交叠现象不致出现。
也就是说,在确定采样频率之前,必须对信号的性质有所了解,一般在采样前,信号通过一个防混叠低通滤波器。
2)泄漏现象
实际中的信号序列往往很长,为了方便我们往往用截短的序列来近似它们,这样可以使用较短的DFT来对信号进行频谱分析,这种截短等价于给原信号序列乘以一个矩形窗函数。
泄漏是不能与混叠完全分离开的,因为泄漏导致频谱的扩散,从而造成混叠,为了减小泄漏的影响,可以选择适当的窗函数,是频谱的扩散减到最小。
3)栅栏效应
因为DFT是对单位圆上Z变换的均匀采样,所以他不可能将频谱视为一个连续函数。
这样就产生了栅栏效应,就一定意义上看,DFT来观看频谱就好像通过一个尖桩的栅栏来观看一个图景一样,只能在离散点上看到真实频谱,这样就可能发生一些频谱的峰点或谷点被“尖桩的栅栏”所挡住,不能被我们观察到。
减小栅栏效应的一个方法就是借助在原序列的末端添补一些零值,从而变动DFT的点数。
这一方法实际上是人为地改变了对真实谱采样的点数和位置,相当于搬动了每一根“尖桩栅栏”的位置,从而使得频谱的峰点或者谷点暴露出来。
当然,这是每根谱线所对应的频率和原来的不同了。
综上所述,DFT可以用于信号的频谱分析,但必须注意可能产生的误差,在应用过程中要尽可能减少和消除这些误差的影响。
快速傅里叶变换FFT是为了减少DFT运算次数的一种算法,常用的FFT是以2为基数的,其长度
,它的效率高,程序简单,使用也十分方便,当要变换的序列长度不等于2的正整数次方时,可以用末尾补零的方法,使其长度延长到2的整数次方。
三、实验结果及分析
注:
图均为上面时域波形,下面频域波形
1、高斯序列
代码1:
/************FFT***********/
#include<
stdio.h>
math.h>
#include<
graphics.h>
stdlib.h>
#defineN1000
typedefstruct
{
doublereal;
doubleimg;
}complex;
voidfft();
/*快速傅里叶变换*/
voidinitW();
voidchange();
voidadd(complex,complex,complex*);
/*复数加法*/
voidmul(complex,complex,complex*);
/*复数乘法*/
voidsub(complex,complex,complex*);
/*复数减法*/
voiddivi(complex,complex,complex*);
/*复数除法*/
voidoutput();
/*输出结果*/
complexx[N],*W;
/*输出序列的值*/
intsize_x=0;
/*输入序列的长度,只限2的N次方*/
doublep=16,q=2,PI;
doublez[N];
intmain()
inti;
system("
cls"
);
PI=atan
(1)*4;
size_x=512;
for(i=0;
i<
32;
i++)
{x[i].real=exp(-(i-p)*(i-p)/q);
x[i].img=0;
}
for(i=32;
size_x;
{x[i].real=0;
z[i]=x[i].real;
initW();
fft();
output();
return0;
}
/*进行基-2FFT运算*/
voidfft()
{
inti=0,j=0,k=0,l=0;
complexup,down,product;
change();
log(size_x)/log
(2);
l=1<
<
i;
for(j=0;
j<
j+=2*l)
for(k=0;
k<
l;
k++)
mul(x[j+k+l],W[size_x*k/2/l],&
product);
add(x[j+k],product,&
up);
sub(x[j+k],product,&
down);
x[j+k]=up;
x[j+k+l]=down;
voidinitW()
W=(complex*)malloc(sizeof(complex)*size_x);
i++)
W[i].real=cos(2*PI/size_x*i);
W[i].img=-1*sin(2*PI/size_x*i);
voidchange()
complextemp;
unsignedshorti=0,j=0,k=0;
doublet;
k=i;
j=0;
t=(log(size_x)/log
(2));
while((t--)>
0)
j=j<
1;
j|=(k&
1);
k=k>
>
if(j>
i)
temp=x[i];
x[i]=x[j];
x[j]=temp;
voidoutput()/*输出结果*/
doubley[N];
y[i]=sqrt(x[i].real*x[i].real+x[i].img*x[i].img);
initgraph(1200,800);
for(i=0;
line(10+25*i,210,10+25*i,210-z[i]*20);
line(10+2.5*i,410,10+2.5*i,410-y[i]*20);
getchar();
closegraph();
voidadd(complexa,complexb,complex*c)
c->
real=a.real+b.real;
img=a.img+b.img;
voidmul(complexa,complexb,complex*c)
real=a.real*b.real-a.img*b.img;
img=a.real*b.img+a.img*b.real;
voidsub(complexa,complexb,complex*c)
real=a.real-b.real;
img=a.img-b.img;
voiddivi(complexa,complexb,complex*c)
real=(a.real*b.real+a.img*b.img)/(
b.real*b.real+b.img*b.img);
img=(a.img*b.real-a.real*b.img)/(b.real*b.real+b.img*b.img);
}
P=16,N=32,q=2,FFT点数为512
P=16,N=32,q=10FFT点数为512
P=16,N=32,q=30FFT点数为512
时域:
q取值的增大,信号波形变宽,变矮,在最大值处过度变的平缓。
频域:
信号的频谱向低频靠近。
方差q=2时,信号变化相对快,高频分量大。
方差q=30时,信号变化相对慢,低频分量大。
因为随着q取值的增大,高斯信号逐渐变得平缓,过渡带变得平滑并延长,从而低频分量增加,高频分量减少。
P=25,N=32,q=10FFT点数为512
P=30,N=32,q=10FFT点数为512
P=32,N=32,q=10FFT点数为512
p取值的增大,信号波形逐渐向右平移。
信号的频谱中高频分量逐渐增加,频谱泄漏逐渐明显,并逐渐出现频谱混叠现象。
当p=32时,能力泄漏至旁边的频率,出现较明显的频谱泄漏与频谱混叠现象。
随着p值增大,信号被截断部分增多,截断部分的过渡带过陡,产生高频分量增多,而造成频谱泄漏与混叠。
2、正弦序列
代码
/************FFT***********/
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 离散 时间 信号 通过 线性 不变 系统 毕业设计