实验(1)信号的采样

本文的pdf文件:link
       由于在计算机中存储的信号都是数字信号,所以无法选用真实的信号来进行处理,本文主要利用软件来模拟真实信号,并对该模拟信号进行采样,采样的影响因素主要是采样频率,于是采用不同的采样频率得到采样后的离散时间信号,并分析采样频率如何选择才可以无失真的恢复出原来的信号,并推理出奈奎斯特频率的原理。

一、实验目的

       建立模拟信号的数学模型,设计计算机程序仿真产生模拟信号;采用过采样和欠采样多个不同的采样频率对模拟信号进行时域采样产生离散信号,绘制模拟信号和离散信号的时域波形图进行分析对比,深入理解信号的采样过程,模拟信号与离散信号的特点,时域采样定理。

二、实验原理

2.1 信号

       信号是信息的载体,是信息表达的一种形式,例如烟雾、交通灯、语音、图像、地震波、心电图等都可以称之为信号。
在这里插入图片描述
       在社会科学、自然科学和人们的日常生活中会遇到各种和样的信号,其中有的是客观存在的,有的则是人类有目的制造的;有的信号是有用的,有的则是不需要的,甚至是有害的。虽然有不同类型的信号,但一般来说,信号都可以表示为独立自变量的函数。函数的自变量可以是时间、温度、压力等,而特定自变量所对应的函数值都可以理解为信号的幅度值。
       按照信号中自变量和幅度的取值特点可以将信号进行分类:
在这里插入图片描述

2.2 模拟信号

       按信号中自变量和幅度的取值特定,如果信号的自变量和函数值都取连续值,例如语音信号、温度信号等,则信号为时域连续信号,也就是模拟信号。自然界中大多数信号是模拟信号。

2.3 离散信号

       如果自变量取离散值,而函数值取连续值,这种信号通常来源于对模拟信号的采样。
在这里插入图片描述
       如图所示,离散信号实际上就是对模拟信号进行间隔性采样得到的结果,由于计算机智能处理数字信号,不能处理模拟信号,但是生活中得到的视频音频等信号都是模拟信号,计算机无法处理,所以首先需要将模拟信号转化为数字信号,而采样就是第一步。

2.4 采样定理

       DSP在实际应用中有精度高,灵活性强,可以实现模拟系统很难达到的指标或特性,可以实现多维信号处理等优点,一般情况下模拟信号的数字处理方法主要有以下步骤:
在这里插入图片描述
       由上图可知,采样是信号进行DSP的必要步骤,采样的好坏直接影响后续的一系列操作,下面主要说说信号的采样定理。
       对模拟信号进行采样可以看作一个模拟信号通过一个电子开关,设电子开关每隔周期T合上一次,而每次开关闭合的时间远远小于周期T。由于闭合开关总是会存在时间,所以实际中的采样一定是矩形脉冲采样,如果开关闭合的时间趋近于0,就可以做到理想采样。
       对于周期性的单位脉冲串,记为p_δ (t),称为采样脉冲信号。可以写成
在这里插入图片描述
       其图像如图所示:
在这里插入图片描述
       式中n取整数。 p δ ( t ) p_δ (t) pδ(t)中每个单位冲击信号处在信号的采样点上,强度为1.理想采样则是 x a ( t ) x_a (t) xa(t) p δ ( t ) p_δ (t) pδ(t)相乘的结果,记作x ̂a (t),称为采样信号,表示为
x a ( t ) ( 采 样 ) = x a ( t ) p δ ( t ) x _a (t) (采样)= x_a (t) p_δ (t) xa(t)=xa(t)pδ(t)

       2.3中只是对采样过程做了一个定性的分析,在数学中,采样过程实际上是模拟信号与取样函数的乘积,具体计算过程如下:
在这里插入图片描述
       其中 x a ( t ) x_a (t) xa(t)为模拟信号, x ( n T ) x(nT) x(nT)为离散信号, δ T ( t ) δ_T (t) δT(t)为取样函数。
       下面研究理想采样信号前后信号频谱的关系,从而找出为了使采样不丢失信息,由采样信号不失真地恢复原模拟信号,采样频率 Ω s Ω_s Ωs与模拟信号最高频率 Ω c Ω_c Ωc之间地关系,得出采样定理。
       采样脉冲信号 p δ ( t ) p_δ (t) pδ(t)为周期信号,可以用傅里叶级数展开表示
在这里插入图片描述
        c k c_k ck为傅里叶系数。考虑到积分只是在一个周期内进行,所以
在这里插入图片描述
       这样, p δ ( t ) p_δ (t) pδ(t)的傅里叶级数表示为
在这里插入图片描述
       对x ̂_a (t)= x a ( t ) p δ ( t ) x_a (t) p_δ (t) xa(t)pδ(t)两边分别取傅里叶变换,得
在这里插入图片描述
       式中,X ̂_a (jΩ)是采样信号x ̂_a (t)的频谱, X a ( j Ω ) X_a (jΩ) Xa(jΩ)是模拟信号 x a ( t ) x_a (t) xa(t)的频谱。
       上式表明,采样信号的频谱是原模拟信号的频谱沿频率轴,每隔一个采样频率重复出现一次,或者说采样信号的频谱是原模拟信号的频谱以采样频率为周期,进行周期延拓而形成的。
