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

上传人:b****6 文档编号:3757081 上传时间:2022-11-25 格式:DOCX 页数:16 大小:165.74KB
下载 相关 举报
数字信号处理实验六报告.docx_第1页
第1页 / 共16页
数字信号处理实验六报告.docx_第2页
第2页 / 共16页
数字信号处理实验六报告.docx_第3页
第3页 / 共16页
数字信号处理实验六报告.docx_第4页
第4页 / 共16页
数字信号处理实验六报告.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

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

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

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

数字信号处理实验六报告

实验六频域抽样定理和音频信号的处理实验报告

(一)频域抽样定理

给定信号

1.利用DTFT计算信号的频谱

,一个周期内角频率离散为M=1024点,画出频谱图,标明坐标轴。

n=0:

100;%设定n及其取值范围

forn1=0:

13%对于n处于不同的取值范围将n代入不同的表达式

xn(n1+1)=n1+1;

end

forn2=14:

26

xn(n2+1)=27-n2;

end

forn3=27:

100

xn(n3+1)=0;

end

M=1024;%设定抽样离散点的个数

k=0:

M-1;%设定k的取值范围

w=2*pi*k/M;%定义数字角频率

[X,w]=dtft2(xn,n,M)%调用dtft2子程序求频谱

plot(w,abs(X));%画出幅度值的连续图像

xlabel('w/rad');ylabel('|X(exp(jw))|');title('M=1024时的信号频谱图像');%标明图像的横纵坐标和图像标题

 

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

w=0:

2*pi/M:

2*pi-2*pi/M;%将数字角频率w离散化

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

