数字信号处理实验二报告.docx

上传人:b****5 文档编号:28030782 上传时间:2023-07-07 格式:DOCX 页数:27 大小:197.42KB
下载 相关 举报
数字信号处理实验二报告.docx_第1页
第1页 / 共27页
数字信号处理实验二报告.docx_第2页
第2页 / 共27页
数字信号处理实验二报告.docx_第3页
第3页 / 共27页
数字信号处理实验二报告.docx_第4页
第4页 / 共27页
数字信号处理实验二报告.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

数字信号处理实验二报告.docx

《数字信号处理实验二报告.docx》由会员分享,可在线阅读,更多相关《数字信号处理实验二报告.docx(27页珍藏版)》请在冰豆网上搜索。

数字信号处理实验二报告.docx

数字信号处理实验二报告

实验二序列的DTFT

一、实验内容

(一)编写子函数计算

给定序列

的DTFT,使得一个频率周期内离散的点数为M,函数的输入参数输入序列的取值、时间坐标和M的数值,要求用两层for循环形式编写程序,频率取值范围为

注:

子函数形式为function[X,w]=dtft2(x,n,M),其中X为信号x的DTFT,w为X对应的频率点。

(二)对长度为N的矩形序列

1、从理论上计算出N=4时矩形序列的频谱,写出幅度谱和相位谱的表达式。

2、M=1024,N=4,用编写的子函数计算矩形序列的频谱,画出归一化的幅度谱、相位谱和增益(dB形式表示归一化的幅度谱)的图形,标注坐标轴的含义和单位。

3、M=1024,分别取N=5,20,100,仔细观察图形,计算并讨论N的取值对信号幅度谱的最大值、过零点个数、第一旁瓣幅度与最大值的比值、主瓣面积、第一旁瓣面积、相位谱的形状的影响,得出你的结论。

(提示:

可以利用max函数求最大值,sum函数求面积。

4、N=128,分别取M=8,64,256,1024,仔细观察图形,讨论M的取值对信号幅度谱、衰减和相位谱的形状的影响,得出你的结论。

(三)用计算机计算分析序列

的频谱。

1、理论计算以上两个信号的频谱和周期,用计算机画出其幅度谱的图形,标注坐标轴的含义和单位。

2、利用实验内容一编写的子函数计算以上两个信号的频谱,时间取值范围分别为

,其中M=128。

分别取N=8,16,128,256。

画图幅度谱和相位谱,仔细观察,与两信号的理想频谱相比较,得到M和N的取值与信号的理想频谱的有关结论。

对正弦信号频谱分析时,如何选取信号长度和离散频率的点数,数值计算时才能得到信号理想频谱。

(由于原序列的频谱为离散谱,画图时可以考虑用stem画。

二.编程原理、思路和公式

(一)编写子函数计算

给定序列

的DTFT,使得一个频率周期内离散的点数为M,函数的输入参数输入序列的取值、时间坐标和M的数值,要求用两层for循环形式编写程序,频率取值范围为

注:

子函数形式为function[X,w]=dtft2(x,n,M),其中X为信号x的DTFT,w为X对应的频率点。

思路:

根据公式=,

有两个变化的量,一个是w(k),一个是n,一次是在n确定时对w(k)进行循环,然后再嵌套一个内循环,对n进行循环,实现求和。

从而求出序列x(n)的频谱。

※子程序:

function[X,w]=dtft2(x,n,M)%定义函数[X,w]

w=-pi:

(2*pi/M):

(pi-2*pi/M);%定义w的取值范围以及角频率抽样间隔

L=length(n);%序列的长度

for(k=1:

M)%外层循环,对w循环M次

sum=0;%对求和变量设初值

for(m=1:

L)%内层循环,对n的循环,循环的次数等于n的长度N

sum=sum+x(m)*exp(-j*w(k)*n(m));%求和公式

X(k)=sum;%把求和的值赋给sum

end%结束内循环

end%结束外循环

二、对长度为N的矩形序列

1、从理论上计算出N=4时矩形序列的频谱,写出幅度谱和相位谱的表达式。

幅度谱:

|X)|=||

相位谱:

argX)=w

