// // GenTrig.swift // PrySDR // // Created by Jacky Jack on 26/10/2024. // import Foundation /// Generate sin function as float array /// - Parameters: /// - sample_rate: sample rate, how many samples per second /// - freq: sin frequency /// - ampl: amplitude /// - phase: phase of sin /// - sample_num: number of samples to generate /// - Returns: Array of floats within range [-ampl ... apml] /// func genSin(_ sample_rate: Int,_ freq: Int,_ ampl: Float,_ phase: Float,_ sample_num: Int) -> Array { //let one_sec = sample_num/sample_rate let sample_per_hz:Float32 = Float32(sample_rate)/Float32(freq) let hz_step: Float32 = 2*Float32.pi/sample_per_hz var out_signal:[Float32] = Array(repeating: Float(0.0), count: sample_num) var start = phase for i in 0.. Array { //let one_sec = sample_num/sample_rate let sample_per_hz:Float32 = Float32(sample_rate)/Float32(freq) let hz_step: Float32 = 2*Float32.pi/sample_per_hz var out_signal:[Float32] = Array(repeating: Float32(0.0), count: sample_num) var start = phase for i in 0...sample_num { out_signal[i] = ampl * cos(start) start += hz_step } return out_signal }