Next Article in Journal
Application of DS-DFT to the Fine Spectral Estimation of High-Noise Signals
Previous Article in Journal
High-Precision Main Shaft Displacement Measurement for Wind Turbines Using an Optimized Position-Sensitive Detector
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

The Development of Fast DST-I Algorithms for Short-Length Input Sequences

by
Mateusz Raciborski
1,*,
Aleksandr Cariow
2,* and
Jakub Bandach
2
1
Faculty of Computer Science and Telecommunications, Maritime University of Szczecin, Wały Chrobrego 1–2, 70-500 Szczecin, Poland
2
Faculty of Computer Science and Information Technology, West Pomeranian University of Technology, Żołnierska 49, 71-210 Szczecin, Poland
*
Authors to whom correspondence should be addressed.
Electronics 2024, 13(24), 5056; https://doi.org/10.3390/electronics13245056
Submission received: 30 November 2024 / Revised: 17 December 2024 / Accepted: 18 December 2024 / Published: 23 December 2024
(This article belongs to the Section Circuit and Signal Processing)

Abstract

:
The subject of this paper is the development of rationalized algorithms of discrete sinusoidal transform of type I for short sequences of length N = 2, 3, 4, 5, 6, 7, and 8. Here, by the word “rationalization”, we mean the reduction of the number of arithmetic operations required to implement the algorithms. The arithmetic complexity of the developed algorithms is presented in the final table. For each algorithm, we also provide data flow graphs demonstrating the space–time structure of the computational processes. The algorithms were tested to verify their validity using MATLAB software (version R2023).

1. Introduction

Discrete trigonometric (sine and cosine) transforms [1,2,3] are used today in many digital signal processing applications [4,5,6,7,8,9,10,11,12,13,14,15]. There are eight types of cosine and eight types of sine transforms. A list of all 16 types of discrete cosine and sine transforms can be found, for example, in [3,16]. Undoubtedly, the most popular are discrete cosine transforms. Discrete sine transforms are less popular. Nevertheless, many articles are devoted to the use of discrete sine transforms [2]. It is well known that any linear transform can be represented as a matrix–vector product. Computing this product directly takes a long time because the multiplicative complexity of this operation is proportional to the square of the order of the matrix. Multiplication is the most expensive of all arithmetic operations, apart from division, and therefore, developers of efficient algorithms are focused on reducing the number of multiplication operations. Traditionally, algorithms with reduced computational complexity are called fast algorithms. Over five decades, many fast algorithms for the efficient computation of one-/two-dimensional discrete trigonometric transform have been developed [17,18,19,20,21,22,23,24].
Among other things, the development of efficient algorithms for the implementation of small-sized discrete trigonometric transforms is of particular interest. Algorithms for some types of small-size discrete trigonometric transforms have already been developed [25,26,27,28]. Among other discrete trigonometric transforms, the discrete sine transform type I (DST-I) [29] is also an important tool in signal analysis and data processing, such as noise estimation and image denoising [5,6], discrete multi-tone systems [4,30,31], audio watermarking [11], EEG signal classification [12], and noisy speech enhancement [32], and others [33,34]. However, the purpose of our paper is not to justify the application of DST-I. We believe that since it has been defined, its feasibility has already been proven and is beyond doubt [2]. We focus on rationalizing the computation of this transform for the case of short input data sequence lengths. Thus, this paper is devoted to the design of DST-I algorithms with reduced multiplicative complexity for input data sequences of length N = 2, 3, 4, 5, 6, 7, 8.

2. Materials and Methods

First, we would like to present the sources we used while working on the solutions for the discrete sine transform type I (DST-I) algorithms presented here. We believe that they will help us better understand the essence of DST-I and the methodology for constructing our solutions.
DFT, DCT, MDCT, DST, and Fourier spectrum analysis of the signal were performed in [35]. An excellent description of the DCT and DST digital signal processing algorithms has been provided by Nirajan Pant [36]. An extensive description of the different types of DFT, DCT, and DST was given by Perera [37]. The paper in [38] presents a systematic methodology for deriving and classifying fast algorithms for linear transformations.
Our methodology, which we use to achieve the solutions presented in this paper, is based on specific matrix structures. These structures are included in “Table 3. The specific structures of N × N matrix patterns” in the paper [39]. Our research work is to analyze the matrix that we want to rationalize, and then set the values in that matrix so that the best possible matrix pattern can be applied to it.
Moreover, in the literature on the subject, we found many different ways of writing the expression for DST-I [3,18,40,41,42]. We found the DST-I notation method most similar to the one we use in the work of [43]. So, DST-I can be expressed as follows:
y k = 2 N + 1 n = 0 N 1 x n sin π k + 1 n + 1 N + 1
where
k = 0 , 1 , , N 1 ,
y k —the output data after performing DST-I,
x n —input data, and
N—number of signal samples.
Using matrix notation, we can write DST-I as follows:
Y N × 1 = C N X N × 1
where
Y N × 1 = y 0 , y 1 , , y N 1 T , X N × 1 = x 0 , x 1 , , x N 1 T ,
C N = c 0 , 0 c 0 , 1 c 0 , N 1 c 1 , 0 c 1 , 1 c 1 , N 1 c N 1 , 0 c N 1 , 1 c N 1 , N 1 ,
c k , n = 2 N + 1 sin π k + 1 n + 1 N + 1 , for k , n = 0 , 1 , , N 1 .
DST-I in matrix notation is as takes after
y 0 y 1 y N 1 = 2 N + 1 sin π N + 1 sin 2 π N + 1 sin N π N + 1 sin 2 π N + 1 sin 4 π N + 1 sin 2 N π N + 1 sin N π N + 1 sin 2 N π N + 1 sin N 2 π N + 1 x 0 x 1 x N 1 .
We use the following notation in our work: [39,44]:
  • I N —is an order N identity matrix;
  • H 2 —a 2 × 2 Hadamard matrix;
  • ⊗—the Kronecker product of two matrices; and
  • ⊕—direct sum of two matrices.
An empty cell in matrix means that there is a zero there. Multipliers are denoted as s m ( N ) . In the graphs, we do not enter a superscript in order to maintain their clarity and elegance.

3. Two-Point DST-I Solution

The following is the matrix form expression for two-point DST-I:
Y 2 × 1 = C 2 X 2 × 1
where
Y 2 × 1 = y 0 , y 1 T , X 2 × 1 = x 0 , x 1 T ,
C 2 = a 2 a 2 a 2 a 2 , a 2 = 0.7071 .
Presently, we are able determine the final expression for DST-I for N = 2:
Y 2 × 1 = H 2 D 2 ( 0 ) X 2 × 1
where
H 2 = 1 1 1 1 , D 2 ( 0 ) = diag s 0 ( 2 ) , s 1 ( 2 ) , s 0 ( 2 ) = s 1 ( 2 ) = a 2 .
The data flow graph for our solution for two-point DST-I is shown in Figure 1. The naive, direct computation requires 2 additions and 4 multiplications. As can be observed, our solution uses 2 additions and 2 multiplications, reducing the number of multiplications from 4 to 2.

