数字信号处理实验.docx
- 文档编号:4573332
- 上传时间:2022-12-06
- 格式:DOCX
- 页数:16
- 大小:134.88KB
数字信号处理实验.docx
《数字信号处理实验.docx》由会员分享,可在线阅读,更多相关《数字信号处理实验.docx(16页珍藏版)》请在冰豆网上搜索。
数字信号处理实验
实验一离散傅里叶变换的性质
一、实验目的
1、掌握离散傅里叶变换的性质,包括线性特性、时移特性、频移特性、对称性和循环卷积等性质;
2、通过编程验证傅里叶变换的性质,加强对傅里叶变换性质的认识。
二、实验原理和方法
1.线性特性
2.时移特性
3.频移特性
4.对称性
设由x(n)延拓成的周期序列为
则
共轭对称序列
共轭反对称序列
将
和
截取主周期,分别得
则
x(n)序列的实部和虚部的离散立叶变换
当x(n)为实数序列
5.循环卷积
有限长序列线性卷积与循环卷积的关系
x1(n)和x2(n)的线性卷积:
将x1(n)和x2(n)延拓成以N为周期的周期序列
则它们的周期卷积为
x1(n)和x2(n)周期延拓后的周期卷积等于他们的线性卷积的的周期延拓
三、实验内容和步骤
x1[n],x2[n]
为长度N=8的实序列,x1[n]=[13536839],x2[n]=[24367902],
x3[n],x4[n]为长度N=8的随机复序列,x3[n]=[1+2j3+4j5+3j3+4j6+j8+2j3+3j9+2j],x4[n]=[4+1j6+4j4+3j3+4j7+j8+3j3+4j1+2j],采用MATLAB编程验证傅里叶变换的如下性质
1.线性特性
a.给出序列x1[n]的傅里叶变换X1[k],并画出其幅度谱和相位谱
程序如下:
clearall;
x1=[13536839];
n=0:
length(x1)-1;
X1=fft(x1);
R1=real(X1);
I1=imag(X1);
M1=abs(X1);
phase1=atan2(I1,R1);%angle(X);
subplot(2,1,1),stem(n,M1,'r*');title('幅度谱');
subplot(2,1,2),stem(n,phase1,'r*');title('相位谱');
b.给出序列x2[n]的傅里叶变换X2[k],并画出其幅度谱和相位谱
程序如下:
x2=[24367902];
n=0:
length(x2)-1;
X2=fft(x2);
R2=real(X2);
I2=imag(X2);
M2=abs(X2);
phase2=atan2(I2,R2);%angle(X);
subplot(2,1,1),stem(n,M2,'r');title('幅度谱');
subplot(2,1,2),stem(n,phase2,'r');title('相位谱');
c.给出序列Z=2*X1[k]+6*x2[k],并与序列2*x1[n]+6*x2[n]的傅里叶变换比较,
Z1=2*X1+6*X2;
RZ1=real(Z1);
IZ1=imag(Z1);
MZ1=abs(Z1);
phaseZ1=atan2(IZ1,RZ1);%angle(X);
subplot(2,2,1),stem(n,MZ1,'r*');title('幅度谱');
subplot(2,2,2),stem(n,phaseZ1,'r*');title('相位谱');
z2=2*x1+6*x2;
Z2=fft(z2);
RZ2=real(Z2);
IZ2=imag(Z2);
MZ2=abs(Z2);
phaseZ2=atan2(IZ2,RZ2);%angle(X);
subplot(2,2,3),stem(n,MZ2,'*');title('幅度谱');
subplot(2,2,4),stem(n,phaseZ2,'*');title('相位谱');
2.时移特性
a.给出序列x1[n]右移3位后的傅里叶变换的幅度谱和相位谱,并和原始序列的幅度谱和相位谱相比较
clearall;
x1=[13536839];
N=length(x1);
xc=circshift(x1,[1,3]);%xc[n]=x1[n-3];
n=0:
length(x1)-1;
X=fft(x1);
R=real(X);
I=imag(X);
M=abs(X);
phase=atan2(I,R);%angle(X);
Xc=fft(xc);
Rc=real(Xc);
Ic=imag(Xc);
Mc=abs(Xc);
phasec=atan2(Ic,Rc);%angle(X);
subplot(2,2,1),stem(n,M,'*');title('原序列幅度谱');
subplot(2,2,2),stem(n,phase,'*');title('原序列相位谱');
subplot(2,2,3),stem(n,Mc,'r*');title('移位序列幅度谱');
subplot(2,2,4),stem(n,phasec,'r*');title('移位序列相位谱');
时域移位,频域上频谱幅度不变,但相位改变。
即时域移位相当于频域调制。
3.对称性
(1)利用x1[n]构造共轭对称序列和共轭反对称序列,讨论如下问题
(a)画出共轭对称序列的傅里叶变换的幅度谱和相位谱
(b)画出共轭对称序列的傅里叶变换的实部和虚部
(c)画出该共轭反对称序列的傅里叶变换的幅度谱和相位谱
(d)画出该共轭反对称序列的傅里叶变换的实部和虚部
(整体的程序)
clearall;
x1=[13536839];
N=length(x1);
x2
(1)=x1
(1);
fori=2:
N
x2(i)=x1(N+2-i);
end
xe=(x1+conj(x2))/2;
xo=(x1-conj(x2))/2;
n=0:
N-1;
Xo=fft(xo);
Ro=real(Xo);
Io=imag(Xo);
Mo=abs(Xo);
phaseo=atan2(Io,Ro);%angle(X);
figure
(1),
subplot(2,2,1),stem(n,Ro,'r');title('共轭反对称序列的频谱实部');
subplot(2,2,2),stem(n,Io,'r');title('共轭反对称序列的频谱虚部');
subplot(2,2,3),stem(n,Mo,'r');title('共轭反对称序列的幅度谱');
subplot(2,2,4),stem(n,phaseo,'r');title('共轭反对称序列的相位谱');
Xe=fft(xe);
Re=real(Xe);
Ie=imag(Xe);
Me=abs(Xe);
phasee=atan2(Ie,Re);%angle(X);
figure
(2),
subplot(2,2,1),stem(n,Re,'r*');title('共轭对称序列的频谱实部');
subplot(2,2,2),stem(n,Ie,'r*');title('共轭对称序列的频谱虚部');
subplot(2,2,3),stem(n,Me,'r*');title('共轭对称序列的幅度谱');
subplot(2,2,4),stem(n,phasee,'r*');title('共轭对称序列的相位谱');
(2)当x(n)为复序列时,推导傅里叶变换公式,利用x3[n]构造共轭对称序列和共轭反对称序列,讨论如下问题
(a)画出该共轭对称序列的傅里叶变换的幅度谱和相位谱
(b)画出该共轭对称序列的傅里叶变换的实部和虚部
(c)画出该共轭反对称序列的傅里叶变换的幅度谱和相位谱
(d)画出该共轭反对称序列的傅里叶变换的实部和虚部
clearall;
x3=[1+2j3+4j5+3j3+4j6+1j8+2j3+3j9+2j];
N=length(x3);
x2
(1)=x3
(1);
fori=2:
N
x2(i)=x3(N+2-i);
end
xe=(x3+conj(x2))/2;
xo=(x3-conj(x2))/2;
n=0:
N-1;
Xo=fft(xo);
Ro=real(Xo);
Io=imag(Xo);
Mo=abs(Xo);
phaseo=atan2(Io,Ro);%angle(X);
figure
(1),
subplot(2,2,1),stem(n,Ro,'r*');title('¹²éî·´¶Ô³ÆÐòÁеÄƵÆ×ʵ²¿');
subplot(2,2,2),stem(n,Io,'r*');title('¹²éî·´¶Ô³ÆÐòÁеÄƵÆ×Ð鲿');
subplot(2,2,3),stem(n,Mo,'r*');title('¹²éî·´¶Ô³ÆÐòÁеķù¶ÈÆ×');
subplot(2,2,4),stem(n,phaseo,'r*');title('¹²éî·´¶Ô³ÆÐòÁеÄÏàλÆ×');
Xe=fft(xe);
Re=real(Xe);
Ie=imag(Xe);
Me=abs(Xe);
phasee=atan2(Ie,Re);%angle(X);
figure
(2),
subplot(2,2,1),stem(n,Re,'r*');title('¹²éî¶Ô³ÆÐòÁеÄƵÆ×ʵ²¿');
subplot(2,2,2),stem(n,Ie,'r*');title('¹²éî¶Ô³ÆÐòÁеÄƵÆ×Ð鲿');
subplot(2,2,3),stem(n,Me,'r*');title('¹²éî¶Ô³ÆÐòÁеķù¶ÈÆ×');
subplot(2,2,4),stem(n,phasee,'r*');title('¹²éî¶Ô³ÆÐòÁеÄÏàλÆ×');
(e)总结共轭对称和共轭反对称的实数序列和复数序列的傅里叶变换性质
偶对称实序列的傅立叶变换是偶对称实函数,奇对称实序列的傅立叶变换纯虚奇函数,共轭对称复序列的傅立叶变换是实函数,共轭反对称复序列的傅立叶变换是纯虚函数。
4.循环卷积
(1)计算序列x1[n]和x2[n]的线性卷积y[n],计算x1[n]和x2[n]的傅里叶变换X1[k]和X2[k],Y[k]=X1[k]*X2[k],求Y[k]的反傅里叶变换y2[n](y2[n]即为x1[n]和x2[n]的循环卷积),比较y[n]与y2[n]的异同.
程序如下:
clearall;
x1=[13536839];
x2=[24367902];
M=length(x1);
N=length(x2);
x10=[x1,zeros(1,N-1)];
x20=[x2,zeros(1,M-1)];
X10=fft(x10);
X20=fft(x20);
Y=X10.*X20;
y=ifft(Y);
y1=conv(x1,x2);
m=0:
length(x1)-1;
n=0:
length(x2)-1;
ny=0:
length(y)-1;
figure
(1),
subplot(2,2,1),stem(m,x1,'b*');title('序列1');
subplot(2,2,2),stem(n,x2,'b*');title('序列2');
subplot(2,2,3),stem(ny,y,'b*');title('圆周卷积');
subplot(2,2,4),stem(ny,y1,'b*');title('线性卷积');
当N大于或等于N1+N2-1时,可以利用循环卷积直接求得线性卷积。
5.补零
用MATLAB计算如下N点序列的M点DFT:
(1)取N=8,M=8
(2)取N=8,M=16
(3)取N=8,M=32
clearall;
N=8;
M1=8;
M2=24;
x1=ones(1,N);
x2=[x1,zeros(1,M1)];
x3=[x1,zeros(1,M2)];
X1=fft(x1);
X2=fft(x2);
X3=fft(x3);
RX1=real(X1);
IX1=imag(X1);
MX1=abs(X1);
phaseX1=atan2(IX1,RX1);%angle(X);
RX2=real(X2);
IX2=imag(X2);
MX2=abs(X2);
phaseX2=atan2(IX2,RX2);%angle(X);
RX3=real(X3);
IX3=imag(X3);
MX3=abs(X3);
phaseX3=atan2(IX3,RX3);%angle(X);
m=0:
length(x1)-1;
n=0:
length(x2)-1;
k=0:
length(x3)-1;
subplot(2,3,1),stem(m,MX1,'r*');title('原序列幅度谱');
subplot(2,3,2),stem(n,MX2,'r*');title('补8个零的幅度谱');
subplot(2,3,3),stem(k,MX3,'r*');title('补24个零的幅度谱');
subplot(2,3,4),stem(m,phaseX1,'r*');title('原序列相位谱');
subplot(2,3,5),stem(n,phaseX2,'r*');title('补8个零的相位谱');
subplot(2,3,6),stem(k,phaseX3,'r*');title('补24个零的相位谱');
根据实验结果,分析延长序列的离散傅里叶变换的特点。
序列补零延长后,相当于在频域增加采样点,即改善了其栅栏效应。
四、实验报告要求
1、按照实验设计完成实验内容,要求保存对应实验内容的程序和图形;
2、记录实验过程中遇到的主要问题,并解释问题产生原因和解决办法;
实验二IIR滤波器设计
一、实验目的
1、掌握冲激响应不变法和双线性变换法设计IIR滤波器的原理及具体设计方法,熟悉用双线性设计法设计低通IIR数字滤波器的计算机程序;
2、熟悉模拟Butterworth滤波器的设计,掌握冲激响应不变法和双线性变换法设计数字IIR滤波器的方法。
二、实验原理和方法
IIR滤波器设计的过程可以首先设计模拟滤波器,然后采用冲激响应不变法和双线性变换法设计IIR数字滤波器。
Butterworth滤波器
,其中
为3dB截止频率,N为滤波器阶次,均待定。
模拟滤波器的设计步骤:
首先根据数字滤波器设计要求计算模拟滤波器指标;其次要求出滤波器的阶次N和
三、实验内容
1.采样频率为1Hz,设计一个Butterworth低通数字滤波器,其中通带临界频率
,通带内衰减小于1dB(
),阻带临界频率
,阻带内衰减大于25dB(
)。
求这个数字滤波器的传递函数H(z),输出它的幅频特性曲线。
利用冲激响应不变法和双线性变换法实现该滤波器,并将结果进行比较。
程序如下:
(1)脉冲响应不变法
Wp=2*pi*0.2;Ws=2*pi*0.3;
Rp=1;Rs=25;
[N,Wn]=buttord(Wp,Ws,Rp,Rs,'s')
[z,p,k]=buttap(N)
[B,A]=butter(N,Wn,'s')
f1=linspace(0,Wp,5);
f2=linspace(Wp,Ws,15);
f3=linspace(Ws,2*pi*10,30);
h1=20*log10(abs(freqs(B,A,f1)));
h2=20*log10(abs(freqs(B,A,f2)));
h3=20*log10(abs(freqs(B,A,f3)));
plot([f1f2f3]/(2*pi),[h1,h2,h3]);
grid;
xlabel('FrequencyinHz')
ylabel('GainindB')
fs=1;
[bz,az]=impinvar(B,A,fs)
脉冲响应不变法
由实验得:
(2)双线性不变法
程序如下:
Wp=2*pi*0.2;Rp=1;Ws=2*pi*0.3;Rs=25;T=1,
Fs=1/T
omegap=(2/T)*tan(Wp/2);
omegas=(2/T)*tan(Ws/2);
[N,Wn]=buttord(omegap,omegas,Rp,Rs,'s')
[B,A]=butter(N,Wn,'s')
[b,a]=bilinear(B,A,Fs)
[h,w]=freqz(b,a,256);
h1=20*log10(abs(h));
plot(w/pi,h1);
grid
xlabel('DigitalFrequencyinpiunits')
ylabel('GainindB')
axis([01-8010])
四、实验报告要求
3、按照实验设计完成实验内容,要求保存对应实验内容的程序和图形;
4、记录实验过程中遇到的主要问题,并解释问题产生原因和解决办法;
实验三FIR滤波器设计
一、实验目的
1、熟悉FIR滤波器设计的基本方法;
2、掌握窗函数法设计FIR滤波器的原理和方法;
3、熟悉线性相位FIR滤波器的幅频特性和相位特性;
4、了解不同窗函数对滤波器性能的响应。
二、实验原理和方法
三、实验内容
1.用窗函数法设计一个长度N=8的线性相位FIR滤波器。
其理想的幅频特性为
分别用矩形窗、Hanning窗、Hamming窗、Blackman窗设计该滤波器,并比较设计结果;
如果N=15,重复这一设计,观察幅频特性和相位特性的变化,注意长度N变化对结果的影响。
2.人体心电图信号在测量过程中往往受到工业高频干扰,所以必须经多低通滤波处理后磁能作为判断心脏功能的有用信息。
下面给出一实际心电图信号采样序列样本x(n),其中存在高频干扰,采用上述设计的某个低通滤波器滤除其中的高频干扰成分,在同一幅图中绘出滤波前后的序列x(n)和y(n)。
x(n)=[-4,-2,0,-4,-6,-4,-2,-4,-6,-6,-4,-4,-6,-6,-2,6,12,8,0,-16,-38,-60,-84,-90,-66,-32,
-4,-2,-4,8,12,12,10,6,6,6,4,0,0,0,0,0,-2,-4,0,0,0,-2,-2,0,0,-2,-2,-2,-2,0]
(提示:
采用一维数字滤波函数filter(),
%filter函数求解给定输入x(n)的差分方程的解,该函数调用形式为:
y=filter(b,a,x)
其中:
x:
待滤波信号,y:
滤波以后的信号,b为向量x的系数向量,a为向量y的系数向量。
)
四、实验报告要求
1.按照实验设计完成实验内容,要求保存对应实验内容的程序和图形;
2.记录实验过程中遇到的主要问题,并解释问题产生原因和解决办法;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字信号 处理 实验