ArticleslgStudy

science

Unfolding (DSP implementation)

Unfolding (DSP implementation) is a science topic covered in the lgStudy science library. This page brings together a partial reference excerpt, illustrations, worked examples, real-world applications and a short study plan, so you can understand Unfolding (DSP implementation) rather than just read about it. In short: Unfolding is a transformation technique of duplicating the functional blocks to increase the throughput of the DSP program in such a way that preserves its functional behavior at its outputs. Unfolding was first proposed by Keshab K.

Unfolding (DSP implementation) — main illustration
Unfolding (DSP implementation) — illustration

Key takeaways

  • Unfolding (DSP implementation) belongs to science; place it in that map before memorising details.
  • Learn the definition first, then one example that makes the definition concrete.
  • Connect Unfolding (DSP implementation) to a quantity you can measure, compute or draw — that is where exam questions come from.
  • Reproduce the core statement of Unfolding (DSP implementation) from memory before moving on to harder problems.

Reference excerpt

Unfolding is a transformation technique of duplicating the functional blocks to increase the throughput of the DSP program in such a way that preserves its functional behavior at its outputs. Unfolding was first proposed by Keshab K. Parhi and David G. Messerschmitt in 1989. Unfolding in general program is as known as Loop unrolling. Unfolding has applications in designing high-speed and low-power ASIC architectures. One application is to unfold the program to reveal hidden concurrency so that the program can be scheduled to a smaller iteration period, thus increasing the throughput of the implementation. Another application is parallel processing in word level or bit level. Therefore these transformed circuit could increase the throughput and decrease the power consumption.

Example For a DSP program y ( n ) = a y ( n − 9 ) + x ( n ) {\displaystyle \scriptstyle y(n)=ay(n-9)+x(n)} , replacing the index n {\displaystyle \scriptstyle n} by 2 k {\displaystyle \scriptstyle 2k} could result

y ( 2 k ) = a y ( 2 k − 9 ) + x ( 2 k ) {\displaystyle \scriptstyle y(2k)=ay(2k-9)+x(2k)} . Similarly, replacing the index n {\displaystyle \scriptstyle n} by 2 k + 1 {\displaystyle \scriptstyle 2k+1} could also result as

y ( 2 k + 1 ) = a y ( 2 k − 8 ) + x ( 2 k + 1 ) {\displaystyle \scriptstyle y(2k+1)=ay(2k-8)+x(2k+1)} . Hence, we transform the program into following program that receives 2 inputs x {\displaystyle \scriptstyle x} and produce 2 outputs y {\displaystyle \scriptstyle y} at each time.

y ( 2 k ) = a y ( 2 k − 9 ) + x ( 2 k ) {\displaystyle y(2k)=ay(2k-9)+x(2k)}

y ( 2 k + 1 ) = a y ( 2 k − 8 ) + x ( 2 k + 1 ) {\displaystyle y(2k+1)=ay(2k-8)+x(2k+1)}

Algorithm for unfolding Given a DSP program in Data flow graph(DFG) format and a unfolding factor J, unfolding process transforms the DSP program into a new one by duplicating the functional blocks and reconnecting the functional blocks while maintaining its DSP functionality. We call the program performed with factor J as J-unfolded DFG. In the J-unfolded DFG, for each node U in original DFG, there are J nodes in the transformed DFG with the same function as U. For each edge in the original DFG, there are J edges in the transformed DFG but its delay is only 1/J times to the original one.

Input format DFG A data flow graph is a labeled directed graph. Each node is labeled by a type indicating its functionality, and each edge is labeled by a number indicating its delay.

Unfolding algorithm Given Unfolding factor J

For each node U in the original DFG, first, we duplicate the J functional blocks as U0, U1, ..., UJ − 1, For each edge U arrow → V with w delays in the original DFG, we create the edges on transformed graph by Ui arrow → V(i+w)%J with ⌊ i + w J ⌋ {\displaystyle \scriptstyle \lfloor {\frac {i+w}{J}}\rfloor } for i = 0, 1, ... J − 1. The following graph shows the process of the algorithm. The original DFG is composed of 2 nodes and 1 edge with 37 delays. The unfolding process uses J = 4 as its unfolding factor. The algorithm first duplicates node U and V to 4 U nodes and 4 Vnodes. Then, it perform reconnecting on the nodes with corresponding delays, like U2 connects to V with index (2 + 37)%4 = 3. Besides, the delay on edge U1 to V2 is ⌊ 37 + 1 4 ⌋ = 9 {\displaystyle \scriptstyle \lfloor {\frac {37+1}{4}}\rfloor =9} , and the delay on edge U3 to V0 is ⌊ 37 + 3 4 ⌋ = 10 {\displaystyle \scriptstyle \lfloor {\frac {37+3}{4}}\rfloor =10} .

