examp36.m

来自「ADSP TOOLBOX: Version 2.0 and gui m-file」· M 代码 · 共 29 行

M
29
字号

clc,echo on 
%EXAMPLE 36 
vin='4*(t>=0 & t<0.5)+2*(t==0.5)';  % Create vin (as a string function)
fs=fseries(vin,1,30);               % Find FS coeffs to k=30 harmonics

akin=fs(:,2);bkin=fs(:,3);          % Extract a(k) and b(k)
hfilt='1./(1+j*k*2*pi*tau)';        % Filter transfer Function
k=(0:30)';                          % Make k a column vector  for later use
tau=0.1;hf1=eval(hfilt);            % Magnitude and phase of H(f) for tau=0.1
tau=1;hf2=eval(hfilt);              % Same for tau=1
j=sqrt(-1);
cout1=hf1.*(akin-j*bkin);           % Filter output coefficients c(k)
cout2=hf2.*(akin-j*bkin);
t=0:0.01:2;
sm1=cout1(1);sm2=cout2(1);          % Start reconstruction with dc value
echo off
for k=1:30
sm1=sm1+abs(cout1(k+1))*cos(k*2*pi*t+angle(cout1(k+1)));  %Reconstructions
sm2=sm2+abs(cout2(k+1))*cos(k*2*pi*t+angle(cout2(k+1)));
end
echo on
%for k=1:30
%sm1=sm1+abs(cout1(k+1))*cos(k*2*pi*t+angle(cout1(k+1)));  %Reconstructions
%sm2=sm2+abs(cout2(k+1))*cos(k*2*pi*t+angle(cout2(k+1)));
%end
plot(t,sm1,t,sm2)                   % Overplot
echo off %end of example

⌨️ 快捷键说明

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