for(k=1:

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

sum=0;%每确定一个w值,将sum赋初值为零

for(m=1:

L)%内层循环,对n求和,循环次数为n的长度

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

X(k)=sum;%把每一次各x(n)的和的总值赋给X,然后开始对下一个w的求和过程

end%内层循环结束

end%外层循环结束

M=1024时的信号频谱图像如图1-1所示:

图1-1M=1024时的信号频谱图像

2.分别对信号的频谱

在区间

上等间隔抽样16点和32点,得到

离散傅里叶反变换后得到时域信号

M=16时:

n=0:

100;%设定n及其取值范围

forn1=0:

13%对于n处于不同的取值范围将n代入不同的表达式

xn(n1+1)=n1+1;

end

forn2=14:

26

xn(n2+1)=27-n2;

end

forn3=27:

100

xn(n3+1)=0;

end

M=16;%设定抽样点的个数

k=0:

M-1;%设定k的取值范围

w=2*pi*k/M;%定义数字角频率

[X,w]=dtft2(xn,n,M)%调用dtft2子程序求频谱

stem(w,abs(X),'.');%画出幅度值的抽样离散图像

xlabel('k');ylabel('X16(k)');title('X(exp(jw))的16点抽样');%标明横纵坐标和图像标题

M=32时只需将程序中的M值改变即可,子函数程序同实验一。

16点抽样的图形如图1-2-1所示:

图1-2

的16点抽样

32点抽样的图形如图1-2-2所示:

图1-2-2

的32点抽样

3.画出信号

的图形,计算

的均方误差。

从时域角度上进行对比和分析,验证频域抽样定理。

M=16时:

functionxn=idft(Xk,N)

N=length(Xk);

forn=0:

N-1

sum=0;

fork=0:

N-1

sum=sum+(1/N)*(Xk(k+1)*exp(j*2*pi*n*k/N));

end

xn(n+1)=sum;

end

n=0:

26;%设定n及其取值范围

forn1=0:

13%对于n处于不同的取值范围将n代入不同的表达式

xn(n1+1)=n1+1;

end

forn2=14:

26

xn(n2+1)=27-n2;

end

M=16;%设定抽样点的个数

k=0:

M-1;%设定k的取值范围

w=2*pi*k/M;%定义数字角频率

[X,w]=dtft2(xn,n,M)%调用dtft2子程序求频谱

xn=idft(X,M)%调用idft求时域信号xn

m=0:

15;%限定m的取值范围

stem(m,xn);%画出xn16的离散图像

xlabel('m');ylabel('xn16');title('M=16时的时域信号图像');%标明图像的横纵坐标和图像标题

M=16时的时域信号图像如图1-3-1所示:

图1-3-1M=16时的时域信号图像

M=32时:

n=0:

26;%设定n及其取值范围

forn1=0:

13%对于n处于不同的取值范围将n代入不同的表达式

xn(n1+1)=n1+1;

end

forn2=14:

26

xn(n2+1)=27-n2;

end

M=32;%设定抽样点的个数

k=0:

M-1;%设定k的取值范围

w=2*pi*k/M;%定义数字角频率

[X,w]=dtft2(xn,n,M)%调用dtft2子程序求频谱

xn=idft(X,M)%调用idft求时域信号xn

m=0:

31;%限定m的取值范围

stem(m,xn);%画出xn16的离散图像

xlabel('m');ylabel('xn32');title('M=32时的时域信号图像');%标明图像的横纵坐标和图像标题

M=32时的时域信号图像如图1-3-2所示:

图1-3-2M=32时的时域信号图像

x(n)原信号程序:

n=0:

100;%设定n及其取值范围

forn1=0:

13%对于n处于不同的取值范围将n代入不同的表达式

x(n1+1)=n1+1;

end

forn2=14:

26

x(n2+1)=27-n2;

end

forn3=27:

100

x(n3+1)=0;

end

stem(n,x);%画出原信号的时域离散图像

xlabel('n');ylabel('x(n)');title('原信号序列');%标明横纵坐标和图像标题

x(n)原信号图形如图1-3-3所示:

图1-3-3原信号序列时域图像

计算均方误差:

16时:

ans=3.9476

32时:

ans=0

对信号x(n)的频谱函数X(ejω)在[0,2π]上等间隔采样N=16时,N点IDFT[

]得到的序列正是原序列x(n)以16为周期进行周期延拓后的主值区序列:

由于N

与x(n)不相同。

当N=32时,由于N>M,满足频域抽样定理,所以不存在时域混叠失真,因此。

与x(n)相同。

由此验证了频域抽样定理。

 

4.利用内插公式,由

分别得到

的估计值,计算均方误差,从频域角度验证频率抽样定理。

clc,clear

n=0:

100;%设定n及其取值范围

forn1=0:

13%对于n处于不同的取值范围将n代入不同的表达式

xn(n1+1)=n1+1;

end

forn2=14:

26

xn(n2+1)=27-n2;

end

forn3=27:

100

xn(n3+1)=0;

end

M=1024;

N=16;%设定抽样点的个数

k=0:

M-1;%设定k的取值范围

w=2*pi*k/M;%定义数字角频率

[X,s]=dtft2(xn,n,N);%调用dtft2子程序求xn的频谱幅度值

Xe=zeros(1,M);%赋Xe序列初值均为零

forb=0:

M-1%外层循环,每次循环赋予sum初值为零

sum=0;

fork=0:

N-1%内层循环,对于k的每次循环,代入内插公式累计求和

sum=sum+X(k+1)*((1/N)*(sin(w(b+1)*N/2-k*pi)/sin(w(b+1)/2-k*pi/N))*exp(-j*(N-1)*w(b+1)/2+j*k*pi*(N-1)/N));

end

Xe(b+1)=sum;%将循环总值赋予Xe

end

k=0:

M-1;%重新设定k的取值范围

w=2*pi*k/M;%由于k取值范围改变w的取值范围随之改变

subplot(2,1,1);plot(w,abs(Xe));%画出Xe的连续图谱

xlabel('k');ylabel('X16(k)');title('M=16时X(exp(jw))的估计');%标明横纵坐标和图像标题

 

N=32;%设定抽样点的个数

k=0:

M-1;%设定k的取值范围

w=2*pi*k/M;%定义数字角频率

[X,s]=dtft2(xn,n,N);%调用dtft2子程序求xn的频谱幅度值

Xe=zeros(1,M);%赋Xe序列初值均为零

forb=0:

M-1%外层循环,每次循环赋予sum初值为零

sum=0;

fork=0:

N-1%内层循环,对于k的每次循环,代入内插公式累计求和

sum=sum+X(k+1)*((1/N)*(sin(w(b+1)*N/2-k*pi)/sin(w(b+1)/2-k*pi/N))*exp(-j*(N-1)*w(b+1)/2+j*k*pi*(N-1)/N));

end

Xe(b+1)=sum;%将循环总值赋予Xe

end

k=0:

M-1;%重新设定k的取值范围

w=2*pi*k/M;%由于k取值范围改变w的取值范围随之改变

subplot(2,1,2);plot(w,abs(Xe));%画出Xe的连续图谱

xlabel('k');ylabel('X32(k)');title('M=32时X(exp(jw))的估计');%标明横纵坐标和图像标题

M=16和M=32时的估计图形如图1-4所示:

图1-4M=16时

的估计和M=32时

的估计

M=16时均方误差为230.2131

M=32时均方误差为1.2767e-26

当M小于序列长度时,均方误差较大,不能很好地恢复原序列。

当M=32时,满足频域抽样定理,均方误差小到可以忽略不计,认为能不失真地恢复出原序列。

由此验证了频域抽样定理。

(二)音频信号的处理

实验内容:

1、语音信号的采集

 利用Windows附件中的录音机,录制一段自己的话音,时间在1s内。

在Matlab软件平台下,利用函数wavread对语音信号进行采样,记住采样频率和采样点数。

通过wavread函数的使用,理解采样频率、采样点数等概念。

2、语音信号的频谱分析

 画出语音信号的时域波形,然后对语音号进行快速傅里叶变换,得到原始模拟信号的频谱特性,画出频谱图,标注坐标轴。

3、用滤波器对信号进行滤波

 在离散时间域,使信号通过冲激响应为

的低通滤波器,得到系统的输出。

4、比较滤波前后语音信号的波形及频谱

5、回放语音信号

在Matlab中,函数sound可以对声音进行回放,调用格式:

sound(x,fs,bits),感受滤波前后的声音的变化。

(输入时域波形)

x=wavread('1.wav');%调用wavread函数

n=0:

63487;%设定横坐标n和其取值范围

plot(n,x);%调用plot函数画出连续图像

xlabel('n');ylabel('x');title('语音时域波形图');%标明横纵坐标和标题

 

(输入频域波形)

x=wavread('1.wav');%调用wavread函数

n=0:

63487;

M=1024;%设定离散点个数

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

plot(w,X);%调用plot函数画出频谱的连续图像

xlabel('w');ylabel('X');title('语音频域波形图');%标明横纵坐标和图像标题

 

(滤波前后的时域波形)

clc,clear

N=63519;n=0:

N-1;%设定序列的总长度N,为n赋取值范围

M=63488;m=0:

M-1;%设定wavread函数序列长度及m的取值范围

B=32;b=0:

B-1;%设定h(n)序列的长度及b的取值范围

x=wavread('1.wav');%调用wavread函数

subplot(2,1,1);plot(m,x);%分配作图空间,调用plot函数画出滤波前的波形

xlabel('n');ylabel('x');title('输入时域波形图');%标明横纵坐标和图像标题

hn=0.5*(1-cos((2*pi*b)/(B-1)));%hn表达式

y=conv((x(:

1))',hn);%调用conv卷积函数求x与hn的卷积

a=0:

M+B-2;%设定m的取值范围

subplot(2,1,2);stem(a,y);%画出系统通过滤波器后输出的离散图像

xlabel('n');ylabel('y');title('输出时域波形图');%标明横纵坐标和图像标题

 

(滤波后的频域波形)

clc,clear

N=63519;n=0:

N-1;%设定序列的总长度N,为n赋取值范围

P=63488;m=0:

P-1;%设定wavread函数序列长度及m的取值范围

B=32;b=0:

B-1;%设定h(n)序列的长度及b的取值范围

x=wavread('1.wav');%调用wavread函数

hn=0.5*(1-cos((2*pi*b)/(B-1)));%hn表达式

y=conv((x(:

1))',hn);%调用conv卷积函数求x与hn的卷积

a=0:

P+B-2;%设定m的取值范围

M=1024;%设定离散点个数

[Y,w]=dtft2(y,a,M);%调用dtft函数

plot(w,abs(Y));axis([-pi,pi,-1000,1000])%调用plot函数画出频谱的连续图像

xlabel('w');ylabel('Y');title('语音输出频域波形图');%标明横纵坐标和图像标题

仿真图形:

见图2-1,图2-2,图2-3:

图2-1音频信号仿真图形

图2-2滤波前的频域波形图

图2-3滤波后的频域波形图

收获心得:

在编写程序时注意设定变量的位置(子程序还是主程序),这对于实验结果会产生直接的影响。

此外,这次有趣的音频信号实验巧妙地将windows软件与所学知识相结合,让我们在亲身实践中体会数字信号处理带来的乐趣,同样受益匪浅。

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

当前位置:首页 > 初中教育 > 学科竞赛

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

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