Professional Documents
Culture Documents
Receivers
Abstract
An approach of new low-complexity reconfigurable fast filter bank (RFFB) for
wireless communication applications such as spectrum sensing and
channelization is discussed here. In RFFB, the bandwidth and center frequency
of sub-bands can be varied with high frequency resolution without hardware
reimplementation. This is achieved with an improved modified frequency
transformation-based variable digital filter (MFTVDF) at the first stage of the
implemented multistage implementation. Existing second-order frequency
transformation-based low-pass VDFs have limited cutoff frequency range which
is approximately 12.5% of the sampling frequency. The designed low-pass MFT-
VDF offers unabridged control over the cutoff frequency on a wide frequency
range thereby, improving the cutoff frequency range of existing VDFs. The
design example shows that the RFFB is easy to design and offers substantial
savings in gate counts over other filter banks.
Existing System
Design of new low-complexity reconfigurable fast filter bank (RFFB) for wireless
communication applications such as spectrum sensing and channelization is
discussed here The designed low-pass MFT-VDF offers unabridged control over
the cutoff frequency on a wide frequency range thereby, improving the cutoff
frequency range of existing VDFs. The design example shows that the RFFB is
easy to design and offers substantial savings in gate counts over other filter
banks.
Proposed System
Design of reconfigurable fast filter bank system for communication and signal
processing platforms is implemented here with a advancement of auto tuning
facility which enables the filter configurations get tuned automatically according
to the receiver requirements. A look up table for various frequency channels is
generated and applied to a configurable filter block. DPA (Digital parameter
analyzer) is strongly implemented using various logical blocks to analyze the
parameters before the filter process starts.
APPLICATIONS
High speed radio frequency applications
RF Front end and fast spectrum analysis
ADVANTAGES
FPGA Core acts as a AI (Artificial Intelligence) for FILTER configurations,
which enable to utilize area and reduce power drastically
FUTURE SCOPE
Application such as simple radio receiver , wireless transponder prototype
is made using this FILTER
INTRODUCTION
The discrete Fourier transform filter bank (DFTFB) is a modulated filter bank that
consists of a low-pass prototype filter followed by DFT operation and widely
used for various communication applications. However, DFTFBs have the
drawbacks of uniform sub-band bandwidth and fixed center frequency for each
sub-band. An improved DFTFB using coefficient decimation method (CDM) has
been proposed in which allows changing sub-band bandwidths using a fixed-
coefficient filter at low reconfiguration overhead. However, it provides only
coarse control over sub-band bandwidth because the decimation factor in the
CDM is restricted to be integers. Also, center frequency of sub-bands in CDM-
DFTFB is fixed.
Characterization
A digital filter is characterized by its transfer function, or equivalently, its
difference equation. Mathematical analysis of the transfer function can describe
how it will respond to any input. As such, designing a filter consists of
developing specifications appropriate to the problem (for example, a second-
order low pass filter with a specific cut-off frequency), and then producing a
transfer function which meets the specifications.
The transfer function for a linear, time-invariant, digital filter can be expressed as
a transfer function in the Z-domain; if it is causal, then it has the form:
where the order of the filter is the greater of N or M. See Z-transform's LCCD
equation for further discussion of this transfer function.
This is the form for a recursive filter with both the inputs (Numerator) and
outputs (Denominator), which typically leads to an IIR infinite impulse response
behaviour, but if the denominator is made equal to unity i.e. no feedback, then
this becomes an FIR or finite impulse response filter
Analysis techniques
A variety of mathematical techniques may be employed to analyze the
behaviour of a given digital filter. Many of these analysis techniques may also be
employed in designs, and often form the basis of a filter specification.
Typically, one characterizes filters by calculating how they will respond to a
simple input such as an impulse. One can then extend this information to
compute the filter's response to more complex signals.
Impulse response
IIR filters on the other hand are recursive, with the output depending on both
current and previous inputs as well as previous outputs. The general form of an
IIR filter is thus:
Plotting the impulse response will reveal how a filter will respond to a sudden,
momentary disturbance
Difference equation
In discrete-time systems, the digital filter is often implemented by converting the
transfer function to a linear constant-coefficient difference equation (LCCD) via
the Z-transform. The discrete frequency-domain transfer function is written as
the ratio of two polynomials. For example
and to make the corresponding filter causal, the numerator and denominator are
divided by the highest order of :
Filter design
The design of digital filters is a deceptively complex topic. [1] Although filters are
easily understood and calculated, the practical challenges of their design and
implementation are significant and are the subject of much advanced research.
There are two categories of digital filter: the recursive filter and the nonrecursive
filter. These are often referred to as infinite impulse response (IIR) filters and
finite impulse response (FIR) filters, respectively
Filter realization
After a filter is designed, it must be realized by developing a signal flow diagram
that describes the filter in terms of operations on sample sequences. A given
transfer function may be realized in many ways. Consider how a simple
expression such as could be evaluated one could also compute
Direct Form I
A straightforward approach for IIR filter realization is Direct Form I, where the
difference equation is evaluated directly. This form is practical for small filters,
but may be inefficient and impractical (numerically unstable) for complex
designs.[3] In general, this form requires 2N delay elements (for both input and
output signals) for a filter of order N.
Direct Form II
The alternate Direct Form II only needs N delay units, where N is the order of
the filter potentially half as much as Direct Form I. This structure is obtained by
reversing the order of the numerator and denominator sections of Direct Form I,
since they are in fact two linear systems, and the commutativity property
applies. Then, one will notice that there are two columns of delays ( ) that tap
off the center net, and these can be combined since they are redundant, yielding
the implementation as shown below.
The disadvantage is that Direct Form II increases the possibility of arithmetic
overflow for filters of high Q or resonance. [4] It has been shown that as Q
increases, the round-off noise of both direct form topologies increases without
bounds.[5] This is because, conceptually, the signal is first passed through an all-
pole filter (which normally boosts gain at the resonant frequencies) before the
result of that is saturated, then passed through an all-zero filter (which often
attenuates much of what the all-pole half amplifies).
Cascaded second-order sections
A common strategy is to realize a higher-order (greater than 2) digital filter as a
cascaded series of second-order "biquadratric" (or "biquad") sections [6] (see
digital biquad filter). The advantage of this strategy is that the coefficient range is
limited. Cascading direct form II sections results in N delay elements for filters of
order N. Cascading direct form I sections results in N+2 delay elements since
the delay elements of the input of any section (except the first section) are
redundant with the delay elements of the output of the preceding section
Digital filters are not subject to the component non-linearities that greatly
complicate the design of analog filters. Analog filters consist of imperfect
electronic components, whose values are specified to a limit tolerance (e.g.
resistor values often have a tolerance of 5%) and which may also change with
temperature and drift with time. As the order of an analog filter increases, and
thus its component count, the effect of variable component errors is greatly
magnified. In digital filters, the coefficient values are stored in computer memory,
making them far more stable and predictable.[9]
Because the coefficients of digital filters are definite, they can be used to
achieve much more complex and selective designs specifically with digital
filters, one can achieve a lower passband ripple, faster transition, and higher
stopband attenuation than is practical with analog filters. Even if the design
could be achieved using analog filters, the engineering cost of designing an
equivalent digital filter would likely be much lower. Furthermore, one can readily
modify the coefficients of a digital filter to make an adaptive filter or a user-
controllable parametric filter. While these techniques are possible in an analog
filter, they are again considerably more difficult.
Digital filters can be used in the design of finite impulse response filters. Analog
filters do not have the same capability, because finite impulse response filters
require delay elements. Digital filters rely less on analog circuitry, potentially
allowing for a better signal-to-noise ratio. A digital filter will introduce noise to a
signal during analog low pass filtering, analog to digital conversion, digital to
analog conversion and may introduce digital noise due to quantization. With
analog filters, every component is a source of thermal noise (such as Johnson
noise), so as the filter complexity grows, so does the noise.
However, digital filters do introduce a higher fundamental latency to the system.
In an analog filter, latency is often negligible; strictly speaking it is the time for an
electrical signal to propagate through the filter circuit. In digital systems, latency
is introduced by delay elements in the digital signal path, and by analog-to-
digital and digital-to-analog converters that enable the system to process analog
signals.
In very simple cases, it is more cost effective to use an analog filter. Introducing
a digital filter requires considerable overhead circuitry, as previously discussed,
including two low pass analog filters. Types of digital filters Many digital filters
are based on the fast Fourier transform, a mathematical algorithm that quickly
extracts the frequency spectrum of a signal, allowing the spectrum to be
manipulated (such as to create band-pass filters) before converting the modified
spectrum back into a time-series signal.
Another form of a digital filter is that of a state-space model. A well used state-
space filter is the Kalman filter published by Rudolf Kalman in 1960.
Traditional linear filters are usually based on attenuation. Alternatively nonlinear
[10]
filters can be designed, including energy transfer filters which allow the user
to move energy in a designed way. So that unwanted noise or effects can be
moved to new frequency bands either lower or higher in frequency, spread over
a range of frequencies, split, or focused. Energy transfer filters complement
traditional filter designs and introduce many more degrees of freedom in filter
design. Digital energy transfer filters are relatively easy to design and to
implement and exploit nonlinear dynamics
INTRODUCTION TO VLSI
VLSI BASICS:
VERILOG:
VHDL:
Gates provide a much closer one to one mapping between the actual
circuit and the network model.
There is no continuous assignment equivalent to the bidirectional transfer
gate.
A limitation of those nets declared with the keyword vectored affects gates and
switches as well as continuous assignments. Individual bits of vectored nets
cannot be driven; thus, gates and switches can only drive scalar output nets. If
you declare a multi-bit net as vectored and you drive individual bits of it, Verilog-
XL will display a compilation error message. If you do not declare a multi-bit net
as vectored, Verilog-XL handles it as a vector except in the following cases. A
multi-bit net is handled as a scalar if:
Behavioral Model:
Behavioral level describes the system the way it behaves instead of a lower
abstraction of its connections. Behavioral model describes the relationship
between the input and output signals. The description can be a Register
Transfer Level (RTL) or Algorithmic (set of instruction) or simple Boolean
equations.
RTL typically represents data flow within the systems like data flow between
registers. RTL is mostly used for design of combinational logics.
Algorithmic Level:
Entity and Architecture are the two main basic programming structures in VHDL.
Entity: Entity can be seen as the black box view of the system. We define the
inputs and outputs of the system which we need to interface.
Entity ANDGATE is
B: in std_logic;
Y: out std_logic);
Entity name ANDGATE is given by the programmer, each entity must have a
name. There are certain naming conventions which will be explained later in the
tutorial.
INTRODUCTION TO XILINX
Xilinx software:
Kintex:
The Kintex-7 family is the first Xilinx mid-range FPGA family that the company
claims delivers Virtex-6 family performance at less than half the price while
consuming 50 percent less power. The Kintex family includes high-performance
12.5 Gbit/s or lower-cost optimized 6.5 Gbit/s serial connectivity, memory, and
logic performance required for applications such as high volume 10G optical
wired communication equipment, and provides a balance of signal processing
performance, power consumption and cost to support the deployment of Long
Term Evolution (LTE) wireless networks.
Artix:
The Artix-7 family delivers 50 percent lower power and 35 percent lower cost
compared to the Spartan-6 family and is based on the unified Virtex-series
architecture. Xilinx claims that Artix-7 FPGAs deliver the performance required
to address cost-sensitive, high-volume markets previously served by ASSPs,
ASICs, and low-cost FPGAs. The Artix family is designed to address the small
form factor and low-power performance requirements of battery-powered
portable ultrasound equipment, commercial digital camera lens control, and
military avionics and communications equipment.
Zynq:
The Spartan series targets applications with a low-power footprint, extreme cost
sensitivity and high-volume. The Spartan-6 family is built on a 45-nanometer
[nm], 9-metal layer, dual-oxide process technology. The Spartan-6 was
marketed in 2009 as a low-cost solution for automotive, wireless
communications, flat-panel display and video surveillance applications.
Model sim:
The CoolRunner-II 1.8V CPLD family leads the industry with its high
performing, low power capabilities. Enhanced with revolutionary features such
as DataGATE, advance I/Os and the industry's smallest form factor packaging,
CoolRunner-II CPLDs deliver the ultimate system solution for today's designing
challenges
The CoolRunner-II architecture, with its all-digital core, requires far less
power than the older CPLD technologies that use power-hungry analog
sense amplifiers.
Permits input signal blocking, stops input switching, and reduces power.
Improve security by blocking access for various on stored code inside the
device
Clock Divider
DualEDGE Flip-Flop
Xilinx leads the way in advanced package innovation by offering two new,
ultra small form-factor, Quad Flat no-lead (QF) packages to the popular full
line-up of Chip Scale Packages (CP).
Perfect for handheld and other space constrained applications that need
32 or 64 macrocell CPLDs in the smallest possible space.
CoolRunner-II offers the newest 0.5mm pitch QF and CP packages for the
broadest selection of low cost, small form-factor packages at 1.8 volts from 21 to
117 I/O.
Internal Logical Diagram
Programming
The programming data sequence is delivered to the device using either Xilinx
iMPACT software and a Xilinx download cable, a third-party JTAG development
system, a JTAG-compatible board tester, or a simple microprocessor interface
that emulates the JTAG instruction sequence. The iMPACT software also
outputs serial vector format (SVF) files for use with any tools that accept SVF
format, including automatic test equipment. See CoolRunner-II CPLD
Application Notes for more information on how to program.
In System Programming
All CoolRunner-II CPLD parts are 1.8V in system programmable. This means
they derive their programming voltage and currents from the 1.8V VCC (internal
supply voltage) pins on the part. The VCCIO pins do not participate in this
operation, as they might assume another voltage ranging as high as 3.3V down
to 1.5V (however, all VCCIO, VCCINT, VCCAUX, and GND pins must be
connected for the device to be programmed, and operate correctly). A 1.8V VCC
is required to properly operate the internal state machines and charge pumps
that reside within the CPLD to do the nonvolatile programming operations. I/O
pins are not in user mode during JTAG programming; they are held in 3-state
with a weak pullup. The JTAG interface buffers are powered by a dedicated
power pin, VCCAUX, which is independent of all other supply pins. VCCAUX
must be connected. Xilinx software is provided to deliver the bitstream to the
CPLD and drive the appropriate IEEE 1532 protocol. To that end, there is a set
of IEEE 1532 commands that are supported in the CoolRunner-II CPLD parts.
Programming times are less than one second for 32 to 256 macrocell parts.
Programming times are less than four seconds for 384 and 512 macrocell parts.
Programming of CoolRunner-II CPLDs is only guaranteed when operating in the
commercial temperature and voltage ranges as defined in the device-specific
data sheets.
PARTIAL CODE
Library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
use ieee.std_logic_arith.all;
use ieee.math_real.all;
use ieee.numeric_std.all;
entity sig_shap_ckt is
port(clk,clr : in std_logic;
op1:out std_logic);
end entity sig_shap_ckt;
begin
----------------------------------------------------
--Generation of analog Signal with a LUT
----------------------------------------------------
a2: process(clr,clk,lat_dcd)
begin
if clr='1' or lat_dcd='1' then
counter1<="0000";
elsif rising_edge(clk) then
counter1<= counter1+1;
end if;
end process a2;
dcd <= ( counter1(3) and counter1(2) and (not counter1(1)) and ( not
counter1(0)));
a3 : process(clk,clr)
begin
if clr='1' then
lat_dcd <='0';
elsif rising_edge(clk) then
lat_dcd<=dcd;
end if;
end process a3;
--a4 : process(counter1,clr)
-- begin
-- case counter1 is
-- when "0000" | "1100" => asig <= 0.50; --0.010;
-- when "0001" | "1011" => asig <= 1.00; --0.020;
-- when "0010" | "1010" => asig <= 1.50; --0.030;
-- when "0011" | "1001" => asig <= 2.00; --0.040;
-- when "0100" | "1000" => asig <= 2.20; --0.050;
-- when "0101" | "0111" => asig <= 2.50; --0.060;
-- when "0110" => asig <= 3.00; --0.070;
-- when others => asig <= 0.000;
-- end case;
-- end process a4;
a4 : process(counter1,clr)
begin
case counter1 is
when "0000" | "1100" => asig <= 0.50; --0.010;
when "0001" | "1011" => asig <= 1.00; --0.020;
when "0010" | "1010" => asig <= 1.50; --0.030;
when "0011" | "1001" => asig <= 2.00; --0.040;
when "0100" | "1000" => asig <= 2.20; --0.050;
when "0101" | "0111" => asig <= 2.50; --0.060;
when "0110" => asig <= 3.00; --0.070;
when others => asig <= 0.000;
end case;
end process a4;
---------------------------------------------------
-- SIGNAL SHAPING OUTPUT
---------------------------------------------------
a5 : process(asig)
begin
if clr='1' then
sigout<='0';
else if (asig > 2.0) then
sigout <='1';
else
sigout <='0';
end if;
end if;
end process a5;
end behave;
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity SineCosineFIR is
port (
clock: in std_logic;
nd : in std_logic;
sine: OUT std_logic_VECTOR(15 downto 0);
cosine: OUT std_logic_VECTOR(15 downto 0);
rfd: OUT std_logic;
rdy: OUT std_logic;
FIR : OUT std_logic_VECTOR(35 downto 0));
end SineCosineFIR;
architecture Behavioral of SineCosineFIR is
component FIRFILTER is
port (clk: IN std_logic;
nd : in std_logic;
rfd: OUT std_logic;
rdy: OUT std_logic;
din: IN std_logic_VECTOR(15 downto 0);
dout: OUT std_logic_VECTOR(35 downto 0));
end component;
component SineCosine is
port ( clock: in std_logic;
sine: OUT std_logic_VECTOR(15 downto 0);
cosine: OUT std_logic_VECTOR(15 downto 0));
end component;
begin
end Behavioral;
SIMULATION RESULTS