2、M=1024,N=4,用编写的子函数计算矩形序列的频谱,画出归一化的幅度谱、相位谱和增益(dB形式表示归一化的幅度谱)的图形,标注坐标轴的含义和单位。

作出矩形序列的频谱程序:

主程序:

M=1024;%定义M的初值

n1=-100;%定义n的左值区间

n2=100;%定义n的右值区间

n=n1:

n2;%定义n的取值范围

L=length(n);%L为序列的长度

N=4;%定义N的值

w=-pi:

(2*pi/M):

(pi-2*pi/M);%w从-pi到pi取值,角频率间隔为2*pi/M

x=zeros(1,L);%先对整个序列全部赋值为0

x(-n1+1:

-n1+1+N-1)=1;%定义N=4时的矩形序列

[X,w]=dtft2(x,n,M);%调用子程序

magX=abs(X);%取幅度谱部分

angX=angle(X);%取相位谱部分

subplot(3,1,1);plot(w,X),gridon;%作3行1列的图,第1个图为w与X的图,即频谱

xlabel('');title(‘频谱’);ylabel('');%定义坐标轴的含义及图形的标题

subplot(3,1,2);plot(w,magX),gridon;%作3行1列的图,第2个图为w与magX的图,即幅度谱

xlabel('');title('幅度谱/模值部分');ylabel('模值');%定义坐标轴的含义及图形的标题

subplot(3,1,3);plot(w,angX),gridon;%作3行1列的图,第3个图为w与angX的图,即相位谱

xlabel('');title('相位谱/相角部分');ylabel('弧度');%定义坐标轴的含义及图形的标题

子程序:

function[X,w]=dtft2(x,n,M)%定义函数[X,w]

w=-pi:

(2*pi/M):

(pi-2*pi/M);%定义w的取值范围以及角频率抽样间隔

L=length(n);%序列的长度

for(k=1:

M)%外层循环,对w循环M+1次

sum=0;%对求和变量设初值

for(m=1:

L)%内层循环,对n的循环,循环的次数等于n的长度N

sum=sum+x(m)*exp(-j*w(k)*n(m));%求和公式

X(k)=sum;%把求和的值赋给sum

end%结束内循环

end%结束外循环

图形见图1-1:

图1-1N=4时的频谱、幅度谱和相位谱

编写归一化程序:

M=1024;%定义M的初值

n1=-100;%定义n的左值区间

n2=100;%定义n的右值区间

n=n1:

n2;%定义n的取值范围

L=length(n);%L为序列的长度

N=4;%定义N的值

w=-pi:

(2*pi/M):

(pi-2*pi/M);%w从-pi到pi取值,角频率间隔为2*pi/M

x=zeros(1,L);%先对整个序列全部赋值为0

x(-n1+1:

-n1+1+N-1)=1;%定义N=4时的矩形序列

[X,w]=dtft2(x,n,M);%调用子程序

magX=abs(X);%取幅度谱部分

angX=angle(X);%取相位谱部分

y=(magX)/max(magX);%对整个幅度谱除以最大幅值,达到使最大值为1的目的,即归一化

subplot(2,1,1);plot(w,y),gridon;%作2行1列图形,第一幅图为归一化的幅度谱

xlabel('');title('归一化幅度谱/模值部分');ylabel('模值');%标注坐标轴的意义

subplot(2,1,2);plot(w,angX),gridon;%作2行1列图形,第二幅图为相位谱

xlabel('');title('归一化相位谱/相角部分');ylabel('弧度');%标注坐标轴的意义

归一化以后的图形见图1-2:

图1-2N=4时归一化的幅度谱、相位谱

编写增益程序:

M=1024;%定义M的初值

n1=-100;%定义n的左值区间

n2=100;%定义n的右值区间

n=n1:

n2;%定义n的取值范围

L=length(n);%L为序列的长度

N=4;%定义N的值

w=-pi:

(2*pi/M):

(pi-2*pi/M);%w从-pi到pi取值,角频率间隔为2*pi/M

x=zeros(1,L);%先对整个序列全部赋值为0

x(-n1+1:

-n1+1+N-1)=1;%定义N=4时的矩形序列

[X,w]=dtft2(x,n,M);%调用子程序

