DSP实验2 FFT算法实现 实验说明1

preview
需积分: 0 2 下载量 181 浏览量 更新于2022-08-03 收藏 69KB PDF 举报
在本实验中,你们将实现离散傅里叶变换(DFT)的一种高效算法——快速傅里叶变换(FFT)。FFT是一种重要的数字信号处理技术,它大大减少了计算DFT所需的复杂数学运算次数,特别是在处理大数据量时,效率优势尤为明显。 实验要求你们编写一个名为`myFFT_学号`的MATLAB函数,该函数接受一个输入参数x,表示输入序列,以及一个参数N,代表DFT的点数。函数应返回一个长度为N的行向量X,表示经过FFT处理后的输出序列。请注意,输入可以是行向量或列向量,因此你需要在函数内部处理这种转换,确保无论输入形式如何,函数都能正确工作。 为了保证公平性,实验规定不能使用查找表来实现倒序重排等运算,这意味着你们必须手动编写这部分代码,避免直接引用预先计算好的结果。这有助于考察你们对FFT算法的理解和实现能力。 在跑分阶段,你们的代码将被用于计算一系列长度为2的整数次幂的序列。评分标准基于每秒内能完成的2点FFT运算次数,计算公式是`Score = ∑i * 2^i / 100000`, 其中C代表在1秒内执行的2点FFT的次数。具体的跑分流程会在评估代码中给出。 为了验证你们的实现是否正确,你们需要对比MATLAB内置的fft函数的结果。虽然由于实现细节的不同,可能会存在极小的误差,但这些误差通常是可以忽略的。不过,这并不意味着你们可以接受显著的错误。 实验将在运行环境为Windows XP系统和MATLAB R2009a的机房电脑上进行。考虑到这个旧版本的MATLAB和可能存在的硬件差异,每次运行的结果可能会有轻微波动,但这不会影响最终的评分。在正式验收之前,你们可以利用机房的其他电脑先自行运行代码,预估可能的得分,如果在验收时发现较大偏差,可以要求重新跑分。 实验的最终成绩将由代码的跑分、现场问答和实验报告共同决定。这意味着除了实现正确的FFT算法之外,你们还需要对算法有深入的理解,能够解释其工作原理,并且能够清晰地记录和展示实验过程和结果。这是一次全面考察你们在数字信号处理和MATLAB编程方面能力的机会。