4. Three-Point DST-I Solution

The following is the matrix form expression for three-point DST-I:
Y 3 × 1 = C 3 X 3 × 1
where
Y 3 × 1 = y 0 , y 1 , y 2 T , X 3 × 1 = x 0 , x 1 , x 2 T ,
C 3 = a 3 b 3 a 3 b 3 0 b 3 a 3 b 3 a 3 , a 3 = 0.5 , b 3 = 0.7071 .
Now, we will divide the matrix C 3 into two parts:
C 3 = C 3 ( a ) + C 3 ( b )
where
C 3 ( a ) = a 3 a 3 a 3 a 3 , C 3 ( b ) = b 3 b 3 b 3 b 3 .
Matrix C 3 ( a ) after omitting terms equal to zero is as takes after
C 2 = a 3 a 3 a 3 a 3 .
Presently, we are able determine the final expression for DST-I for N = 3:
Y 3 × 1 = W 3 ( 1 ) D 3 W 3 ( 0 ) X 3 × 1
where
W 3 ( 0 ) = 1 1 1 1 1 , D 3 = diag s 0 ( 3 ) , s 1 ( 3 ) , s 2 ( 3 ) ,
s 0 ( 3 ) = a 3 , s 1 ( 3 ) = s 2 ( 3 ) = b 3 , W 3 ( 1 ) = 1 1 1 1 1 .
The data flow graph for our solution for three-point DST-I is shown in Figure 2. The naive, direct computation requires 5 additions and 4 multiplications. As can be observed, our solution uses 4 additions and 2 multiplications, reducing the number of additions from 5 to 4 and the number of multiplications from 4 to 2.

5. Four-Point DST-I Solution

The following is the matrix form expression for four-point DST-I:
Y 4 × 1 = C 4 X 4 × 1
where
Y 4 × 1 = y 0 , y 1 , y 2 , y 3 T , X 4 × 1 = x 0 , x 1 , x 2 , x 3 T , C 4 = a 4 b 4 b 4 a 4 b 4 a 4 a 4 b 4 b 4 a 4 a 4 b 4 a 4 b 4 b 4 a 4 , a 4 = 0.3717 , b 4 = 0.6015 .
Now, we swap the columns and rows in matrix C 4 to group the a 4 and b 4 terms so that the obtained matrix is consistent with the matrix pattern [39]:
A 2 B 2 B 2 A 2 where A 2 = a 4 a 4 a 4 a 4 , B 2 = b 4 b 4 b 4 b 4 .
This is accomplished by the permutation π 4 ( 0 ) :
π 4 ( 0 ) = 1 2 3 4 1 4 3 2 .
Considering this, we may obtain the following expression for the first stage of decomposition:
Y 4 × 1 = P 4 ( π 4 ( 0 ) ) W 4 × 6 D 6 ( 0 ) W 6 × 4 P 4 ( π 4 ( 0 ) ) X 4 × 1
where
P 4 ( π 4 ( 0 ) ) = 1 1 1 1 , W 6 × 4 = 1 1 1 1 1 1 1 1 ,
D 6 ( 0 ) = F 2 G 2 B 2 , F 2 = A 2 B 2 , G 2 = A 2 B 2 ,
W 4 × 6 = 1 1 1 1 1 1 1 1 .
The matrices F 2 and G 2 take after
F 2 = a 4 b 4 a 4 b 4 a 4 b 4 a 4 + b 4 , G 2 = a 4 b 4 a 4 b 4 a 4 b 4 a 4 + b 4 .
As we can see above, these matrices do not require any operations to reduce complexity, because they both follow this pattern:
a a a a .
Presently, we are able determine the final expression for DST-I for N = 4:
Y 4 × 1 = P 4 ( π 4 ( 0 ) ) W 4 × 6 D 6 ( 1 ) W 6 ( 0 ) W 6 × 4 P 4 ( π 4 ( 0 ) ) X 4 × 1
where
W 6 ( 0 ) = H 2 H 2 H 2 = H 2 H 2 H 2 , D 6 ( 1 ) = diag s 0 ( 4 ) , s 1 ( 4 ) , , s 5 ( 4 ) ,
s 0 ( 4 ) = s 1 ( 4 ) = a 4 b 4 , s 2 ( 4 ) = s 3 ( 4 ) = a 4 b 4 , s 4 ( 4 ) = s 5 ( 4 ) = b 4 .
The data flow graph for our solution for four-point DST-I is shown in Figure 3. The naive, direct computation requires 12 additions and 16 multiplications. As can be observed, our solution uses 12 additions and 6 multiplications, reducing the number of multiplications from 16 to 6.

6. Five-Point DST-I Solution

The following is the matrix form expression for five-point DST-I:
Y 5 × 1 = C 5 X 5 × 1
where
Y 5 × 1 = y 0 , y 1 , y 2 , y 3 , y 4 T , X 5 × 1 = x 0 , x 1 , x 2 , x 3 , x 4 T ,
C 5 = a 5 b 5 c 5 b 5 a 5 b 5 b 5 0 b 5 b 5 c 5 0 c 5 0 c 5 b 5 b 5 0 b 5 b 5 a 5 b 5 c 5 b 5 a 5 , a 5 = 0.2887 , b 5 = 0.5 , c 5 = 0.5774 .
Now, we swap the columns and rows in matrix C 5 to be able to perform operations that are beneficial to us. This is accomplished by the permutation π 5 ( 0 ) for the columns and permutation π 5 ( 1 ) for the rows:
π 5 ( 0 ) = 1 2 3 4 5 1 5 3 4 2 , π 5 ( 1 ) = 1 2 3 4 5 1 4 3 5 2 .
After permutations, we divide the matrix C 5 into two parts:
C 5 = C 5 ( a ) + C 5 ( b )
where
C 5 ( a ) = a 5 a 5 b 5 b 5 b 5 b 5 b 5 b 5 a 5 a 5 b 5 b 5 b 5 b 5 b 5 b 5 , C 5 ( b ) = c 5 c 5 c 5 c 5 c 5 .
The matrix C 5 ( a ) after omitting terms equal to zero is as follows:
C 4 = a 5 a 5 b 5 b 5 b 5 b 5 b 5 b 5 a 5 a 5 b 5 b 5 b 5 b 5 b 5 b 5 .
The matrix C 4 matches the matrix pattern:
A 2 B 2 A 2 B 2 where A 2 = a 5 a 5 b 5 b 5 , B 2 = b 5 b 5 b 5 b 5 .
Having stated this, we can write down the following expression for the first stage of rationalization:
Y 5 × 1 = P 5 ( π 5 ( 1 ) ) W 5 × 7 W 7 × 6 D 6 ( 2 ) W 6 × 7 W 7 × 5 ( 0 ) P 5 ( π 5 ( 0 ) ) X 5 × 1
where
P 5 ( π 5 ( 0 ) ) = 1 1 1 1 1 , W 7 × 5 ( 0 ) = 1 1 1 1 1 1 1 ,
W 6 × 7 = I 4 1 1 1 1 , D 6 ( 2 ) = A 2 B 2 c 5 c 5 , W 7 × 6 = W 4 1 1 1 ,
W 4 = H 2 I 2 , W 5 × 7 = 1 1 1 1 1 1 1 , P 5 ( π 5 ( 1 ) ) = 1 1 1 1 1 .
Next, matrices A 2 and B 2 have structures that correspond to matrix patterns that are beneficial to us. We will immediately derive the final expression for DST-I for N = 5:
Y 5 × 1 = P 5 ( π 5 ( 1 ) ) W 5 × 7 W 7 × 6 D 6 ( 3 ) W 6 ( 1 ) W 6 × 7 W 7 × 5 ( 0 ) P 5 ( π 5 ( 0 ) ) X 5 × 1
where
W 6 ( 1 ) = H 2 H 2 I 2 , D 6 ( 3 ) = diag s 0 ( 5 ) , s 1 ( 5 ) , , s 5 ( 5 ) ,
s 0 ( 5 ) = a 5 , s 1 ( 5 ) = s 2 ( 5 ) = s 3 ( 5 ) = b 5 , s 4 ( 5 ) = s 5 ( 5 ) = c 5 .
The data flow graph for our solution for five-point DST-I is shown in Figure 4. The naive, direct computation requires 16 additions and 9 multiplications. As can be observed, our solution uses 12 additions and 3 multiplications, reducing the number of additions from 16 to 12 and the number of multiplications from 9 to 3.

