MATLAB仿真----连续信号的采样与重构

一、摘要

本次《信号与系统》课程设计通过学习连续信号的采样与重构原理,学习应用 MATLAB 软件的仿真技术实现对连续信号的采样与重构,并验证抽样定理。

本次课程设计强化了对采样和重构理论概念的理解,用MATLAB分析系统频率响应和实现连续信号采样和重构的方法,我们需要灵活运用理论知识选择适当的滤波器实现连续信号采样和重构。分别在临界采样、过采样、欠采样三种不同条件下计算重构信号与原连续信号之间的误差,由此总结采样频率对信号重构误差的影响并验证抽样定理。主要侧重于理论知识的灵活运用,分析如何将理论知识应用到MATLAB仿真中,掌握、理解、分析一些关键命令等。

信号是反映信息的各种物理量,信号的描述可以用数学描述或波形描述。它是系统直接进行加工、变换以实现通信的对象。通过本次课程设计,初步掌握线性系统的设计方法,培养独立工作能力。

二、设计目的及要求

1.设计目的

《信号与系统》课程是通信工程专业的专业基础课。课程设计是在课程内容学习结束,学生基本掌握了该课程的基本理论和方法后,进一步培养学生灵活运用所学理论知识分析、解决实际问题的能力。信号是系统直接进行加工、变换以实现通信的对象,通过运用MATLAB仿真完成对一个连续信号采样与重构,提高学生MATLAB仿真及组织实验的能力,了解并掌握MATLAB软件的设计思想。

2.设计要求

(1)掌握利用MATLAB实现对常用连续时间信号的可视化表示。

(2)掌握利用MATLAB实现对连续信号频域的可视化表示。

(3)加深理解抽样对信号的时域和频域特性的影响。

(4)掌握连续信号在时域的采样与重构的理论原理和MATLAB仿真技术。

(5)对比重构信号与原信号并验证抽样定理,加深对抽样定理的理解和掌握。

3.课程设计目标  

(1)设计一个频率在0-100HZ的连续时间信号,选择合适的滤波器,用matlab仿真实现对该连续信号的采样与重构。

(2)对比重构信号与原信号误差并验证抽样定理。

此程序仅为过采样,以此为例,请读者自行分析欠采样与临界采样。

%% Sa的时域波形与频谱图
t1=-20:0.05:20; 
f1=sinc(t1/pi); %相当于Sa(t)
figure(1);
subplot(221);
plot(t1,f1); 
xlabel('t1');ylabel('ft1'); 
title('Sa(t)时域波形');
grid;
subplot(222);
N=1000; %定义N
k=-N:N; %2001个点
w1=10; %频率范围在(-10,10)
w=k*w1/N; %在(-10,10)取2001个点
F=f1*exp(-1j*t1'*w)*0.05; %傅里叶变换(Dt=0.05第2行的设置)('是转置,矩阵只能列向量×行向量)
plot(w,F);
xlabel('x'); ylabel('fw1'); 
title('Sa(t)频谱图'); 
grid;

%% 抽样(离散图和频谱图)
wm=1; %信号带宽((带限信号)
wc=1.4*wm; %滤波器的截止频率wm<wc<(ws-wm)
Ts=2; %采样间隔(Ts<pi是过采样)(设成整数是对称的)
ws=2*pi/Ts; %最低抽样频率 rad/s
n=-10:10; %采样点个数(序列长度)
Tss=-20:Ts:20;%时域具体采样点
f2=sinc(Tss/pi); %抽样信号
subplot(223);
stem(Tss/pi,f2);%抽样后的离散图
xlabel('kTs');
ylabel('f(kTs)');
title('Sa(t)的抽样信号');
 
%冲激抽样后的频谱
F2w=f2*exp(-1j*Tss'*w)*Ts;
Fw2=abs(F2w);
subplot(2,2,4);
plot(w,Fw2);
xlabel('w');
ylabel('Fs(w)');
title('Sa(t)的抽样信号的频谱图');
%% 重构
figure(2);
Dt=0.005;t=-20:Dt:20;%(重构后的取点的间隔)
fa=f2*Ts*wc/pi*sinc((wc/pi)*(ones(length(Tss),1)*t-Tss'*ones(1,length(t)))); %(wc是滤波器截止频率要大于等于wm)
%信号重建(将抽样的离散信号通过内插方法重构成连续的信号)subplot(311);
plot(t,fa);
xlabel('t');
ylabel('fa(t)');
title('重构Sa(t)');
grid; 
subplot(312);
plot(t1, f1, t, fa);
title('f1与fa进行对比');%通过改变Ts看出差别
xlabel('t/s');
ylabel('幅度');
legend('f1', 'fa');
grid on;
  • 10
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是应用MATLAB实现连续信号采样重构仿真的步骤。 一、实验目的 通过本次实验,我们的目的是掌握连续信号采样原理和恢复方法,了解采样定理的意义及其应用。同时,学会使用MATLAB进行信号处理和仿真。 二、实验原理 实验原理与上一篇实验报告相同,这里不再赘述。 三、实验步骤 1. 生成一个模拟信号,并进行可视化展示。 在MATLAB中,我们可以使用sin函数和plot函数来生成并可视化一个正弦信号,具体代码如下: ```matlab t = 0:0.001:1; % 生成时间序列 f = 10; % 正弦信号频率 x = sin(2*pi*f*t); % 生成正弦信号 plot(t, x); % 可视化正弦信号 ``` 生成的正弦信号如下图所示: ![sine wave](https://img-blog.csdnimg.cn/20210927154341624.png) 2. 对信号进行采样,并可视化展示采样结果。 在MATLAB中,我们可以使用discrete函数来对信号进行采样,具体代码如下: ```matlab fs = 30; % 采样频率 Ts = 1/fs; % 采样间隔 n = 0:Ts:1; % 采样时间序列 xn = sin(2*pi*f*n); % 采样信号 stem(n, xn); % 可视化采样信号 ``` 采样结果如下图所示: ![sampled signal](https://img-blog.csdnimg.cn/20210927154430194.png) 3. 对采样结果进行恢复,生成恢复后的信号,并进行可视化展示。 在MATLAB中,我们可以使用interp1函数来对采样结果进行线性插值,具体代码如下: ```matlab t2 = 0:0.001:1; % 生成时间序列 x2 = interp1(n, xn, t2, 'linear'); % 进行线性插值 plot(t2, x2); % 可视化恢复后的信号 ``` 恢复后的信号如下图所示: ![recovered signal](https://img-blog.csdnimg.cn/20210927154516721.png) 4. 计算采样频率,并验证采样定理。 在MATLAB中,我们可以使用sampling函数来计算采样频率,具体代码如下: ```matlab Fs = sampling(x); % 计算采样频率 fmax = f; % 原始信号最高频率 if Fs > 2*fmax % 验证采样定理 disp('采样定理成立'); else disp('采样定理不成立'); end ``` 运行结果显示采样定理成立。 四、实验结论 通过本次实验,我们掌握了连续信号采样原理和恢复方法,了解了采样定理的意义及其应用。同时,我们还学会了使用MATLAB进行信号处理和仿真,可以对信号进行可视化展示。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值