The following graph is another example showing the unfolding algorithm. Notice that, if there is the delay smaller than unfolding factor J, the J-unfolded DFG would create the edge with 0 delay but whose corresponding edge at original DFG may be the non-zero edge. Therefore, folding process is potential to create the 0-delay edge to increase the longest path in the DFG. ((P.S. fig. of bottom right is T2 that isn't T1))

Properties Unfolding preserves the number of delay elements in a DFG. This property holds since the sum of the unfolded DFG is

… excerpt ends here. Continue reading the full article.

Illustrations

Unfolding (DSP implementation) illustration
Unfolding (DSP implementation) illustration
Unfolding (DSP implementation) illustration
Unfolding (DSP implementation) illustration

Worked examples

Example 1 — a first encounter with Unfolding (DSP implementation)

Start with the simplest possible case. Write down what Unfolding (DSP implementation) claims or describes in one sentence, then invent the smallest concrete situation in which that sentence is true. In science, the smallest case is usually a single object, a single equation or a single measurement. Check that every symbol or term in your sentence has a meaning in that case.

Example 2 — changing one variable

Take the situation from Example 1 and change exactly one quantity: double it, halve it, or set it to zero. Predict what should happen to Unfolding (DSP implementation) before you calculate. Comparing your prediction with the result is the fastest way to find out whether you understand the idea or only the words.

Example 3 — an exam-style question

Typical questions about Unfolding (DSP implementation) ask you to (a) state it precisely, (b) apply it to given data, and (c) explain a limitation. Practise writing all three answers in under five minutes; the third part is what separates a full-mark answer from an average one.

Applications of Unfolding (DSP implementation)

In research
Unfolding (DSP implementation) appears in science research whenever the underlying quantities have to be modelled precisely. Papers usually cite it as a starting assumption and then explore where it breaks down.
In technology and industry
Engineering practice reuses Unfolding (DSP implementation) in design rules, simulations and safety margins. Knowing the idea lets you read a specification sheet and understand why the numbers look the way they do.
In the classroom
Unfolding (DSP implementation) is common in secondary-school and first-year university syllabi. It links to neighbouring topics Digital signal processing, so understanding it makes those chapters shorter.
In everyday life
Look for Unfolding (DSP implementation) outside the textbook — in sport, cooking, traffic, electronics or the sky above you. An example you found yourself is remembered far longer than one you were given.
Ask Teacher Smith questions about this articleOpens your AI tutor with a question about “Unfolding (DSP implementation)” →

Affiliate

Preply — study more efficiently by working with a personal tutor. 50% off.

How to study Unfolding (DSP implementation) in 20 minutes

  1. Read the reference excerpt below once, without taking notes.
  2. Close the page and write down what Unfolding (DSP implementation) means in your own words.
  3. Compare your version with the excerpt and mark what you missed.
  4. Work through the three examples above with pen and paper.
  5. Explain Unfolding (DSP implementation) out loud to somebody else — or to Teacher Smith in the lgStudy chat.

Frequently asked questions

What is Unfolding (DSP implementation) in simple terms?

Unfolding is a transformation technique of duplicating the functional blocks to increase the throughput of the DSP program in such a way that preserves its functional behavior at its outputs. Unfolding was first proposed by Keshab K.

Why does Unfolding (DSP implementation) matter?

Because it connects several science ideas at once: it gives you a definition you can apply, a quantity you can calculate, and a way to check whether a result is plausible.

How should I study Unfolding (DSP implementation)?

Read the excerpt, restate it from memory, then work through the examples and applications listed on this page. The five-step study plan above takes about twenty minutes.

What does this page cover?

It gives you a compact reference excerpt plus original lgStudy explanations, examples, applications and study material on Unfolding (DSP implementation).

Tags

  • Digital signal processing

Keep exploring