📄 lvshudong.m
字号:
%吕书东(S20041008 研究生三队 信号(1)班) 戴清杰(S20041052 研究生三队 信号(2)班)
clear;
N=32;
L=5;
M=4;
n=0:(N-1);
xn=sin(n*pi/16);
%%%%%%---------作L倍插值---------%%%%%%%%%%
w1n=[zeros(1,L*N)];%插值
for i=1:N
w1n((i-1)*L+1)=xn(i);
end
n=1:L*N;
Rp1=3;%设计切比雪夫滤波器
Rs1=30;
Wp1=0.1;
Ws1=0.125;
[n1,Wn1]=cheb1ord(Wp1,Ws1,Rp1,Rs1);
[b,a]=cheby1(n1,Rp1,Wn1);
y1n=L*filter(b,a,w1n);%对w(n)滤波
%%%%%%---------作M倍抽取---------%%%%%%%%%%
Wp2=pi/M;
Ws2=0.87*pi;
Rp2=1;
As2=15;
t=1;
omega=2*tan(Wp2/2);
omegap=2*tan(Wp2/2);
omegas=2*tan(Ws2/2);
[n2,Wn2]=cheb1ord(omegap,omegas,Rp2,As2,'s');
Wn2=Wn2/pi;
[b,a]=cheby1(n2,Rp2,Wn2);
v2n=filter(b,a,xn);%对x(n)滤波
for i=1:N/M %抽取
y2n(i)=v2n((i-1)*M+1);
end
%%%%%%---------作L/M倍的抽样率变换---------%%%%%%%%%%
w3n=w1n; %插值
Rp3=3;
Rs3=30;
Wp3=0.1;
Ws3=0.125;
[n3,Wn3]=cheb1ord(Wp3,Ws3,Rp3,Rs3);
[b,a]=cheby1(n3,Rp3,Wn3);
v3n=L*filter(b,a,w3n);%滤波
for i=1:L*N/M %抽取
y3n(i)=v3n((i-1)*M+1);
end
%%%%%%---------作比较图---------%%%%%%%%%%
figure(1);%%%%%
n=0:(N-1);
subplot(3,3,1);
stem(n,xn,'.');
title('序列x(n)');
xlabel('n');
ylabel('x(n)');
axis([0,32,-1,1]);
i=0:(length(xn)-1);
k=0:200;
w=(pi/100)*k;
X=xn*(exp(-j*pi/100)).^(i'*k);
magX=abs(X);
angX=angle(X);
subplot(3,3,2);
plot(w/pi,magX);grid;
title('Magnitude part of X(ejw)');
ylabel('|X(ejw)|');
axis([0,2,0,25]);
subplot(3,3,3);
plot(w/pi,angX);
title('Phase part of X(ejw)');
xlabel('w in pi unit');
ylabel('ang[ X(ejw)]');grid;
axis([0,2,-4,4]);
n=0:(L*N-1);
subplot(3,3,4);
stem(n,w1n,'.');
title('插值后得到的序列w1(n)');
xlabel('n');
ylabel('w1(n)');
axis([0,(L*N-1),-1,1]);
i=0:(length(w1n)-1);
k=0:200;
w=(pi/100)*k;
W=w1n*(exp(-j*pi/100)).^(i'*k);
magW=abs(W);
angW=angle(W);
subplot(3,3,5);
plot(w/pi,magW);grid;
title('Magnitude part of W1(ejw)');
xlabel('w in pi unit');
ylabel('|W1(ejw)|');
axis([0,2,0,20]);
subplot(3,3,6);
plot(w/pi,angW);
title('Phase part of W1(ejw)');
xlabel('w in pi unit');
ylabel('ang[W1(ejw)]');grid;
axis([0,2,-4,4]);
n=0:(length(y1n)-1);
subplot(3,3,7);
stem(n,y1n,'.');
title('序列y1(n)');
xlabel('n');
ylabel('y1(n)');
axis([0,(L*N-1),-1,1]);
i=0:(length(y1n)-1);
k=0:200;
w=(pi/100)*k;
V=y1n*(exp(-j*pi/100)).^(i'*k);
magV=abs(V);
angV=angle(V);
subplot(3,3,8);
plot(w/pi,magV);grid;
title('Magnitude part of Y1(ejw)');
xlabel('w in pi unit');
ylabel('|Y1(ejw)|');
axis([0,2,0,20*L]);
subplot(3,3,9);
plot(w/pi,angV);
title('Phase part of Y1(ejw)');
xlabel('w in pi unit');
ylabel('ang[Y1(ejw)]');grid;
axis([0,2,-4,4]);
figure(2);%%%%%%%%%%
n=0:(N-1);
subplot(3,3,1);
stem(n,xn,'.');
title('序列x(n)');
xlabel('n');
ylabel('x(n)');
axis([0,32,-1,1]);
i=0:(length(xn)-1);
k=0:200;
w=(pi/100)*k;
X=xn*(exp(-j*pi/100)).^(i'*k);
magX=abs(X);
angX=angle(X);
subplot(3,3,2);
plot(w/pi,magX);grid;
title('Magnitude part of X(ejw)');
ylabel('|X(ejw)|');
axis([0,2,0,25]);
subplot(3,3,3);
plot(w/pi,angX);
title('Phase part of X(ejw)');
xlabel('w in pi unit');
ylabel('ang[ X(ejw)]');grid;
axis([0,2,-4,4]);
n=0:(length(v2n)-1);
subplot(3,3,4);
stem(n,v2n,'.');
title('序列v2(n)');
xlabel('n');
ylabel('序列v2(n)');
axis([0,32,-1,1]);
i=0:(length(v2n)-1);
k=0:200;
w=(pi/100)*k;
W=v2n*(exp(-j*pi/100)).^(i'*k);
magW=abs(W);
angW=angle(W);
subplot(3,3,5);
plot(w/pi,magW);grid;
title('Magnitude part of V2(ejw)');
xlabel('w in pi unit');
ylabel('|V2(ejw)|');
axis([0,2,0,20]);
subplot(3,3,6);
plot(w/pi,angW);
title('Phase part of V2(ejw)');
xlabel('w in pi unit');
ylabel('ang[V2(ejw)]');grid;
axis([0,2,-4,4]);
n=0:(N/M-1);
subplot(3,3,7);
stem(n,y2n,'.');
title('序列y2(n)');
xlabel('n');
ylabel('序列y2(n)');
axis([0,(N/M-1),-1,1]);
i=0:(length(y2n)-1);
k=0:200;
w=(pi/100)*k;
X=y2n*(exp(-j*pi/100)).^(i'*k);
magX=abs(X);
angX=angle(X);
subplot(3,3,8);
plot(w/pi,magX);grid;
title('Magnitude part of Y2(ejw)');
ylabel('|Y2(ejw)|');
axis([0,2,0,25]);
subplot(3,3,9);
plot(w/pi,angX);
title('Phase part of Y2(ejw)');
xlabel('w in pi unit');
ylabel('ang[ Y2(ejw)]');grid;
axis([0,2,-4,4]);
figure(3);%%%%%
n=0:(N-1);
subplot(4,3,1);
stem(n,xn,'.');
title('序列x(n)');
xlabel('n');
ylabel('x(n)');
axis([0,32,-1,1]);
i=0:(length(xn)-1);
k=0:200;
w=(pi/100)*k;
X=xn*(exp(-j*pi/100)).^(i'*k);
magX=abs(X);
angX=angle(X);
subplot(4,3,2);
plot(w/pi,magX);grid;
title('Magnitude part of X(ejw)');
ylabel('|X(ejw)|');
axis([0,2,0,25]);
subplot(4,3,3);
plot(w/pi,angX);
title('Phase part of X(ejw)');
xlabel('w in pi unit');
ylabel('ang[ X(ejw)]');grid;
axis([0,2,-4,4]);
n=0:(L*N-1);
subplot(4,3,4);
stem(n,w3n,'.');
title('插值后得到的序列w3(n)');
xlabel('n');
ylabel('w3(n)');
axis([0,(L*N-1),-1,1]);
i=0:(length(w3n)-1);
k=0:200;
w=(pi/100)*k;
W=w3n*(exp(-j*pi/100)).^(i'*k);
magW=abs(W);
angW=angle(W);
subplot(4,3,5);
plot(w/pi,magW);grid;
title('Magnitude part of W3(ejw)');
xlabel('w in pi unit');
ylabel('|W3(ejw)|');
axis([0,2,0,20]);
subplot(4,3,6);
plot(w/pi,angW);
title('Phase part of W3(ejw)');
xlabel('w in pi unit');
ylabel('ang[W3(ejw)]');grid;
axis([0,2,-4,4]);
n=0:(length(v3n)-1);
subplot(4,3,7);
stem(n,v3n,'.');
title('通过滤波器后得到的序列v3(n)');
xlabel('n');
ylabel('v3(n)');
axis([0,(length(v3n)-1),-1,1]);
i=0:(length(v3n)-1);
k=0:200;
w=(pi/100)*k;
V=v3n*(exp(-j*pi/100)).^(i'*k);
magV=abs(V);
angV=angle(V);
subplot(4,3,8);
plot(w/pi,magV);grid;
title('Magnitude part of V3(ejw)');
xlabel('w in pi unit');
ylabel('|V3(ejw)|');
axis([0,2,0,20*L]);
subplot(4,3,9);
plot(w/pi,angV);
title('Phase part of V3(ejw)');
xlabel('w in pi unit');
ylabel('ang[V3(ejw)]');grid;
axis([0,2,-4,4]);
n=0:(L*N/M-1);
subplot(4,3,10);
stem(n,y3n,'.');
title('最终完成L/M倍采样率变换的输出序列y(n)');
xlabel('n');
ylabel('y3(n)');
i=0:(length(y3n)-1);
k=0:200;
w=(pi/100)*k;
V=y3n*(exp(-j*pi/100)).^(i'*k);
magV=abs(V);
angV=angle(V);
subplot(4,3,11);
plot(w/pi,magV);grid;
title('Magnitude part of Y3(ejw)');
xlabel('w in pi unit');
ylabel('|Y3(ejw)|');
axis([0,2,0,20*L]);
subplot(4,3,12);
plot(w/pi,angV);
title('Phase part of Y3(ejw)');
xlabel('w in pi unit');
ylabel('ang[Y3(ejw)]');grid;
axis([0,2,-4,4]);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -