superheterodyne receiver using rf budget analyzer app -凯发k8网页登录
this example shows how to build a superheterodyne receiver and analyze the receiver's rf budget for gain, noise figure, and ip3 using the rf budget analyzer app. the receiver is a part of a transmitter-receiver system described in the ieee conference papers, [1] and [2].
introduction
rf system designers begin the design process with a budget specification for how much gain, noise figure (nf), and nonlinearity (ip3) the entire system must satisfy. to assure the feasibility of an architecture modeled as a simple cascade of rf elements, designers calculate both the per-stage and cascade values of gain, noise figure and ip3 (third-intercept point).
using the rf budget analyzer app, you can:
build a cascade of rf elements.
calculate the per-stage and cascade output power, gain, noise figure, snr, and ip3 of the system.
export the per-stage and cascade values to the matlab™ workspace.
export the system design to rf blockset for simulation.
export the system design to rf blockset measurement testbench as a dut (device under test) subsystem and verify the results obtained using the app.
system architecture
the receiver system architecture designed using the app is:
the receiver bandwidth is between 5.825 ghz and 5.845 ghz.
build superheterodyne receiver
you can build all the components of the superheterodyne receiver using matlab command line and view the analysis using the rf budget analyzer app.
the first components in the superheterodyne receiver system architecture are the antenna and tr switch. we replace the antenna block with the effective power reaching the switch.
1. the system uses the tr switch to switch between the transmitter and the receiver. the switch adds a loss of 1.3 db to the system. create a trswitch
with a gain of -1.3 db, and oip3 of 37 dbm. to match the rf budget results from reference [1], the noise figure is assumed to be 2.3 db.
elements(1) = rfelement('name','trswitch','gain',-1.3,'nf',2.3,'oip3',37);
2. to model the rf bandpass filter use rffilter
to design the filter. from the example design if butterworth bandpass filter, load impedance of the filter is found to be 132.986 ohms. but for budget calculation, each stage is terminated by 50 ohms internally. therefore, to achieve an insertion loss of 1 db, the input impedance, zin of the next element, i.e., amplifier, is set to 132.896 ohms.
fcenter = 5.8e9; bwpass = 20e6; z = 132.986; elements(2) = rffilter('responsetype','bandpass', ... 'filtertype','butterworth','filterorder',6, ... 'passbandattenuation',10*log10(2), ... 'implementation','transfer function', ... 'passbandfrequency',[fcenter-bwpass/2 fcenter bwpass/2],'zout',50, ... 'name','rf_filter');
the s-parameters for this filter are not ideal and automatically inserts a loss of approximately -1db into the system.
3. use the amplifier
object to model a low noise amplifier
block with a gain of 15 db, noise figure of 1.5 db, and oip3 of 26 dbm.
elements(3) = amplifier( 'name','lna','gain',15,'nf',1.5,'oip3',26, ... 'zin',z);
4. model a gain
block with a gain of 10.5 db, noise figure of 3.5 db, and oip3 of 23 dbm.
elements(4) = amplifier( 'name','gain','gain',10.5,'nf',3.5,'oip3',23);
5. the receiver downconverts the rf frequency to an if frequency of 400 mhz. use the modulator
object to create demodulator block with a lo (local oscillator) frequency of 5.4 ghz, gain of -7 db, noise figure of 7 db, and oip3 of 15 dbm.
elements(5) = modulator('name','demod','gain',-7,'nf',7,'oip3',15, ... 'lo',5.4e9, 'convertertype','down');
6. to model the rf bandpass filter use rffilter
to design the filter.
fcenter = 400e6; bwpass = 5e6; elements(6) = rffilter('responsetype','bandpass', ... 'filtertype','butterworth','filterorder',4, ... 'passbandattenuation',10*log10(2), ... 'implementation','transfer function', ... 'passbandfrequency',[fcenter-bwpass/2 fcenter bwpass/2],'zout',50, ... 'name','if_filter');
the s-parameters for this filter are not ideal and automatically inserts a loss of approximately -1db into the system.
7. model an if amplifier
block with a gain of 40 db and a noise figure of 2.5 db.
elements(7) = amplifier( 'name','ifamp','gain',40,'nf',2.5,'zin',z);
8. as seen in the references, the receiver uses an agc (automatic gain control) block where the gain varies with the available input power level. for an input power of -80 db, the agc gain is at a maximum of 17.5 db. use an amplifier block to model an agc. model an agc
block with a gain of 17.5 db, noise figure of 4.3 db, and oip3 of 36 dbm.
elements(8) = amplifier('name','agc','gain',17.5,'nf',4.3,'oip3',36);
9. calculate the rbudget of the superheterodyne receiver using the following system parameters
: 5.8 ghz for input frequency
, -80 db for available input power
, and 20 mhz for signal bandwidth
. replace the antenna element with the effective available input power
which is estimated to be -66 db reaching the trswitch
superhet = rfbudget( 'elements',elements,'inputfrequency',5.8e9, ... 'availableinputpower',-66,'signalbandwidth',20e6)
superhet = rfbudget with properties: elements: [1x8 rf.internal.rfbudget.element] inputfrequency: 5.8 ghz availableinputpower: -66 dbm signalbandwidth: 20 mhz solver: friis autoupdate: true analysis results outputfrequency: (ghz) [ 5.8 5.8 5.8 5.8 0.4 0.4 0.4 0.4] outputpower: (dbm) [-67.3 -67.3 -53.3 -42.8 -49.8 -49.8 -10.8 6.7] transducergain: (db) [ -1.3 -1.3 12.7 23.2 16.2 16.2 55.2 72.7] nf: (db) [ 2.3 2.3 3.531 3.657 3.693 3.693 3.728 3.728] iip2: (dbm) [] oip2: (dbm) [] iip3: (dbm) [ 38.3 38.3 13.29 -0.3904 -3.824 -3.824 -3.824 -36.7] oip3: (dbm) [ 37 37 25.99 22.81 12.38 12.38 51.38 36] snr: (db) [32.66 32.66 31.43 31.31 31.27 31.27 31.24 31.24]
view the analysis in the rf budget analyser app by typing this command at the command line.
show(superhet);
10. the app displays the cascade values such as: output frequency of the receiver, output power, gain, noise figure, oip3, and snr (signal-to- noise-ratio).
11. the rf budget analyzer app saves the model in a mat-file format.
plot cascade transducer gain and cascade noise figure
1. plot the cascade transducer gain of the receiver using the function, rfplot
rfplot(superhet,'gaint')
view(90,0)
2. plot the cascade noise figure of the receiver.
rfplot(superhet,'nf')
view(90,0)
you can also use the plot
button on the rfbudgetanalyzer
app to plot the different output values.
export to matlab script
1. you can also export the model to matlab script format using the export button or:
h = exportscript(superhet);
the script opens automatically in a matlab editor window.
h.closenoprompt
verify output power and transducer gain using rf blockset simulation
1. use the export button to export the receiver to rf blockset or:
exportrfblockset(superhet)
2. run the rf blockset model to calculate the output power (dbm) and transducer gain (db) of the receiver. note that the results match the pout (dbm) and the gaint (db) values of the receiver obtained using the rf budget analyzer app.
3. look under the mask of the demodulator block. this block consists of an ideal filter and a channel select filter and an lo (local oscillator) for frequency up or down conversion.
4. the stop time for the simulation is zero. to simulate time-varying results, you need to change the stop time.
export to rf blockset testbench
1. use the export button to export the receiver to rf blockset measurement testbench or:
exporttestbench(superhet);
2. the rf blockset testbench consists of two subsystems, rf measurement unit
and device under test
.
3. the device under test
subsystem block contains the superheterodyne receiver you exported from the rf budget analyzer app. double-click on the dut subsystem block to look inside.
4. double-click on the rf measurement unit
subsystem block to see the system parameters. by default, rf blockset testbench verifies gain.
verify gain, noise figure, and ip3 using rf blockset testbench
you can verify the gain, noise figure, and ip3 measurements using the rf blockset testbench.
1. by default, the model verifies the gain measurement of the device under test. run the model to check the gain value. the simulated gain value matches the cascade transducer gain value from the app. the scope shows an output power of approximately 6.7 db at 400 mhz that matches the output power value in the rf budget analyzer app.
2. the rf blockset testbench calculates the spot noise figure. the calculation assumes a frequency independent system within a given bandwidth. to simulate a frequency independent system and calculate the correct noise figure value, you need to reduce the broad bandwidth of 20 mhz to a narrow bandwidth.
3. first, stop all simulations. double-click on the rf measurement unit
block. this opens the rf measurement unit parameters. in the measured quantity parameter drop down, change the parameter to nf (noise figure). in the parameters tab, change the baseband bandwidth (hz) to 2000 hz. click apply. to learn more about how to manipulate noise figure verification, click the instructions tab.
4. run the model again to check the noise figure value. the testbench noise figure value matches the cascade noise figure value from the rf budget analyzer app.
5. ip3 measurements rely on the creation and measurement of intermodulation tones that are usually small in amplitude and may be below the dut's noise floor. for accurate ip3 measurements, clear the simulate noise checkbox.
6. to verify oip3 (output third-order intercept), stop all simulations. open the rf measurement unit
dialog box. clear the simulate noise (both stimulus and dut internal) check box. change the measured quantity parameter to ip3. keep the ip type as output referred. to learn more about how to manipulate oip3 verification, click the instructions tab. click apply.
7. run the model. the testbench oip3 value matches the cascade oip3 value of the app.
8. to verify iip3 (input third-order intercept), stop all simulations. open rf measurement unit
dialog box. clear the simulate noise (both stimulus and dut internal) check box. change the measured quantity parameter in block parameters to ip3. change the ip type to input referred. to learn more about how to manipulate iip3 verification, click the instructions tab. click apply.
9. run the model again to check the iip3 value.
references
[1] hongbao zhou, bin luo. " design and budget analysis of rf receiver of 5.8ghz etc reader" published at communication technology (icct), 2010 12th ieee international conference, nanjing, china, november 2010.
[2] bin luo, peng li. "budget analysis of rf transceiver used in 5.8ghz rfid reader based on the etc-dsrc national specifications of china" published at wireless communications, networking and mobile computing, wicom '09. 5th international conference, beijing, china, september 2009.