加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

数字信号处理实验四

(2013-04-08 15:36:23)
标签:

数字信号

实验报告

采样定理

采样

恢复

数字信号处理实验四

【实验目的】加深对采样定理(奈奎斯特采样定理)的理解,掌握对连续信号进行采样、恢复及对信号进行离散时间傅里叶变换的方法及编程。

【实验内容】

1、画出连续时间信号的时域波形及其幅频特性曲线,信号为

(x)= sin(2*pi*60*t)

2、 对信号进行采样,得到采样序列 ,画出采样频率分别为80Hz,120 Hz,150 Hz时的采样序列波形;

3、对不同采样频率下的采样序列进行频谱分析,绘制其幅频曲线,对比各频率下采样序列和的幅频曲线有无差别。

4、对信号进行谱分析,观察与3中结果有无差别。

5、由采样序列恢复出连续时间信号 ,画出其时域波形,对比与原连续时间信号的时域波形。

【参考代码】说明:代码中有两处eval_r( )函数,应将函数名中后面的下划线及字母r去掉,不知道什么原因,在Matlab的M文件编辑器及记事本中都没问题,发到博客上就变成这样了。大家在调试前,把这两处改过来。

另外,我这里的代码实际上由两个函数和一个主程序组成,两个函数要分别以指定的函数名保存,主程序单独以M文件方式编写,在主函数中要调用这两个函数。

%实现采样频谱分析绘图函数

function fz=caiyang(fy,fs)         

%第一个输入变量是原信号函数,信号函数fy以字符串的格式输入

%第二个输入变量是采样频率

fs0=10000;  tp=0.1;

t=[-tp:1/fs0:tp];

k1=0:999;  k2=-999:-1;

m1=length(k1);  m2=length(k2);

f=[fs0*k2/m2,fs0*k1/m1];                  %设置原信号的频率数组

w=[-2*pi*k2/m2,2*pi*k1/m1];

fx1=eval_r(fy);

FX1=fx1*exp(-j*[1:length(fx1)]'*w);

%求原信号的离散时间傅里叶变换

figure

% 画原信号波形

subplot(2,1,1),plot(t,fx1,'r')

title('原信号'), xlabel('时间t (s)')

axis([min(t),max(t),min(fx1),max(fx1)]) % 画原信号幅度频谱

subplot(2,1,2),plot(f,abs(FX1),'r')

title('原信号幅度频谱') , xlabel('频率f (Hz)')

axis([-100,100,0,max(abs(FX1))+5])          % 对信号进行采样

Ts=1/fs;                                 %采样周期

t1=-tp:Ts:tp;                             %采样时间序列

f1=[fs*k2/m2,fs*k1/m1];                   %设置采样信号的频率数组

t=t1;                                    %变量替换

fz=eval_r(fy);                        %获取采样序列;

FZ=fz*exp(-j*[1:length(fz)]'*w);

%采样信号的离散时间傅里叶变换

figure

% 画采样序列波形

subplot(2,1,1),stem(t,fz,'.'),

title('取样信号') , xlabel('时间t (s)')

line([min(t),max(t)],[0,0])

% 画采样信号幅度频谱

subplot(2,1,2),plot(f1,abs(FZ),'m')

title('取样信号幅度频谱') , xlabel('频率f (Hz)')

 

%信号的恢复及频谱函数

function fh=huifu(fz,fs)                

%第一个输入变量是采样序列

%第二个输入变量是得到采样序列所用的采样频率

T=1/fs;   dt=T/10;    tp=0.1;

t=-tp:dt:tp;  n=-tp/T:tp/T;

TMN=ones(length(n),1)*t-n'*T*ones(1,length(t));

fh=fz*sinc(fs*TMN);                   % 由采样信号恢复原信号

k1=0:999;  k2=-999:-1;

m1=length(k1);  m2=length(k2);

w=[-2*pi*k2/m2,2*pi*k1/m1];

FH=fh*exp(-j*[1:length(fh)]'*w);

% 恢复后的信号的离散时间傅里叶变换

figure

% 画恢复后的信号的波形

subplot(2,1,1),plot(t,fh,'g'),

st1=sprintf('由取样频率fs=%d',fs);

st2='恢复后的信号';

st=[st1,st2];  title(st) , xlabel('时间t (s)')

axis([min(t),max(t),min(fh),max(fh)])

line([min(t),max(t)],[0,0])               % 画重构信号的幅度频谱

f=[10*fs*k2/m2,10*fs*k1/m1];           %设置频率数组

subplot(2,1,2),plot(f,abs(FH),'g')

title('恢复后信号的频谱') , xlabel('频率f (Hz)')

axis([-100,100,0,max(abs(FH))+2]);

 

%主函数

f1='sin(2*pi*60*t) ';%输入一个信号

fs0=caiyang(f1,80); %频率 ,即 欠采样

fr0=huifu(fs0,80);

fs1=caiyang(f1,120);%频率 ,临 界采样

fr1=huifu(fs1,120);

fs2=caiyang(f1,150);%频率 ,即 过采样

fr2=huifu(fs2,150);

 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有