UNPKG

biquadjs

Version:

Create arbitrary biquad filters to apply to signals. Created for real time biosensing, works in most general cases.

96 lines (95 loc) 3.04 kB
export type FilterSettings = { sps: number; useSMA4?: boolean; useNotch50?: boolean; useNotch60?: boolean; useLowpass?: boolean; lowpassHz?: number; useHighpass?: boolean; highpassHz?: number; useBandpass?: boolean; bandpassLower?: number; bandpassUpper?: number; useDCBlock?: boolean; DCBresonance?: number; useScaling?: boolean; scalar?: number; offset?: number; trimOutliers?: boolean; outlierTolerance?: number; }; export declare class BiquadChannelFilterer { idx: number; sps: number; bandpassLower?: number; bandpassUpper?: number; useSMA4?: boolean; last4?: number[]; filtered: number; trimOutliers?: boolean; outlierTolerance?: number; useNotch50?: boolean; useNotch60?: boolean; useLowpass?: boolean; lowpassHz?: number; useHighpass?: boolean; highpassHz?: number; useBandpass?: boolean; useDCBlock?: boolean; DCBresonance?: number; useScaling?: boolean; offset?: number; scalar?: number; notch50?: any; notch60?: any; lp1?: any; bp1?: any; dcb?: any; hp1?: any; constructor(options?: FilterSettings); reset(sps?: number): void; setBandpass(bandpassLower?: number, bandpassUpper?: number, sps?: number): void; apply(latestData?: number): number; } export declare class Biquad { type: string; freq: number; sps: number; Q: number; dbGain: number; a0: number; a1: number; a2: number; b0: number; b1: number; b2: number; x1: number; x2: number; y1: number; y2: number; constructor(type: 'lowpass' | 'highpass' | 'bandpass' | 'notch' | 'peak' | 'lowshelf' | 'highshelf', freq: number, sps: number, Q?: number, dbGain?: number); lowpass(A: any, sn: any, cs: any, alpha: any, beta: any): void; highpass(A: any, sn: any, cs: any, alpha: any, beta: any): void; bandpass(A: any, sn: any, cs: any, alpha: any, beta: any): void; notch(A: any, sn: any, cs: any, alpha: any, beta: any): void; peak(A: any, sn: any, cs: any, alpha: any, beta: any): void; lowshelf(A: any, sn: any, cs: any, alpha: any, beta: any): void; highshelf(A: any, sn: any, cs: any, alpha: any, beta: any): void; applyFilter(signal_step: any): number; zResult(freq: any): number; static calcCenterFrequency(freqStart: any, freqEnd: any): number; static calcBandwidth(freqStart: any, freqEnd: any): number; static calcBandpassQ(frequency: any, bandwidth: any, resonance?: number): number; static calcNotchQ(frequency: any, bandwidth: any, resonance?: number): number; } export declare class DCBlocker { r: number; x1: number; x2: number; y1: number; y2: number; constructor(r?: number); applyFilter(signal_step: any): number; } export declare const makeNotchFilter: (frequency: any, sps: any, bandwidth: any) => Biquad; export declare const makeBandpassFilter: (freqStart: any, freqEnd: any, sps: any, resonance?: number) => Biquad;