7. Six-Point DST-I Solution

The following is the matrix form expression for six-point DST-I:
Y 6 × 1 = C 6 X 6 × 1
where
Y 6 × 1 = y 0 , y 1 , y 2 , y 3 , y 4 , y 5 T , X 6 × 1 = x 0 , x 1 , x 2 , x 3 , x 4 , x 5 T ,
C 6 = a 6 b 6 c 6 c 6 b 6 a 6 b 6 c 6 a 6 a 6 c 6 b 6 c 6 a 6 b 6 b 6 a 6 c 6 c 6 a 6 b 6 b 6 a 6 c 6 b 6 c 6 a 6 a 6 c 6 b 6 a 6 b 6 c 6 c 6 b 6 a 6 , a 6 = 0.2319 , b 6 = 0.4179 , c 6 = 0.5211 .
Now, we swap the columns and rows in matrix C 6 to match the matrix pattern:
A 3 A 3 B 3 B 3 where A 3 = a 6 b 6 c 6 b 6 c 6 a 6 c 6 a 6 b 6 , B 3 = c 6 a 6 b 6 b 6 c 6 a 6 a 6 b 6 c 6 .
This is accomplished by the permutation π 6 ( 0 ) for the columns and permutation π 6 ( 1 ) for the rows:
π 6 ( 0 ) = 1 2 3 4 5 6 1 2 3 6 5 4 , π 6 ( 1 ) = 1 2 3 4 5 6 1 5 3 4 2 6 .
Considering this, we may obtain the following expression for the first stage of decomposition:
Y 6 × 1 = P 6 ( π 6 ( 1 ) ) D 6 ( 4 ) W 6 ( 2 ) P 6 ( π 6 ( 0 ) ) X 6 × 1
where
P 6 ( π 6 ( 0 ) ) = I 3 1 1 1 , W 6 ( 2 ) = H 2 I 3 , D 6 ( 4 ) = A 3 B 3 , P 6 ( π 6 ( 1 ) ) = 1 1 1 1 1 1 .
Now, we focus on the matrices A 3 and B 3 . We define the permutation π 3 ( 0 ) as follows:
π 3 ( 0 ) = 1 2 3 1 3 2 .
Now, we swap the rows in matrix A 3 using the π 3 ( 0 ) permutation. Furthermore, we will change the signs in the first column and first row of this matrix. After these operations, the matrix has the following form:
A 3 = a 6 c 6 b 6 b 6 a 6 c 6 c 6 b 6 a 6 .
Next, we apply a circular convolution [44] to the A 3 matrix. Below are the expressions to calculate the circular convolution values for a matrix of size 3.
h 0 h 2 h 1 h 1 h 0 h 2 h 2 h 1 h 0 , s 0 = 1 3 h 0 + h 1 + h 2 , s 2 = h 1 h 2 , s 1 = h 0 h 2 , s 3 = 1 3 h 0 + h 1 2 h 2 .
So, for A 3 , we have
s 0 ( 6 ) = a 6 c 6 b 6 3 , s 1 ( 6 ) = a 6 + c 6 , s 2 ( 6 ) = b 6 + c 6 , s 3 ( 6 ) = a 6 b 6 + 2 c 6 3 .
The calculation procedure for matrix A 3 is as follows:
A 3 = P 3 ( 1 ) T 3 ( 1 ) A 3 × 4 D 4 ( 0 ) A 4 × 3 T 3 ( 0 ) P 3 ( 0 )
where
P 3 ( 0 ) = 1 1 1 , T 3 ( 0 ) = 1 1 1 1 1 1 1 , A 4 × 3 = 1 1 1 1 1 ,
D 4 ( 0 ) = diag s 0 ( 6 ) , s 1 ( 6 ) , s 2 ( 6 ) , s 3 ( 6 ) , A 3 × 4 = 1 1 1 1 1 ,
T 3 ( 1 ) = 1 1 1 1 1 1 1 , P 3 ( 1 ) = 1 1 1 .
In the matrix B 3 , we will change the signs in the third column and third row. After these operations, the matrix has the following form:
B 3 = c 6 a 6 b 6 b 6 c 6 a 6 a 6 b 6 c 6 .
And again, a circular convolution matrix will be used:
s 4 ( 6 ) = c 6 + b 6 a 6 3 , s 5 ( 6 ) = c 6 + a 6 , s 6 ( 6 ) = b 6 + a 6 , s 7 ( 6 ) = c 6 + b 6 + 2 a 6 3 .
The calculation procedure for matrix B 3 is as follows:
B 3 = P 3 ( 2 ) T 3 ( 1 ) A 3 × 4 D 4 ( 1 ) A 4 × 3 T 3 ( 0 ) P 3 ( 2 )
where
P 3 ( 2 ) = 1 1 1 , D 4 ( 1 ) = diag s 4 ( 6 ) , s 5 ( 6 ) , s 6 ( 6 ) , s 7 ( 6 ) .
In regard to this, we can determine the final expression for DST-I for N = 6:
Y 6 × 1 = P 6 ( π 6 ( 1 ) ) P 6 ( 2 ) A 6 ( 2 ) A 6 × 8 D 8 ( 0 ) A 8 × 6 A 6 ( 1 ) P 6 ( 1 ) W 6 ( 2 ) P 6 ( π 6 ( 0 ) ) X 6 × 1
where
P 6 ( 1 ) = P 3 ( 0 ) P 3 ( 2 ) , A 6 ( 1 ) = T 3 ( 0 ) T 3 ( 0 ) , A 8 × 6 = A 4 × 3 A 4 × 3 ,
D 8 ( 0 ) = D 4 ( 0 ) D 4 ( 1 ) , A 6 × 8 = A 3 × 4 A 3 × 4 , A 6 ( 2 ) = T 3 ( 1 ) T 3 ( 1 ) ,
P 6 ( 2 ) = P 3 ( 1 ) P 3 ( 2 ) .
The data flow graph for our solution for six-point DST-I is shown in Figure 5. The naive, direct computation requires 30 additions and 36 multiplications. As can be observed, our solution uses 28 additions and 8 multiplications, reducing the number of additions from 30 to 28 and the number of multiplications from 36 to 8.

