数字信号实验1
- 格式:doc
- 大小:132.00 KB
- 文档页数:7
实验一 FFT 及其应用学号: K031541822 姓名: 黄蕾蕾 评分:一、实验目的1.加深对FFT 的理解,熟悉MATLAB 中的有关函数。
2.应用FFT 对典型信号进行频谱分析的方法。
3.熟悉应用FFT 实现两个序列的线性卷积的方法。
二、实验原理长度为N 的序列()x n 的离散傅立叶变换()X k 为:∑-=-==101,....,0,)()(N n nkN N k W n x k X序列()X k 的离散傅立叶反变换为x n NX k Wn N Nnk k N ()(),,....,==--=-∑1011离散傅立叶反变换与正变换的区别在于N W 变为1N W -,并多了一个1N 的运算。
因为N W 和1NW -对于推导按时间抽取的快速傅立叶变换算法并无实质性区别,因此可将FFT 和快速傅立叶反变换(IFFT )算法合并在同一个程序中。
在MATLAB 中,可以用函数X=fft (x ,N )和x=ifft (X ,N )计算N 点序列的DFT 正、反变换,其中点数N 可以缺省。
因为DFT 是DTFT 在一个周期上的等间隔采样,因此可以借助DFT 近似分析信号的频谱;同样因为其循环卷积定理并且在满足一定条件下循环卷积与线性卷积是相等的,因此可以借助DFT 进行卷积运算。
(一) 连续信号的谱分析连续信号首先经过采样转换为离散信号,后经截断得到有限长序列,再进行DFT 即可得到其近似的离散谱。
这一过程通过简短的M 程序就可以实现,例如下列程序: k=8;n1=[0:1:19];xa1=sin(2*pi*n1/k); subplot(2,2,1) plot(n1,xa1)xlabel('t/T');ylabel('x(n)');xk1=fft(xa1);xk1=abs(xk1); subplot(2,2,2) stem(n1,xk1) xlabel('k');ylabel('X(k)'); n2=[0:1:15]; xa2=sin(2*pi*n2/k); subplot(2,2,3) plot(n2,xa2) xlabel('t/T');ylabel('x(n)'); xk2=fft(xa2);xk2=abs(xk2); subplot(2,2,4) stem(n2,xk2) xlabel('k');ylabel('X(k)');对于连续信号的谱分析,主要在于误差分析,通过选择合适的参数把误差降低到最低。
(二) 序列的线性卷积利用循环卷积定理可以方便的计算两序列1()x n 和2()x n L 点循环卷积,主要步骤○1求 1()x n 的L 点DFT 1()X k ○2求2()x n 的L 点DFT 2()X k ○3求乘积12()()X k X k ⋅○4求12[()()]IDFT X k X k ⋅,当12[()][()]1L length x n length x n ≥+-时,此循环卷积与线性卷积是相等。
另外,为提高运算效率,需要注意长序列与短序列的两种卷积计算方法,重叠相加法和重叠保留法。
三、实验内容(以下页码以大家的教材为准)1.完成一个典型序列的时域和频域特性的观察。
典型序列参考教材P 143的高斯序列,衰减的正弦序列或三角波序列。
源程序代码:P=8,改变q 的值n=[0:1:15];%p=8,q 变化(2.4.8);p=8;q=2; % p=8;q=2 xa1=exp(-((n-p).^2)/q); subplot(5,2,1); plot(n,xa1,'-*'); xlabel('t/T');ylabel('xa(n)'); title('p=8 q=2') xk1=abs(fft(xa1)); subplot(5,2,2); stem(n,xk1)xlabel('k');ylabel('Xa(k)'); title('p=8 q=2')p=8;q=4; % p=8;q=4 xa1=exp(-((n-p).^2)/q);subplot(5,2,3); plot(n,xa1,'-*'); xlabel('t/T');ylabel('xa(n)'); title('p=8 q=4') xk1=abs(fft(xa1)); subplot(5,2,4); stem(n,xk1)xlabel('k');ylabel('Xa(k)'); title('p=8 q=4')p=8;q=8; % p=8;q=8 xa1=exp(-((n-p).^2)/q); subplot(5,2,5); plot(n,xa1,'-*'); xlabel('t/T');ylabel('xa(n)'); title('p=8 q=8') xk1=abs(fft(xa1)); subplot(5,2,6); stem(n,xk1)xlabel('k');ylabel('Xa(k)'); title('p=8 q=8')t/T x a (n )k X a (k )p=8 q=2t/T x a (n )k X a (k )p=8 q=4t/Tx a (n )kX a (k )源程序代码:q=8,改变p 的值n=[0:1:15];%q=8,p±ä»¯£¨8.13.14£©£»p=8;q=8; % p=8;q=8 xa1=exp(-((n-p).^2)/q); subplot(5,2,1); plot(n,xa1,'-*'); xlabel('t/T');ylabel('xa(n)'); title('p=8 q=8') xk1=abs(fft(xa1)); subplot(5,2,2); stem(n,xk1)xlabel('k');ylabel('Xa(k)');title('p=8 q=8')p=13;q=8; % p=13;q=8 xa1=exp(-((n-p).^2)/q); subplot(5,2,3); plot(n,xa1,'-*'); xlabel('t/T');ylabel('xa(n)'); title('p=13 q=8') xk1=abs(fft(xa1)); subplot(5,2,4); stem(n,xk1)xlabel('k');ylabel('Xa(k)'); title('p=13 q=8')p=14;q=8; % p=14;q=8 xa1=exp(-((n-p).^2)/q); subplot(5,2,5); plot(n,xa1,'-*'); xlabel('t/T');ylabel('xa(n)'); title('p=14 q=8') xk1=abs(fft(xa1)); subplot(5,2,6); stem(n,xk1)xlabel('k');ylabel('Xa(k)'); title('p=14 q=8')t/T x a (n )k X a (k )p=8 q=8t/T x a (n )k X a (k )p=13 q=8t/Tx a (n )kX a (k )结果分析:①、固定p ,并且p=8,使得取样的序列对称无截断,当q 的值逐渐增大时,改变了序列的“胖瘦程度”,使得信号变宽,低频分量增加,高频分量减小,从频谱上也可以看出高频分量的混叠值在减小。
②、固定q ,当p 的值逐渐增大时,使得信号平移,信号序列不再关于8对称,有信号有截断,从频谱上也可以看出产生了严重的泄露。
2. 完成一个信号的频谱分析。
注意观察参数改变时,频谱的变化。
此信号参考教材P 144(4)。
源程序代码:X(n)=sin(2*pi*0.125*n1)+cos(2*pi*(0.125+△F )*n1)已知N=16,△F 分别为1/16、1/64,观察其频谱;当N=128时△F 不变,观察频谱。
n1=0:1:15;x1=sin(2*pi*0.125*n1)+cos(2*pi*(0.125+(1/16))*n1); x2=sin(2*pi*0.125*n1)+cos(2*pi*(0.125+(1/64))*n1); xk1=abs(fft(x2));subplot(2,2,1); stem(n1,xk1) xlabel('k');ylabel('X(k)'); title('N=16,df=(1/16)频谱图 '); xk2=abs(fft(x2)); subplot(2,2,2); stem(n1,xk2) xlabel('k');ylabel('X(k)'); title('N=16,df=(1/64) 频谱图');n2=0:1:127;x3=sin(2*pi*0.125*n2)+cos(2*pi*(0.125+(1/16))*n2); x4=sin(2*pi*0.125*n2)+cos(2*pi*(0.125+(1/64))*n2); xk3=abs(fft(x3)); subplot(2,2,3); stem(n2,xk3) xlabel('k');ylabel('X(k)');title('N=128,df=(1/16)频谱图) '); xk4=abs(fft(x4)); subplot(2,2,4); stem(n2,xk4) xlabel('k');ylabel('X(k)'); title('N=128,df=(1/64)频谱图) ');kX (k )kX (k )kX (k )kX (k )结果分析:①、N=16时,其数字角频率的分辨率为π/8,而两个三角信号其频率之差为△f 其归一化后的数字角频率为π/8、π/32,可以看出π/32 < π/8,因此△f=1/64时不能分辨出两个频率。