From 5f1b2738de45c6476b79c6e536a98680d19d5079 Mon Sep 17 00:00:00 2001 From: Jens Ahrensfeld Date: Fri, 2 Jan 2009 16:20:21 +0000 Subject: [PATCH] - moved real_array_t to fixed_util_pkg git-svn-id: http://moon:8086/svn/vhdl/trunk@184 cc03376c-175c-47c8-b038-4cd826a8556b --- lib/filter/src/filter_pkg.vhd | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/lib/filter/src/filter_pkg.vhd b/lib/filter/src/filter_pkg.vhd index 1341ed0..63ff72c 100644 --- a/lib/filter/src/filter_pkg.vhd +++ b/lib/filter/src/filter_pkg.vhd @@ -4,16 +4,16 @@ use IEEE.STD_LOGIC_1164.ALL; use ieee.numeric_std.all; use IEEE.MATH_REAL.ALL; +library work; +use work.fixed_util_pkg.all; + ------------------------------------------------------------------------------- package filter_pkg is - constant pi : real := 3.141592653589793e+000; - type real_array_t is array (natural range <>) of real; - - function FilterCoef_Lowpass (N : positive; omega, amp : real) return real_array_t; - function FilterCoef_Highpass (N : positive; omega, amp : real) return real_array_t; - function FilterCoef_Bandpass (N : positive; bw2, omega_m, amp : real) return real_array_t; - function FilterCoef_Delta (N:positive; delay:natural; amp:real) return real_array_t; + function FilterCoef_Lowpass (N : positive; omega, gain : real) return real_array_t; + function FilterCoef_Highpass (N : positive; omega, gain : real) return real_array_t; + function FilterCoef_Bandpass (N : positive; bw2, omega_m, gain : real) return real_array_t; + function FilterCoef_Delta (N:positive; delay:natural; gain:real) return real_array_t; function Window_Hamming (x : real_array_t) return real_array_t; function Window_VonHann (x : real_array_t) return real_array_t; function Window_Blackman (x : real_array_t) return real_array_t; @@ -55,17 +55,17 @@ package body filter_pkg is end Prototype_Lowpass; ------------------------------------------------------------------------------- - function FilterCoef_Lowpass (N : positive; omega, amp : real) return real_array_t is + function FilterCoef_Lowpass (N : positive; omega, gain : real) return real_array_t is variable lp : real_array_t(0 to N-1); begin lp := Prototype_Lowpass(N, omega); - return Window_VonHann(FilterScale(lp, amp/FilterEnergy(lp))); + return Window_VonHann(FilterScale(lp, gain/FilterEnergy(lp))); end FilterCoef_Lowpass; ------------------------------------------------------------------------------- - function FilterCoef_Highpass (N : positive; omega, amp : real) return real_array_t is + function FilterCoef_Highpass (N : positive; omega, gain : real) return real_array_t is variable lp, res : real_array_t(0 to N-1); variable phi : real := 0.0; variable dphi : real := pi; @@ -77,12 +77,12 @@ package body filter_pkg is phi := phi + dphi; end loop; - return Window_VonHann(FilterScale(res, amp/FilterEnergy(lp))); + return Window_VonHann(FilterScale(res, gain/FilterEnergy(lp))); end FilterCoef_Highpass; ------------------------------------------------------------------------------- - function FilterCoef_Bandpass (N : positive; bw2, omega_m, amp : real) return real_array_t is + function FilterCoef_Bandpass (N : positive; bw2, omega_m, gain : real) return real_array_t is variable lp, res, mean, sum : real_array_t(0 to N-1); variable phi : real := 0.0; variable dphi : real := 2.0*pi*omega_m; @@ -94,18 +94,18 @@ package body filter_pkg is phi := phi + dphi; end loop; - return Window_VonHann(FilterScale(res, amp/FilterEnergy(lp))); + return Window_VonHann(FilterScale(res, gain/FilterEnergy(lp))); end FilterCoef_Bandpass; ------------------------------------------------------------------------------- - function FilterCoef_Delta (N:positive; delay:natural; amp:real) return real_array_t is + function FilterCoef_Delta (N:positive; delay:natural; gain:real) return real_array_t is variable res : real_array_t(0 to N-1); begin for i in 0 to N-1 loop res(i) := 0.0; end loop; - res(delay) := amp; + res(delay) := gain; return res;