magX=20*log10(abs(X));%取幅度谱部分,化为以dB为单位的形式

angX=angle(X);%取相位谱部分

y=(magX)/max(magX);%对整个幅度谱除以最大幅值,达到使最大值为1的目的,即归一化

plot(w,y),gridon;%作y关于w的图形,即增益谱

xlabel('');title('增益谱');ylabel('幅值');%定义坐标轴的含义

增益谱见图1-3:

图1-3N=4时增益(dB形式表示归一化的幅度谱)的图形

3、M=1024,分别取N=5,20,100,仔细观察图形,计算并讨论N的取值对信号幅度谱的最大值、过零点个数、第一旁瓣幅度与最大值的比值、主瓣面积、第一旁瓣面积、相位谱的形状的影响,得出你的结论。

(提示:

可以利用max函数求最大值,sum函数求面积。

程序:

clear;%清内存

M=1024;%定义M的初值为1024

N=[5,20,100];%定义N的取值序列

fork=1:

3%开始for循环,对k从1到3,分别对应N从5,20,到100

x=ones(1,N(k));%取得矩形序列

n=0:

N(k)-1;%定义n的取值区间

[X,w]=dtft2(x,n,M);%调用子函数[X,w]

magX=abs(X);%将X的模值赋值给magX

y=(magX)/max(magX);%将幅度谱除以整个谱上的最大值,达到归一化的目的

angX=angle(X);%将X的相位值赋值给angX

z=20*log10(magX);%将magX转换为dB单位的形式赋给z

figure

(1);%画图的第一个窗口

subplot(3,1,k);plot(w,y);holdon;gridon;%第一个窗口中,三张图从上到下分别为N=5,N=20,N=100时的幅度谱图形

xlabel('w');title(‘幅度谱’);ylabel('幅度');%标注坐标轴的意义

figure

(2);%画图的第二个窗口

subplot(3,1,k);plot(w,angX);holdon;gridon;%第二个窗口中,三张图从上到下分别为N=5,N=20,N=100时的相位谱图形

xlabel('w');title(‘相位谱’);ylabel('相位');%标注坐标轴的意义

figure(3);%画图的第三个窗口

subplot(3,1,k);plot(w,z);holdon;gridon;%第三个窗口中,三张图从上到下分别为N=5,N=20,N=100时的增益谱图形

xlabel('w');title(‘增益谱’);ylabel('增益/dB');%标注坐标轴的意义

end%结束for循环

作出的幅度谱见图1-4所示:

图1-4N=5,N=20,N=100所对应的幅度谱

作出的相位谱见图1-5所示:

图1-5N=5,N=20,N=100所对应的相位谱

 

作出的增益谱如图1-6所示:

图1-6N=5,N=20,N=100所对应的增益谱

下面进行相关参数的比较:

N对信号幅度谱最大值的影响:

取得最大值程序:

clc;%清屏

clear;%清内存

M=1024;%定义M的初值

N=[5,20,100];%N的取值序列

s=[0,0,0];%给s赋值为0序列

fork=1:

3%对k从1到3进行循环

x=ones(1,N(k));%取得矩形序列

n=0:

N(k)-1;%定义n的取值区间

[X,w]=dtft2(x,n,M);%调用子函数[X,w]

s(k)=max(abs(X));%使用max函数获得X幅值的最大值,并赋值给s

end%结束for循环

运行结果:

>>s

s=

520100

>>

结论:

信号幅度谱的最大值随着N的增大而增大,幅度谱的最大值即为N值。

N对过零点个数的影响

计算过零点个数程序:

(经观察,过零点在幅度谱图中即为最小值点)

magX=abs(X);%将X的幅度谱赋给magX

c=1;%给c赋初值为1

forp=2:

1023%因为下面涉及到使用p+1和P-1,所以对p定义为从2到1023

if(magX(p)

l(c)=p;%输出当前极小值对应的横坐标所对应的点数

c=c+1;

end%结束if条件语句

end%结束for循环

i=1;

fort=2:

1023

if(magX(t)>magX(t+1)&magX(t)>magX(t-1))%判断magX(t)为极大值的条件

h(i)=t;%输出当前极大值对应的横坐标所对应的点数

i=i+1;

end%结束if条件语句

end%结束for循环

l,h%令程序执行后输出l,h的值

 

运行结果:

(此时N=5)

l:

103308718923一共4个数

h:

216513810一共3个数

运行结果:

(此时N=20)

l:

52103155206257308359411462564615667718769820871923974

一共18个数

h:

2778129181232284335387440513586639691742794845897948999一共19个数

运行结果:

(此时N=100)

l:

11213242526273839310311412413414415516517518519620621622623724725726727728829830831832933934935937038039040041142143144145246247248249350352353354455456457458559560561562663664665666767768769770871872873874975976977978980081082083084185186187188289290291292393394395396497498499410051015一共98个数

h:

616273747576878889810911912913914916017018019020121122123124225226227228329330331332433434435436537538539540641642643644745746747748849851352853854955956957959060061062063164165166167268269270271372373374375476477478479580581582583684685686687788789790791792893894895896997998999910101020一共99个数

结论:

随着N的增大,过零点个数增多。

N对第一旁瓣幅度与最大值的比值的影响:

思路:

一共取了1024个点,因为幅度谱是关于最大值点对应的横坐标所对应的直线对称,所以第513个点对应于它的最大值点,观察h的取值,第513个点临近的第n个点即对应第一旁瓣最大值所对应的横坐标,所以进行计算如下:

N=5时:

程序:

f1=magX(216)/magX(513)

运行结果:

f1=0.2500

N=20时:

程序:

f2=magX(440)/magX(513)

运行结果:

f2=0.2190

N=100时:

程序:

f3=magX(498)/magX(513)

运行结果:

f3=0.2161

结论:

随着N的增加,第一旁瓣幅度与最大值的比值逐渐减小,且减小的幅度越来越小。

N对主瓣面积的影响

思路:

因为我们将幅度谱离散化了,所以利用近似的方法计算主瓣面积,将主瓣划分为众多个小矩形的面积进行相加,每一个小矩形的长为对应的幅度值,宽为取的角频率间隔,即2*pi/M,所以程序如下:

计算主瓣面积的程序:

N=5时:

程序:

d1=sum(magX(308:

717))*2*pi/M

运行结果:

d1=7.4931

N=20时:

程序:

d2=sum(magX(462:

563))*2*pi/M

    运行结果:

d2=7.4125

N=100时:

程序:

d3=sum(magX(503:

522))*2*pi/M

     运行结果:

d3=7.3940

结论:

随着N的增大,主瓣面积逐渐减小,且减小的幅度很小。

N对第一旁瓣面积的影响:

思路:

与计算主瓣面积的方法类似

N=5时:

程序:

r1=sum(magX(103:

307))*2*pi/M

运行结果:

r1=1.0088

N=20时:

程序:

r2=sum(magX(411:

461))*2*pi/M

运行结果:

r2=0.8755

N=100时:

程序:

r3=sum(magX(493:

502))*2*pi/M

运行结果:

r3=0.8695

结论:

随着N的增大,第一旁瓣面积逐渐减小,且减小的幅度越来越小。

N对相位谱形状的影响:

将三个不同N值对应的相位谱放在一张图上,如图1-7所示:

图1-7 N=5,N=20,N=100所对应的相位谱

结论:

随着N的增大,相位谱密集度增大。

4、N=128,分别取M=8,64,256,1024,仔细观察图形,讨论M的取值对信号幅度谱、衰减和相位谱的形状的影响,得出你的结论。

程序:

N=128;%定义N的值

M=[8,64,256,1024];%定义M的取值序列

fort=1:

4%对t从1到4开始循环

x=ones(1,N);%生成矩形序列

n=0:

N-1;%定义n的取值范围

[X,w]=dtft2(x,n,M(t));%调用子程序

v1=abs(X);%将模值赋值给v1

angX=angle(X);%将相位值赋值给angX

v2=20*log10(X);%对幅度谱化为以dB为单位,即增益谱形式

figure

(1);%第一个窗口

subplot(4,1,t);plot(w,v1);holdon;gridon;%第一个窗口有4个图,4行1列排列,分别是M取四个不同值时的幅度谱

xlabel('w');title('幅度谱');ylabel('幅度');%定义坐标轴的意义

figure

(2);%第二个窗口

subplot(4,1,t);plot(w,angX);holdon;gridon;%第二个窗口有4个图,4行1列排列,分别是M取四个不同值时的相位谱

xlabel('w');title('相位谱');ylabel('相位');%定义坐标轴的意义

figure(3);%第三个窗口

subplot(4,1,t);plot(w,v2);holdon;gridon;%第三个窗口有4个图,4行1列排列,分别是M取四个不同值时的增益谱

xlabel('w');title('增益谱');ylabel('增益/dB');%定义坐标轴的意义

end%结束for循环

图形见下图,幅度谱见图1-8,相位谱见图1-9,增益谱见图1-10:

图1-8M=8,64,256,1024时的幅度谱

结论:

随着M值的增加,主瓣面积逐渐减小,第一旁瓣面积逐渐增大。

图1-8M=8,64,256,1024时的相位谱

结论:

随着M的增大,相位谱越来越密集,但大致走向一致。

 

图1-10M=8,64,256,1024时的增益谱

结论:

随着M的增大,主瓣面积减小,第一旁瓣面积增大,图形变密集。

三、用计算机计算分析序列

的频谱。

1、理论计算以上两个信号的频谱和周期,用计算机画出其幅度谱的图形,标注坐标轴的含义和单位。

理论计算得:

幅度谱:

|X)|=+]

