lowpass.vhd
来自「springer_-modeling_and_simulation_for_rf」· VHDL 代码 · 共 99 行
VHD
99 行
-- ------------------------------------------------------------- -- Additional material to the book-- Modeling and Simulation for RF System Design-- ---- THIS MODEL IS LICENSED TO YOU "AS IT IS" AND WITH NO WARRANTIES, -- EXPRESSED OR IMPLIED. THE AUTHORS SPECIFICALLY DISCLAIM ALL IMPLIED -- WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.-- THEY MUST NOT HAVE ANY RESPONSIBILITY FOR ANY DAMAGES, FINANCIAL OR-- LEGAL CLAIMS WHATEVER.-- ------------------------------------------------------------- Name: Bessel Lowpass Filter-- -- Description:-- The architecture BESSEL_2 realizes a second order analog Bessel-- lowpass. The architecture BESSEL_4 realizes a fourth order analog-- Bessel lowpass. The cut-off frequency is FC.-- The architecture BESSEL_2_DIGITAL realizes a second order digital-- Bessel lowpass. The cut-off frequency is FC. The sampling-- frequency is 4*FC.-- -- Literature:-- Tietze, U,; Schenk, C.: Halbleiter-Schaltungstechnik.-- Heidelberg: Springer-Verlag, 2002.---- Schruefer, E.: Signalverarbeitung.-- Muenchen, Wien: Carl Hanser Verlag, 1990.-- -- Dependencies: -- ------------------------------------------------------------- Logical Library Design unit-- ------------------------------------------------------------- IEEE_proposed ELECTRICAL_SYSTEMS-- IEEE MATH_REAL-- --------------------------------------------------------------- Source:-- lowpass.vhd-- -----------------------------------------------------------library IEEE, IEEE_proposed; use IEEE_proposed.ELECTRICAL_SYSTEMS.all; use IEEE.MATH_REAL.all; entity LOWPASS is generic (FC : REAL; -- cut-off frequency [Hz], MIN: >0.0 GAIN : REAL := 1.0 -- voltage gain ); port (terminal INP : ELECTRICAL; -- controlling terminal terminal OUTP : ELECTRICAL -- output terminal );end entity LOWPASS; architecture BESSEL_2 of LOWPASS is constant W : REAL := MATH_2_PI*FC; constant NUM : REAL_VECTOR := (0 => 1.0); constant DEN : REAL_VECTOR := (1.0, 1.3617/W, 0.6180/W/W); quantity VIN across INP; quantity VOUT across IOUT through OUTP;begin VOUT == GAIN*VIN'LTF(NUM,DEN);end architecture BESSEL_2; architecture BESSEL_4 of LOWPASS is quantity VIN across INP; quantity VOUT across IOUT through OUTP; quantity Q1 : REAL; constant W : REAL := MATH_2_PI*FC; constant NUM1 : REAL_VECTOR := (0 => GAIN); constant DEN1 : REAL_VECTOR := (1.0, 1.3397/W, 0.4889/W/W); constant NUM2 : REAL_VECTOR := (0 => 1.0); constant DEN2 : REAL_VECTOR := (1.0, 0.7743/W, 0.3890/W/W);begin Q1 == VIN'LTF(NUM1, DEN1); VOUT == VIN'LTF(NUM2, DEN2);end architecture BESSEL_4; architecture BESSEL_2_DIGITAL of LOWPASS is constant FS : REAL := 4.0*FC; -- only in this case constant TSAMPLE : REAL := 1.0/FS; constant NUM : REAL_VECTOR := (0.3356, 0.6712, 0.3356); constant DEN : REAL_VECTOR := (1.0000, 0.2564, 0.0860); quantity VIN across INP; quantity VOUT across IOUT through OUTP;begin VOUT == GAIN*VIN'ZTF(NUM,DEN, TSAMPLE, 0.0);end architecture BESSEL_2_DIGITAL;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?