数字信号处理实验六报告.docx
- 文档编号:3757081
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:16
- 大小:165.74KB
数字信号处理实验六报告.docx
《数字信号处理实验六报告.docx》由会员分享,可在线阅读,更多相关《数字信号处理实验六报告.docx(16页珍藏版)》请在冰豆网上搜索。
数字信号处理实验六报告
实验六频域抽样定理和音频信号的处理实验报告
(一)频域抽样定理
给定信号
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软件与所学知识相结合,让我们在亲身实践中体会数字信号处理带来的乐趣,同样受益匪浅。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字信号 处理 实验 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)