在 Flutter 中创建正弦波信号 (FFT)

问题描述 投票:0回答:0

我正在尝试创建一个模拟信号以输入到我的快速傅里叶变换中,以测试它是否有效,但是,经过无数小时的努力,我意识到问题是我使用正弦波 y 的标准公式生成的信号=a*sinu2061(bx) 在我的代码中,我必须生成信号,尽管从信号数据看来,信号显示出正弦信号,但频率偏离了我的 FFT 无法检测到。

List<double> generateMockSignal() {
 // Generate a sine wave with the given output specifics.
 final double amplitude = 50.0; // Amplitude of the wave
 final double frequency = 0.01; // Frequency of the wave
 final double phase = 0.0; // Phase shift of the wave
 final int numSamples = 100; // Number of samples to generate
 final List<double> signal = List.generate(numSamples, (i) {
   return amplitude * sin(2 * pi * frequency * i + phase);
 });

 return signal;

List<Complex> performFFT(List<double> signal) {
  final fft = FFT(signal.length);
  final freq = fft.realFft(signal);
  final complexFreq = freq.map((f) => Complex(f.x, 0)).toList();

  return complexFreq;

我尝试的是直接从原始数据生成一个信号,将其馈送到我的 FFT 中,我的数据再次偏离我正在阅读,但它们一点也不正确,看起来像每个频率箱上的随机数,就像 Flutter 不知道信号是什么,当我尝试向它提供有关信号是什么的信息时,它会将信号转换成不同的东西。当我将振幅调高到某个极度不切实际的数字时,我确实从 FFT 窗口中得到了渗色效果,显示了所有频率仓中的随机噪声值。但是当我尝试以正确的方式输入信号并创建正弦波公式时,我所有频率箱的读数都为零

yes, I have imported all the lib I need!
flutter dart signals signal-processing fft
© www.soinside.com 2019 - 2024. All rights reserved.