实验三 抽样.docx

上传人:b****7 文档编号:26661217 上传时间:2023-06-21 格式:DOCX 页数:19 大小:141.71KB
下载 相关 举报
实验三 抽样.docx_第1页
第1页 / 共19页
实验三 抽样.docx_第2页
第2页 / 共19页
实验三 抽样.docx_第3页
第3页 / 共19页
实验三 抽样.docx_第4页
第4页 / 共19页
实验三 抽样.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

实验三 抽样.docx

《实验三 抽样.docx》由会员分享,可在线阅读,更多相关《实验三 抽样.docx(19页珍藏版)》请在冰豆网上搜索。

实验三 抽样.docx

实验三抽样

实验三抽样

一,实验目的:

1.通过研究抽样过程,分析并掌握产生混叠效应的原因。

2.学会用matlab对连续信号进行采样,并绘制图形。

3.掌握用matlab实现对连续时间进行傅里叶变换的方法。

4.掌握怎样实现A/D转换。

5.学会怎样设计一个重建滤波器,并用它来实现对信号的重构。

二,实验内容,程序及结果分析:

3.3.1抽样引起的混叠

程序:

ab

fs=8000;

f0=300;

T=0.01;

t=0:

1/fs:

T;

subplot(2,1,1)

x=sin(2*pi*f0*t);

stem(t,x,'p')

xlabel('t/s')

title('f0=300HZ,fs=8kHZ')

grid

subplot(2,1,2)

plot(t,x)

xlabel('t/s')

title('f0=300HZ,fs=8kHZ')

grid

c

fs=8000;

f=100:

125:

475;

T=0.01;

subplot(4,1,1)

t=0:

1/fs:

T;

x1=sin(2*pi*f

(1)*t);

stem(t,x1,'P')

xlabel('t/s')

title('fs=8KHZ,f0=100HZ')

grid

subplot(4,1,2)

x2=sin(2*pi*f

(2)*t);

stem(t,x2,'P')

xlabel('t/s')

title('fs=8KHZ,f0=225HZ')

grid

subplot(4,1,3)

x3=sin(2*pi*f(3)*t);

stem(t,x3,'P')

xlabel('t/s')

title('fs=8KHZ,f0=350HZ')

grid

subplot(4,1,4)

x4=sin(2*pi*f(4)*t);

stem(t,x4,'P')

xlabel('t/s')

title('fs=8KHZ,f0=475HZ')

grid

d

figure

fs=8000;

f=7525:

125:

7900;

T=0.01;

subplot(4,1,1)

t=0:

1/fs:

T;

x1=sin(2*pi*f

(1)*t);

stem(t,x1)

xlabel('t/s')

title('fs=8KHZ,f0=7525HZ')

grid

subplot(4,1,2)

x2=sin(2*pi*f

(2)*t);

stem(t,x2)

xlabel('t/s')

title('fs=8KHZ,f0=7650HZ')

grid

subplot(4,1,3)

x3=sin(2*pi*f(3)*t);

stem(t,x3)

xlabel('t/s')

title('fs=8KHZ,f0=7775HZ')

grid

subplot(4,1,4)

x4=sin(2*pi*f(4)*t);

stem(t,x4)

xlabel('t/s')

title('fs=8KHZ,f0=7900HZ')

grid

 

e

figure

fs=8000;

f=32100:

125:

32475;

T=0.01;

subplot(4,1,1)

t=0:

1/8000:

0.01;

x1=sin(2*pi*f

(1)*t);

stem(t,x1)

xlabel('t/s')

title('fs=8KHZ,f0=32100HZ')

grid

subplot(4,1,2)

x2=sin(2*pi*f

(2)*t);

stem(t,x2)

xlabel('t/s')

title('fs=8KHZ,f0=32225HZ')

grid

subplot(4,1,3)

x3=sin(2*pi*f(3)*t);

stem(t,x3)

xlabel('t/s')

title('fs=8KHZ,f0=32350HZ')

grid

subplot(4,1,4)

x4=sin(2*pi*f(4)*t);

stem(t,x4)

xlabel('t/s')

title('fs=8KHZ,f0=32475HZ')

grid

3.3.3,产生信号

实验内容:

