<< Chapter < Page Chapter >> Page >
You will apply the fast Fourier transform (FFT) to analyze the spectral content of an input signal in real time. You will use a length-64 Hamming window and no zero-padding. After computing the FFT, you will compute the squared-magnitude of the sampled spectrum and send it to the output for display on the oscilloscope.

Implementation

You will use the FFT to compute the spectrum of a windowed input. For your implementation, use a 64-point Hammingwindow. You may use the MATLAB function save_coef (available as save_coef.m to save the window to a file that you can then include in your code with the .copy directive.

Fft usage

The FFT routine fft.asm computes an in-place, complex FFT. The length of the FFT is defined as a label K_FFT_SIZE , and the algorithm assumes that the input starts at data memory location fft_data . To have your code assemble for a 64-point FFT, you will haveto include the following label definitions in your code.

K_FFT_SIZE .set 64 ; size of FFT K_LOGN .set 6 ; number of stages (log_2(N))

In addition to defining these constants, you will have to include twiddle-factor tables for the FFT. Copy these tables ( twiddle1 and twiddle2 ) into your work directory. Note that the tables are each 512 points long, representing valuesfrom 0 to just shy of 180 degrees, and must be accessed as a circular buffer. To include these tables at the properlocation in memory with the appropriate labels referenced by the FFT, use the following:

.sect ".data" .align 1024 sine .copy "twiddle1" .align 1024 cosine .copy "twiddle2"

To run the FFT code, use the instruction call fft where fft is a label at the beginning of the available fft.asm code.

The FFT provided requires that the input be in bit-reversed order, with alternating real and imaginary components. Bit-reversed addressing is aconvenient way to order input x n into a FFT so that the output X k is in sequential order ( i.e. , X 0 , X 1 ,, X N 1 for an N -point FFT). The table below illustrates the bit-reversed order for an eight-point sequence.

Input Order Binary Representation Bit-Reversed Representation Output Order
0 000 000 0
1 001 100 4
2 010 010 2
3 011 110 6
4 100 001 1
5 101 101 5
6 110 011 3
7 111 111 7

The following routine performs the bit-reversed reordering of the input data. The routine assumes that the input isstored in data memory starting at the location labeled input_data and consists of alternating real and imaginary parts. Because our input data in this exercise ispurely real, you will have to set the imaginary parts to zero by zeroing out every other memory location.

1 bit_rev: 2 SSBX FRCT ; fractional mode is on 3 STM #input_data,AR3 ; AR3 -> 1 st original input 4 STM #fft_data,AR7 ; AR7 -> data processing buffer 5 MVMM AR7,AR2 ; AR2 -> 1st bit1 reversed data 6 STM #K_FFT_SIZE-1,BRC 7 RPTBD bit_rev_end-1 8 STM #K_FFT_SIZE,AR0 ; AR0 = 1/2 size of circ buffer 9 MVDD *AR3+,*AR2+ 10 MVDD *AR3-,*AR2+ 11 MAR *AR3+0B 12 bit_rev_end: 13 RET ; return to Real FFT main module

As mentioned, in the above code input_data is a label indicating the start of the input data and fft_data is a label indicating the start of a circular buffer where the bit-reversed data will be written.Include the bit_rev routine in your code and call it using the call bit_rev command in the appropriate location. Note that although AR7 is not used by the bit-reversed routine directly, it is used extensively in the FFT routine to keep track of the start ofthe FFT data space.

In general, to have a pointer index memory in bit-reversed order, the AR0 register needs to be set to one-half the length of the circular buffer; a statement suchas ARx+0B is used to move the ARx pointer to the next location. For more information regarding the bit-reversed addressing mode, refer to page 5-18 in the CPU and Peripherals manual. See Figure 4-10 in the Applications Guide to view the ordering of the data expected by the FFT routine.

The FFT code uses all the pointers available. Additionally, it does not restorethe pointers it uses to their original values, so you will have to re-initialize any pointers you are using after the fft call.

Displaying the spectrum

Once the DFT has been computed, calculate the squared-magnitude of the spectrum for display.

X k 2 X k 2 X k 2
You may find the assembly instructions squr and squra useful in implementing . Why do we display the squared-magnitude instead of the magnitude itself?

Because the squared magnitude is always nonnegative, you can replace one of the magnitude values with a -1.0 as a triggerpulse for display on the oscilloscope. This is easily performed by replacing the DC term, k 0 , with a -1.0 when copying the magnitude values to the output buffer. The trigger pulse is necessary for theoscilloscope to lock to a specific point in the spectrum and keep the spectrum fixed on the scope.

Questions & Answers

Three charges q_{1}=+3\mu C, q_{2}=+6\mu C and q_{3}=+8\mu C are located at (2,0)m (0,0)m and (0,3) coordinates respectively. Find the magnitude and direction acted upon q_{2} by the two other charges.Draw the correct graphical illustration of the problem above showing the direction of all forces.
Kate Reply
To solve this problem, we need to first find the net force acting on charge q_{2}. The magnitude of the force exerted by q_{1} on q_{2} is given by F=\frac{kq_{1}q_{2}}{r^{2}} where k is the Coulomb constant, q_{1} and q_{2} are the charges of the particles, and r is the distance between them.
Muhammed
What is the direction and net electric force on q_{1}= 5µC located at (0,4)r due to charges q_{2}=7mu located at (0,0)m and q_{3}=3\mu C located at (4,0)m?
Kate Reply
what is the change in momentum of a body?
Eunice Reply
what is a capacitor?
Raymond Reply
Capacitor is a separation of opposite charges using an insulator of very small dimension between them. Capacitor is used for allowing an AC (alternating current) to pass while a DC (direct current) is blocked.
Gautam
A motor travelling at 72km/m on sighting a stop sign applying the breaks such that under constant deaccelerate in the meters of 50 metres what is the magnitude of the accelerate
Maria Reply
please solve
Sharon
8m/s²
Aishat
What is Thermodynamics
Muordit
velocity can be 72 km/h in question. 72 km/h=20 m/s, v^2=2.a.x , 20^2=2.a.50, a=4 m/s^2.
Mehmet
A boat travels due east at a speed of 40meter per seconds across a river flowing due south at 30meter per seconds. what is the resultant speed of the boat
Saheed Reply
50 m/s due south east
Someone
which has a higher temperature, 1cup of boiling water or 1teapot of boiling water which can transfer more heat 1cup of boiling water or 1 teapot of boiling water explain your . answer
Ramon Reply
I believe temperature being an intensive property does not change for any amount of boiling water whereas heat being an extensive property changes with amount/size of the system.
Someone
Scratch that
Someone
temperature for any amount of water to boil at ntp is 100⁰C (it is a state function and and intensive property) and it depends both will give same amount of heat because the surface available for heat transfer is greater in case of the kettle as well as the heat stored in it but if you talk.....
Someone
about the amount of heat stored in the system then in that case since the mass of water in the kettle is greater so more energy is required to raise the temperature b/c more molecules of water are present in the kettle
Someone
definitely of physics
Haryormhidey Reply
how many start and codon
Esrael Reply
what is field
Felix Reply
physics, biology and chemistry this is my Field
ALIYU
field is a region of space under the influence of some physical properties
Collete
what is ogarnic chemistry
WISDOM Reply
determine the slope giving that 3y+ 2x-14=0
WISDOM
Another formula for Acceleration
Belty Reply
a=v/t. a=f/m a
IHUMA
innocent
Adah
pratica A on solution of hydro chloric acid,B is a solution containing 0.5000 mole ofsodium chlorid per dm³,put A in the burret and titrate 20.00 or 25.00cm³ portion of B using melting orange as the indicator. record the deside of your burret tabulate the burret reading and calculate the average volume of acid used?
Nassze Reply
how do lnternal energy measures
Esrael
Two bodies attract each other electrically. Do they both have to be charged? Answer the same question if the bodies repel one another.
JALLAH Reply
No. According to Isac Newtons law. this two bodies maybe you and the wall beside you. Attracting depends on the mass och each body and distance between them.
Dlovan
Are you really asking if two bodies have to be charged to be influenced by Coulombs Law?
Robert
like charges repel while unlike charges atttact
Raymond
What is specific heat capacity
Destiny Reply
Specific heat capacity is a measure of the amount of energy required to raise the temperature of a substance by one degree Celsius (or Kelvin). It is measured in Joules per kilogram per degree Celsius (J/kg°C).
AI-Robot
specific heat capacity is the amount of energy needed to raise the temperature of a substance by one degree Celsius or kelvin
ROKEEB
Got questions? Join the online conversation and get instant answers!
Jobilize.com Reply

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Dsp laboratory with ti tms320c54x. OpenStax CNX. Jan 22, 2004 Download for free at http://cnx.org/content/col10078/1.2
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Dsp laboratory with ti tms320c54x' conversation and receive update notifications?

Ask