清风Get西电数字信号处理大作业.docx

上传人:b****8 文档编号:30202032 上传时间:2023-08-07 格式:DOCX 页数:26 大小:238.34KB
下载 相关 举报
清风Get西电数字信号处理大作业.docx_第1页
第1页 / 共26页
清风Get西电数字信号处理大作业.docx_第2页
第2页 / 共26页
清风Get西电数字信号处理大作业.docx_第3页
第3页 / 共26页
清风Get西电数字信号处理大作业.docx_第4页
第4页 / 共26页
清风Get西电数字信号处理大作业.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

清风Get西电数字信号处理大作业.docx

《清风Get西电数字信号处理大作业.docx》由会员分享,可在线阅读,更多相关《清风Get西电数字信号处理大作业.docx(26页珍藏版)》请在冰豆网上搜索。

清风Get西电数字信号处理大作业.docx

清风Get西电数字信号处理大作业

西电-数字信号处理大作业

 

数字信号处理上机大作业

实验一:

信号、系统及系统响应

(1)简述实验目的及实验原理。

1.实验目的

●熟悉连续信号经理想采样前后的频谱变化关系,加深对时域采样定理的理解。

●熟悉时域离散系统的时域特性。

●利用卷积方法观察分析系统的时域特性。

●掌握序列傅里叶变换的计算机实现方法,利用序列的傅里叶变换对连续信号、离散信号及系统响应进行频域分析。

2.实验原理与方法

●时域采样。

●LTI系统的输入输出关系。

(2)按实验步骤附上实验过程中的信号序列、系统单位脉冲响应及系统响应序列的时域和幅频特性曲线,并对所得结果进行分析和解释。

 

Matlab源程序如下:

A=1;

T1=1/1000;

T2=1/300;

T3=1/200;

a=25*pi;

w0=30*pi;

n=0:

99;

x1=A*exp(-a*n*T1).*sin(w0*n*T1);

x2=A*exp(-a*n*T2).*sin(w0*n*T2);

x3=A*exp(-a*n*T3).*sin(w0*n*T3);

m=linspace(-pi,pi,10000);