8. Seven-Point DST-I Solution

The following is the matrix form expression for seven-point DST-I:
Y 7 × 1 = C 7 X 7 × 1
where
Y 7 × 1 = y 0 , y 1 , y 2 , y 3 , y 4 , y 5 , y 6 T , X 7 × 1 = x 0 , x 1 , x 2 , x 3 , x 4 , x 5 , x 6 T ,
C 7 = a 7 b 7 c 7 d 7 c 7 b 7 a 7 b 7 d 7 b 7 0 b 7 d 7 b 7 c 7 b 7 a 7 d 7 a 7 b 7 c 7 d 7 0 d 7 0 d 7 0 d 7 c 7 b 7 a 7 d 7 a 7 b 7 c 7 b 7 d 7 b 7 0 b 7 d 7 b 7 a 7 b 7 c 7 d 7 c 7 b 7 a 7 , a 7 = 0.1913 , b 7 = 0.3536 , c 7 = 0.4619 , d 7 = 0.5 .
Now, we swap the columns and rows in matrix C 7 . For this purpose, we define the permutation π 7 ( 0 ) and π 7 ( 1 ) as follows:
π 7 ( 0 ) = 1 2 3 4 5 6 7 1 6 3 4 7 2 5 , π 7 ( 1 ) = 1 2 3 4 5 6 7 1 2 3 4 7 6 5 .
Permute columns of matrix C 7 according to π 7 ( 0 ) and rows according to π 7 ( 1 ) . Moreover, we need to change the sign in row 6 and sign in column 2. These operations are described as follows:
C 7 = P 7 ( π 7 ( 1 ) ) P 7 ( 1 ) C 7 P 7 ( π 7 ( 0 ) ) P 7 ( 0 ) T
where
P 7 ( 0 ) = 1 1 1 1 1 1 1 , P 7 ( π 7 ( 0 ) ) = 1 1 1 1 1 1 1 ,
P 7 ( 1 ) = 1 1 1 1 1 1 1 , P 7 ( π 7 ( 1 ) ) = 1 1 1 1 1 1 1 ,
The matrix C 7 is as takes after:
C 7 = a 7 b 7 c 7 d 7 a 7 b 7 c 7 b 7 d 7 b 7 b 7 d 7 b 7 c 7 b 7 a 7 d 7 c 7 b 7 a 7 d 7 d 7 d 7 d 7 a 7 b 7 c 7 d 7 a 7 b 7 c 7 b 7 d 7 b 7 b 7 d 7 b 7 c 7 b 7 a 7 d 7 c 7 b 7 a 7 .
Now we will divide the matrix C 7 into two parts:
C 7 = C 7 ( a ) + C 7 ( b )
where
C 7 ( a ) = a 7 b 7 c 7 a 7 b 7 c 7 b 7 d 7 b 7 b 7 d 7 b 7 c 7 b 7 a 7 c 7 b 7 a 7 a 7 b 7 c 7 a 7 b 7 c 7 b 7 d 7 b 7 b 7 d 7 b 7 c 7 b 7 a 7 c 7 b 7 a 7 ,
C 7 ( b ) = d 7 d 7 d 7 d 7 d 7 d 7 d 7 d 7 .
The matrix C 7 ( b ) has one element in the first, third, fifth, and seventh rows and four elements with the same value in the fourth row, which allows us to reduce the number of operations without the need for further transformations. The matrix C 7 ( a ) after removing terms equal to zero is as follows:
C 6 = a 7 b 7 c 7 a 7 b 7 c 7 b 7 d 7 b 7 b 7 d 7 b 7 c 7 b 7 a 7 c 7 b 7 a 7 a 7 b 7 c 7 a 7 b 7 c 7 b 7 d 7 b 7 b 7 d 7 b 7 c 7 b 7 a 7 c 7 b 7 a 7 .
Now, we can see that the matrix C 6 matches the following matrix pattern:
A 3 B 3 B 3 A 3
where
A 3 = a 7 b 7 c 7 b 7 d 7 b 7 c 7 b 7 a 7 , B 3 = a 7 b 7 c 7 b 7 d 7 b 7 c 7 b 7 a 7 .
Considering this, we may obtain the following expression for the first stage of decomposition:
Y 7 × 1 = P 7 ( π 7 ( 1 ) ) P 7 ( 1 ) W 7 × 11 W 11 × 8 D 8 ( 1 ) W 8 × 11 W 11 × 7 P 7 ( π 7 ( 0 ) ) P 7 ( 0 ) X 7 × 1
where
W 11 × 7 = 1 1 1 1 1 1 1 1 1 1 1 , W 8 × 11 = H 2 I 3 1 1 1 1 1 , D 8 ( 1 ) = F 3 G 3 d 7 d 7 , F 3 = A 3 + B 3 / 2 , G 3 = A 3 B 3 / 2 ,
W 11 × 8 = H 2 I 3 1 1 1 1 1 , W 7 × 11 = 1 1 1 1 1 1 1 1 1 1 1 .
The matrices F 3 and G 3 are as takes after:
F 3 = a 7 b 7 c 7 b 7 d 7 b 7 c 7 b 7 a 7 + a 7 b 7 c 7 b 7 d 7 b 7 c 7 b 7 a 7 2 = a 7 c 7 d 7 c 7 a 7 ,
G 3 = a 7 b 7 c 7 b 7 d 7 b 7 c 7 b 7 a 7 a 7 b 7 c 7 b 7 d 7 b 7 c 7 b 7 a 7 2 = b 7 b 7 b 7 b 7 .
Now, we will divide the matrix F 3 into two parts:
F 3 = F 3 ( a ) + F 3 ( b )
where
F 3 ( a ) = a 7 c 7 c 7 a 7 , F 3 ( b ) = d 7 .
The matrix F 3 ( a ) after removing terms equal to zero is as follows:
F 2 = a 7 c 7 c 7 a 7 and matches the matrix pattern a b b a .
The calculation procedure for matrix F 3 is as follows:
F 3 = W 3 × 4 D 4 ( 2 ) W 4 × 3
where
W 4 × 3 = 1 1 1 1 1 , D 4 ( 2 ) = diag s 0 ( 7 ) , s 1 ( 7 ) , s 2 ( 7 ) , s 3 ( 7 ) , s 0 ( 7 ) = a 7 c 7 ,
s 1 ( 7 ) = a 7 c 7 , s 2 ( 7 ) = c 7 , s 3 ( 7 ) = d 7 , W 3 × 4 = 1 1 1 1 1 .
The calculation procedure for matrix G 3 is as follows:
G 3 = W 3 × 2 D 2 ( 1 ) W 2 × 3
where
W 2 × 3 = 1 1 1 , D 2 ( 1 ) = diag s 4 ( 7 ) , s 5 ( 7 ) , s 4 ( 7 ) = s 5 ( 7 ) = b 7 , W 3 × 2 = 1 1 1 .
In regard to this, we can determine the final expression for DST-I for N = 7:
Y 7 × 1 = P 7 ( π 7 ( 1 ) ) P 7 ( 1 ) W 7 × 11 W 11 × 8 W 8 ( 1 ) D 8 ( 2 ) W 8 ( 0 ) W 8 × 11 W 11 × 7 P 7 ( π 7 ( 0 ) ) P 7 ( 0 ) X 7 × 1
where
W 8 ( 0 ) = W 4 × 3 W 2 × 3 I 2 , D 8 ( 2 ) = D 4 ( 2 ) D 2 ( 1 ) D 2 ( 2 ) ,
D 2 ( 2 ) = diag s 6 ( 7 ) , s 7 ( 7 ) , s 6 ( 7 ) = s 7 ( 7 ) = d 7 , W 8 ( 1 ) = W 3 × 4 W 3 × 2 I 2 .
The data flow graph for our solution for seven-point DST-I is shown in Figure 6. The naive, direct computation requires 37 additions and 32 multiplications. As can be observed, our solution uses 23 additions and 5 multiplications, reducing the number of additions from 37 to 23 and the number of multiplications from 32 to 5.

