1、实验内容
一、编写子函数
计算长度为N的序列x(n) ( 0≤n ≤ N-1)的离散时间傅里叶变换,将频率均匀离散化, 一个周期内有M个点。要求画出虚部、实部、幅度、相位,并标注坐标轴。 二、对矩形序列x(n)=RN(n)
1. 用公式表示x(n)的频谱,求出其幅度谱和相位谱; 2. 利用编写的子函数,计算并画出x(n)的频谱
1)固定M,改变N,观察N的取值对频谱的最大值、过零点、第一旁瓣幅度与最大值的比值以及相位谱的影响;
2)固定N,改变M,观察M的取值对幅度谱和相位谱的影响。 如: M=4,26,100 N=4,26,100 三、利用子函数,画出信号x(n)=sin(pi*n/5)和 的幅度谱和相位谱。 N分别取为8,16,20,,号频谱的相同和不同之处,为什么会有这样的结果?2、编程原理、思路和公式
一、给定长度为N的序列x(n)的离散时间傅里叶变换(X(ejwN1)x(n)ejwnx(n)1n0 2可以看出x(n)的DTFT仍然是一个连续函数,所以需要将数字角频域频率周期内离散点有M个,则第k个点所代表的数字角频率变成:
N1X(ejw)X(ej2Mk)x(n)ej2Mnkn0 ,
0对于编程,可以用循环程序来计算求和,也可以利用矩阵乘法来计算求和公式。使用矩阵乘法来计算编程的。可以用下面的图示表示整个计算思路:n为一行N列的行矩阵,k为一行M列的行矩阵,
n1nn2,ww1,w2,...,wM1,nw...nN1ej2Mn*k是N行M列的矩阵,序列x(n)为 4)+cos(pi*n/8) ( 0≤n ≤ N-1),128,M=256。观察N取不同值时信 DTFT)的公式为
X(jew)ejwndw
w离散化,设一个
w2Mk。这样x(n)的DTFT
kM1
下面是
w2Mk也是一行M列的行矩阵,
n1w1,n1w2,...,n1wM1n2w1,n2w2,...,n2wM1........................nN1w1,nN1w2,...nN1wM1
列的行矩阵,而
X(ej2Mk)是一行M
x(n)=cos(pi*n/75N列的列矩阵,根据矩阵的乘法,有下面的图示:
n1w1,n1w2,...,n1wM12jn*knw,nw,...,nw22M12122)x(n)*eMx1,x2,...,xM1*exp(jM........................nN1w1,nN1w2,...nN1wM1X1,X2,...,XM1
所以整个计算过程只需要一条指令即可完成提高了计算速度,减少了计算时间。二、对矩形序列1. 用公式表示X(ejw)所以幅度谱
2. 利用编写的子函数,画出 将序列三、利用子函数,画出信号幅度谱和相位谱 将序列频谱更加真实。利用一个循环程序,将频谱图一次全部获得。3、程序脚本,并注释一、编写子函数计算给定长度为function DTFT(xn,N,M)
n=0:N-1; k=0:M-1; w=2*pi/M*k; Xw=xn*exp(-j*(n'*w)); Xw_real=real(Xw); Xw_imag=imag(Xw); Xw_abs=abs(Xw); Xw_angle=angle(Xw); subplot(2,2,1),plot(w,Xw_real);%xlabel('数字角频率ylabel('实部title('x(n)的subplot(2,2,2),plot(w,Xw_imag); %xlabel('数字角频率ylabel('虚部title('x(n)的Xw=xn*exp(-j*(n'*w)) x(n)=R4(n):
x(n)的频谱,求出其幅度谱和相位谱;
DTFT[x(n)]sin(4w/2)3sin(w/2)exp(j2w)
|X(ejw)|sin(4w/2)sin(w/2)arg[X(ejw)],相位谱x(n)的频谱
、N、M代入到子函数中从而得到x(n)的频谱图。
x(n)=sin(pi*n/5)和 x(n)=cos(pi*n/4)+cos(pi*n/
、N、M=512代入到子函数中从而得到x(n)的频谱图。选取
N的序列x(n)的离散时间傅里叶变换 %n为序列的坐标
%k为将w分成M份后的第几份 %w数字角频率 %x(n)的DTFT变换 %取实部 %取虚部 %取幅值 %取相角 画出实部 w'); 的实部');
画出实虚部 w'); 的虚部');
,从而避免了循环,32w 8) ( 0≤n ≤ N-1)的M较大的值会使 x(n)x(n) ');
DTFT');
DTFTsubplot(2,2,3),plot(w,Xw_abs); %画出幅值 xlabel('数字角频率w'); ylabel('幅值');
title('x(n)的DTFT的幅值');
subplot(2,2,4),plot(w,Xw_angle); %画出相角 xlabel('数字角频率w'); ylabel('相位');
title('x(n)的DTFT的相位'); 二、
M=[4 26 100]; for i=1:3 for q=M(i) n=0:q-1;
xn=ones(1,4)运行时分别输入4,26,100 figure;
DTFT(xn,4,q); 运行时分别输入4,26,100 end end
N=[4 26 100]; for i=1:3 for q=N(i) n=0:q-1; xn=ones(1,N(i)) figure;
DTFT(xn,q,4); 运行时分别输入4,26,100 end end
三、
N=[8 16 20 60 75 128]; %N的所有取值 for i=1:6
n=0:N(i)-1 %对于每一个N,n的取值从0到N-1 x=sin(pi*n/5); %第一个函数表达式 figure,DTFTsin(x,N(i),512); %画出频谱图 x=cos(pi*n/4)+cos(pi*n/8); %第二个函数表达式 figure,DTFTcos(x,N(i),512); %画出频谱图 end
4、仿真结果、图形 二,M=4,N=4
M=26,N=4
M=100,N=4
M=4 ,N= 26
M=26,N=26
M=100,N=26
M=4,N=100
M=26,N=100
M=100,N=100
三,
N=8
N=16
N=20
N=
N=75
N=128
5、结果分析和结论
2. 根据x(n)的频谱,可以得到
1)固定M,改变N,当N增加时频谱的最大值在增加,因为加且频谱的最大值就在角频率w=0处;过零点的数目增多;第一旁瓣幅度与最大值的比值不变。相位谱的变化更加迅速并且逐渐变得杂乱,因为每一次过零点都会使相位发生突变,而频率抽样值相对太少时,就会隔过去很多零点,无法表现出完整的相位特性,增大
N增加x(n)的直流分量增M就
可以避免这种现象。当M=N时,频谱变得与众不同,因为此时对连续频谱抽样,抽得都是0值附近的数,实部和虚部很小,致使相位计算不准确。以上讨论是在M=100时进行的,当M较小时,结论会有些差别。
2)固定N,改变M,可以看出幅度谱的峰值没有变化,随着M的增加旁瓣的数目增多,主瓣的宽度变窄,幅度谱和相位谱整体趋向平滑和真实。当M=N时,幅度谱和相位谱变得与众不同,因为此时对连续频谱抽样,抽得都是0值附近的数,实部和虚部很小,致使相位计算不准确。
三、信号x(n)=sin(pi*n/5)和 x(n)=cos(pi*n/4)+cos(pi*n/8) ( 0≤n ≤ N-1)的幅度谱和相位谱,N的取值越大信号频谱的最大值越大,尖峰宽度越窄,尖峰越陡峭,边缘振荡越小,这是因为N越大,相当于输入的信息越多,信号越接近于理想的正余弦信号,频谱越接近于冲激函数。
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- igat.cn 版权所有 赣ICP备2024042791号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务