实验三.docx
《实验三.docx》由会员分享,可在线阅读,更多相关《实验三.docx(11页珍藏版)》请在冰点文库上搜索。
实验三
四.实验程序
1.产生模拟信号
fsim=80000;dt=1/fsim;
t=0:
dt:
0.012;f0=1/0.012;
xa=cos(2*pi*f0*t);
plot(nn/fsim,xa);
grid,xlabel('t'),ylabel('xa')
2.模拟信号傅里叶变换
fsim=80000;dt=1/fsim;
t=0:
dt:
0.012;f0=1/0.012;
xa=cos(2*pi*f0*t);
fmagplot(xa,dt)
3.抽样得到离散时间信号
fs=8000;N=960/10+1,nn=0:
N;
f0=fs/N;
xn=cos(2*pi*nn*f0/fs);
stem(nn,xn)
xlabel('nn'),ylabel('xn'),grid
4.离散时间信号傅里叶变换
fs=8000;N=960/10+1,nn=0:
N;
f0=fs/N;
xn=cos(2*pi*nn*f0/fs);
[Xn,W]=dtft(xn,120);
plot(W/2/pi,Xn);
xlabel('frequence'),ylabel('Xn'),grid
5.切比雪夫Ⅱ型滤波器频率响应
fs=8000;fsim=80000;
fcut=2*(fs/2)/fsim;
[b,a]=cheby2(9,60,fcut);
N=100;
[HH,WW]=freqz(b,a,N,'whole');
mid=ceil(N/2)+1;
WW(mid:
N)=WW(mid:
N)-2*pi;
ff=WW*fsim/2/pi;
plot(ff/1000,abs(HH));
xlabel('frequence(kHz)'),ylabel('H(w)'),grid
6.重建信号及其傅里叶变换
fs=8000;N=960/10+1,nn=0:
N;
fsim=80000;dt=1/fsim;
f0=fs/N;
xn=cos(2*pi*nn*f0/fs);
j=2;
fori=1:
961;
if(i-1)/k==round((i-1)/k)
x(i)=xn(j);
j=j+1;
else
x(i)=0;
end
end
xa2=x;fcut=2*(fs/2)/fsim;
[b,a]=cheby2(9,60,fcut);
xr=filter(b,a,xa2);
q=size(xr);
t=0:
dt:
(q
(2)-1)/fsim;
subplot(211)
plot(t,xr);
xlabel('time'),ylabel('xr'),grid;
subplot(212)
fmagplot(xr,dt)
将以上过程写成两个M文件,其中abs函数绘出输入和输出的傅里叶变换,ADA函数绘制x(t),x[n],x’(t)和xr(t)。
functionabc(fs,f0);
fsim=80000;dt=1/fsim;
t=0:
dt:
1/f0*4;
xa=cos(2*pi*f0*t);
subplot(211)
fmagplot(xa,dt);
k=fsim/fs;
fs=8000;N=100,nn=0:
N;
xn=cos(2*pi*nn*f0/fs);
j=1;
fori=1:
100*k+1;
if(i-1)/k==round((i-1)/k)
x(i)=xn(j);
j=j+1;
else
x(i)=0;
end
end
xa2=x;
fcut=2*(fs/2)/fsim;
[b,a]=cheby2(9,60,fcut);
xr=filter(b,a,xa2);
subplot(212)
fmagplot(xr,dt)
functionADA(fs,f0)
fsim=80000;dt=1/fsim;
k=fsim/fs;N=100;nn=0:
N;
t=0:
dt:
1/f0*4;
xa1=cos(2*pi*f0*t);
subplot(221)
plot(t*1000,xa1);
xlabel('time/ms'),ylabel('xa1'),grid;
xn=cos(2*pi*nn*f0/fs);
subplot(222)
stem(nn,xn);
xlabel('nn'),ylabel('xn'),grid
j=1;
fori=1:
100*k+1;
if(i-1)/k==round((i-1)/k)
x(i)=xn(j);
j=j+1;
else
x(i)=0;
end
end
xa2=x;
subplot(223)
stem(xa2);
xlabel('time'),ylabel('xa2'),grid;
fcut=2*(fs/2)/fsim;
[b,a]=cheby2(9,60,fcut);
xr=filter(b,a,xa2);
q=size(xr);
t=0:
dt:
(q
(2)-1)*dt;
subplot(224)
plot(t*1000,xr);
xlabel('time/ms'),ylabel('xr'),grid
f0=6kHz,9kHz,15kHz时输入输出傅里叶变换
abc(8000,6000)
abc(8000,9000)
abc(8000,15000)
F0=7kHz,10kHz时x(t),x[n],x’(t)和xr(t)。
ADA(8000,7000)
ADA(8000,10000)