9. Eight-Point DST-I Solution

The following is the matrix form expression for eight-point DST-I:
Y 8 × 1 = C 8 X 8 × 1
where
Y 8 × 1 = y 0 , y 1 , y 2 , y 3 , y 4 , y 5 , y 6 , y 7 T , X 8 × 1 = x 0 , x 1 , x 2 , x 3 , x 4 , x 5 , x 6 , x 7 T ,
C 8 = a 8 b 8 c 8 d 8 d 8 c 8 b 8 a 8 b 8 d 8 c 8 a 8 a 8 c 8 d 8 b 8 c 8 c 8 0 c 8 c 8 0 c 8 c 8 d 8 a 8 c 8 b 8 b 8 c 8 a 8 d 8 d 8 a 8 c 8 b 8 b 8 c 8 a 8 d 8 c 8 c 8 0 c 8 c 8 0 c 8 c 8 b 8 d 8 c 8 a 8 a 8 c 8 d 8 b 8 a 8 b 8 c 8 d 8 d 8 c 8 b 8 a 8 , a 8 = 0.1612 , b 8 = 0.3030 , c 8 = 0.4082 , d 8 = 0.4642 .
Now, we swap the columns and rows in matrix C 8 to match the following matrix pattern:
A 4 A 4 B 4 B 4
where
A 4 = a 8 b 8 c 8 d 8 b 8 d 8 c 8 a 8 c 8 c 8 0 c 8 d 8 a 8 c 8 b 8 , B 4 = d 8 a 8 c 8 b 8 c 8 c 8 0 c 8 b 8 d 8 c 8 a 8 a 8 b 8 c 8 d 8 .
This is accomplished by the permutation π 8 ( 0 ) for the columns and permutation π 8 ( 1 ) for the rows:
π 8 ( 0 ) = 1 2 3 4 5 6 7 8 1 2 3 4 8 7 6 5 , π 8 ( 1 ) = 1 2 3 4 5 6 7 8 1 7 3 5 4 6 2 8 .
Considering this, we may obtain the following expression for the first stage of decomposition:
Y 8 × 1 = P 8 ( π 8 ( 1 ) ) D 8 ( 3 ) W 8 ( 2 ) P 8 ( π 8 ( 0 ) ) X 8 × 1
where
P 8 ( π 8 ( 0 ) ) = I 4 1 1 1 1 , W 8 ( 2 ) = H 2 I 4 , D 8 ( 3 ) = A 4 B 4 ,
P 8 ( π 8 ( 1 ) ) = 1 1 1 1 1 1 1 1 .
Now, we will deal with matrices A 4 and B 4 . Permute rows of A 4 according to π 4 ( 0 ) , change the sign in row 1 and 4 and change the sign in column 4. These operations are described in the expression below:
A 4 = P 4 ( 1 ) P 4 ( π 4 ( 0 ) ) A 4 P 4 ( 0 )
where
P 4 ( 0 ) = 1 1 1 1 , P 4 ( π 4 ( 0 ) ) = 1 1 1 1 , P 4 ( 1 ) = 1 1 1 1 .
As a result of the above Equation (44), matrix A 4 looks like the following:
A 4 = a 8 b 8 c 8 d 8 d 8 a 8 c 8 b 8 c 8 c 8 0 c 8 b 8 d 8 c 8 a 8 .
Now, we will divide the matrix A 4 into two parts:
A 4 = A 4 ( a ) + A 4 ( b )
where
A 4 ( a ) = a 8 b 8 d 8 d 8 a 8 b 8 b 8 d 8 a 8 , A 4 ( b ) = c 8 c 8 c 8 c 8 c 8 c 8 .
The matrix A 4 ( a ) after removing terms equal to zero is as follows:
A 3 = a 8 b 8 d 8 d 8 a 8 b 8 b 8 d 8 a 8 and takes the form of a circular convolution matrix .
So, we can again use the properties of a circular convolution matrix:
s 0 ( 8 ) = a 8 + d 8 b 8 3 , s 1 ( 8 ) = a 8 + b 8 , s 2 ( 8 ) = d 8 + b 8 , s 3 ( 8 ) = a 8 + d 8 + 2 b 8 3 .
The calculation procedure for matrix A 4 is as follows:
A 4 = P 4 ( 1 ) P 4 ( π 4 ( 0 ) ) T W 4 × 7 ( 0 ) W 7 × 5 ( 1 ) W 5 × 6 D 6 ( 5 ) W 6 × 5 W 5 × 7 ( 1 ) W 7 P 4 ( 0 )
where
W 7 = 1 1 1 1 1 1 1 , W 5 × 7 ( 1 ) = T 3 ( 0 ) 1 1 1 1 , W 6 × 5 = A 4 × 3 I 2 ,
D 6 ( 5 ) = diag s 0 ( 8 ) , s 1 ( 8 ) , . . . , s 5 ( 8 ) , s 4 ( 8 ) = s 5 ( 8 ) = c 8 , W 5 × 6 = A 3 × 4 I 2 , W 7 × 5 ( 1 ) = T 3 ( 1 ) 1 1 1 1 ,
W 4 × 7 ( 0 ) = 1 1 1 1 1 1 1 .
In matrix B 4 , change the sign in row 1 and change the sign in column 2. These operations are described in the expression below:
B 4 = P 4 ( 3 ) B 4 P 4 ( 2 )
where
P 4 ( 2 ) = 1 1 1 1 , P 4 ( 3 ) = 1 1 1 1 .
As a result of the above Equation (48), matrix B 4 looks like this:
B 4 = d 8 a 8 c 8 b 8 c 8 c 8 0 c 8 b 8 d 8 c 8 a 8 a 8 b 8 c 8 d 8 .
Now, we will divide the matrix B 4 into two parts:
B 4 = B 4 ( a ) + B 4 ( b )
where
B 4 ( a ) = d 8 a 8 b 8 b 8 d 8 a 8 a 8 b 8 d 8 , B 4 ( b ) = c 8 c 8 c 8 c 8 c 8 c 8 .
The matrix B 4 ( a ) after removing terms equal to zero is as follows:
B 3 = d 8 a 8 b 8 b 8 d 8 a 8 a 8 b 8 d 8 and takes the form of a circular convolution matrix .
So, we can again use the properties of a circular convolution matrix:
s 6 ( 8 ) = d 8 + b 8 + a 8 3 , s 7 ( 8 ) = d 8 a 8 , s 8 ( 8 ) = b 8 a 8 , s 9 ( 8 ) = d 8 + b 8 2 a 8 3 .
The calculation procedure for matrix B 4 is as follows:
B 4 = P 4 ( 3 ) W 4 × 7 ( 1 ) W 7 × 5 ( 2 ) W 5 × 6 D 6 ( 6 ) W 6 × 5 W 5 × 7 ( 1 ) W 7 P 4 ( 2 )
where
D 6 ( 6 ) = diag s 6 ( 8 ) , s 7 ( 8 ) , . . . , s 11 ( 8 ) , s 10 ( 8 ) = s 11 ( 8 ) = c 8 , W 7 × 5 ( 2 ) = T 3 ( 1 ) 1 1 1 1 ,
W 4 × 7 ( 1 ) = 1 1 1 1 1 1 1 .
Taking all the transformations together, we obtain the following expression for the fast DST-I algorithm for N = 8:
Y 8 × 1 = P 8 ( π 8 ( 1 ) ) P 8 ( 1 ) W 8 × 14 W 14 × 10 W 10 × 12 D 12 W 12 × 10 W 10 × 14 W 14 × 8 P 8 ( 0 ) W 8 ( 2 ) P 8 ( π 8 ( 0 ) ) X 8 × 1
where
P 8 ( 0 ) = P 4 ( 0 ) P 4 ( 2 ) , W 14 × 8 = W 7 × 4 W 7 × 4 , W 10 × 14 = W 5 × 7 ( 1 ) W 5 × 7 ( 1 ) ,
W 12 × 10 = W 6 × 5 W 6 × 5 , D 12 = D 6 ( 5 ) D 6 ( 6 ) , W 10 × 12 = W 5 × 6 W 5 × 6 ,
W 14 × 10 = W 7 × 5 ( 1 ) W 7 × 5 ( 2 ) , W 8 × 14 = W 4 × 7 ( 0 ) W 4 × 7 ( 1 ) ,
P 8 ( 1 ) = P 4 ( 1 ) P 4 ( π 4 ( 0 ) ) T P 4 ( 3 ) .
The data flow graph for our solution for eight-point DST-I is shown in Figure 7. The naive, direct computation requires 52 additions and 60 multiplications. As can be observed, our solution uses 40 additions and 12 multiplications, reducing the number of additions from 52 to 40 and the number of multiplications from 60 to 12.

