A-A+

按照下面的IDFT算法编写MATLAB语言IFFT程序 其中的FFT部分不用写出清单 可调用

2022-08-12 17:06:26 问答库 阅读 197 次

问题详情

按照下面的IDFT算法编写MATLAB语言IFFT程序,其中的FFT部分不用写出清单,可调用fft函数。并分别对单位脉冲序列、矩形序列、三角序列和正弦序列进行FFT和IFFT变换,验证所编程序。 x(n)=IDFT[X(k)]=1/N[DFT[X*(k)]*


请帮忙给出正确答案和分析,谢谢!

参考答案

正确答案:解:为了使用灵活方便将本题所给算法公式作为函数编写ifft46.m如下:%函数ifft46.m%按照所给算法公式计算IFETfunction xn=ifft46(XkN)Xk=conj(Xk); %对Xk取复共轭xn=conj(fft(XkN))/N; %按照所给算法公式计算IFFT分别对单位脉冲序列、长度为8的矩形序列和三角序列进行FFT并调用函数ifft46计算IFFT变换验证函数ifft46的程序ex406.m如下:%程序ex406.m%调用fft函数计算IDFTx1n=1; %输入单位脉冲序列x1nx2n=[1 1 1 1 1 1 1 1]; %输入矩形序列向量x2nx3n=[1 2 3 4 4 3 2 1]; %输入三角序列序列向量x3nN=8;X1k=fit(x1nN); %计算x1n的N点DFTX2k=fit(x2nN); %计算x2n的N点DFTX3k=fit(x3nN); %计算x3n的N点DFTx1n=ifft46(X1kN) %调用ifft46函数计算X1k的IDFTx2n=ifft46(X2kN) %调用ifft46函数计算X2k的IDFTx3n=ifft46(X3kN) %调用ifft46函数计算X3k的IDFT运行程序输出时域序列如下所示正是原序列x1n、x2n和x3n。x1n=1 0 0 0 0 0 0 0x2n=1 1 1 1 1 1 1 1x3n=1 2 3 4 4 3 2 1
解:为了使用灵活方便,将本题所给算法公式作为函数编写ifft46.m如下:%函数ifft46.m%按照所给算法公式计算IFETfunctionxn=ifft46(Xk,N)Xk=conj(Xk);%对Xk取复共轭xn=conj(fft(Xk,N))/N;%按照所给算法公式计算IFFT分别对单位脉冲序列、长度为8的矩形序列和三角序列进行FFT,并调用函数ifft46计算IFFT变换,验证函数ifft46的程序ex406.m如下:%程序ex406.m%调用fft函数计算IDFTx1n=1;%输入单位脉冲序列x1nx2n=[11111111];%输入矩形序列向量x2nx3n=[12344321];%输入三角序列序列向量x3nN=8;X1k=fit(x1n,N);%计算x1n的N点DFTX2k=fit(x2n,N);%计算x2n的N点DFTX3k=fit(x3n,N);%计算x3n的N点DFTx1n=ifft46(X1k,N)%调用ifft46函数计算X1k的IDFTx2n=ifft46(X2k,N)%调用ifft46函数计算X2k的IDFTx3n=ifft46(X3k,N)%调用ifft46函数计算X3k的IDFT运行程序输出时域序列如下所示,正是原序列x1n、x2n和x3n。x1n=10000000x2n=11111111x3n=12344321

考点:算法,清单