标签: fft

用于GPU的OpenCL FFT库?

是否有可用于使用OpenCL在GPU上运行的通用FFT库?据我所知,Apple二次OpenCL FFT的示例代码是唯一可用的代码吗?

对于非二次幂变换大小,是否存在任何此类库?如果没有,修改Apple OpenCL样本有多容易或多困难?

我正在研究具有非二次幂变换大小的图像处理应用程序,我将不得不做一大堆FFT,一个批量FFT.

gpu gpgpu fft opencl gpu-programming

8
推荐指数
1
解决办法
5661
查看次数

使用FFT和Complex类获取频率wav音频

它被问了很多,但我仍然坚持在Android上实现FFT类我需要使用FFT处理我的音频数据...

我已经在这里阅读了几乎相同的问题如何使用FFT获取PCM的频率数据 ,这里如何从fft结果获得频率? 还有更多的问题,但即使在我尝试了答案后仍然没有找到答案......

我正在使用的FFT类:http: //www.cs.princeton.edu/introcs/97data/FFT.java

与它一起使用的复杂类:http://introcs.cs.princeton.edu/java/97data/Complex.java.html

这是我的代码

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.media.AudioFormat;
import android.media.AudioRecord;
import android.media.MediaRecorder;
import android.os.Bundle;
import android.os.Environment;
import android.view.View;
import android.widget.Button;