10. Results

The work shows how it is possible to reduce the number of multiplication operations in DST-I algorithms of sizes two to eight. At the same time, the number of addition operations was slightly reduced. The number of addition operations was reduced by an average of 21% and the number of multiplication operations was reduced by an average of 74%. The achieved results are presented in the Table 1.
This allows for a significant reduction in the amount of resources used on a signal processor, while speeding up work and allowing for easier operation in real time. A significant reduction in multiplication operations contributes to this, because, due to their characteristics, they are more expensive to use than addition operations.
Each proposed algorithm has been implemented in the MATLAB environment and we are sure that they all work correctly. We have published the program code in an open dataset repository, which we reference in the Data Availability Statement section.

11. Discussion of Computational Complexity

For the direct DST-I calculation approach and suggested solutions, we first describe how to determine the number of multiplication and addition operations. A bit shift can be used in place of a multiplication operation for any number that is a power of two. We do not count addition and multiplication operations for a value of zero.
The above appear in the following matrices: C 3 —one 0 and four values of 0.5; C 5 —four 0s and twelve values of 0.5; C 7 —five 0s and twelve values of 0.5; C 8 —four 0s. And in the proposed solutions in diagonal matrices, we have the following: D 3 —one value of 0.5; D 6 ( 3 ) —three values of 0.5; D 8 ( 2 ) —three values of 0.5; D 8 —one value 0.5.
Additionally, Table 2 provides a comparison with the results obtained by other researchers of the topic we addressed. Yip and Rao used the sparse-matrix factorization technique and Sun and Yip used the idea of split radix algorithm. However, these works do not present the exact step-by-step achievement of the results, as we show for each solution. Our solutions are transparent.
In this regard, we note that both works in the table below do not include normalizing coefficients in the number of multiplication operations. To the Yip and Rao solution for N = 4, we have added four multiplication operations, which correspond to multiplications by normalizing coefficients. Similarly, for the DST algorithms for N = 8, we have added eight multiplication operations in both cases.
The rigorous mathematical derivation of the final computational procedures for each case is presented in full. To ensure the correctness of these procedures, we have written validation computer programs, which we have included in our paper. We do not claim that the presented solutions are optimal. We show what we have obtained so far and would be glad if someone publishes better solutions.

Author Contributions

Conceptualization, A.C.; methodology, A.C., J.B. and M.R.; software, M.R.; validation, M.R.; formal analysis, A.C. and J.B.; investigation, J.B. and M.R.; writing—original draft preparation, M.R. and A.C.; writing—review and editing, M.R.; supervision, A.C. All authors have read and agreed to the published version of the manuscript.

Funding

This research received no external funding.

Data Availability Statement

The MATLAB programming code implementing the developed algorithms for DST-I is available at [46] (accessed on 28 November 2024).

Conflicts of Interest

The authors declare no conflicts of interest.