程序:

clc;%清屏

clear;%清内存

a=1024;%定义a的值为1024

m=2*pi/a;%角频率间隔

w=[-pi:

m:

pi];%定义w的取值序列

x1=zeros(1,a+1);%取值区间全部赋值为0

x2=zeros(1,a+1);

x1((pi-pi/4)/m)=pi;x1((pi+pi/4)/m)=pi;%生成函数

x2((pi-pi/4)/m)=pi;x2((pi+pi/4)/m)=pi;%生成函数

x2((pi-pi/8)/m)=pi;x2((pi+pi/8)/m)=pi;%生成函数

subplot(2,1,1);stem(w,x1,'.');holdon;gridon;%作2行1列的图,第一个为x1(n)的幅度谱

xlabel('w');title('x1(n)幅度谱');ylabel('x1(w)幅度');%标注坐标轴的意义和题目

subplot(2,1,2);stem(w,x2,'.');holdon;gridon;%作2行1列的图,第二个图为x2(n)的幅度谱

xlabel('w');title('x2(n)幅度谱');ylabel('x2(w)幅度');%标注坐标轴的意义和题目

图形见图1-11:

图1-11x1(n),x2(n)理论化的幅度谱

2、利用实验内容一编写的子函数计算以上两个信号的频谱,时间取值范围分别为