public class Latihan extends Activity{
        private static final int RECORDER_BPP = 16;
        private static final String AUDIO_RECORDER_FILE_EXT_WAV = ".wav";
        private static final String AUDIO_RECORDER_FOLDER = "AudioRecorder";
        private static final String AUDIO_RECORDER_TEMP_FILE = "record_temp.raw";
        private static …
Run Code Online (Sandbox Code Playgroud)

audio android fft frequency

8
推荐指数
1
解决办法
2万
查看次数

使用fft的Matlab低通滤波器

我在matlab中使用前向和后向fft实现了一个简单的低通滤波器.它原则上有效,但最小值和最大值与原始值不同.

signal = data;
%% fourier spectrum
% number of elements in fft
NFFT = 1024;
% fft of data
Y = fft(signal,NFFT)/L;
% plot(freq_spectrum)

%% apply filter
fullw = zeros(1, numel(Y));
fullw( 1 : 20 ) = 1;
filteredData = Y.*fullw;

%% invers fft
iY = ifft(filteredData,NFFT);
% amplitude is in abs part
fY = abs(iY);
% use only the length of the original data
fY = fY(1:numel(signal));
filteredSignal = fY * NFFT; % correct maximum

clf; hold on; …
Run Code Online (Sandbox Code Playgroud)

matlab filtering fft lowpass-filter

8
推荐指数
1
解决办法
2万
查看次数

执行 FFT 后如何将复数转换回“正常”数

说,我有一个由三个余弦组成的示例信号,每个余弦代表 4、6 和 8 个频段。现在,我使用 FFT 将此信号放入频域,并在频域中切断不需要的 6 Hz 频带。最后,我想将信号从频域反转回时域。但是当我简单地使用时,numpy.fft.ifft我得到了复数数组,这不是进一步分析信号的最佳结果。如何在执行带通后对 FFT 求逆,以便将实部和虚部携带的全部信息作为一个数字?我研究了z = sqrt(real^2 + imaginary^2)事物,但它不是“事物”。

下面我提供一个工作示例。我会很感激你的帮助。

import numpy as np
from scipy.fftpack import fftfreq

# Define signal.
Fs = 128  # Sampling rate.
Ts = 1 / Fs  # Sampling interval.
Time = np.arange(0, 10, Ts)  # Time vector.
signal = np.cos(4*np.pi*Time) + np.cos(6*np.pi*Time) + np.cos(8*np.pi*Time)


def spectrum(sig, t):
    """
    Represent given signal in frequency domain.
    :param sig: signal.
    :param t: time scale.
    :return:
    """ …
Run Code Online (Sandbox Code Playgroud)

python numpy fft

8
推荐指数
1
解决办法
3799
查看次数

有关于如何使用英特尔MKL FFT的简单C++示例吗?

我需要执行FFT和逆FFT变换.输入将是double的向量和矩阵.理想情况下,输出应该是std :: complex的数组,但我可以使用double _Complex.

我没有找到任何简单的例子,所有英特尔示例都在没有足够评论的情况下同时做了很多事情.

我只想在C++中使用一个简单的例子,将double的向量(或矩阵)作为输入并输出FFT转换结果(理想情况下使用std :: complex).

c++ fft intel-mkl dft

8
推荐指数
1
解决办法
5152
查看次数

实现 fftshift 和 ifftshift 的正确顺序(在 python 中)

我想对一个函数进行傅里叶变换psi(x),将其乘以 k 空间函数exp(-kx^2-ky^2),然后将乘积逆傅里叶变换回 x 空间。

但是我的 x 空间和 k 空间网格位于中心,并且我知道我需要fftshiftifftshift正确实现我的 k 空间乘法。但我不明白它们是如何工作的,所以我不知道按照什么顺序来实现它们。有人可以告诉我我在这里做得是否正确吗?

import scipy.fftpack as spfft
import numpy as np

#Create a centred k-space grid]

kxmax, kymax = 10,10
kxgrid = np.linspace(-kxmax/2, kxmax/2, NX)
kygrid = np.linspace(-kymax/2, kymax/2, NY)
KX, KY = np.meshgrid(kxgrid, kygrid, indexing='xy')

psi = spfft.ifft2(spfft.fftshift(np.exp(-(KX**2 + KY**2)) * spfft.fftshift(spfft.fft2(psi))))
Run Code Online (Sandbox Code Playgroud)

python fft scipy

8
推荐指数
1
解决办法
7903
查看次数

如何在 Chrome 中对音频文件进行 FFT 分析而不需要播放?

整个互联网上没有一个工作示例说明如何在浏览器中对声音文件/缓冲区/音频缓冲区执行 FFT 分析而不需要播放。 例如,Web 音频 API 已更改太多,无法再使用此库https://github.com/corbanbrook/dsp.js 。目前所有其他线索都无法解决问题。

编辑:我不需要操作任何数据,只需读取音频不同时刻的频谱。解决方案的输入可以是任何形式的数据(wav 文件、数组缓冲区、音频缓冲区等),但不能是流。理想情况下,预期输出将是数组(频率箱幅度)的数组(时刻)。

javascript fft html5-audio web-audio-api

8
推荐指数
2
解决办法
3101
查看次数

时变频率的频谱图与标度图

我正在比较特定信号的 FFT 与 CWT。

我不清楚如何从 CWT 的相应比例图中读取相应的频率和幅度。此外,我的印象是 CWT 相当不精确?

频谱图在预测精确频率方面似乎非常好,但对于 CWT,我尝试了许多不同的小波,结果是一样的。

我监督了什么吗?这不是解决这个问题的合适工具吗?

在下面,您可以找到我的示例源代码和相应的图。

import matplotlib.pyplot as plt
import numpy as np
from numpy import pi as ?
from scipy.signal import spectrogram
import pywt

f_s = 200              # Sampling rate = number of measurements per second in [Hz]
t   = np.arange(-10,10, 1 / f_s) # Time between [-10s,10s].
T1  = np.tanh(t)/2  + 1.0 # Period in [s]
T2  = 0.125               # Period in [s]
f1  = 1 / T1              # Frequency …
Run Code Online (Sandbox Code Playgroud)

python signal-processing fft wavelet pywavelets

8
推荐指数
1
解决办法
1680
查看次数

如何在 numba.njit 中进行离散傅里叶变换(FFT)?

各位程序员大家好

我正在尝试与装饰器一起制作discrete Fourier transform一个:minimal working examplenumba.njit

import numba
import numpy as np
import scipy
import scipy.fftpack

@numba.njit
def main():
    wave = [[[0.09254795,  0.10001078,  0.10744892, 0.07755555,  0.08506225, 0.09254795],
          [0.09907245,  0.10706145,  0.11502401,  0.08302302,  0.09105898, 0.09907245],
          [0.09565098,  0.10336405,  0.11105158,  0.08015589,  0.08791429, 0.09565098],
          [0.00181467,  0.001961,    0.00210684,  0.0015207,   0.00166789, 0.00181467]],
         [[-0.45816267, - 0.46058367, - 0.46289091, - 0.45298182, - 0.45562851, -0.45816267],
          [-0.49046506, - 0.49305676, - 0.49552669, - 0.48491893, - 0.48775223, -0.49046506],
          [-0.47352483, - 0.47602701, - 0.47841162, - 0.46817027, - 0.4709057, -0.47352483],
          [-0.00898358, …
Run Code Online (Sandbox Code Playgroud)

python numpy fft scipy numba

8
推荐指数
2
解决办法
6317
查看次数

如何使用 FFT 从图像中删除重复模式

  • 我有由扫描仪生成的带有重复图案(水平白线)的肤色图像,该扫描仪使用一排传感器来感知照片。

    原始图像 原始图像2

  • 我的问题是如何使用 FFT 有效地对图像进行去噪,而不会对图像质量产生太大影响,有人告诉我,我必须手动抑制幅度谱中出现的线,但我不知道该怎么做,可以请告诉我该怎么做?

  • 我的方法是使用快速傅立叶变换(FFT)逐通道对图像进行去噪。

  • 我尝试过傅里叶域中的 HPF 和 LPF,但结果并不好,如您所见:

结果

我的代码:

from skimage.io import imread, imsave
from matplotlib import pyplot as plt
import numpy as np

img = imread('skin.jpg')

R = img[...,2]
G = img[...,1]
B = img[...,0]

f1 = np.fft.fft2(R)
fshift1 = np.fft.fftshift(f1)
phase_spectrumR = np.angle(fshift1)
magnitude_spectrumR = 20*np.log(np.abs(fshift1))

f2 = np.fft.fft2(G)
fshift2 = np.fft.fftshift(f2)
phase_spectrumG = np.angle(fshift2)
magnitude_spectrumG = 20*np.log(np.abs(fshift2))

f3 = np.fft.fft2(B)
fshift3 = np.fft.fftshift(f3)
phase_spectrumB = np.angle(fshift3)
magnitude_spectrumB = 20*np.log(np.abs(fshift2))

#===============================
# LPF …
Run Code Online (Sandbox Code Playgroud)

python filtering fft image-processing

8
推荐指数
1
解决办法
5054
查看次数