References

  1. Britanak, V.; Yip, P.C.; Rao, K.R. Discrete Cosine and Sine Transforms: General Properties, Fast Algorithms and Integer Approximations; Academic: Amsterdam, The Netherlands; Boston, MA, USA, 2007. [Google Scholar]
  2. Yip, P.; Rao, K. On the computation and the effectiveness of discrete sine transform. Comput. Electr. Eng. 1980, 7, 45–55. [Google Scholar] [CrossRef]
  3. Jain, A.K. A Sinusoidal Family of Unitary Transforms. IEEE Trans. Pattern Anal. Mach. Intell. 1979, PAMI-1, 356–365. [Google Scholar] [CrossRef]
  4. Elhadad, M.; El-Dolil, S.A.; Albagory, Y.A. Application of trigonometric transforms in discrete multi tone systems. In Proceedings of the 2009 International Conference on Computer Engineering & Systems, Cairo, Egypt, 14–16 December 2009; IEEE: Piscataway, NJ, USA, 2010. [Google Scholar] [CrossRef]
  5. Dhamija, S.; Jain, P. Comparative Analysis for Discrete Sine Transform as a suitable method for noise estimation. Int. J. Comput. Sci. Issues 2011, 8, 162–164. [Google Scholar]
  6. Malini, S.; Moni, R. Use of Discrete Sine Transform for A Novel Image Denoising Technique. Int. J. Image Process. (IJIP) 2014, 8, 204–213. [Google Scholar]
  7. Choi, J.w.; Kim, N.U.; Lim, S.C.; Kang, J.; Kim, H.Y.; Lee, Y.L. Shuffled Discrete Sine Transform in Inter-Prediction Coding. ETRI J. 2017, 39, 672–682. [Google Scholar] [CrossRef]
  8. Zhou, X.; Wang, C.; Jiang, B. All Phase Inverse Discrete Sine Biorthogonal Transform and Its Application in Image Coding. J. Commun. 2017, 12, 72–80. [Google Scholar] [CrossRef]
  9. Joshi, R.; Reznik, Y.A.; Karczewicz, M. Efficient large size transforms for high-performance video coding. In Proceedings of the Applications of Digital Image Processing XXXIII, San Diego, CA, USA, 7 September 2010; Tescher, A.G., Ed.; SPIE: Bellingham, DC, USA, 2010. [Google Scholar] [CrossRef]
  10. Saxena, A.; Fernandes, F.C. DCT/DST-Based Transform Coding for Intra Prediction in Image/Video Coding. IEEE Trans. Image Process. 2013, 22, 3974–3981. [Google Scholar] [CrossRef]
  11. Budiman, G.; Suksmono, A.B.; Danudirdjo, D.; Pawellang, S. QIM-Based Audio Watermarking with Combined Techniques of SWT-DST-QR-CPT Using SS-Based Synchronization. In Proceedings of the 2018 6th International Conference on Information and Communication Technology (ICoICT), Bandung, Indonesia, 3–5 May 2018; IEEE: Piscataway, NJ, USA, 2018. [Google Scholar] [CrossRef]
  12. Ganesh, P.; Menaka, R. Use of Discrete Sine Transform in EEG signal classification for early Autism detection. In Proceedings of the 2014 IEEE International Conference on Advanced Communications, Control and Computing Technologies, Ramanathapuram, India, 8–10 May 2014; IEEE: Piscataway, NJ, USA, 2014. [Google Scholar] [CrossRef]
  13. Wang, Z.; Wang, L. Interpolation using the fast discrete sine transform. Signal Process. 1992, 26, 131–137. [Google Scholar] [CrossRef]
  14. Wang, Z.; Jullien, G.; Miller, W. Interpolation using the discrete sine transform with increased accuracy. Electron. Lett. 1993, 29, 1918. [Google Scholar] [CrossRef]
  15. Kim, M.; Lee, Y.L. Discrete Sine Transform-Based Interpolation Filter for Video Compression. Symmetry 2017, 9, 257. [Google Scholar] [CrossRef]
  16. Püschel, M.; Moura, J.M.F. The Algebraic Approach to the Discrete Cosine and Sine Transforms and Their Fast Algorithms. SIAM J. Comput. 2003, 32, 1280–1316. [Google Scholar] [CrossRef]
  17. Wang, Z. Fast discrete sine transform algorithms. Signal Process. 1990, 19, 91–102. [Google Scholar] [CrossRef]
  18. Gupta, A.; Rao, K. A fast recursive algorithm for the discrete sine transform. IEEE Trans. Acoust. Speech Signal Process. 1990, 38, 553–557. [Google Scholar] [CrossRef]
  19. Puschel, M.; Moura, J. The discrete trigonometric transforms and their fast algorithms: An algebraic symmetry perspective. In Proceedings of the 2002 IEEE 10th Digital Signal Processing Workshop, 2002 and the 2nd Signal Processing Education Workshop, Pine Mountain, GA, USA, 16 October 2002; IEEE: Piscataway, NJ, USA, 2002. DSPWS-02. [Google Scholar] [CrossRef]
  20. Nikara, J.A.; Takala, J.H.; Astola, J.T. Discrete cosine and sine transforms—Regular algorithms and pipeline architectures. Signal Process. 2006, 86, 230–249. [Google Scholar] [CrossRef]
  21. Murty, M. Realization of prime-length discrete sine transform using cyclic convolution. Int. J. Eng. Sci. Technol. 2013, 5, 583–589. [Google Scholar]
  22. Murty, M.N.; Padhy, B. Radix-3 Algorithm for Realization of Type-II Discrete Sine Transform. Int. J. Eng. Res. Appl. 2015, 5, 9–15. [Google Scholar]
  23. Yip, P.; Wang, F. A prime-factor decomposed algorithm for the discrete sine transform. Comput. Electr. Eng. 1990, 16, 43–49. [Google Scholar] [CrossRef]
  24. Tsmots, I.; Rabyk, V.; Kryvinska, N.; Yatsymirskyy, M.; Teslyuk, V. Design of the Processors for Fast Cosine and Sine Fourier Transforms. Circuits Syst. Signal Process. 2022, 41, 4928–4951. [Google Scholar] [CrossRef]
  25. Cariow, A.; Makowska, M.; Strzelec, P. Small-Size FDCT/IDCT Algorithms with Reduced Multiplicative Complexity. Radioelectron. Commun. Syst. 2019, 62, 559–576. [Google Scholar] [CrossRef]
  26. Cariow, A.; Lesiecki, L. Small-Size Algorithms for Type-IV Discrete Cosine Transform with Reduced Multiplicative Complexity. Radioelectron. Commun. Syst. 2020, 63, 465–487. [Google Scholar] [CrossRef]
  27. Kolenderski, M.; Cariow, A. Small-Size Algorithms for the Type-I Discrete Cosine Transform with Reduced Complexity. Electronics 2022, 11, 2411. [Google Scholar] [CrossRef]
  28. Bielak, K.; Cariow, A.; Raciborski, M. The Development of Fast DST-II Algorithms for Short-Length Input Sequences. Electronics 2024, 13, 2301. [Google Scholar] [CrossRef]
  29. Murty, M. Algorithm for realization of Type-I Discrete Sine Transform. J. Ultra Sci. Phys. Sci. 2015, 27, 164–168. [Google Scholar]
  30. Al-Fuhaidy, F.A.K.; Al-Sofy, K.A.; Alkamali, F.S. Discrete Sine Transform Based OFDMA System for Wireless Broadband Communications. AASCIT Commun. 2019, 6, 13–21. [Google Scholar]
  31. Al-kamali, F. New single-carrier transceiver scheme based on the discrete sine transform. J. Eng. 2014, 2014, 214–218. [Google Scholar] [CrossRef]
  32. Li, X.; Xie, H.; Cheng, B. Noisy Speech Enhancement Based on Discrete Sine Transform. In Proceedings of the First International Multi-Symposiums on Computer and Computational Sciences (IMSCCS’06), Hangzhou, China, 20–24 June 2006; IEEE: Piscataway, NJ, USA, 2006. [Google Scholar] [CrossRef]
  33. Tseng, C.C.; Lee, S.L. Closed-form design of fixed fractional hubert transformer using discrete sine transform. In Proceedings of the 2014 IEEE Asia Pacific Conference on Circuits and Systems (APCCAS), Ishigaki, Japan, 17–20 November 2014; IEEE: Piscataway, NJ, USA, 2014; Volume 4, pp. 479–482. [Google Scholar] [CrossRef]
  34. Alonso, P.; Bernabeu, M.O.; Vidal-Maciá, A.M. An Adaptive Interface for the Efficient Computation of the Discrete Sine Transform. In Parallel Processing and Applied Mathematics; Springer: Berlin/Heidelberg, Germany, 2007; pp. 89–98. [Google Scholar] [CrossRef]
  35. Yaroslavsky, L.; Wang, Y. DFT, DCT, MDCT, DST and signal Fourier spectrum analysis. Eur. Signal Process. Conf. 2015, 2015, 1–14. [Google Scholar]
  36. Pant, N. Discrete Sine and Cosine Transforms on Parallel Processors. Master’s Thesis, Tampere University of Technology, Tampere, Finland, 2015. [Google Scholar]
  37. Perera, S.M. Signal Flow Graph Approach to Efficient DST I-IV Algorithms. arXiv 2016, arXiv:1601.04662. [Google Scholar] [CrossRef]
  38. Pueschel, M.; Moura, J.M.F. Algebraic Signal Processing Theory: Cooley-Tukey Type Algorithms for DCTs and DSTs. IEEE Trans. Signal Process. 2008, 56, 1502–1521. [Google Scholar] [CrossRef]
  39. Cariow, A. Strategies for the Synthesis of Fast Algorithms for the Computation of the Matrix-vector Products. J. Signal Process. Theory Appl. 2014, 3, 1–19. [Google Scholar] [CrossRef]
  40. Yip, P.; Rao, K. A Fast Computational Algorithm for the Discrete Sine Transform. IEEE Trans. Commun. 1980, 28, 304–307. [Google Scholar] [CrossRef]
  41. Agarwal, N.; Solanki, R.; Khan, A. Application of Discrete Sine Transform in Image Processing. Int. J. Eng. Res. Technol. (IJERT) NCETRASECT 2015, 3, 23. [Google Scholar]
  42. Olshevsky, A.; Olshevsky, V.; Wang, J. A comrade-matrix-based derivation of the different versions of fast cosine and sine transforms. In Proceedings of the Advanced Signal Processing Algorithms, Architectures, and Implementations XIII, San Diego, CA, USA, 6–8 August 2003; Luk, F.T., Ed.; SPIE: Bellingham, DC, USA, 2003; Volume 5205, pp. 399–410. [Google Scholar] [CrossRef]
  43. Madhukar, B.N.; Jain, S. A duality theorem for the discrete sine transform (DST). In Proceedings of the 2015 International Conference on Applied and Theoretical Computing and Communication Technology (iCATccT), Davangere, India, 29–31 October 2015; IEEE: Piscataway, NJ, USA, 2015. [Google Scholar] [CrossRef]
  44. Blahut, R.E. Fast Algorithms for Signal Processing; Cambridge University Press: Cambridge, UK, 2010. [Google Scholar] [CrossRef]
  45. Sun, C.; Yip, P. Split-radix algorithms for DCT and DST. In Proceedings of the Twenty-Third Asilomar Conference on Signals, Systems and Computers, Pacific Grove, CA, USA, 30 October–1 November 1989; IEEE: Piscataway, NJ, USA, 1989; pp. 508–512. [Google Scholar] [CrossRef]
  46. Raciborski, M. The Development of Software for Fast DST-I Algorithms for Short-Length Input Sequences; RepOD: Warszawa, Poland, 2024. [Google Scholar] [CrossRef]