,其中M=128。

分别取N=8,16,128,256。

画图幅度谱和相位谱,仔细观察,与两信号的理想频谱相比较,得到M和N的取值与信号的理想频谱的有关结论。

对正弦信号频谱分析时,如何选取信号长度和离散频率的点数,数值计算时才能得到信号理想频谱。

(由于原序列的频谱为离散谱,画图时可以考虑用stem画。

程序:

M=128;%赋值M=128

N=[8,16,128,256];%定义N的取值序列

w=-pi:

(2*pi/M):

pi;%定义w的取值和角频率间隔

fort=1:

4%对t从1到4进行循环

n=-N(t)/2:

(N(t)/2-1);%根据题目定义n的取值范围

x=cos(n*pi/4);%x1(n)的函数表达式

[X,w]=dtft2(x,n,M);%调用子程序

magX1=abs(X);%取X的模值

angX1=angle(X);%取X的相位值

y1=20*log10(X);%增益

figure

(1);%窗口1

subplot(4,1,t);stem(w,magX1,'.');holdon;gridon;%窗口1有4行1列的4幅图,第t个图对应于N取序列中第t个值时的幅度谱

xlabel('w');title('不同N值下x1(n)幅度谱');ylabel('X幅值');%标注标题和坐标轴意义

figure

(2);

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

当前位置:首页 > IT计算机 > 电脑基础知识

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

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