目录
目录
1.什么是卷积
卷积是为了模拟一个信号。卷积其实就是要用带强度 (系数) 的冲激串 (冲激信号和) 去模拟一个完整的信号。卷积是唯一一个在时域信号上满足线性和时不变性的运算
筛选性质:因为序列 当且仅当 k=n 时,即括号内整体为零时非零,其他位置都是 0。
因为冲激函数只有括号内值为0的时候有采样的功能,我只要知道信号本体每一个点的强度(x[n]的值是多少),或者说在这个函数图像上的振幅/加权是多少,然后把他累加(积分),是不是就可以模拟一个完整的信号,不管他是什么形状。
通过表示输入序列,这个式子只是表示了一个信号,我们的信号是要输入进线性时不变系统的,那么系统对这个信号的响应是什么呢?我们可以把看作本体,看作整幅
输入进系统,其实这就是系统对单位冲激的响应,简称单位冲激响应,由于冲激函数本身的性质,系统被迫也只能在每个对应的点做出响应,刚好乘1就还是自己本身。也就是说,对于一个未知系统,我们把单位冲激函数扔进这个系统,就可以得到这个系统的函数,一般写作 。
2. 正弦序列参数
2.1正弦序列
是角频率,单位是 弧度/秒,是数字频率,单位是 Hz ,,数字频率可以转换为角频率
2.2数字角频率和模拟角频率
是数字角频率,是模拟角频率
两者的转换关系为 或者 ,其中是采样周期,即多久采集一次样本,采样频率
2.3模拟信号
是时间,单位为秒,是模拟角频率,单位是弧度/秒,因此,表示秒对应的弧度值,是模拟频率,没有单位,模拟信号转换为数字信号
3.(时域)低通采样定理(采样是频谱的搬移)
当采样频率fs大于等于被采样信号最高频率的2倍时,采样后的频谱不混叠,且可以对采样后的信号无失真的恢复出原始信号。
3.1信号的理想采样
即输入模拟信号和采样冲激序列相乘,
根据频域卷积定理,时域相乘等于频域做卷积再乘,解释见链接 http://t.csdn.cn/xkvGR
采样率至少为信号最大频率分量的2倍:没有混叠现象
采样率小于信号最大频率分量的2倍:有混叠现象
有混叠就没有办法通过滤波的方式恢复原来的信号,因此一定要满足采样定理,采样是频谱的搬移
3.2信号的实际采样
实际采样信号不是理想状态下的冲激串,而是周期的矩形脉冲
3.3采样问题汇总
1.一定要预滤波吗?
要考虑系统的性能要求,如果系统输入信号很好,干扰很小不需要预滤波
2.采样信号如何确定?
起码为原始信号的两倍
3.一定能恢复原信号?
理论上没有问题,采样完了,频谱搬移,再滤波,恢复原来的信号
4.一定要平滑滤波吗?
如果对系统指标要求比较高,要求去掉尾巴上的干扰,需要平滑滤波
4.(时域)带通采样定理
需要恢复原信号的特征之一是频谱不混叠,
输入只在某一段有信号时,可以用带通采样定理,若低频段到高频段一直都有信号,需要使用奈奎斯特采样定理。
以64k采样信号对3k,67k信号采样结果是一样的,因为用64k采样,在时域上只可能展示0~32k的信号,因为按道理是-32~32,但是时域只显示正数,因此采样率67k(64k-67k=-3k,由-3k对称得到3k),因此采样67k和采样3k结果一样。 以64k采样65k,时域结果为1k的正弦波信号,以64k采16k结果为三角波,因为一个周期只能采4个点,连起来就是三角波。
matlab代码如下
clc; %清屏
clear all; %清变量
N=20; %数据长度
fs=64000; %采样频率
f0=80000;
f1=16000;
t=0:(N-1);
t=t/fs; %时间序列
s0=sin(2*pi*f0*t);
s1=sin(2*pi*f1*t);
%绘图
subplot(211);plot(t,s0); title('f0=67kHz');
subplot(212);plot(t,s1); title('f1=3kHz');
5.傅里叶变换
连续信号求频谱用傅里叶积分,普通离散序列(非周期)求频谱用傅里叶变换,周期离散序列求频谱用傅里叶级数
信号频谱的作用就是用图形(频谱图)或公式(向量形式)来表示组成这个周期信号的所有不同频率的余弦信号的“三参数” (幅度、初相和频率或角频率),也就是说,频谱是用“参数”的形式表示原信号的组成成分,我们不但要知道信号的组成成分还要知道这些成分的份额,这就是大家说到的“原信号的配方”。
- 输入是正弦信号,输出是同频的正弦信号
- 输入可以分解为多个正弦信号的叠加,所有信号都可以由不同频率的正弦波叠加而成
- 系统的作用不过是改变正弦信号的幅度和相位
结论:正弦序列经过线性时不变后,输出频率不会发生改变,但是幅度和相位将会乘以一个常数
5.1时域离散傅里叶变换(FT)(非周期离散序列)
连续信号求频谱用傅里叶积分,普通离散序列(非周期)求频谱用傅里叶变换,周期离散序列求频谱用傅里叶级数
求普通离散序列(非周期信号)的频谱,我们用时域离散傅里叶变化,得到频域连续的谱,周期为2pi
傅里叶正变化
傅里叶逆变化
5.2离散傅里叶级数(周期离散序列)
连续信号求频谱用傅里叶积分,普通离散序列(非周期)求频谱用傅里叶变换,周期离散序列求频谱用傅里叶级数
我们求时域离散傅里叶级数,得到离散的谱,周期为N
正变化:
逆变换:
周期信号周期为T,则基波频率为,谐波频率为
时域周期,则频域一定是离散的,存在离散的傅里叶级数
离散的谱,周期为N
傅里叶级数是在时域用余弦信号的形式来表征周期信号的组成,注意:傅里叶级数是时域的,它的自变量是时间t
5.3离散傅里叶变换的物理意义(DFT)(有限长离散序列)
先将有限长序列变成周期的,再对周期离散序列求傅立叶级数,再取一个周期
DFT:有限长序列离散傅里叶变换(既取周期序列离散傅里叶级数的一个周期)
头上有波浪号代表是周期信号
正变化
反变换
第一种意义:DFT是周期延拓序列的频谱特性,进行N点变化,就以周期为N进行延拓
第二种意义:DFT是FT在0~2π之间的等间隔采样
举例:序列长度为L,进行N点变化
clc; %清屏
clear all; %清变量
N=8; %矩形序列的周期
L=4; %矩形序列的长度
rn=ones(1,L); %矩形的长度
xn=[rn,zeros(1,N-L)];
n=0:N-1;
xk=fft(rn,N); %离散谱
w=0:0.1:2*pi;
xw=(1-exp(-j*w*L))./(1-exp(-j*w)); %连续谱
subplot(311)
stem(n,xn);title('x(n)');grid on;
subplot(312);
stem(n,abs(xk));title('X(K)'); grid on;
subplot(313)
plot(w,abs(xw));title('X(jw)');grid on;
L=4 N =8 L=4 N=4
结论:DFT是对FT的等间隔采样,随着采样点数的增多,DFT越来越接近FT
6离散傅里叶变换(DFT)的性质
DFT的共轭对称性:用于减少运算量
DFT的循环卷积定理:用于减少运算量
循环卷积的作用:计算机、fpga、dsp只能处理有限长序列,因此需要通过DFT,求循环卷积对无限长序列做处理,
如果循环卷积的长度和线性卷积的长度相同 即N=N1+N2-1 则线性卷积的长度和循环卷积的长度相同
matlab中的fft即求DFT即离散傅立叶变换,如果要求FT要对应具体的公式自己推
a(n) b(n)->DFT a(k) b(k)
a(k)*b(k) = 频率相乘等于时域做循环卷积
两个信号先分别求DFT,再相乘,再求反变化得到循环卷积
7.频域采样定理
采样点数不小于序列点数
FFT是DFT的快速算法
对长度为L的输入序列,做N点DFT
若L=N,结果相同
若L<N,则对输入序列点补N-L个0
若L>N,则取输入序列前N个点做DFT
8.FFT应用
8.1计算卷积
卷积和DFT一样计算量特别大
什么情况下需要计算卷积?
想要得到信号经过设计好的系统的输出。
时域卷积等于频域通过FFT后相乘再做反变换,减少运算量
clc;clear ll;
xn=1:15;
yn=16:30;
c_xy=conv(xn,yn); //时域做卷积
% fx=fft(xn);
% fy=fft(yn);
fx=fft(xn,29);%L+M-1=15+15-1 // xn FFT 循环卷积长度和线性卷积长度相同
fy=fft(yn,29);%L+M-1=15+15-1 // yn FFT 循环卷积长度和线性卷积长度相同
fxy=fx.*fy; // 频域相乘
f_xy=ifft(fxy); // 再做反变换变回时域
subplot(211);stem(c_xy);title('c_xy');
subplot(212);stem(f_xy);title('f_xy');
如何用DFT计算卷积,DFT只针对有限长序列的循环卷积
8.2分析信号频谱
模拟信号的分析方法
1.采样后取一段信号来分析(有限长离散序列DFT)
截取一段数据与真是信号的实际特征有什么关系?
谱线的位置与实际频率之间的关系
模拟信号转换为数字信号
模拟角频率 ,是模拟频率
正弦信号模拟角频率为,则其数字角频率为,, Ts为采样频率,对一个数字序列以采样,得到一个连续周期的谱,周期为2,DFT相当于对这个连续周期的谱取一个周期即在0~2等间隔采样,采N个点范围为0~N-1,当时,,即数字角频率里的,对应模拟角频率里的
如何分辨两个频率,如果信号DFT的分辨率是df,则当这两个信号间隔大于2倍df时,一定分辨的出来,大于df时有时能分开,有时不能