22、快速傅里叶变换与离散时间系统实现

快速傅里叶变换与离散时间系统实现

1. 复合点数的快速傅里叶变换算法

在离散傅里叶变换(DFT)中,当点数是特定幂次时,选择合适的快速傅里叶变换(FFT)算法能提高效率。
- 基 - 4 FFT 算法 :当 DFT 的点数 (N = 4^v) 时,使用基 - 4 FFT 算法比基 - 2 FFT 算法更高效。
- 推导基 - 4 时域抽取 FFT 算法 :设 (N_1 = N/4) 和 (N_2 = 4),通过特定的分解方式得到 (X(k)) 的表达式。内部求和是序列 (x(4n_1 + n_2)) 的 (N/4) 点 DFT,外部求和是 4 点 DFT。若 (N_2 = N/4) 能被 4 整除,则重复该过程,会产生 (v = \log_4 N) 级,每级有 (N/4) 个蝶形运算。
- 蝶形结构与运算量比较 :基 - 4 FFT 中的 4 点蝶形运算每个只需要 3 次复数乘法。对于长度为 (N = 4^v) 的 DFT,复数乘法次数为 (\frac{3N}{8} \log_4 N),而基 - 2 时域抽取 FFT 的乘法次数为 (\frac{N}{2} \log_2 N),基 - 4 FFT 的乘法次数是基 - 2 FFT 的 (\frac{3}{4}) 倍。
- 基 - 3 FFT 算法 :当 (N = 3^v) 时,可推导基 - 3 FFT 算法。
- 时域抽取算法 :将 (x(n)) 以 3 为因子抽取形成三个长度为 (N/3) 的序列,通过对这些序列的处理得到 (N) 点 DFT 的表达式。不断以 3 为因子抽取,直到剩下 3 点 DFT。对于 9 点时域抽取 FFT,其流图可通过复制 3 点蝶形并调整分支乘法因子得到。
- 乘法次数 :若 (N = 3^v),基 - 3 FFT 有 (v) 级,每个 3 点蝶形一般需要 6 次乘法(不考虑乘以 (\pm1) 时可能更少),每级有 (N/3) 个蝶形,所以总乘法次数为 (2N \log_3 N)。
- 原位计算 :基 - 3 FFT 的计算可以原位进行。
- 频域抽取算法 :对于 (N = 3^v) 的基 - 3 频域抽取 FFT,分别计算 (((k))_3 = 0)、(((k))_3 = 1) 和 (((k))_3 = 2) 时的索引,可得到相应的表达式和流图。

2. 利用 8 点 FFT 芯片计算 24 点 DFT

若有多个 8 点时域抽取 FFT 芯片,可将 24 点 DFT 以 3 为因子对 (x(n)) 进行抽取,分解为三个 8 点 DFT。形成三个序列后,使用 8 点 FFT 芯片计算 (F(k))、(G(k)) 和 (H(k)),再将 8 点 FFT 的输出组合得到 24 点 DFT。

3. 素因子 FFT
  • 21 点素因子 FFT :对于 (N_1 = 7) 和 (N_2 = 3) 的 21 点素因子 FFT,通过特定的索引映射得到输入和输出的二维数组表示。该算法没有旋转因子,只需要计算三个 7 点 DFT 和七个 3 点 DFT,乘法次数为 (7\times6 + 3\times42 = 168) 次。而 32 点基 - 2 FFT 需要更多乘法,所以对于 21 点序列,补零计算 32 点 DFT 更高效。
  • 15 点 DFT 的不同算法
    • 混合基 FFT :使用 (N_1 = 5) 和 (N_2 = 3) 的混合基 FFT,将 DFT 分解为两个阶段,先进行三个 5 点 DFT,再进行五个 3 点 DFT,过程中需要乘以旋转因子。
    • 素因子算法 :同样 (N_1 = 5) 和 (N_2 = 3) 的素因子算法,索引映射不同,没有旋转因子,与混合基算法的连接方式相同,但输入和输出数组的排序不同,相比混合基 FFT 节省了 8 次复数乘法。
4. 离散时间系统的实现

线性移不变系统的输入和输出由线性常系数差分方程关联,不同的实现方式会影响计算量、内存需求、滤波器对系数量化的敏感度以及输出的舍入噪声。

5. 数字网络

对于具有有理系统函数的线性移不变系统,输入 (x(n)) 和输出 (y(n)) 通过线性常系数差分方程联系。计算输出所需的基本元素包括加法器、乘法器和延迟器,常用方框图和信号流图来表示系统的实现方式。信号流图中的节点对应加法器或分支点,分支表示线性变换,还有源节点(无输入分支,用于输入序列)和汇节点(只有输入分支,用于表示输出序列)。

6. FIR 系统的结构