Figure 1. The proposed solution’s data flow graph for two-point DST-I computation.
Figure 1. The proposed solution’s data flow graph for two-point DST-I computation.
Electronics 13 05056 g001
Figure 2. The proposed solution’s data flow graph for three-point DST-I computation.
Figure 2. The proposed solution’s data flow graph for three-point DST-I computation.
Electronics 13 05056 g002
Figure 3. The proposed solution’s data flow graph for four-point DST-I computation.
Figure 3. The proposed solution’s data flow graph for four-point DST-I computation.
Electronics 13 05056 g003
Figure 4. The proposed solution’s data flow graph for five-point DST-I computation.
Figure 4. The proposed solution’s data flow graph for five-point DST-I computation.
Electronics 13 05056 g004
Figure 5. The proposed solution’s data flow graph for six-point DST-I computation.
Figure 5. The proposed solution’s data flow graph for six-point DST-I computation.
Electronics 13 05056 g005
Figure 6. The proposed solution’s data flow graph for seven-point DST-I computation.
Figure 6. The proposed solution’s data flow graph for seven-point DST-I computation.
Electronics 13 05056 g006
Figure 7. The proposed solution’s data flow graph for eight-point DST-I computation.
Figure 7. The proposed solution’s data flow graph for eight-point DST-I computation.
Electronics 13 05056 g007
Table 1. Comparison of the direct method with the proposed solutions.
Table 1. Comparison of the direct method with the proposed solutions.
Direct MethodProposed Solutions
N Additions Multiplications Additions Multiplications
22422
35442
41216126
5169123
63036288
73732235
852604012
Table 2. Comparison of the proposed solutions with other algorithms.
Table 2. Comparison of the proposed solutions with other algorithms.
N = 4N = 8
Additions Multiplications Additions Multiplications
Yip and Rao [40]42 + 4228 + 8
Sun and Yip [45]--186 + 8
Our solutions1264012
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content.

Share and Cite

MDPI and ACS Style

Raciborski, M.; Cariow, A.; Bandach, J. The Development of Fast DST-I Algorithms for Short-Length Input Sequences. Electronics 2024, 13, 5056. https://doi.org/10.3390/electronics13245056

AMA Style

Raciborski M, Cariow A, Bandach J. The Development of Fast DST-I Algorithms for Short-Length Input Sequences. Electronics. 2024; 13(24):5056. https://doi.org/10.3390/electronics13245056

Chicago/Turabian Style

Raciborski, Mateusz, Aleksandr Cariow, and Jakub Bandach. 2024. "The Development of Fast DST-I Algorithms for Short-Length Input Sequences" Electronics 13, no. 24: 5056. https://doi.org/10.3390/electronics13245056

APA Style

Raciborski, M., Cariow, A., & Bandach, J. (2024). The Development of Fast DST-I Algorithms for Short-Length Input Sequences. Electronics, 13(24), 5056. https://doi.org/10.3390/electronics13245056

Note that from the first issue of 2016, this journal uses article numbers instead of page numbers. See further details here.

Article Metrics

Back to TopTop