MATLAB编程如何不用for循环.docVIP

  • 6
  • 0
  • 约2.33千字
  • 约 3页
  • 2017-06-11 发布于北京
  • 举报
MATLAB编程如何不用for循环--以DFT变换矩阵为例?? 缘起:大家都知道MATLAB中用for循环编写的代码执行起来效率不高,如何用矩阵和向量的运算提升效率对每一个用matlab的人来说都是很有必要的,但是此项功夫高手一般不愿意给初学者讲,此功夫是高手和低手的分水岭,高手们更是拿此功夫在初学者面前炫耀。本人当初怀着很恭敬的心向高手请教,高手笑笑说这要我自己编。出于让后来人受益,帮助和我一样无助的求知者。本人今天话了一天时间将此问题研究下,并且将代码毫无保留的公布出来。希望大家能够受益,阿弥陀佛! 上述W矩阵的第一列代表直流成分,第二列到最后一列是信号的交流成分,可以看出倍频关系!我以前不知道DFT可以通过矩阵表示。注意matlab中dftmtx实现上述W矩阵的时候没有用1/sqrt(N) 进行归一化!可以通过dftmtx(2)验证,没有1/sqrt(2)。 ? 例1?DFT matrix 是Hermitian的 ?Nfft = 8;??xn=rand(1,Nfft); y=dftmtx(Nfft)*xn.? %结果是个列向量 y=dftmtx(Nfft)*x.???和y=fft(x,Nfft)是等价的 y = xn*dftmtx(Nfft)? %结果是个行向量 y=fft(xn,Nfft) %结果是个行向量 %dft变换公式,n代表时域采样点,k代表频域采样点? Y(k)=

文档评论(0)

1亿VIP精品文档

相关文档