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 + -
显示快捷键?