用FFT算序列频谱例4.3.1 ·考虑长度为5的有限序列:x=[1,3,5,3,1,要求 用FFT来计算其频谱。 解:因为要求的是频率域中的连续频谱,故求 出x的DFT和DTFT,进行比较。程序hc431r x=[1,3,5,3,1];nx=0:4;%给定原始数据 N=length(x);D=2*pi/N;%求出及频率分辨率 k=f1oor(-(N-1)/2):((N-1)/2);%求对称位置向量 X=fftshift(fft(x,N)); %求对称的FFT序列值 subplot(1,2,1),plot(k*D,abs(X),'o:')%画幅特性 subplot(1,2,2),plot(k*D,angle(X),'o:')%相特性图 26
26 用FFT算序列频谱例4.3.1 • 考虑长度为5的有限序列:x=[1,3,5,3,1],要求 用FFT来计算其频谱。 • 解:因为要求的是频率域中的连续频谱,故求 出x的DFT和DTFT, 进行比较。程序hc431r x=[1,3,5,3,1];nx=0:4; % 给定原始数据 N=length(x); D=2*pi/N; % 求出及频率分辨率 k=floor((-(N-1)/2):((N-1)/2)); % 求对称位置向量 X=fftshift(fft(x,N)); % 求对称的FFT序列值 subplot(1,2,1),plot(k*D,abs(X),'o:') % 画幅特性 subplot(1,2,2),plot(k*D,angle(X),'o:')%相特性图
用FFT计算序列的频谱 ·曲线如下。注意plot语句具有线性内插作用,可近似得 出连续频谱DTFT. 15 i譬 要 10 0 0 4频率 2 0 2 频率 图4.3.1用FFT计算离散时间序列的频谱, 0一不补零,x一补11个零,实线一补1019个零 27
27 用FFT计算序列的频谱 • 曲线如下。注意plot语句具有线性内插作用,可近似得 出连续频谱DTFT. 图 4.3.1 用 FFT 计算离散时间序列的频谱, o—不补零,x—补 11 个零,实线—补 1019 个零
用FFT计算序列的频谱 用FFT计算了频谱时,其频率样本数等于序列 样本数,上例中于N=5,所以相邻两个频率样 本点的间距为 dw= π2π =1.2566 N5 ·这个频率间距非常大,分辨率很差。 改善分辨 率的最好方法是增加数据的长度N。如果没有 更多数据,也可以给输入序列补零。 补了1019个零以后,得出连续光滑的频谱。不 过改善的只是频谱的视在分辨率。 28
28 用FFT计算序列的频谱 • 用FFT计算了频谱时,其频率样本数等于序列 样本数,上例中于N=5,所以相邻两个频率样 本点的间距为 • 这个频率间距非常大,分辨率很差。改善分辨 率的最好方法是增加数据的长度N。如果没有 更多数据,也可以给输入序列补零。 • 补了1019个零以后,得出连续光滑的频谱。不 过改善的只是频谱的视在分辨率。 2 2 1.2566 5 dw N ===
用FFT计算序列的频谱 例4.3.2考虑长度为11的矩形窗函数序列,计 算其频谱。 解:假如选N=20作为重复周期,则要在序列后面 补9个零。使用FFT时,我们必须按N=20的周期 延拓序列中取从n=0到19的主值部分,因此FFT 的输入为 x=[ones (1,6),zeros(1,N-11),ones(1,5)] 在编写程序时,要准备给出不同的进行比较。 所以程序hc432的写法应能适用于不同的N。 29
29 用FFT计算序列的频谱 例4.3.2 考虑长度为11的矩形窗函数序列,计 算其频谱。 解:假如选N=20作为重复周期,则要在序列后面 补9个零。使用FFT时,我们必须按N=20的周期 延拓序列中取从n=0到19的主值部分,因此FFT 的输入为 x=[ones(1,6),zeros(1,N-11),ones(1,5)] 在编写程序时,要准备给出不同的N进行比较。 所以程序hc432的写法应能适用于不同的N
序列频谱的程序hc432r C=[20,1024]; forr=[1,2] N=C(r)D=2*pi/N; x=[ones(1,6),zeros(1,N-11),ones(1,5)]; %主值区间的x k=f1oor(-N/2+0.5:N/2-0.5);%频率位置向量 X=fftshift(fft(x,N));%求出x的对称位置FFT subplot(1,2,r),plot(k*D,X)%画实频特性图 end 30
30 序列频谱的程序hc432r C=[20,1024]; for r=[1,2] N=C(r);D=2*pi/N; x=[ones(1,6),zeros(1,N-11),ones(1,5)]; % 主值区间的x k=floor(-N/2+0.5:N/2-0.5); % 频率位置向量 X=fftshift(fft(x,N)); % 求出x的对称位置FFT subplot(1,2,r),plot(k*D,X) % 画实频特性图 end