a,产生一个模拟频率为f0的余弦信号以速率fsim产生抽样样本。

b,用plot指令会出时间信号。

c,会出此信号的傅里叶变换。

程序:

傅里叶变换函数的定义:

functionfmagplot(x,dt)

L=length(x);

Nfft=round(2.^round(log2(5*L)));

X=fft(x,Nfft);

range=0:

(Nfft/4);

ff=range/Nfft/dt;

plot(ff/1000,abs(X(range+1)))

title('cont-timefouriertransform(MAG)')

xlabel('frequency(kHZ)')

pause

a,b,c对应的程序:

T=1/80;

fsim=80000;

t=0:

1/fsim:

T;

x=cos(2*pi*2000*t);

subplot(2,1,1)

plot(t,x);

xlabel('t(s)')

title('f0=2000HZ,fsim=80kHZ')

subplot(2,1,2)

fmagplot(x,1/fsim);

从图中可以看出该信号的傅里叶变换就是在2kHZ处的一个脉冲。

3.3.4,A/D转换

实验内容:

A/D转换以间隔Ts抽样。

利用对x(t)抽样所得的样本子集来实现仿真。

令fsim与A/D转换器抽样速率fs的比值取为整数k,这样x(t)向量每隔k-1个样本都可以用来仿真A/D转换。

a,绘出fs=8kHz时产生的离散时间信号。

b,计算离散时间信号的DTFT。

程序:

f0=2000;

fsim=80000;

fs=8000;

n=0:

1000;

x=cos(2*pi*f0*n/fsim);

m=n(1:

fsim/fs:

end);

y=x(1:

fsim/fs:

length(x));

subplot(2,1,1)

stem(m,y,'p')

xlabel('m')

ylabel('y[m]')

title('sampledatasignal')

[Y,W]=dtft(y,1000);

subplot(2,1,2)

plot(W,abs(Y))

xlabel('w')

ylabel('abs(Y)')

title('DTFT')

3.3.5,设计一个重建滤波器

程序:

fsim=80000;

fs=8000;

fcut=2*(fs/2)/fsim;

[b,a]=cheby2(9,60,fcut);

[H,W]=freqz(b,a,1000);

plot(W,abs(H))

3,3,6,D/A转换

实验内容:

a,对实验3,3,4中抽样的信号进行插零操作,然后用上述重建滤波器以得到平滑的输出.

b,绘出得到的连续时间输出信号及其傅里叶变换。

程序:

subplot(2,1,1)

x1=upsample(y,fsim/fs);

x2=filter(b,a,x1);

L=length(x2);

t=0:

1/fsim:

(L-1)/fsim;

plot(t,x2)

xlabel('t')

ylabel('x2(t)')

title('D/Arebuild')

subplot(2,1,2)

fmagplot(x2,1/fsim)

3,3,7,测试混叠

取fs=10KHZ,分别实验了f0=2kHZ,3kHZ,4kHZ,5kHZ,6kHZ,7kHZ,9kHZ,10kHZ,15kHZ,从下面的图中可以看出,当f0=5kHZ时,开始发生混叠。

验证了抽样定理:

采样频率要大于信号最高频率的2倍,即:

fs>=2fmix。

functiontest(f0)

fsim=100000;

fs=10000;

t=0:

1/fsim:

1000/fsim;

xi=cos(2*pi*f0*t);

subplot(2,2,1)

plot(t,xi);

xlabel('t(s)')

ylabel('xi(t)')

title('inputsignalf0=num2str(f0),fsim=100kHZ,fs=10kHZ')

subplot(2,2,2)

fmagplot(xi,1/fsim);

n=0:

1000;

x=cos(2*pi*f0*n/fsim);

m=n(1:

fsim/fs:

end);

y=x(1:

fsim/fs:

length(x));

fcut=2*(fs/2)/fsim;

[b,a]=cheby2(9,60,fcut);

subplot(2,2,3)

x1=upsample(y,fsim/fs);

xr=filter(b,a,x1);

L=length(xr);

t=0:

1/fsim:

(L-1)/fsim;

plot(t,xr)

xlabel('t')

ylabel('xr(t)')

title('D/Arebuild(outputsignal)')

subplot(2,2,4)

fmagplot(xr,1/fsim)

end

 

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 工学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1