⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sp_dct.m

📁 英文书《Digital Signal Processing with Examples in MATLAB》附带的MATLAB实例
💻 M
字号:
function X=sp_dct(x);
% X=sp_dct(x)
%
% X is the N-point Discrete Cosine Transform (DCT) of x,
% N =# components in the transform.
% If x is a vector, X(0:N-1) is computed as follows:
%
% X(m)=c(m)*sum from{n=0}to{N-1}{x(n)cos((2n+1)m pi/2N)};
%      c(m)=sqrt(1\N) if m=0 and sqrt(2/N) if 0<m<=N-1.
%
% If x is an array, X becomes an array of column DCT's.
% See also: sp_idct
[N,Nc]=size(x);
if N==1
   x=x';                % change row vector to column
   [N,Nc]=size(x);
end
if N<4
   error('x must have at least 4 elements.');
end
m=[0:N-1]';
Y2=fft([x; zeros(N,Nc)]);
phase=exp(-j*m*pi/(2*N));
c=[1/sqrt(2); ones(N-1,1)]*sqrt(2/N);
X=real([c.*phase*ones(1,Nc)].*Y2(1:N,1:Nc));

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -