作业帮 > 综合 > 作业

对于有限长序列,如何用MATLAB计算其DTFT?

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/29 12:13:14
对于有限长序列,如何用MATLAB计算其DTFT?
给你举个例子吧,
利用MATLAB 语句:
x=firls(511,[0 0.4 0.404 1],[1 1 0 0])
产生一个512 点得序列x[k],并画出该序列的频谱.
clear;
b=[0 0.4 0.404 1];
a=[1 1 0 0];
x=firls(511,b,a); %生成序列
[X,w]=freqz(b,a); %频率响应分析
[G,w1]=grpdelay(b,a); %计算该系统的群延迟
plot(w/pi,20*log10(abs(X))); %画幅度相应图形
grid;
pause;
plot(w/pi,unwrap(angle(X))); %画解卷绕后的相位响应图形
grid;
pause;
plot(w1/pi,G); %画群延迟图形
grid;
依照这样的程序就可以完成了.
再问: 这是什么程序啊?
再答: 不知道你需要什么。刚才的那段是计算序列频谱的程序。下面是利用fft计算的程序。你可以拿来参考,都可以实现DTFT的计算。 求有限长4点序列x[k] = {1,1,−1,1}的DFT。 close all; clear all; x=[1,1,-1,1]; X=fft(x); x1=[x,zeros(1,4)]; X1=fft(x1); x2=[x,zeros(1,60)]; X2=fft(x2); figure; hold on; plot([0:63]/64,X2,'g'); plot([0:7]/8,X1); stem([0:3]/4,X,'r'); legend('X1r','Xr','X2r'); figure; hold on; plot([0:63]/64,X2,'g'); plot([0:7]/8,X1); stem([0:3]/4,X,'r'); legend('X2i','X1i','Xi');
再问: 这是思考题,不知道该怎样回答~
再答: 噢,如果简单回答的话,就可以说利用fft计算。如果需要频谱分析示例,就可以直接粘上样例代码啦……