使用python查找正向和反向离散余弦变换。请不要使用numpy内置的dct和idct

用户名

大家好,在此先感谢您的帮助和协助?

我正在尝试在python中对以下方程式执行正向和反向余弦变换。但是我一直收到这个错误,说索引超出了反弹范围。我已经尝试了所有方法来纠正此问题,但是它不起作用。请在下面找到我用python编写的程序。您的帮助将有很大的不同。谢谢

F_k = .5*[f_0 + ((-1)**k)*f_N] + f_j*cos(pi*j*k/N) j=[1 N-1]

import numpy as np

import matplotlib.pyplot as plt

def dct(f_j):
    n = len(f_j)
    F_k = np.zeros(n, dtype=float)
    for k in range(n):
        out = f_j[0]
        for j in range(1, n + 1):
            out += 0.5*f_j[1]+0.5*f_j[k+1]*(-1)**(n-1) + f_j[j] * np.cos(np.pi * k * j/n)
            F_k = out

    return F_k

def idct(F_k):
    N = len(F_k)
    f_j = np.zeros(N, dtype=float)
    for j in range(N):
        output = F_k[0]
        for k in range(1, N + 1):
            output += .5*F_k[1]+0.5*F_k[j+1]*(-1)**(N-1) + F_k[k]*np.cos(np.pi * k * j / N)
            f_j = output * (2 / N)

    return f_j
加百列

离散余弦变换有几个定义。似乎您正在尝试使用Wikipedia中DCT-I定义。如果是这种情况,则您希望代码看起来像这样,

def dct( f_j ):
    n = len(f_j)
    F_k = np.zeros(n)
    for k in range(n):
        F_k[k] = 0.5 * ( f_j[0] + (-1)**k * f_j[n-1] )
        for j in range(1, n - 1):
            F_k[k] += f_j[j] * np.cos(np.pi * j * k / (n-1))
    return F_k

我认为您只是对DCT的数学定义和从开始的Python中的索引感到困惑0还要注意,for k in range(n)将产生k0到的值,n-1for j in range(1, n-1)将产生j1到的n-2

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

图像的离散余弦变换(DCT)

来自分类Dev

使用1D DCT进行2D离散余弦变换

来自分类Dev

Java中的离散余弦变换(DCT)

来自分类Dev

离散余弦变换(DCT)系数分布

来自分类Dev

使用正向查找修改反向查找

来自分类Dev

使用正向和反向迭代器进行C ++映射擦除

来自分类Dev

使用正向和反向迭代器进行C ++映射擦除

来自分类Dev

使用离散傅立叶变换[OpenCV]查找高频

来自分类Dev

使用jQuery prev()和next()查找正确的SPAN标签

来自分类Dev

使用Python和正则表达式查找正确的URL

来自分类Dev

为什么要使用内置的setattr()和getattr()?

来自分类Dev

连接正向和反向向量

来自分类Dev

连接正向和反向向量

来自分类Dev

不要使用PHP命令和cURL显示日志

来自分类Dev

不要使用if和for获得shell脚本的输出

来自分类Dev

使用Bind9进行正向反向查找

来自分类Dev

使用 javaScript 更改背景颜色(请不要使用 jQuery)?

来自分类Dev

在Python中实现2D离散余弦变换的问题

来自分类Dev

如何使用r匹配data_frame中的正向和反向列

来自分类Dev

不要使用android内置的org.json

来自分类Dev

Python和MySQL-要使用哪个?

来自分类Dev

正向和反向DNS的工作原理

来自分类Dev

使用余弦和正弦在Matlab中绘制

来自分类Dev

离散余弦变换一维Matlab

来自分类Dev

图像处理中的离散余弦变换

来自分类Dev

在Node和coffee-script中,使用ps,grep和awk的等效项查找正在运行的特定进程

来自分类Dev

我正在寻找用于矩阵[NxM]的快速DCT和IDCT的简单算法

来自分类Dev

查找正确的tty和tty设置

来自分类Dev

Firebase ionic2和汇总-“强烈建议不要使用`eval`。

Related 相关文章

热门标签

归档