在这里插入图片描述
       设模拟信号是带限信号,最高截至频率为 Ω c Ω_c Ωc,如果采样频率 Ω s ≥ Ω c Ω_s≥Ω_c ΩsΩc,那么可以不失真的恢复原来的模拟信号,否则会造成信号的频谱混叠,不能不失真的恢复原来的模拟信号。能够不失真的恢复出原来模拟信号的最低采样频率称为奈奎斯特采样频率。

三、实验过程

3.1 设计步骤

       由matlab产生模拟信号,并分别采用不同的频率对其进行采样,最后将采样点利用插值法得到其恢复后的信号,对比不同频率下采样的区别。
在这里插入图片描述

3.2 读取音频信号并分析其频谱

在这里插入图片描述
       如图所示,信号的波形如上图所示,对信号进行快速傅里叶变换即可得到其频谱,如下图所示:
在这里插入图片描述

3.3 建立模拟信号

       生成信号频率为f=20Hz的信号:
y = s i n ⁡ [ ( 2 ∗ p i ∗ f ∗ t ) + c o s ⁡ [ ( 2 ∗ p i ∗ f ∗ t ) ] ] y=sin⁡[(2*pi*f*t)+cos⁡[(2*pi*f*t)] ] y=sin[(2pift)+cos[(2pift)]]
       如图为两个周期内的函数图像
在这里插入图片描述

3.4 不同采样频率对信号的采样

       设置采样频率为20,得到其采样过程和采样后的信号
在这里插入图片描述
       设置采样频率为40,得到其采样过程和采样后的信号。
在这里插入图片描述
       设置采样频率为320,得到其采样过程和采样后的信号。
在这里插入图片描述

四、结果分析

       1、对连续信号进行等间隔采样形成采样信号,采样信号的频谱是原连续信号的频谱以采样频率为周期进行周期性延拓形成的。
       2、设连续信号为带限信号,如果采样频率大于二倍的连续信号的最高截至频率,则采样信号通过一个理想低通滤波器后可以唯一的恢复出原连续信号。过程如下:
在这里插入图片描述
       根据不同的采样频率可以得到不同的采样结果,根据得到的采样点,可以画出图像,可以看出,采样频率越高,则越接近原来的真实信号,在满足奈奎斯特频率的情况下,采样信号可以恢复出原信号,若是采样频率过低,则可能会发生频谱混叠。

五、matlab代码

function shiyan1()
%建立模拟信号的数学模型,设计计算机程序仿真产生模拟信号。
%采用过采样和欠采样多个不同的采样频率对模拟信号进行时域采样产生离散信号。
%绘制模拟信号和离散信号的时域波形图进行分析对比。
%深入理解信号的采样过程,模拟信号与离散信号的特点,时域采样定理。
[x,Fs]=audioread('1.mp3');
x = x(:,1);
x = x';
N = length(x);%求取抽样点数
t = (0:N-1)/Fs;%显示实际时间
y = fft(x);%对信号进行傅里叶变换
%f = Fs/N*(0:round(N/2)-1);%显示实际频点的一半
f = Fs/N*(0:N-1);

figure(1)
plot(t(1:10000),x(1:10000),'g');%绘制时域波形
%axis([0 max(t) -1 1]);
xlabel('Time / (s)');
ylabel('Amplitude');
title('信号的波形');
grid on;
%plot(f,abs(y(1:round(N/2))));
plot(f,abs(y(1:N)));
xlabel('Frequency / (s)');
ylabel('Amplitude');
title('信号的频谱');
grid on;

f=20;               %信号频率
t=(0:0.0001:0.1);    %定义信号的时间范围
x=sin(2*pi*f*t)+cos(2*pi*f*t);     %生成信号

figure(1)
plot(t,x);
ylim([-2 2])
title('原始信号')
grid on;
fs=320;              %采样频率
N=33;                %定义采样点数
dt=1/fs;             %采样间隔,采样间隔其实就可以理解为是采样信号的周期,周期=1/频率
T=(0:N-1)*dt;        %定义采样的每个时间点
x1=sin(2*pi*f*T)+cos(2*pi*f*T);    %对信号进行采样

figure(2)
subplot(1,2,1)
plot(t,x,T,x1,'rp');
xlim([0,0.1])
ylim([-2 2]);
title('采样过程')
grid on;
subplot(1,2,2)
plot(T,x1);
xlim([0,0.1])
ylim([-2 2])
xlabel('时间/s')
title('采样后的信号')
grid on;

%用stem()函数来绘制采样图
f=20;                  %信号频率为20Hz
t=(0:0.0001:0.1);      %定义信号的时间范围
x=cos(2*pi*f*t);       %生成信号
fs=400;                %采样频率为400Hz
dt=1/fs;               %采样间隔,采样间隔其实就可以理解为是采样信号的周期,周期=1/频率
T=0:dt:0.1;            %定义采样的每个时间点
x1=cos(2*pi*f*T);      %对信号进行采样
subplot(211)
plot(t,x)
subplot(212)
stem(T,x1)
end
  • 11
    点赞
  • 61
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值