因果有限长单位冲激响应(FIR)滤波器的系统函数是 (z^{-1}) 的多项式。
- 直接形式 :最常见的实现方式是使用抽头延迟线,需要 (N + 1) 次乘法、(N) 次加法和 (N) 次延迟。若单位样本响应有对称性,可减少乘法次数。
- 级联形式 :系统函数可分解为一阶因子的乘积,若 (h(n)) 为实数,复根成对出现,可组合成具有实系数的二阶因子,实现为二阶 FIR 滤波器的级联。
- 线性相位滤波器 :线性相位滤波器的单位样本响应具有对称性或反对称性,可利用这种对称性简化网络结构,减少乘法次数。
- 频率采样结构 :该结构根据滤波器的 DFT 系数来参数化滤波器。对于窄带滤波器,其大部分 DFT 系数为零,使用频率采样结构实现更高效。若 (h(n)) 为实数,可对结构进行简化。

以下是不同 FFT 算法的运算量比较表格:
| 算法类型 | 适用点数 (N) | 乘法次数 |
| ---- | ---- | ---- |
| 基 - 2 FFT | (N = 2^v) | (\frac{N}{2} \log_2 N) |
| 基 - 4 FFT | (N = 4^v) | (\frac{3N}{8} \log_4 N) |
| 基 - 3 FFT | (N = 3^v) | (2N \log_3 N) |

下面是基 - 3 时域抽取 FFT 的简单 mermaid 流程图:

graph TD;
    A[x(n)] --> B[以 3 为因子抽取];
    B --> C[三个 N/3 点序列];
    C --> D[处理得到 N 点 DFT];
    D --> E{是否剩下 3 点 DFT};
    E -- 否 --> B;
    E -- 是 --> F[结束];

快速傅里叶变换与离散时间系统实现

7. IIR 系统的结构

因果无限长单位冲激响应(IIR)滤波器的输入 (x(n)) 和输出 (y(n)) 由线性常系数差分方程描述,以下是几种不同的实现方式:
- 直接形式
- 直接形式 I :将描述系统的差分方程写成一对差分方程,分别对应一个 FIR 滤波器和一个全极点滤波器,二者级联实现系统。其计算要求为:每个输出样本需要 (p + q + 1) 次乘法、(p + q) 次加法,需要 (p + q) 个延迟。
- 直接形式 II :通过交换直接形式 I 中 FIR 滤波器和全极点滤波器的级联顺序得到。

以下是 IIR 直接形式结构的计算量对比表格:
| 结构类型 | 乘法次数(每个输出样本) | 加法次数(每个输出样本) | 延迟数量 |
| ---- | ---- | ---- | ---- |
| 直接形式 I | (p + q + 1) | (p + q) | (p + q) |
| 直接形式 II | 待确定(与具体系统有关) | 待确定(与具体系统有关) | 待确定(与具体系统有关) |

8. 补充问题分析
  • 卷积效率问题 :对于长度为 1024 的序列 (x(n)) 与长度为 (L) 的序列 (h(n)) 进行卷积,当 (L) 满足一定条件时,直接进行卷积比通过取 (X(k)H(k)) 的逆 DFT 并使用基 - 2 FFT 算法计算 DFT 更高效,但具体 (L) 值未明确给出。
  • 非 2 的幂次序列处理 :对于 1025 点的数据序列,零填充使其长度为 (N = 2^n) 后使用基 - 2 FFT 算法计算 DFT,需要的乘法和加法次数分别为 11264;若直接计算 1025 点 DFT,需要的乘法和加法次数为 1050625。
  • 基 - 3 FFT 相关
    • 输入序列索引 :在基 - 3 时域抽取 FFT 中,输入序列 (x(n)) 的索引以三进制形式表示,然后按三进制数字的逆序读取。
    • 频域抽取乘法次数 :基 - 3 频域抽取 FFT 的乘法次数与基 - 3 时域抽取 FFT 相同,为 (2N \log_3 N)。
  • 12 点 DFT 计算
    • 特定 FFT 算法 :使用特定的 FFT 算法计算 12 点 DFT,需要 30 次乘法和 60 次加法;若直接计算 12 点 DFT,则需要 144 次乘法和 132 次加法。
  • 素因子 FFT 相关
    • 99 点素因子 FFT 索引映射 :对于 (N_1 = 11) 和 (N_2 = 9) 的 99 点素因子 FFT,索引映射为 (n = 9n_1 + 11n_2),(k = 45k_1 + 22k_2)。
    • 12 点素因子 FFT 乘法次数 :当 (N_1 = 4) 和 (N_3 = 3) 时,不考虑乘以 (\pm1) 和 (\pm j),12 点素因子 FFT 需要 24 次复数乘法。
    • 99 点素因子 FFT 旋转因子 :(N_1 = 11) 和 (N_2 = 9) 的 99 点素因子 FFT 没有旋转因子。
    • 15 点素因子 FFT 乘法次数 :不考虑乘以 (\pm1) 时,15 点素因子 FFT 需要 90 次复数乘法。

下面是使用 8 点 FFT 芯片计算 24 点 DFT 的 mermaid 流程图:

graph TD;
    A[x(n)] --> B[以 3 为因子抽取];
    B --> C[形成三个 8 点序列];
    C --> D[使用 8 点 FFT 芯片计算 F(k)、G(k)、H(k)];
    D --> E[组合 8 点 FFT 输出];
    E --> F[得到 24 点 DFT];

综上所述,在数字信号处理中,不同的 FFT 算法和离散时间系统实现结构各有优劣。在实际应用中,需要根据具体的问题,如序列长度、计算效率要求、内存限制等,选择合适的算法和结构,以达到最佳的处理效果。例如,对于点数为 4 的幂次的 DFT,基 - 4 FFT 算法在乘法次数上更具优势;对于窄带 FIR 滤波器,频率采样结构可能是更高效的实现方式。同时,素因子 FFT 算法在某些情况下可以避免旋转因子的乘法,节省计算量。

已经博主授权,源码转载自 https://pan.quark.cn/s/a4b39357ea24 在信息技术领域,特别是软件编程行业,微软公司推出的集成开发环境(IDE)Visual Studio,凭借其卓越的功能和广泛的适用范围,成为了众多程序员的常用工具。不过,在实际操作期间,用户可能会遭遇各种挑战,其中一种较为普遍的挑战是“Visual Studio遭遇了异常情况,这或许某个附加组件有关”。本文将详细研究这一现象的成因、潜在后果以及最终的应对措施。 ### 原因剖析 Visual Studio通过支持多种插件和附加组件来扩展其功能,这些组件通常由第三方开发者设计,旨在为用户提供更多个性化和专业化的工具。然而,这些插件的质量良莠不齐,部分可能未经过充分的测试或特定版本的Visual Studio存在兼容性难题,从而在执行时引发异常。异常的出现可能源于以下几个因素: 1. **代码缺陷**:若附加组件中的代码存在逻辑问题或资源管理不当,就可能导致运行时异常。 2. **资源竞争**:多个插件同时占用相同的资源(例如内存、文件句柄等),可能会产生资源冲突,进而触发异常。 3. **依赖不匹配**:插件可能需要特定版本的库或框架,如果系统中安装的版本不一致,也可能导致异常。 4. **安全隐患**:部分插件可能存在安全漏洞,一旦被恶意利用,可能会导致更严重的问题,包括但不限于异常崩溃。 ### 后果分析 当Visual Studio遇到由附加组件引发的异常时,不仅会中断当前的工作进程,降低开发效能,还可能带来以下潜在风险: 1. **数据遗失**:若异常发生在保存操作之前,可能会导致未保存的工作内容遗失。 2. **稳定性减弱**:频繁的异常会导致Visual Stud...
内容概要:本文围绕有源中箝位(ANPC)三电平并网逆变器,提出并深入研究了一种融合双极性倍频脉宽调制(DPWMA)、正负序分离锁相控制电网电压前馈控制的高性能一体化并网策略。研究首先系统分析了ANPC三电平逆变器在开关损耗均衡、中电位稳定、输出谐波含量低等方面的拓扑结构优势,为实现高质量并网奠定了坚实的硬件础。在此础上,通过引入DPWMA调制策略,有效提升了等效开关频率,显著优化了输出电压电流的波形质量,降低了谐波畸变。为应对电网电压不平衡、畸变等复杂工况,研究采用了正负序分离锁相技术,实现了对电网正序和负序分量的精确分离独立控制,从而保障了在非理想电网条件下的精准相位同步。同时,通过叠加电网电压前馈控制,构建了前馈-反馈复合控制体系,提前补偿电网扰动,极大地增强了系统的动态响应速度和抗干扰能力。最终,通过Simulink仿真平台对稳态、电网不平衡及动态扰动等多种工况进行了全面验证,结果表明该复合控制策略能显著提升并网系统的电能质量、稳定性和工况适应性,为新能源发电等大功率并网应用提供了先进的技术解决方案。; 适合人群:具备电力电子、自动控制理论或新能源并网技术等相关专业知识背景,从事相关领域科研或工程开发工作的研究人员,尤其适合高校研究生、青年教师及电力系统仿真设计工程师。; 使用场景及目标:①应用于对电能质量要求严苛的大功率并网逆变器控制系统设计优化;②解决电网电压不平衡、谐波畸变等复杂非理想工况下的并网稳定性同步精度问题;③为ANPC三电平逆变器的先进控制策略开发性能提升提供详尽的仿真验证方案和技术参考;④支持高水平科研论文的复现、学位论文的课题研究以及重大工程项目前期的技术预研论证。; 阅读建议:建议读者结合文中详述的系统拓扑、控制架构图及仿真模型,循序渐进地理解各控制模块的设计原理协同工作机制,重关注DPWMA调制的实现细节、正负序分离的数学原理实现方法,以及前馈控制的嵌入方式参数整定策略,并通过仿真实验传统控制策略进行对比分析,以深刻掌握该复合控制策略的性能优势工程应用价值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值