OpenCores
URL https://opencores.org/ocsvn/mdct/mdct/trunk

Subversion Repositories mdct

[/] [mdct/] [tags/] [MDCT_REL_B1_5/] [MATLAB/] [dct_func.m] - Blame information for rev 24

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 mikel262
function output = dct_func(input)
2
 
3
N = 8;
4
 
5
input_s = input./2;
6
 
7
A = round(cos(pi/4)*(2^11));
8
B = round(cos(pi/8)*(2^11));
9
C = round(sin(pi/8)*(2^11));
10
D = round(cos(pi/16)*(2^11));
11
E = round(cos(3*pi/16)*(2^11));
12
F = round(sin(3*pi/16)*(2^11));
13
G = round(sin(pi/16)*(2^11));
14
Ce = [
15
   A,  A,  A,  A;
16
   B,  C, -C, -B;
17
   A, -A, -A,  A;
18
   C, -B,  B, -C;
19
];
20
 
21
Co = [
22
   D,  E,  F,  G;
23
   E, -G, -D, -F;
24
   F, -D,  G,  E;
25
   G, -F,  E, -D;
26
];
27
for i=1:N
28
 
29
   fXe = [
30
      input_s(i,1);
31
      input_s(i,2);
32
      input_s(i,3);
33
      input_s(i,4);
34
   ];
35
 
36
   fXo = [
37
      input_s(i,8);
38
      input_s(i,7);
39
      input_s(i,6);
40
      input_s(i,5);
41
   ];
42
   fXs = fXe+fXo;
43
   fXm = fXe-fXo;
44
 
45
   fYe = (Ce*fXs);
46
   fYo = (Co*fXm);
47
   % transpose output
48
   output(1,i) = fYe(1,1)/2^11;
49
   output(2,i) = fYo(1,1)/2^11;
50
   output(3,i) = fYe(2,1)/2^11;
51
   output(4,i) = fYo(2,1)/2^11;
52
   output(5,i) = fYe(3,1)/2^11;
53
   output(6,i) = fYo(3,1)/2^11;
54
   output(7,i) = fYe(4,1)/2^11;
55
   output(8,i) = fYo(4,1)/2^11;
56
end
57
 
58
return
59
 
60
 
61
 
62
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.