X1=x1*exp(-j*n'*m);%n'与m构造矩阵,xi向量与矩阵每一列相乘对应元素相加,构成DTFT后的矩阵

X2=x2*exp(-j*n'*m);

X3=x3*exp(-j*n'*m);

figure

(1);

subplot(3,2,1)

plot(m/pi,abs(X1));

xlabel('\omega/π');ylabel('|H(e^j^\omega)|');

title('采样频率为1000Hz时的幅度谱');

subplot(3,2,3)

plot(m/pi,abs(X2));

xlabel('\omega/π');ylabel('|H(e^j^\omega)|');

title('采样频率为300Hz时的幅度谱');

subplot(3,2,5)

plot(m/pi,abs(X3));

xlabel('\omega/π');ylabel('|H(e^j^\omega)|');

title('采样频率为200Hz时的幅度谱');

subplot(3,2,2)

plot(n,abs(x1));

xlabel('n');ylabel('x1(t)');

title('采样频率为1000Hz时的时域波形');

subplot(3,2,4)

plot(n,abs(x2));

xlabel('n');ylabel('x2(t)');

title('采样频率为300Hz时的时域波形');

subplot(3,2,6)

plot(n,abs(x3));

xlabel('n');ylabel('x3(t)');

title('采样频率为200Hz时的时域波形');

 

波形图如下:

②时域离散信号、系统和系统响应分析。

Matlab源程序如下:

xb=[1];

xc=ones(1,10);

ha=ones(1,10);

hb=[1,2.5,2.5,1];

y=conv(xb,hb);

n1=0:

length(y)-1;

n2=0:

length(hb)-1;

figure

(1)

subplot(2,1,1);

stem(n1,y,'filled');

xlabel('n');ylabel('y(n)');

title('y(n)的时域响应');

subplot(2,1,2);

stem(n1,hb,'filled');

xlabel('n');ylabel('hb(n)');

title('hb(n)的时域相应');

w=linspace(-pi,pi,10000);

Y=y*exp(-j*n1'*w);

Hb=hb*exp(-j*n2'*w);

figure

(2)

subplot(2,2,1);

plot(w/pi,abs(Y));

xlabel('\omega/π');ylabel('幅度');

title('DTFT[y(n)]的幅度');

subplot(2,2,2);

plot(w/pi,angle(Y));

xlabel('\omega/π');ylabel('相位');

title('DTFT[y(n)]的相位');

subplot(2,2,3);

plot(w/pi,abs(Hb));

xlabel('\omega/π');ylabel('幅度');

title('DTFT[Hb(n)]的幅度');

subplot(2,2,4);

plot(w/pi,angle(Hb));

xlabel('\omega/π');ylabel('相位');

title('DTFT[Hb(n)]的相位');

z=conv(xc,ha);

n3=0:

length(z)-1;

Z=z*exp(-j*n3'*w);

figure(3);

subplot(2,1,1);

plot(w/pi,abs(Z));

xlabel('\omega/π');ylabel('幅度');

title('DTFT[z(n)]的幅度');

subplot(2,1,2);

plot(w/pi,angle(Z));

xlabel('\omega/π');ylabel('相位');

title('DTFT[z(n)]的相位');

 

波形图如下:

系统ha(n)对信号xc(n)的响应特性:

③由题目②中图2即可验证卷积定理。

(3)实验中的主要结论。

1.时域采样定理

只有当采样频率fs.max大于信号中最高频率fmax的2倍时(fs.max>2fmax),即满足奈奎斯特定律的时候,采样之后的数字信号才能够不发生混叠,保留原有信号,不失真。

2.卷积定理:

时域卷积等于频域相乘。

3.任何函数和单位脉冲函数卷积得到的都是它本身。

4.当所取得N不同时,卷积出来的结果也不同。

(4)思考题

●在分析理想采样序列特性的实验中,采样频率不同时,相应理想采样序列的傅里叶变换频谱的数字频率度量是否都相同?

它们所对应的模拟频率是否相同?

为什么?

答:

数字频率度量不相同,但他们所对应的模拟频率相同。

由w=Ω*Ts得,采样间隔变化时模拟频率对应的数字频率会有相应的变化,故其度量会有所变化。

●在卷积定理验证的实验中,如果选用不同的频域采样点数M值,例如,选M=10和M=20,分别做序列的傅里叶变换,求得的结果有无差异?

答:

有差异,所得到的结果点数不同

 

实验二:

用FFT作谱分析

(1)简述实验目的及实验原理。

实验目的

●进一步加深DFT算法原理和基本性质的理解(因为FFT只是DFT的一种快速算法,所以FFT的运算结果必然满足DFT的基本性质)。

●熟悉FFT算法原理和FFT子程序的应用。

●学习用FFT对连续信号和时域离散信号进行谱分析的方法,了解可能出现的分析误差及其原因,以便在实际中正确应用FFT。

(2)结合实验中所得给定典型序列幅频特性曲线,与理论结果比较,并分析说明误差产生的原因以及用FFT作谱分析时有关参数的选择方法。

 

1)Matlab源程序如下

N=64;

n=0:

999;

fs=50;

T=1/fs;

x1=ones(1,4);

x2=[1,2,3,4,4,3,2,1];

x3=[4,3,2,1,1,2,3,4];

x4=cos(0.25*pi*n);

x5=sin(0.125*pi*n);

x6=cos(8*pi*n*T)+cos(16*pi*n*T)+cos(20*pi*n*T);

X10=fft(x1,N);

X20=fft(x2,N);

X30=fft(x3,N);

X40=fft(x4,N);

X50=fft(x5,N);

X60=fft(x6,N);

X1=fftshift(X10);

X2=fftshift(X20);

X3=fftshift(X30);

X4=fftshift(X40);

X5=fftshift(X50);

X6=fftshift(X60);

k1=0:

31;

k2=32:

63;

w1=2*pi*fs*k1/N;

w2=(2*pi*k2/N-2*pi)*fs;

w=[w2w1];

figure

(1)

subplot(2,1,1);

n1=0:

length(x1)-1;

stem(n1,x1);

xlabel('n');ylabel('x1(n)');

title('x1(n)的时域波形');

subplot(2,1,2);

stem(w,abs(X1));

xlabel('w');ylabel('|X1(k)|');

title('DFT(x1)幅频特性')

figure

(2)

subplot(2,1,1);

n2=0:

length(x2)-1;

stem(n2,x2);

xlabel('n');ylabel('x2(n)');

title('x2(n)的时域波形');

subplot(2,1,2);

stem(w,abs(X2));

xlabel('w');ylabel('|X2(k)|');

title('DFT(x2)幅频特性')

figure(3)

subplot(2,1,1);

n3=0:

length(x3)-1;

stem(n3,x3);

xlabel('n');ylabel('x3(n)');

title('x3(n)的时域波形');

subplot(2,1,2);

stem(w,abs(X3));

xlabel('w');ylabel('|X3(k)|');

title('DFT(x3)幅频特性')

figure(4)

stem(w,abs(X4));

xlabel('w');ylabel('|X4(k)|');

title('DFT(x4)幅频特性')

figure(5)

stem(w,abs(X5));

xlabel('w');ylabel('|X5(k)|');

title('DFT(x5)幅频特性')

figure(6)

stem(w,abs(X6));

xlabel('w');ylabel('|X6(k)|');

title('DFT(x6)幅频特性')

波形图如下:

(2)x(n)=x4(n)+x5(n)

8点离散傅立叶变换Matlab源程序如下:

N=8;

n=0:

7;

x4=cos(0.25*pi*n);

x5=sin(0.125*pi*n);

xn=x4+x5;

X10=fft(xn,N);

X1=fftshift(X10);

figure

(1)

stem(abs(X1));axisauto;

xlabel('k');ylabel('|Xn(k)|');

title('8点DFT[x(n)]幅频特性')

波形图如下:

16点离散傅立叶变换Matlab源程序如下:

M=16;

n=0:

15;

x4=cos(0.25*pi*n);

x5=sin(0.125*pi*n);

xn=x4+x5;

X20=fft(xn,M);

X2=fftshift(X20);

stem(abs(X2));axisauto;

xlabel('k');ylabel('|Xn(k)|');

title('16点DFT[x(n)]幅频特性')

 

波形图如下:

(3)x(n)=x4(n)+jx5(n)

8点离散傅立叶变换Matlab源程序如下:

N=8;

n=0:

7;

x4=cos(0.25*pi*n*T);

x5=sin(0.125*pi*n*T);

xn=x4+j*x5;

X10=fft(xn,N);

X1=fftshift(X10);

figure

(1)

stem(abs(X1));

xlabel('w');ylabel('|Xn(k)|');

title('8点DFT[x(n)]幅频特性')

波形图如下:

16点离散傅立叶变换Matlab源程序如下:

M=16;

n=0:

15;

x4=cos(0.25*pi*n);

x5=sin(0.125*pi*n);

xn=x4+j*x5;

X20=fft(xn,M);

X2=fftshift(X20);

figure

(1)

stem(abs(X2));axisauto;

xlabel('k');ylabel('|Xn(k)|');

title('16点DFT[x(n)]幅频特性')

波形图如下:

(3)总结实验所得主要结论。

序列的N点离散傅里叶变换是其z变换在单位圆上的N点等间隔采样,也是其离散时间傅里叶变换在[0,2π]区间上的N点等间隔采样。

DFT的变换区间长度N不同,表示对X(z)的单位圆上,或对其离散时间傅里叶变换在[0,2π]区间上的采样间隔和采样点数不同,因而DFT的变换结果不同。

信号的DFT变换分为共轭对称部分合共个反对称部分,即信号的实部对应离散傅里叶变换的共轭对称部分,虚部对应离散信号的共轭反对称部分。

(4)思考题

●在N=8时,x2(n)和x3(n)的幅频特性会相同吗?

为什么?

N=16呢?

答:

N=8时幅频特性一样,N=16时幅频特性不一样。

●如果周期信号的周期预先不知道,如何用FFT进行谱分析?

答:

设一个定长的m值,先取2m,看2m/m的误差是否大,如大的话再取4m,看4m/2m的误差是否大,如不大,4m(4倍的m值)则可近似原来点的谱分析。

实验三:

用窗函数法设计FIR数字滤波器

(1)简述实验目的及实验原理。

实验目的

(1)掌握用窗函数法设计FIR数字滤波器的原理和方法。

(2)熟悉线性相位FIR数字滤波器特性。

(3)了解各种窗函数对滤波特性的影响。

(2)实验结果

●矩型窗、升余弦窗、改进升余弦窗和二阶升余弦窗的窗函数及频谱特

Matlab源程序如下:

N=31;

wdrec=boxcar(N);

[hrec,w]=freqz(wdrec,1);

figure

(1)

subplot(1,2,1)

stem(wdrec);

xlabel('n');ylabel('\omega(n)');

title('矩形窗函数')

subplot(1,2,2);

plot(w/pi,10*log(abs(hrec)/abs(hrec

(1))));

xlabel('ω/Π');ylabel('W(\omega)/dB')

title('矩形窗函数幅度特性')

wdhan=hanning(N);

[hhan,w]=freqz(wdhan,1);

figure

(2)

subplot(1,2,1)

stem(wdhan);

xlabel('n');ylabel('\omega(n)');

title('汉宁窗函数')

subplot(1,2,2);

plot(w/pi,10*log(abs(hhan)/abs(hhan

(1))));

xlabel('ω/Π');ylabel('W(\omega)/dB')

title('汉宁窗函数幅度特性')

wdham=hamming(N);

[hham,w]=freqz(wdham,1);

figure(3)

subplot(1,2,1)

stem(wdham);

xlabel('n');ylabel('\omega(n)');

title('汉明窗函数')

subplot(1,2,2);

plot(w/pi,10*log(abs(hham)/abs(hham

(1))));

xlabel('ω/Π');ylabel('W(\omega)/dB')

title('汉明窗函数幅度特性')

wdblack=blackman(N);

[hblack,w]=freqz(wdblack,1);

figure(4)

subplot(1,2,1)

stem(wdblack);

xlabel('n');ylabel('\omega(n)');

title('布莱克曼窗函数')

subplot(1,2,2);

plot(w/pi,10*log(abs(hblack)/abs(hblack

(1))));

xlabel('ω/Π');ylabel('W(\omega)/dB')

title('布莱克曼窗函数幅度特性')

波形图如下:

●利用不同窗函数与hd(n)构成系统,其单位脉冲相应及频谱特性

Matlab源程序如下:

N=31;

a=(N-1)/2;

fp=120;

fs=150;

Fs=1000;%以上数据自由选取

wc=(fp+fs)/Fs;

h1=fir1(N-1,wc,boxcar(N));

h2=fir1(N-1,wc,hanning(N));

h3=fir1(N-1,wc,hamming(N));

h4=fir1(N-1,wc,blackman(N));

[H1,w]=freqz(h1,1);

[H2,w]=freqz(h2,1);

[H3,w]=freqz(h3,1);

[H4,w]=freqz(h4,1);

figure

(1)

subplot(1,2,1)

stem(h1);

xlabel('n');ylabel('h1(n)');

title('矩形窗数字滤波器单位脉冲响应')

subplot(1,2,2);

plot(w/pi,10*log(abs(H1)/abs(H1

(1))));

xlabel('ω/Π');ylabel('W(\omega)/dB')

title('矩形窗数字滤波器幅频特性')

figure

(2)

subplot(1,2,1)

stem(h2);

xlabel('n');ylabel('h2(n)');

title('汉宁窗数字滤波器单位脉冲响应')

subplot(1,2,2);

plot(w/pi,10*log(abs(H2)/abs(H2

(1))));

xlabel('ω/Π');ylabel('W(\omega)/dB')

title('汉宁窗数字滤波器幅频特性')

figure(3)

subplot(1,2,1)

stem(h3);

xlabel('n');ylabel('h3(n)');

title('汉明窗数字滤波器单位脉冲响应')

subplot(1,2,2);

plot(w/pi,10*log(abs(H3)/abs(H3

(1))));

xlabel('ω/Π');ylabel('W(\omega)/dB')

title('汉明窗数字滤波器幅频特性')

figure(4)

subplot(1,2,1)

stem(h4);

xlabel('n');ylabel('h4(n)');

title('布莱克曼窗数字滤波器单位脉冲响应')

subplot(1,2,2);

plot(w/pi,10*log(abs(H4)/abs(H4

(1))));

xlabel('ω/Π');ylabel('W(\omega)/dB')

title('布莱克曼窗数字滤波器幅频特性')

波形图如下:

(3)总结用窗函数法设计FIR滤波器的主要特点。

FIR滤波器目前常用的设计方法有窗函数法和频率采样法,窗函数法是从时域进行设计,而频率采样法是从频域进行设计.窗函数法由于简单、物理意义清晰,因而得到了较为广泛的应用.

窗函数法设计的基本思想是:

首先根据技术指标要求,选取合适的阶数N和窗函数的类型w(n),使其幅频特性逼近理想滤波器幅频特性.其次,因为理想滤波器的hd(n)是无限长的,所以需要对hd(n)进行截断,数学上称这种方法为窗函数法.简而言之,用窗函数法设计FIR滤波器是在时域进行的,先用傅里叶变换求出理想滤波器单位抽样相应hd(n),然后加时间窗w(n)对其进行截断,以求得FIR滤波器的单位抽样响应h(n).

(3)思考题

(1)如果给定通带截止频率和阻带截止频率以及阻带最小衰减,如何用窗函数法设计线性相位低通滤波器?

写出设计步骤。

答:

①根据所需设计的数字滤波器类型,确定线性相位数字滤波器类型,

②选择合适的窗函数;

③确定理想低通数字滤波器的频率响应函数;

④计算理想低通数字滤波器的单位脉冲响应;

⑤加窗得到设计结果;

如果要求用窗函数法设计带通滤波器,且给定上、下边带截止频率为ω1和ω2,试求理想带通的单位脉冲响应hd(n)。

答:

hd(n)=1/2π∫w1w0e-jwaejnwdw+1/2π∫w2w3e-jwaejnwdw(其中w0=-w0-wc,w1=-w0+wc,w2=w0-wc,w3=w0+wc)

计算整理后可得:

hd(n)=2/((n-a)*π)*sin[(n-a)wc]*cos[(n-a)w0]

=2wc/π*sa[(n-a)wc]*cos[(n-a)w0]

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 图表模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1