我正在尝试扩展fft代码,它可以很好地用于python中的一维图像数组。实际上,我知道问题出在扩展的逻辑上。我对FFT了解不多,我必须提交图像处理作业。我将对任何提示或解决方案表示感谢。
这是代码,实际上,我正在尝试用python为FFT创建一个模块,在rosetta code网站的帮助下,它已经在1D上工作得很好了。
from cmath import exp, pi
from math import log, ceil
def fft(f):
N = len(f)
if N <= 1: return f
even = fft(f[0::2])
odd
你好,我是朱莉娅的新手,在理解代码方面遇到了问题。我正在寻找快速实现FWHT(Fast转换)来理解它,并在python中实现它(实现应该能够处理n维数组,并且应该能够在任何特定的维度上应用转换).So,我遇到了julia实现(),它看起来很好,但是由于我对朱莉娅来说是新手,所以我无法理解代码的一部分:
for (Tr,Tc,fftw,lib) in ((:Float64,:Complex128,"fftw",FFTW.libfftw),
(:Float32,:Complex64,"fftwf",FFTW.libfftwf
所以我写了这个:
function y = convolution(u,v)
[m,n] = size(u);
[w,z] = size(v);
y = zeros(m-w+1,n-z+1);
for i = 1:m-w+1
for j = 1:n-z+1
y(i,j) = sum(sum(u(i:i+w-1,j:j+z-1).*v));
end
end
end
然后,我将其与matlab中的conv2()进行了比较,结果如下:
function timedConv
a = im2double(rgb2gray(imread(
原始数据在上。它是两列数据,t和x。我做了以下离散fft变换。我不太明白主峰(尖峰)的高度比侧峰低,第二次子图显示,尖峰(最接近2.0)确实是主频。代码和数字如下:
import numpy as np
import math
import matplotlib.pyplot as plt
from scipy.fftpack import fft,fftfreq
freqUnit=0.012/(2*np.pi)
data = np.loadtxt(fname='data.txt')
t = data[:,0]
x = data[:,1]
n=len(t)
d=t[1]-t[