电子科技大学 DSP 实验三 采样的时域几及频域分析 联系客服

发布时间 : 星期六 文章电子科技大学 DSP 实验三 采样的时域几及频域分析更新完毕开始阅读

1、在MATLAB中设计完成可变采样率采样(抽取)程序。

2、对比观察、分析各种采样(临界采样、过采样、欠采样)时域频域的情况。 3、(拓展要求)设计完成整数倍内插的MATLAB程序,观察时域频域的变化情况,提出相应滤波器设计要求。

4、(拓展要求)设计分数倍变采样率的MATLAB程序,观察时域频域的变化情况,提出相应滤波器设计要求。

5、 (拓展要求)通过硬件(DSP)实验箱演示上述信号的采样时域(示波器)波形及频域波形(计算结果)。并与MATLAB程序作比较对照。

八、实验数据及分析

1.变采样,内插,抽取程序

function [yn]=SAMPLE(xn,fs0,fs) n_x=length(xn); n_y=fix(fs*n_x/fs0); M=fix(fs0/fs); L=fix(fs/fs0);

if(fs0>=fs&&M==fs0/fs) %整数倍抽取 [b,a]=butter(4,0.5/M,'low'); %滤波,消除混叠 xn1=filter(b,a,xn);

yn=xn1(1:M:length(xn1));

elseif(fs0

yn1(1:L:n_y)=xn(1:n_x); %等距插入L-1个0值 [b,a]=butter(4,0.5/L,'low'); %滤波,抑制镜像 yn=filter(b,a,yn1);

else %分数倍变采样 [b,a]=butter(4,0.5/M,'low'); xn1=filter(b,a,xn); g=gcd(fs0,fs);

M=fs0/g;L=fs/g; %M倍抽取 xn_tmp=xn1(1:M:length(xn1)); yn1=zeros(1,L*length(xn_tmp));

yn1(1:L:length(yn1))=xn_tmp(1:length(xn_tmp));%L倍内插 [b,a]=butter(4,0.5/L,'low'); yn=filter(b,a,yn1); end

2.主程序

clear; clc;

fs0=10000; %原始信号采样频率

fs=[150,400,2000]; %采样频率分别为 100 400 2000 Hz t=0:1/fs0:1;

xn=10*cos(2*400*pi*t+pi/4)+7*cos(2*200*pi*t-pi/3)-3*cos(2*100*pi*t); 包含100,200,400hz频率分量

%原始信号 %原始信号时域和频域分析 X=abs(fftshift(fft(xn))); n_x=length(xn);

f_hz=linspace(-fs0/2,fs0/2,n_x); 0hz采样时域和频域分析 yn1=SAMPLE(xn,fs0,fs(1)); n_y1=length(yn1);

f_hz1=linspace(-fs(1)/2,fs(1)/2,n_y1); Y1=abs(fftshift(fft(yn1))); 0hz采样时域和频域分析 yn2=SAMPLE(xn,fs0,fs(2)); n_y2=length(yn2);

f_hz2=linspace(-fs(2)/2,fs(2)/2,n_y2); Y2=abs(fftshift(fft(yn2))); @0hz采样时域和频域分析 yn3=SAMPLE(xn,fs0,fs(3)); n_y3=length(yn3);

f_hz3=linspace(-fs(3)/2,fs(3)/2,n_y3); Y3=abs(fftshift(fft(yn3))); %画图 figure(1)

subplot(4,1,1),plot(t,xn),axis([0,0.2,1.2*min(xn),1.2*max(xn)]),title('原始信号,采样率10000hz'),xlabel('时间(s)'),ylabel('幅度');

subplot(4,1,2),stem(linspace(0,3,n_y1),yn1),axis([0,0.2,1.2*min(yn1),1.2*max(yn1)]),title('100hz 采样'),xlabel('时间(s)'),ylabel('幅度');

subplot(4,1,3),stem(linspace(0,3,n_y2),yn2),axis([0,0.2,1.2*min(yn2),1.2*max(yn2)]),title('200hz 采样'),xlabel('时间(s)'),ylabel('幅度');

subplot(4,1,4),stem(linspace(0,3,n_y3),yn3),axis([0,0.2,1.2*min(yn3),1.2*max(yn3)]),title('400hz 采样'),xlabel('时间(s)'),ylabel('幅度'); figure(2)

subplot(4,1,1),plot(f_hz,X),axis([-500,500,1.2*min(X),1.2*max(X)]),title('原始信号'),xlabel('频率(Hz)'),ylabel('幅度');

subplot(4,1,2),plot(f_hz1,Y1),axis([-500,500,1.2*min(Y1),1.2*max(Y1)]),title('100hz 采样'),xlabel('频率(Hz)'),ylabel('幅度');

subplot(4,1,3),plot(f_hz2,Y2),axis([-500,500,1.2*min(Y2),1.2*max(Y2)]),title('200hz 采样'),xlabel('频率(Hz)'),ylabel('幅度');

subplot(4,1,4),plot(f_hz3,Y3),axis([-500,500,1.2*min(Y3),1.2*max(Y3)]),title('400hz 采样'),xlabel('频率(Hz)'),ylabel('幅度');

实验截图:

实验分析:

答:原始信号包含100Hz、200Hz、400Hz频率分量。

当采样率为150Hz时,所有频率分量欠采样,由频谱可知,频谱发生混叠。 当采样率为400Hz时,100Hz过采样,200Hz临界采样,400Hz欠采样,有频谱分析只完整恢复出了100Hz,200Hz的恢复不佳,400Hz无法恢复。

当采用率为2000Hz时,所有频率分量都过采样,均能完整恢复,且与采样前频谱相差不多。

九、实验结论:

答:通过对同一种信号以不同的频率进行采样(欠采样、临界采样、过采样),得到不同的采样结果。其中欠采样的信号发生混叠,不能恢复成原信号;临界采样只能恢复低频成分,不能恢复高频成分;过采样信号能很好地恢复出原信号。故实际的通信中,应采用过采样。

十、总结及心得体会:

答:通过matlb实现,加深了对采样的实频域的认识

十一、对本实验过程及方法、手段的改进建议:

报告评分: 指导教师签字: